[Android Software Development] loveubuntu:
Ubuntu 11.10 and ADB and fastboot

Update 3-3-2012: I just tried this on Ubuntu 12.04 Beta and Linux Mint 12 . It worked on both.

Thank you to the original poster bloodychaos. I used some of his info/code and changed a few things to reflect new versions of Ubuntu/Android SDK.

OK I can confirm that the method for installing Android SDK and using ADB in the original post for Ubuntu 11.04 also works with the horrible looking, "unity" infested, Ubuntu 11.10 Oneiric Ocelot. There are changes from the OP and how it will work with 11.10/11.04. Here are the steps I took to get ADB working like a charm.

***please make sure debugging is enabled on your phone: menu/settings/applications/development/check mark debugging to enable***

1-Install java by Sun(JDK). There are different ways of installing sun-java and one is mentioned in the original post. I've used my method often and it has worked for me quite well. Here it is:

method 1: I actually like this method best since you know what you are doing step by step. This is for the 32 Bit Ubuntu. For the 64 Bit, see the source. Source: http://sites.google.com/site/easylinuxtipsproject/java

1- Remove the browser plug-in for Java (either the open source version or the JRE version, but only the browser plug-in needs to be removed). Open a terminal and type

cd /opt

and then

ls

This should list all the folders in /opt. If you see a Java folder, you need to type

gksudo nautilus

enter your password. Your file explorer (nautilus) opens up. Go to File system and fine theopt folder. In it, delete the Java folder. Now in terminal type:

rm ~/.mozilla/plugins/libnpjp2.so

If you don't see the Java folder you don't have to do the steps in Blue. Now Go to the software center and search for icedtea. Only remove the icedtea browser plug-in.

2- Got to http://www.java.com and to the download section and get the right file. It's the one ending in i586.bin (self extracting). None of the RPM files.

3- Now we are going to make room for Java, install, and make it default. Agree to any license agreement if it pops up. It may not. Do the following one line at a time pressing enter after each line:

cd /opt
sudo mkdir java
cd java
sudo mkdir 32
sudo mv ~/Downloads/jre-6u31-linux-i586.bin /opt/java/32
sudo chmod 755 /opt/java/32/jre-6u31-linux-i586.bin
cd /opt/java/32
sudo ./jre-6u31-linux-i586.bin
sudo update-alternatives --install "/usr/bin/java" "java" "/opt/java/32/jre1.6.0_31/bin/java" 1
[COLOR="Red"]you may have to the last line twice. This is not a code line, skip it.[/COLOR]
sudo update-alternatives --set java /opt/java/32/jre1.6.0_31/bin/java

Again use common sense and make sure the file you download and the file name in above codes are the same. It may change in the future.

4- Now remove the old plug-in and the new install Firefox plug-in:

mkdir ~/.mozilla/plugins
sudo apt-get remove icedtea6-plugin
rm ~/.mozilla/plugins/libnpjp2.so
ln -s /opt/java/32/jre1.6.0_31/lib/i386/libnpjp2.so ~/.mozilla/plugins/

note that the second and third line may not result in anything.

5- Go to http://java.com/en/download/installed.jsp and check if it worked. You're done. Reboot your computer.

This works in Linux Mint 12 also.

Method 2 (I'm still leaving this here but I strongly suggest you use method 1): If Synaptic is not acting weird (it does in 12.04 Beta), use this method. Since Ubuntu no loinger includes Synaptic, go to Ubuntu Software Center, search for it, check all the add-ons in the middle, apply the changes, once done, click install in the right hand corner. Once installed start the package manager (start typing synaptic in the dock's search) and click on it. Now click on settings/repositories. Click the "other software" tab and click ADD. Now in the APT line copy and paste this: ppa:ferramroberto/java

