Make Gadgets Work

Posts tagged "Android"

Today "Jump" was available for free on Amazon as the app of the day and since it's nearly 7 quids on google play store, I downloaded. For windows and Mac users they have a pretty straight forward set-up but as usual for Linux it means some work but in the end it leaves you with a set-up you can trust and feel secure about. There are three things that need to be set-up for this to work: 1. Linux Mint machine should be set-up for x11vnc and ssh servers 2. Router firewall should be configured to allow inbound traffic on specific ports. 3. Jump or equivalent vnc viewer should be configured on the android device. 1. Linux Mint machine should be set-up for x11vnc and ssh servers 1.1: Install X11VNC by typing following command in terminal: sudo apt-get install x11vnc 1.2: Create a password for VNC using following command in terminal and providing a password and answering yes for the prompt to store password in a file: x11vnc -storepasswd 1.3: Now to ensure that X11VNC starts at boot go to menu and type start, click on startup application as shown in the screenshot below: hen in the window that this will open click on "Add" and enter a "Name" and in "Command" field enter x11vnc -forever -xkb -usepw -display :0 as shown below. VNC set-up on machine is complete. 1.4 Now install openssh-server using following command on terminal: sudo apt-get install openssh-server 1.5 We will need to change some parameters in ssh configuration for making it secure as by default it allows root login but I dont want that for remote access and would advice most regular users to do so as well. So we will first make a backup of existing configuration file using the command below: sudo cp /etc/ssh/sshd_config ~ 1.6 Now, we will edit the actual config file using following command: gksudo gedit /etc/ssh/sshd_config 1.7 Once the file is open change the parameter "PermitRootLogin" to "no". It's on line 27 for me. 1.8 Now the default port for ssh is 22 but I recommend changing it to something else such as 5432. To do so change the parameter "Port" from 22 to whatever port you want to put. In this example it will be 5432. For me "Port" parameter is on line 5. 1.9 Save the changes and close gedit. 1.10 Now we will restart the ssh server using following command in terminal sudo restart ssh For Arch, you can use the command: sudo systemctl start sshd followed by sudo systemctl enable sshd.service to ensure ssh daemon is enabled at startup. 1.11 Restart the machine and machine set-up is done. 2. Router firewall should be configured to allow inbound traffic on specific ports. This may involve different step from those given below depending on the router in use. Following steps are meant for configuring the sky router. However principle is same. We will be creating specific service definition and port on router and then create a firewall rule that allows inbound traffic and directs it to Linux machine we configured above. 2.1 Type following command on terminal: ifconfig 2.2 this will list lot of numbers, what we are interested in is the number just after "inet addr:" under wlan0. It will be something like 192.168.0.10. 2.3 Open sky router config through browser using 192.168.0.1 and click on "Security". You will need to enter router username and password. 2.4 Then click on "Services" and then click on "Add Custom Services". 2.5 Enter as shown in Figure 4 and Start Port as 5900, Finish Port as 5900 and click on "Apply". 5900 is default port for display 0 in VNC. If you have changed it like me you will need to enter that port. To change port you will need to use "x11vnc -forever -xkb -usepw -autoport nnnn -display :0" option in step 1.3. This is not required for security but in case you have two different machines then this approach will come handy. 2.6 Now click on "Add Custom Services" again and this time enter as shown in next screenshot. Start Port and End Port should be same as entered in step 1.8, so for this example it will be 5432. Then click on "Apply". 2.7 Now we need to set the firewall for these services. To do so, click on "Firewall Rules" then click on "Add" under inbound services. 2.8 Configure fields as shown in next screen-shot below and click on "Apply": 2.9 Now we will do same for SSH, so again click on "Add" under inbound services and configure fields as shown in screen-shot below and click on "Apply": 2.10 Click on "Apply" under "Inbound Services". 2.11 In browser on the router management page, click on "Advanced" > "Remote Management" and on this screen make note of the IP address (number after http:// in red box in next screen-grab) shown under "Remote Management Address". 2.12 Go to https://www.dlinkddns.com/signin and create an account. Refer this page for the how-to (http://www.dlinkddns.com/howto) and you will need to use the IP from step 2.11 above as the host. At the end of it you will have a hostname like "yourname.dlinkddns.com", username and password for logging in to dlinkddns site. 2.13 Once this is done, go to the browser with sky router management and click on "Advanced">"Dynamic DNS" and fill as shown in screen-shot below: Host Name: Hostname from Step 2.12 (yourname.dlinkddns.com in this example) User Name: D-Link site username Password: D-Link site password 2.14 Once above information is filled, click on "Apply" and then click on "Show Status". It should open a separate window and showing the message "request successful". Sky Router is now configured. 3. Jump or an equivalent VNC viewer should be configured on the android device. 3.1 On the android device open Jump and click on the "+" sign in right hand corner. 3.2 In the "Address" Field enter the hostname from 2.12 (yourname.dlinkddns.com in this example) and select connection type as "VNC" and click save. 3.4 Change the "Authentication Method" to "VNC Password" 3.5 Tap on "SSH Tunnel", click on "Enabled" checkbox. 3.6 In Username enter the username used to log into the machine configured above in Step 1. 3.7 In Host Name, use the the hostname from 2.12 (yourname.dlinkddns.com in this example) 3.8 Change the port to one used in 1.8. So in this case 5432. 3.9 Password can be left empty and when asked during connection provide the one used to log on to the machine with this username. 3.10 Press back button and click on entry. You will be shown a SSH key notification, say ok. Then you will be asked for a password, provide the password you use to log onto your machine with the username provided in 3.6. 3.11 Then you will be asked for the VNC password, provide the password from step 1.2. You will now be able to view your desktop on your android machine. All Done !!!

Linux Mint on Android through VNC and Jump

Today "Jump" was available for free on Amazon as the app of the day and since it's nearly 7 quids on google play store, I downloaded. For windows and Mac users they have a pretty straight forward set-up but as usual for Linux it means some work but
Having a rooted phone and then going to one that does not have root access is like getting used to driving a luxury car but then being forced to drive a tractor. So with arrival of my shining new nexus 4 once the novelty worn of in 8 hours or so, I sat down and rooted the device. Now there are plenty of guides out there but not many specific to Linux just yet. One reason might just be the fact the Linux Users are really smart and know how to figure it out but what about users who are new ...well at least for them I am sure this post will be useful and while we are at it, I felt I will install the touch version of CWM... Pre-requisite: For purpose of this tutorial, I will assume that adb set-up is in place using steps explained in my last post specifically up to Step 5. It is totally worth doing it before you proceed but if you would prefer a shorter route, please refer some guide on how to install just adb. Though I would not recommend any other approach. (Not because they will not work but because this approach will ensure clean system and something I have tested 4 times already to work and if you will follow this post, it makes sense to do it the way I did) Clockwork Recovery Mod (Touch Version) Super User App Fastboot This process will wipe out all user data and apps. Appropriate back-ups should be taken and restoring those is beyond the scope of this post. Bullets 2 and 3 can be downloaded directly from http://www.clockworkmod.com/rommanager and http://download.chainfire.eu/282/SuperSU/ or as before I have uploaded them in mediafire and can be downloaded from this link. I downloaded fastboot few months back from xda using this link and am not sure if it is still there or not so I have uploaded it to mediafire as well. Step 1: Prepare Nexus 4 and Linux Mint 13 Step 2: Unblock bootloader for Nexus 4 Step 3: Root Nexus 4 Step 4: Make Clockwork Mod Permanent Step 5: Mount and Un-Mount Nexus 4 to access files from Linux Mint Step 1: Prepare Nexus 4 and Linux Mint 13 1.1. Check if fastboot is already there in the the /android-sdks/platform-tools directory. If yes skip the next step. 1.2. Extract the fastboot from downloaded zip file and place it in the /android-sdks/platform-tools directory if it is not already there and make it executable (Right Click, Select properties, Go To permissions tab and select the checkbox in front of "Execute") 1.3. Copy the downloaded Clock Work Mod file (recovery-clockwork-touch-6.0.2.3-mako.img) in the /android-sdks/platform-tools directory. 1.4.Activate debug mode in nexus 4 - to do this go to settings > About Phone and then click 7 to 8 times on "Build Number". This will activate developer mode. 1.5. Now click back and got to {} Developer Options and Click the checkbox against USB debugging. 1.6. Set up udev on linux mint: a. Assuming that you have followed last post you would already have a "51-android.rules" file created. b. Open the file with Gedit using following command sudo gedit /etc/udev/rules.d/51-android.rules c. Add following lines: #LG - Nexus 4 SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666" SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4ee1", MODE="0660", OWNER="ankit" #Normal nexus 4 SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4ee2", MODE="0660", OWNER="ankit" #Debug & Recovery nexus 4 SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4ee0", MODE="0660", OWNER="ankit" #Fastboot nexus 4 I got the Vendor ID and Product ID by connecting the phone in different states (USB debug checked, unchecked and also after the phone was connected and rebooted into bootloader using command "adb reboot bootloader") as per the guidance given here. d. Now Save the file, then chmod to all read using following command: sudo chmod +x /etc/udev/rules.d/51-android.rules Step 2: Unblock bootloader for Nexus 4 2.1. Plug your phone into the computer and type the following command in terminal: adb reboot bootloader 2.2. Once Nexus 4 has rebooted in recovery mode, type the following command in terminal: fastboot oem unlock If terminal displays the message "waiting for device" 51-android.rules file is not set correctly and you might need to check vendor ID and product id using lsusb command in different modes and update it with appropriate data. 2.3. Phone will display a long message and ask for confirmation to unlock bootloader. Select "Yes" by using the volume keys and use power to select it. 2.4. Now, using volume keys navigate to "Recovery Mode" and select it using "Power" key. 2.5. After a while Android with blue progress bar should appear and phone should reboot but if it does not and instead shows a screen with "Android" on it's back with an exclamation mark on it's tummy, don't panic. Just press "Power" and "Volume Up" till it shows recovery menu and then select "reboot". The phone is now bootloader unlocked. Step 3: Root Nexus 4 OK now when the phone boots, it will be fresh with factory reset, no data or apps whatsoever other than those that are there by default and when the phone boots, it will ask all details like selecting country etc. Just enter quickly without bothering to enter gmail, wifi etc. Once done: 3.1. Install mtpfs from synaptics. 3.2. Plug the phone to computer. 3.3. Type the following commands: sudo mkdir /media/nexus4 followed by sudo chmod 755 /media/nexus4 3.4. Now mount the nexus 4 using following command so we can transfer files: sudo mtpfs -o allow_other /media/nexus4 3.5. Copy the downloaded file "CWM-SuperSU-v0.98.zip" on Nexus 4. 3.6. Type the following command to unmount nexus 4: sudo umount /media/nexus4 3.7. Reactivate the debug mode using Step 1.4 and Step 1.5 above. 3.8. On terminal type the command: adb reboot bootloader followed by: fastboot flash recovery /android-sdks/platform-tools/recovery-clockwork-touch-6.0.2.3-mako.img Make sure in above command you replace PATH_TO with the actual path to the file. An easy way can be to right click on "recovery-clockwork-touch-6.0.2.3-mako.img" file and click on properties thene select the path and paste in this command. 3.9. Once completed, on the phone navigate to "Recover Mode" using volume keys and select using power key. 3.10 The new recovery menu will be presented. Select "install zip from sd card" and "choose zip from sd card." and select the file we had put in step 3.5 - "CWM-SuperSU-v0.98.zip". 3.11 Once done, go back to reboot and "Reboot" the phone. At this point your phone is rooted,however, you will get a message suggesting the recovery will not be permanent or something to that effect which is fine if you aren't bothered about it but if you would rather want to keep this CWM we need to move to next step. Step 4: Make Clockwork Mod Permanent 4.1. On your phone install ES File Explorer. 4.2. Select Settings. 4.3. Select "Root Settings". 4.4. Select all checkboxes. You will be asked for superuser access, say Yes. 4.5. Now go back to main screen of ES File Explorer and select the third tab with an icon of Folder with up arrow and text Up. This should bring you to root. 4.6 Now using ES File Explorer navigate on your phone to /system/etc, find the file named "install-recovery.sh" and rename it to "install-recovery.bak" 4.7 Repeat Steps 3.7 to 3.11. Now your clockwork mod is permanent. Step 5: Mount and Un-Mount Nexus 4 to access files from Linux Mint Now, with the steps 3.1 to 3.6 we have laid the foundation for being able to connect Nexus 4 and transfer files using USB. Something earlier was possible using USB Mass storage mode but is not present jelly bean onwards. The commands in 3.4 and 3.6 are key to achieve this but rather than remembering these and typing each time, I have made a menu entries for each of these (Mount Nexus 4, Unmount Nexus 4) and after connecting phone via USB, I simply click on these, system asks root password and then connects nexus 4 as mass storage (see screenshot below): In order to get these you will follow the steps below: 5.1 Right Click on Menu and select "edit Menu". 5.2 Now click on "New Menu" and Enter a menu entry "Phone". 5.3. Select the checkbox next to the new menu entry "Phone" in middle pane. 5.4. Select new menu entry "Phone" in left pane. 5.5. Click on "New Item" in right Pane and in the dialogue box fill the fields as below and save: Type: Application in terminal Name: Mount Nexus 4 Command: sudo mtpfs -o allow_other /media/nexus4 5.6 Again click on "New Item" in right Pane and in the dialogue box fill the fields as below and save: Type: Application in terminal Name: Unmount Nexus 4 Command: sudo umount /media/nexus4 5.7 Make sure checkbox next to these new items is ticked. Save and Close. That's it !!! All Done. Hope some will find this post useful.

Root Nexus 4 on Linux Mint 13 and access all files on computer

Having a rooted phone and then going to one that does not have root access is like getting used to driving a luxury car but then being forced to drive a tractor. So with arrival of my shining new nexus 4 once the novelty worn of in 8 hours or
Few weeks back I updated to the latest Linux Mint offering "Maya" a.k.a Linux Mint 13. Now this is a LTS (Long Term Support) version and I wanted to be in a position to install everything right just so I can keep it for a longer duration and hence have been taking my time configuring stuff. Last time when I had set up system for Android Development I remember messing up a lot and ending up installing too many things here and there and in the process did learn how to do it properly. I did not document that as a blog as it was too fragmented an experience at that time but this time round I did it properly and everything (well, okay, almost everything) was perfect. There is lot of material on the web but again that is what led to a less than perfect install last time as it is all disjointed, making the sequence go wrong, using one way for one thing another way for second and ending us with a not so nice experience distracting you from what you want to do, start developing something on android platform or perhaps just get the adb set-up to flash your nexus phone. So presented below is a guide that will help you prepare your Linux Mint 13 or equivalent distro for you to start android development. You will notice that these notes do not require downloading "android sdk" separately and that is to save time and effort, trust me. So the high level steps are: Step 1: Download required files Step 2: Install Oracle Java (or what is called sun-java on Android webpages) Step 3: Install eclipse Step 4: Install ADT Plug-in for Eclipse Step 5: Final Configurations Step 6: Create Android Virtual Device Step 1: Download required files Download following files: Links to original file locations: Script to Update Java (Updated link to the latest version of script as highlighted in screenshot.) Java 7 SDK Java 7 Samples and Demo Java 7 API Docs Java 6 Samples and Demo Java 6 API Docs Java 6 SDK If you don't want to move around different webpages and websites, I have also uploaded all these files on mediafire. http://www.mediafire.com/?4x3u3if9o7dy4 Step 2: Install Oracle Java You might ask, why do we need to do it this way? That's because Oracle Java 6 SDK is a pre-requisite for installing Android SDK but it's not available in Ubuntu or Linux Mint repository so it can't be installed using synaptic or apt-get. Right then, I am assuming that all the files downloaded above are placed in "Downloads" directory. If not, please replace "Downloads" in all commands with whichever directory you have downloaded these file to. #1. Open terminal and type: cd Downloads #2. Make the downloaded .bin Java 6 file executable and run chmod a+x jdk-6u37-linux-i586.bin ./jdk-6u37-linux-i586.bin ###This will create a directory named "jdk1.6.0_37". #3. Untar the Java 7 SDK tar -xvf jdk-7u7-linux-i586.tar.gz ###This will create a directory named "jdk1.7.0_07". #4. Unzip the Java 6 api docs unzip jdk-6u30-apidocs.zip -d jdk1.6.0_37/ ###This command will unzip the apidocs zip file ###and place the contents in "jdk1.6.0_37" #5. Unzip the Java 7 api docs unzip jdk-7u6-apidocs.zip -d jdk1.7.0_07/ ###This command will unzip the apidocs zip file ###and place the contents in "jdk1.7.0_07" #6. Untar the Java 6 demos and samples tar -xvf jdk-6u37-linux-i586-demos.tar.gz ###This command will untar the demos and samples file ###and place the contents in "jdk1.6.0_37" #7. Untar the Java 7 demos and samples tar -xvf jdk-7u9-linux-i586-demos.tar.gz ###This will create a folder named jdk1.7.0_09. ###Copy the contents of this folder into jdk1.7.0_07. #8. Move the Java 6 to it's proper location sudo mv jdk1.6.0_37 /usr/lib/jvm ###You will be asked to provide root password. #9. Now move the Java 7 to it's proper location sudo mv jdk1.7.0_07 /usr/lib/jvm #10. Make the script to update java update-java-0.5b executable #then execute it by using following commands in terminal. chmod +x update-java-0.5b sudo ./update-java-0.5b You will be presented with following selection box: Once you click on OK you will be presented with following screen: Select the radio button and click on OK. Once Java 6 SDK is installed repeat step 10 and this time when you reach the selection window select Java 7 as shown below. Now Oracle Java 6 and Oracle Java 7 will both be installed on your system. To check this you can use the tool "galternatives". This can be installed by typing following command on the terminal window: sudo apt-get install galternatives followed by galternatives. This will open the "G Alternatives" window, scroll down to "Java" in left hand pane and click on it. You should see both versions installed and radio button for highest version selected as shown below: Step 3: Install eclipse Open Synaptic package manager and type eclipse, click on the check-box next to it and select "Mark for installation" then click on "Apply" as shown below. Once Eclipse is installed, we need to find out whether the necessary SWT (Standard Widget Toolkit) libraries link are set correctly or not. This is to avoid Eclipse throwing a tantrum and not starting because it is unable to find the SWT library. As you can see in the screenshot below it's a pretty quick thing: A) First type the following command to check if whether SWT directory exists or not: ls ~/.swt/lib/linux/x86/ If you see the same message as shown in screenshot above "ls: cannot access /home//.swt/lib/linux/x86/: No such file or directory", then it means we need to create the SWT directory so continue to sub-step B. If this command does not result in this message nor does it show a list of files (blue text in screenshot) then skip directly to sub-step C. If it does show the list of files in blue in above screenshot, you don't need to do anything further and for you it's time to move to next step. B) Type the following command in terminal to create the SWT directory: mkdir -p ~/.swt/lib/linux/x86/ C) If the swt directory exist, but nothing is listed (no blue text), then run the following command in terminal: ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86/ Finally as shown in screenshot, type the command in sub-step A once again and you should see the list shown in blue on the screenshot: Time to move on to install ADT (Android Development Tools Plugin on eclipse. Step 4: Install ADT Plug-in for Eclipse OK we have so far installed Java, installed eclipse and now we are all set to install Android. To do so we will follow the screenshots below: When you start eclipse, you will be shown a splash screen, ask you to set workspace which I leave default and finally this window will open. As shown, click on the Workbench in right hand side corner. This will lead to following window. Here Click on Help > Install New Software. This will open following window. Click on "Add" button in red rectangle above. Following pop-up window will appear. In Name type "ADT Plugin" or whatever name you want to give. In Location type "https://dl-ssl.google.com/android/eclipse/" Then click OK. On following window it will first show pending but eventually it will look as below. Here select the first option "Developer Tools" and click OK. Click "NEXT". Click "NEXT". Let it run in foreground i.e. don't do anything and just wait. Click "RESTART NOW". You will be presented with following window on restart. Now leave the target location as is and leave everything as default and click "NEXT". As shown above, selected the "ACCEPT ALL" radio button and click "INSTALL". Now the android SDK is installed on the system along with other things. Close all the open windows just to clear any screen clutter. Now open the terminal and type following commands: cd android-sdks/tools followed by ./android. It will open the following window: 1. Select as shown above and optionally you can also select checkbox against Documentation and Samples. Once done click on "INSTALL x Packages". 2. On the next window, for which I did not take a screenshot but which is same as the one before previous screenshot of terminal, select radio button "ACCEPT ALL" and click on "INSTALL". 3. Now once you are back to this window select "Google APIs" and click on "Install 1 package". 4. On the package lis, click on "ACCEPT" radio button and click on "INSTALL". Android Development Tools and SDK is now installed. We just need to configure few things. Step 5: Final Configurations adb Environmental Variables Go to home folder Press Ctrl+H Locate the .bashrc file, if it does not exist, create one (In home folder, right click and select "Create New Document > Empty Document"). Open the file in gedit and add export PATH=${PATH}:/tools:/platform-tools at the end, if you created the file yourself just add this line and save. Set the PATH environment Go to home folder Press Ctrl+H Locate the .profile file Open the file in gedit and add the following at the end. # set PATH so it includes user's Android SDK if it exists if [ -d "$HOME/android-sdks" ] ; then PATH="$HOME/android-sdks:$HOME/android-sdks/tools:$PATH" fi Set-up udev This step is only required if you want to use your android device for development purpose or if you want to flash a custom ROM. Open the terminal and type following: gksudo nautilus /etc/udev/rules.d Create new document like we did above- Right click on empty space and select "Create New Document" and then "Empty Document. Name this document as "51-android.rules" Open the document with Gedit and add following lines - assuming you are using "Nexus S" like me, if not see if your phone details are available on this link: http://wiki.cyanogenmod.com/wiki/Udev and if not follow the guideline under the heading "Manually create udev rules" on that link. Now make this 51-android.rules file executable by typing following command in the terminal window: sudo chmod a+r /etc/udev/rules.d/51-android.rules Step 6: Create Android Virtual Device Open eclipse and follow the screenshots below: Click on Window - AVD Manager to get to next screen except that in your screen there will be no entry. Click on "NEW" to create a new AVD. It will open next window. Fill details as above - You can chose name of your choice and change details as per your requirements. To Start the AVD, click on Start. Finally, you will be able to see the AVD as below: This is it. Restart and your system is now all set for developing wonderful Android Applications.

Prepare Linux Mint 13 for Android development

Few weeks back I updated to the latest Linux Mint offering "Maya" a.k.a Linux Mint 13. Now this is a LTS (Long Term Support) version and I wanted to be in a position to install everything right just so I can keep it for a longer
I had an old Samsung Galaxy S which was still on stock ROM hence it only ever got to gingerbread and then Samsung just decided not to upgrade and I upgraded the phone so this little gadget was till yesterday destined to live with the old gingerbread. Then yesterday, I just decided to play around with it and started reading so I know what are my options. Now wiki guide on Cyanogenmod site is quite nicely written but there were one or two steps here and there which had me confused for a little while so here is my usual step-by-step guide on how to go about it. UPDATE: Uploaded all the files to mediafire as requested in one of the comments below. These can be downloaded from following link: http://www.mediafire.com/?ims1bxp6b8yp8 Step 1: a) Download Heimdall Suite 1.3.2 Command-line Binary for your OS from here ; for Linux Mint you can use the Ubuntu link and install the downloaded "heimdall_1.3.2_i386.deb" file. b) Download hardcore's Kernel with the ClockworkMod Recovery 2.5 here. This will download a file named "hardcore-speedmod.tar". I am assuming that it will be saved in "Downloads" directory but if you have a different location, please replace "Downloads" with appropriate directory. Step 2: Just to avoid any confusion, make a new directory in Downloads and name it "Galaxy_S". Step 3: Copy the downloaded file (from 1-b) "hardcore-speedmod.tar" into the new directory "Galaxy_S" Step 4: Now right-click on "hardcore-speedmod.tar" and select extract here as shown. This will extract the file zImage into the directory Galaxy_S. Step 5: Connect microUSB cable to your computer but not the phone. Step 6: Power off the Samsung Galaxy S. Step 7: Connect the microUSB cable to Samsung Galaxy S. Step 8: Boot the phone in download mode by holding "HOME+Volume Down+POWER" buttons. Step 9: Open the terminal and type following commands: cd Downloads/Galaxy_S sudo heimdall flash --kernel zImage A blue transfer bar will appear on the phone showing the kernel being transferred. Once completed, the device will reboot automatically. Step 10: Disconnect the phone from microUSB cable, switch it on and connect to your computer using the microUSB cable as mass storage. You may need to go to phone settings and change USB connection settings to be able to connect the phone as mass storage. Step 11: Download the latest Cyanogenmod ROM from here. Step 12: Follow this link to land at above page and then download the latest version of Google Apps. Step 13: You will now have following two zip files in your "Downloads" directory: a) cm-9.1.0-galaxysmtd.zip from Step 11. b) gapps-ics-20120317-signed.zip from Step 12 Copy these two files into the root directory of the Samsung Galaxy S. Step 14: Now, disconnect the phone from microUSB and switch it off. Step 15: Boot the phone in Recovery mode by holding "HOME+Volume Up+POWER" buttons. You will be presented with various recovery options such as reboot phone etc. Step 17: Now use the Volume Up and Volume Down buttons to navigate options. Use Volume Down button to reach the option to Wipe data/factory reset and press POWER button to select this option. Step 18: Once done, Use Volume Down button to reach the option to wipe cache partition and press POWER button to select this option. Step 19: Next select "Install zip from sdcard" which will present another set of options where you should select "Choose zip from sdcard" Step 20: Now you will see the list of files on your SD Cards root directory. Select the file "cm-9.1.0-galaxysmtd.zip" and on following screen of options select "Yes". Step 21: Once installed, select +++++Go Back+++++ and again select "Install zip from sdcard" which will present another set of options where you should select "Choose zip from sdcard" Step 22: This time select the file "gapps-ics-20120317-signed.zip" and on following screen of options select "Yes". Step 23: Once installed, select +++++Go Back+++++ to return to main menu. Step 24: On main menu select "Reboot System now" option. Step 25: If all has gone as above, your phone will restart and after a while you will see cyanogenmod flash screen. This screen will be there for a good 1 to 2 minutes. Don't panic and dont mess. Let system do it's work and in some time you would have given a fresh lease of life to your old dieing Samsung Galaxy S.

Flash Samsung Galaxy S (GT -I9000) with Cyanogenmod 9 on Linux

I had an old Samsung Galaxy S which was still on stock ROM hence it only ever got to gingerbread and then Samsung just decided not to upgrade and I upgraded the phone so this little gadget was till yesterday destined to live with the old gingerbread. Then yesterday, I
I have been using Android Phones and Tablets for quite some time now and have monitored my use for apps that I use on a daily basis and those I would not even come to know if they were removed without my knowledge. So clearly there is a personal perspective on the list below: Gmail The most obvious and the most heavily used app. No introduction required. What I like best? Clean Interface Push Notification What can improve? Ability to zoom messages. AppyGeek / AppyGeek for Tablet I use this app on a daily basis to get my daily dose of news in technical world. What I like best? It pulls news based on keywords you can select. So my feed includes news on tags such as "Linux", "Smartphones", "Galaxy Tab", "Nexus", "Raspberry Pi" ...you get the gist. What can improve? Ability to access to stories in offline mode. Guardian Anywhere Fine, I admit wholeheartedly, I am strong left wing supporter. Now with that out of the way, I prefer this app over the official Guardian app as this downloads content overnight. What I like best? Offline Access to stories. You can schedule the time for download, I prefer 4:00 AM so I have all fresh news first thing in the morning. "Picks" tab which learns my taste over time and provides stories to match it. What can improve? Ability to copy a small section of text from the story. Financisto is an opensource app to manage your budget and track your expenses. It's very comprehensive and one of the best app available on any mobile platform in my opinion. It does require initial set-up and perhaps something I will write about in another post soon but generally I find using it a very easy affair. What I like best? Highly Configurable Complete Package equivalent to any desktop finance management software. What can improve? App can do with a basic list of category to reduce the burden of creating list of categories from scratch. Improved Documentation QuickPic It is a photo gallery which have got accustomed to as initially the stock gallery app on Android was not very good. However, recent gallery app has seen some very good enhancements yet I still feel more at home using QuickPic. What I like best? Ability to hide folders that have downloaded photos from other apps and are not taken by phone camera. Ability to share a photo right from within the app through gmail, email, bluetooth, G+, FB etc. What can improve? I don't think there is much to improve. It's a pretty well rounded app in my opinion. Android Assistant It's a android system utility for monitoring system tasks, killing apps etc. All these are not what make it interesting though as there are several apps out there doing the same stuff. What I like most is listed below: What I like best? With latest version, it prompts to move any newly installed/updated app to SD card if it is possible. It shows the total start-up time and allows you to select apps that should be silent at start-up. It allows for batch uninstall, which comes quite handy when on a system clean-up spree. What can improve? Can do with a more glossy makeover. ES File Explorer File Manager The primary function of this app is to allow user to browse the file system but it really has loads of features under the hood. What I like best? Simplicity. Cloud Connection to support likes of Dropbox, Google Drive, Ubuntu One etc. FTP Everything really. What can improve? This app covers the area of accessing files, network and so on. It has a lots to offer but I don't think it's used to it's full potential by many. I think this app can do with a strong tutorial for each of it's feature. Profile Scheduler: This is better app than Smart Profile and I have found that it's ability to switch profile based on WiFi saves me a complex set-up that would have been based on time but even so the time based set-up is much easier and straight forward and it does allow priority over rules which makes things super easy. It's not a drain on battery and I am very satisfied with this app. Nothing to improve really. Smart Profile This app is a profile management tool that helps in switching to a profile based on user defined time slots. I have FOUR profiles that I switch between Sleep (Completely Silent Mode every day from 23:45), Work (Vibrate mode Monday to Friday from 09:00), Normal (Monday to Friday from 17:00), 0600 Weekends + Mornings (Normal Profile everyday from 06:00). How it works then is Starting Monday morning 06:00 phone goes on normal mode, then at 09:00 turns to vibrate mode, then at 17:00 switches to Normal profile and in night at 23:45 goes to sleep mode. This continues till Saturday morning but as "Work Profile" is scheduled only from Monday to Friday so from Saturday 06:00 onwards phone continues on normal mode whole day till 23:45 in night when it switches to sleep mode, only to get back to normal mode on Sunday at 06:00. Then again remains on normal mode whole of Sunday and in night 23:45 goes back to sleep mode. Then the cycle starts again. What I like best? Free yet effective. What can improve? As you can see from my explanation above, it is a bit complex to set-up. There was an app called audioguru which stopped working on ICS forcing me to switch but it had a simpler interface. That said in free version of audioguru there was no ability to schedule weekend so this is much better at the lovely price tag of "free". :-) HulloMail It's a visual voicemail app that works with most of the providers in the UK for their pay-monthly customers. What I like best? Ability to select the voicemail I want to listen to first. Replay the important part of voicemail Store VM as mp3 for future refrence. What can improve? I don't want much else from this app in it's free version. So it's alright as is. Go SMS Pro Go SMS Pro is a SMS client which is better than the stock client as it provides many useful additional features What I like best? Ability to schedule SMS. Ability to send SMS in batches / groups Cool skins Go Chat is another useful feature as long as your mates are using it too. What can improve? They are improving it all the time but I can't think of any complaints at the moment.

Top 10 Android Apps that I use !!!!

I have been using Android Phones and Tablets for quite some time now and have monitored my use for apps that I use on a daily basis and those I would not even come to know if they were removed without my knowledge. So clearly there is a personal perspective