click add source and then add volume and close. When you are back in the Synaptic window, click reload. Once reloaded, in the quick filter field type java6. You will see some entries, you need to "right click" the box and choose mark for installation for 4 items: sun-java6-bin, sun-java6-jre, sun-java6-jdk, sun-java6-plugin. Click apply and now you should see the box next to those items as green. You are done with java.

2- Download and Install Android SDK (which has ADB included of course):

http://developer.android.com/sdk/index.html

Click and download the Linux version. Go to your Download folder and “right” click the .tgz file and click extract here. Now you have a folder called android-sdk-linux. Cut it from this folder and paste it in the Home folder. Note that the most of the names have changed from the original post.

Fire up a terminal (search for terminal in the dock's search field) and change directory from Home (that terminal opens in) to android-sdk-linux/tools type:

cd android-sdk-linux/tools

( you can do it in one step like above or two steps, first cd into the android-sdk-linux then into tools)

Now update the sdk by typing:

./android update sdk

The update window and the sdk open up. By default, all platforms have been selected to be installed. This will take a very long time; so if you don't need all those platforms, only pick a few you need to install. I chose all and it took me a few hours. No harm to choose all but be warned, it takes for ever.

HTC and MOTO now want you to have a dev account. You can create one, it takes a few seconds for each. Once you enter your new login and password in the SDK update window once, you don't need to enter it for all their platforms.

3- make sure USB debugging box is checked on your phone, settings/applications/development. Now connect your phone. You DO NOT want to turn on USB storage and you should see the usb debugging connected message.

4- In the terminal type:

cd android-sdk-linux/platform-tools

to go to that folder. Now type:

./adb devices

If you see your device in something like this, you are done.

List of devices attached

HT12HS005115	device

But I doubt it. I've never seen it work that easily. You have to give permission to your phone. While still connected to your phone, in the terminal type lsusb to get a list of all usb devices. Usually the last one is your phone. I didn't know HTC stood for High Tech Computer Corp so it took me a few seconds to locate it. :) Now right down the 9 character (xxxx:xxxx) ID to the left of your phone.

In the terminal, type in cd then press enter to be at the ~$ prompt. Now type:

sudo gedit /etc/udev/rules.d/99-android.rules

to create a blank file and open it (you have to enter your root password every time you type sudo. You don't see anything being typed but it's there. If you are here reading this you already knew that though). In the file type (copy and paste of course):

SUBSYSTEM=="usb", ATTRS{idVendor}=="####:####", SYMLINK+="android_adb", MODE="0666" GROUP="plugdev"
TEST=="/var/run/ConsoleKit/database", \
RUN+="udev-acl --action=$env{action} --device=$env{DEVNAME}"

(thank you cainn24 for the typo correction)

now care fully replace the ####:#### with the 9 character you wrote down above. Save and exit.

Type:

sudo service udev restart

and press enter.

5- Now we need to test adb to see if it worked. In a terminal, type:

cd android-sdk-linux/platform-tools

to change to that directory. ADB is in there. Type in

./adb devices

If you see your device and it's serial number your done. If you don't (which I did not) stop and restart adb by using these commands while you are in that folder still:

./adb kill-server

./adb start-server

Now unplug your phone and replug it and tyoe:

./adb devices

You should now see your device and it's serial number.

6- To be able to use adb from any folder in the terminal and use it as a command (without the ./), do this: (creating a path)

In a terminal type: (it can be at any prompt)

sudo gedit ~/.bashrc

enter password and enter. A file opens up. You need to add the following at the end of the file: (again note that names have changed from the original post)

# Android tools
export PATH=${PATH}:~/android-sdk-linux/tools
export PATH=${PATH}:~/android-sdk-linux/platform-tools

save and exit. Make sure you are not adding or omitting anything or you will get an error. You need to restart your computer, kill adb and restart adb as above, and unplug/re-plug your phone to complete this step. Now press cd and enter to be at ~$ prompt. Lets see if adb works without being in that folder: type:

adb devices

if you get the same device name and serial number you got when you were in the adb directory, you are done. You can now run adb from anywhere as a command. If you don't, unplug and re-plug the phone, restart the terminal and should work.

------------------------------------------------------

update 02-22-12: It seems like Google has included fastboot in the platform-tools folder now. Before doing anything check and see if it's there. If it is, all you need to do is test it. Go to the last paragraph marked by *** in this section to test fastboot.

Extra #1: Setting up fastboot in Ubuntu 11.10: Now that you have adb setup, it's pretty easy to setup fastboot. The source of my knowledge for this is http://wiki.cyanogenmod.com/wiki/Fastboot

You may run into a guide that would ask you to use fastboot to accomplish something. So it's nice to have it handy when needed but don't be going around using commands you know nothing about. It may mess up your device.

For fastboot to work, you have to have S-OFF and be in the bootloader (fastboot menu). Remember, Bootloader/fastboot is not the same as the recovery menu. Unlike adb, nothing happens if you have your phone booted normally, you have to be in the fastboot menu. Now go to http://koushikdutta.blurryfox.com/G1/ and download the right version (Linux of course). Extract the zipped file and rename it fastboot for ease of use. Cut and paste it into your android-sdk-linux/platform-tools folder from the above settings. Because you set your path above to be able to issue commands from both tools and platform-tools folders, you are done. I chose the platform-tools since Google has moved adb from the tools folder to this folder. I read somewhere that they by mistake omitted fastboot from the latest version of Androiod SDK.

***Now to test it, turn your phone off and boot into the bootloader manually (each phone has different combo keys for this) or fire up a terminal and type:

adb reboot-bootloader

now type:

fastboot devices

and see if your device and serial number is recognized.

-----------------------------------------------------------------

Extra#2: To get rid of Unity and get an option for GNOME desktop in the log-in screen (the options wheel) do this:

Ubuntu Natty Narwhal 11.04: It's quite easy to roll back to the original Gnome desktop in Ubuntu 11.04. When you get to the start up login screen, click your user name but don't enter password yet. Look for a small menu that says Ubuntu in the lower panel. Click it and choose Ubuntu Classic. That's all. Enter your password now and log in. You are back where you have started. You only need to do this one time, Ubuntu will remember your choice. You can do the same to switch back and forth.

Ubuntu Oneiric Ocelot 11.10: Starting with the Ubuntu 11.10, the option to change back to Gnome desktop (Ubuntu Classic) was removed from the start up login screen. To change back you need to follow a few easy steps. Login to Ubuntu with the Unity interface. Press the keys CTRL ALT T (letter T) to fire up the terminal. You can also press the Ubuntu logo in the upper left corner to open the dock and in the search field start typing terminal. Once you see it, click it. (Terminal is a powerful tool that many beginners may not need to use but it is easy to learn and can come in handy in cases like this, it's like the the DOS command in Windows or Terminal in Macs.)

Once the terminal is up and you click the disclaimers (if any), you will see your user name and computer name followed by symbols that end in the $ sign. You need to type:

sudo apt-get install gnome-session-fallback

Copy here and use the Ctrl V key combo to paste in the terminal. This way you do not miss any characters or spaces. Press enter. The terminal will ask you for your password. Enter it. You do not see the password being entered but it is. Press enter and see the terminal download and install what is necessary for the Gnome desktop roll back. If it asks you to re-enter password, you may have entered the wrong password. try again. In the process, if it asks you to do something, answer Y for yes. That's it. Shut the computer down and restart it. In the start up login screen, look for the option's wheel above the password field. Click it and choose Classic Ubuntu. Once in Ubuntu you can add to the upper and lower panel to make it look like what you had before. It may look a little different than versions 10.10 or older but you can come very close to it. Click Applications/Internet and drag the Firefox icon from the menus to the desktop and then to the upper panel where it used to be. Also to add to panel you need to use "ALT right click" vs just the right click in the previous versions.