I've been searching around the forums,the stickies and Google on how to install ADB in Ubuntu from scratch but I wasn't able to get a guide anywhere. What I found mostly are for Windows or little bits and pieces of info which did not cover the whole thing. Which is when I decided to grab some Tab and Mountain Dew, and Google my way through to make it work and share it to those who had trouble or no idea how to install it on Ubuntu.
When I'm writing this, I'm using Ubuntu 10.10 64bit to install and run everything. I will update the guide periodically for updates and other things. There was mentions of using Eclipse SDK while searching around, but I won't be touching on that. There's another guide for it at the end of my guide. I have yet to encounter any problems while using ADB in 64bit environment. I've tested it out on the 32bit platform as well and it works. It'll also work on SD and NAND versions of Android for the HD2, since it's my main phone. Also, this is my first time making a guide, so bear with me if there's any mistakes. I've checked the article a few times hoping that it's clear and easy to understand. From
Steps 1 to 4 and Steps 6 and 7, there's no differences in installation instructions for Ubuntu 11.04. You do have to take special note in Step 5 and the key difference of ADB working for your device in Ubuntu 11.04 is found here.
For Ubuntu 11.10, you can see the guide here. Credit goes to loveubuntu for making it.
Step 1. Install JDK
You'll need to install JDK for ADB to work. If you have already installed JDK, I recommend reinstalling it again, just in case there are new updates or you have the older version.
In Terminal, do the following
Code:
$ sudo add-apt-repository ppa:sun-java-community-team/sun-java6
$ sudo apt-get update
$ sudo apt-get install sun-java6-jre sun-java6-bin sun-java6-jdk
Edit: If you're getting a "404 Not Found" when trying to install java in Ubuntu 11.04, this link here will give you a quick fix.
Edit: If you want or need to use Eclipse, here's a simple installation command
Code:
$ sudo apt-get install eclipse ruby rubygems ruby-dev libxml2 libxml2-dev libxslt-dev openjdk-6-jdk ant git
$ sudo gem install nokogiri
Step 2. Download and Install Android SDK
Download the Android SDK. Obviously, choose the one for linux (android-sdk_rXX-linux_86.tgz), where "rXX" is the latest version.
Code:
http://developer.android.com/sdk/index.html
Extract the android-sdk-linux_x86 folder from android-sdk_rXX-linux_x86.tgz. Just double click the tgz file, and drag-n-drop the that lone folder to your desired location. In my case, I extracted the files to my Home Folder, which I highly recommend. I'll also advice to not renaming the folder.
Step 3. Choose packages to install
In Terminal, type the following -
Code:
$ cd ~/android-sdk-linux_x86/tools
$ ./android update sdk
The 'Android SDK and AVD Manager' window will appear (screencap below). You can choose to accept all of them or just install all except for Android 1.5 and 1.6. Once installation is finished, it will prompt you to restart the manager. Just click 'Yes' and close the manager
Step 4. Check your device's permission
Now head over to the platform-tools directory
Code:
$ cd ~/android-sdk-linux_x86/platform-tools
Check if you have permission for your device
Code:
$ ./adb devices
If you're getting the following, go on to Step 5.
Code:
List of devices attached
???????????? no permissions
If you're getting something like this or other random numbers with the word device next to it, congrats! You now could use ADB. Now go on to Step 7.
Code:
List of devices attached
0123456789ABCDEF device
Step 5. Giving permission to your device
You'll need to create a certain udev rule. First off type the following in Terminal:
Code:
$ sudo gedit /etc/udev/rules.d/99-android.rules
For those using Ubuntu 10.10, use the following! For Ubuntu 11.04 users, please scroll down a little for 11.04 guide.
Ubuntu 10.10
Once the gedit window pops-up, type the following line.
Code:
SUBSYSTEM=="usb", ATTRS{idVendor}=="####", SYMLINK+="android_adb", MODE="0666" GROUP="plugdev"
Take note of ATTRS{idVendor}=="####". Replace #### to the correct Vendor ID of your device. If you're using Acer, then it's 0502, for HTC it's 0bb4. ADB might not be able to detect your device if you use the wrong ID. Here's a list of each vendor's ID. Source: http://developer.android.com/guide/developing/device.html
Code:
Manufacturer USB Vendor ID
Acer -0502
Dell -413c
Foxconn -0489
Garmin-Asus -091E
HTC -0bb4
Huawei -12d1
Kyocera -0482
LG -1004
Motorola -22b8
Nvidia -0955
Pantech -10A9
Samsung -04e8
Sharp -04dd
Sony Ericsson -0fce
ZTE -19D2
Save the file and exit out of gedit. Back in Terminal execute the following
Code:
$ sudo chmod a+rx /etc/udev/rules.d/99-android.rules
$ sudo restart udev
For Ubuntu 11.04. Special thanks to mmdl1001 for figuring this one out! Would've posted it earlier Ubuntu 11.04 was a little nasty on my PC for me to test it out. VMWare saved me though...
For Ubuntu 11.04 users, you'll need an 8 digit number, which is slightly different from Ubuntu 10.10. Copy and paste the following code in the 99-android.rules file you created
Code:
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}"
Next, you'll need to find the digits to replace "####:####' above. In terminal type
Code:
$ lsusb
You should be getting a list like so. Note that what is generated in your PC will be much different from mine below!
Code:
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 046d:c019 Logitech, Inc. Optical Tilt Wheel Mouse
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 010: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 007: ID 22b8:2d66 Motorola PCS
Look for your device. It's easily identifiable via its brand . In this case, "Bus 001 Device 007: ID 22b8:2d66 Motorola PCS" is for my device. Copy the ID numbers, 22b8:2d66 for my case, and replace the ####:#### in the 99-android.rules file. Save the file and close gedit and execute the following in Terminal.
Code:
$ sudo service udev restart
Now to check if it works
Code:
$ ./adb devices
You should be getting the following line or something similar.
Code:
List of devices attached
0123456789ABCDEF device
Congrats! Now you can use ADB in Ubuntu! Now hop on to Step 6!
If that fails and still give you "???????????? no permissions", try restarting the adb server. That should do the trick. If that still doesn't work, check the file, 99-android.rules, that you created earlier. Most likely you have put in the wrong Vendor ID.
Code:
$ sudo adb kill-server
$ sudo nohup adb start-server
Step 6. Now to have fun!
Head down to Captainkrtek's ADB Workshop and Guide for everyone to learn how to use ADB. Take note that while using adb in Linux, you'll need to type ./adb to execute adb unless you create a path in bashrc. Go to Step 7 for that . For now, here are some examples on running adb if you don't create a path.
To get into the phone
Code:
[email protected]~/android-sdk-linux_x86/platform-tools:~$ ./adb shell
To grab files from phone
Code:
[email protected]~/android-sdk-linux_x86/platform-tools:~$ ./adb pull /system/etc/file.txt file.txt
To send file to phone
Code:
[email protected]lelune-~/android-sdk-linux_x86/platform-tools:~$ ./adb push this.txt /sdcard/this.txt
Also, do take note that when you pull a file, it will save itself in your android-sdk-linux_86 folder if no destination folder was given.
Step 7. Create path for ADB
Code:
$ sudo gedit ~/.bashrc
Add the following line at the very end of the file. Once you're done, save and exit.
Code:
# Android tools
export PATH=${PATH}:~/android-sdk-linux_x86/tools
export PATH=${PATH}:~/android-sdk-linux_x86/platform-tools
Now you can just run adb like it's a command.
Edit: Okay, for some odd reason, while the above worked for my desktop, it failed when I tried it on my notebook. If you tried to create a path but it failed, here's an alternative method
Code:
$ gedit ~/.profile
Once the gedit window pops up, scroll down to the very bottom of the file and add this line
Code:
[...]
PATH="$HOME/android-sdk-linux_x86/tools:$HOME/android-sdk-linux_x86/platform-tools:$PATH"
Once you've saved and closed gedit, run the following command in Terminal
Code:
export PATH="$HOME/android-sdk-linux_x86/tools:$HOME/android-sdk-linux_x86/platform-tools:$PATH"
And that's about it. Feel free to comment, give suggestions or ask questions if you're still unsure.
Also for more in-depth guide, try HowtoForge. Just found this guide today and I find it VERY useful and even have a good guide on Eclipse.
Took me about 10 mins to get this going. Thank you very much!
I have a guide to setup up a build enviroment for compiling android on a ubuntu 10.10 64bit or 32bit that covers adb also along with test signing. Just google guide to compiling android, covers cm7 and you will find it. It might be under gridlock32404 which was my old user name
Sent from my HTC Vision using XDA App
ffffffffuuuuuuuu where was this last year? took me 2 days to get ADB working in Ubuntu 10.04 lol.
i do have the Ubuntu 10.10 ISO image...thinking about dual booting with win7 64bit.
not sure why i want to go back to Linux though...games ran slower on it =/
Amazing work man. It works like a charm with my milestone.
nice tutorial but it would be even nicer to have a .deb; I never made debs before but I think this should all be doable with rpm though, so I guess it should also be doable with debs
(eg with a postinstall script update udev rules, using sed, restart abd and add a .desktop file)
saved a lot of do it myself
i was about to do this thank you for doing it first nice
I get following error when i try to refresh sources.
Failed to fetch URL https://dl-ssl.google.com/android/repository/repository.xml, reason: java.lang.RuntimeException: error instantiating default socket factory: java.security.KeyManagementException: java.security.KeyStoreException: java.io.FileNotFoundException: /usr/lib/jvm/java-1.5.0-gcj-4.4/jre/lib/security/cacerts (No such file or directory)
Click to expand...
Click to collapse
Edit:- I installed all packages like openjdk, openjre, icedtea etc and i was able to connect to google repo.
thanks Im installed
atapia984 said:
Took me about 10 mins to get this going. Thank you very much!
Click to expand...
Click to collapse
You're welcome! Honestly, it took me about 2 to 3 hours to get it running.
godutch said:
nice tutorial but it would be even nicer to have a .deb; I never made debs before but I think this should all be doable with rpm though, so I guess it should also be doable with debs
(eg with a postinstall script update udev rules, using sed, restart abd and add a .desktop file)
Click to expand...
Click to collapse
Personally, I don't think a .deb file is required. Almost everything can be found in the repository anyways and it's quite easy to set up using terminal, and uh, I never really made debs before either
thank u very muchhhhhhhhhhhhhhhhhhhhhhh, ADB was big problem with me .
thanks again.
sdk now says "x86"
I'm not sure if anyone else had this problem, but I was foolishly copying and pasting the commands over from the OP and it didn't work.
However, when I realized that the SDK package is now titled "android-sdk-linux_x86" with that tiny little "x" before the "86", I got it to work flawlessly.
Now my Ubuntu ADB installation works easier than my Windows ADB!
could someone tell me if you can run movie after you run ubuntu on your PDA
expeciali .mkv video...
please ansevar me...
strikeir13 said:
I'm not sure if anyone else had this problem, but I was foolishly copying and pasting the commands over from the OP and it didn't work.
However, when I realized that the SDK package is now titled "android-sdk-linux_x86" with that tiny little "x" before the "86", I got it to work flawlessly.
Now my Ubuntu ADB installation works easier than my Windows ADB!
Click to expand...
Click to collapse
Thanks for the heads up! I've updated the guide accordingly. Looks like they've changed the name with revision 10
Cool write up. definitely bookmarked.
only because i want to compare it to the method i used to get it running earlier. There are a lot of extra steps it looks like with this method that i didn't do earlier.
Thanks. First method to add to path didn't work, but second did finely.
very nice, thank you. Only three hints that helped me get everything working perfectly:
1- Assume you have no permission and create the udev rule step. In that same step when typing
Code:
./adb devices
to see if it worked, make sure you cd to the right directory. You have to be in
Code:
cd ~/android-sdk-linux_x86/platform-tools
.
2- In step 7 creating paths, eliminate the space between {PATH}: and ~/android. If left that way, the terminal gives you a not valid identifier error.
3- The Howtoforgelink at the bottom is very nice also but note that they are using an older SDK and file name has to be changed if you want the latest (add the x).
I hate the fact that most guides out there for a Linux based OS (Android) is written for Windows. Quite ironic. Thanks again for your hard work.
loveubuntu said:
very nice, thank you. Only three hints that helped me get everything working perfectly:
1- Assume you have no permission and create the udev rule step. In that same step when typing
Code:
./adb devices
to see if it worked, make sure you cd to the right directory. You have to be in
Code:
cd ~/android-sdk-linux_x86/platform-tools
.
2- In step 7 creating paths, eliminate the space between {PATH}: and ~/android. If left that way, the terminal gives you a not valid identifier error.
3- The Howtoforgelink at the bottom is very nice also but note that they are using an older SDK and file name has to be changed if you want the latest (add the x).
I hate the fact that most guides out there for a Linux based OS (Android) is written for Windows. Quite ironic. Thanks again for your hard work.
Click to expand...
Click to collapse
Thanks, I'm gonna try it out on my notebook when I get a chance on Monday. Left it at my workplace. Hopefully, that little space is the reason why the path didn't work on my notebook .
As for the HowtoForge guide link, I wasn't able to find a more updated version for it. It'll be great if they update that guide as well though.
It really is kind of sad, and ironic, that Windows is dominating even on a Linux based OS which is Android. But after playing around with both Windows and Ubuntu for ADB, I personally find ADB on Ubuntu is much more easier (and a bit more stable) to handle. Maybe it's because I usually work with command line on Linux and more on GUI on Windows.
I came across this thread on DF also that seems to be very helpful. CorCor67 put a lot of time into it.
http://www.droidforums.net/forum/droid-themes/129400-themer-studio.html
I cross referenced both threads for those looking
Anybody know howto - about fastboot.exe I mean I have done all the steps ahead and have adb installed but cant figure out how to install fastboot in platform-tools directory.
I reinstalled it again but there is no fastboot.exe it hadn`t appeared in platform-tools. 3 month`s ago I did it just like that and it installed fastboot automagically but this time I just don`t now what to do and where to dig. Not able to flash radio at the moment.
Ubuntu 10.04
Desire HD
Maybe you've heard of this app? https://market.android.com/details?id=com.galoula.LinuxInstall
Note: You need to be rooted for this to work.
I've just installed and run it on my a500 (After a full backup through CWM of course). In settings, I set it to install Ubuntu Maverick Meerkat. It installed fine, although you have to go through some trial and error with the settings panel:
Loop file must be "/data/local/tmp/Linux.loop"
"Bind Android" must be enabled
"Allow write on /system" must be enabled!
Linux is activated through a terminal by typing "linuxchroot". Here is an extract from the terminal. (I'll upload screenshots when I find a working program.)
Code:
#linuxchroot
I: Mounting device for ubuntu maverick...
I: Entering chroot...
I: Executing /etc/init.android/rc_enter.sh
/etc/init.android/rc_enter.sh: 2: /etc/init.d/hostname.sh: not found
[email protected]:/# cat /etc/issue
Ubuntu 10.10 \n \l
[email protected]:/# apt-get install python
Reading package lists... Done
Building dependency tree... Done
python is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
[email protected]:/# python
Python 2.6.6 (r266:84292, Sep 16 2010, 14:12:30)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 3+7
10
>>> exit()
[email protected]:/#
I'm running a stock 4.010.13_COM_GEN2 rom.
I'm working my way around the console now. As you can see, apt-get and python work. I just need to figure out how (if it's possible) to install gnome onto this installation.
Update:
So it turns out "add-apt-repository" isn't installed by default in the usual place. Or the shortcut doesn't work. Either way, I found that the /usr/bin directory contains all the required files. Since this linux seems to log you in directly into root, which might not have well-made shortcuts, you cannot access the applications normally. I cd'd inbto /usr/bin and add-apt-repository works. Now to see if usr can be the default login.
Alright. Forget about trying to get a GUI working on this type of linux. Nvidia's Tegra drivers for Xorg are MIA.
Getting the following:
/system/xbin/linuxchroot.sh: UID: readonly variable
Any thoughts?
Sent from my MB860 using xda premium
just_mike said:
Getting the following:
/system/xbin/linuxchroot.sh: UID: readonly variable
Any thoughts?
Sent from my MB860 using xda premium
Click to expand...
Click to collapse
When do you get the message? Right after you type "linuxchroot"? If so, try typing su then hitting enter; and then typing "linuxchroot"
Same thing happens, will post over in the main thread? Thanks
Sent from my MB860 using xda premium
If you want a working guide with all the necessary files there is an app in the market.
For Ubuntu:
https://market.android.com/details?id=com.appbuilder.u14410p30729
Or for backtrack:
https://market.android.com/details?id=com.appbuilder.u14410p30729
Both work on the iconia. The only fiddling I had to do was change a CD command from the guides suggested command to CD /mnt/external_sdcard. I am able to boot both from my iconia .
profclean2000 said:
If you want a working guide with all the necessary files there is an app in the market.
For Ubuntu:
https://market.android.com/details?id=com.appbuilder.u14410p30729
Or for backtrack:
https://market.android.com/details?id=com.appbuilder.u14410p30729
Both work on the iconia. The only fiddling I had to do was change a CD command from the guides suggested command to CD /mnt/external_sdcard. I am able to boot both from my iconia .
Click to expand...
Click to collapse
I cant load it in the iconia
FearL0rd said:
I cant load it in the iconia
Click to expand...
Click to collapse
Where are you stuck? Maybe I can help.
GNOME
Zen_Jackal said:
I just need to figure out how (if it's possible) to install gnome onto this installation.
Click to expand...
Click to collapse
Idea: Install GNOME and then a VNC client and connect.
I'll try it later. Will post my conclusions/steps taken/results here.
-Cameron
Zen_Jackal said:
Alright. Forget about trying to get a GUI working on this type of linux. Nvidia's Tegra drivers for Xorg are MIA.
Click to expand...
Click to collapse
http://developer.nvidia.com/linux-tegra
Possibly this could help??
You cannot run Xorg with Tegra 2 drivers when your GPU is already in use by Android. Either you have to run some sort of a virtual Xorg driver and use VNC to connect to the Linux, or you have to use native Linux and scrap Android.
Connecting via VNC works just fine, I'm doing it all the time... Just don't try running a heavyweight like GNOME or KDE, use something like LXDE (looks ok, but it's a lot faster!). There are plenty of tutorials on how to set this up on the internet.
Hi,
I patched the adb source code to allow for syncing a device tree to my local system (e.g. only copy files that are not already copied before) so I can do incrmenetal backups of the phone sotrage and externa sdcard.
The linux binary I build from that source works fine!
However, I also want to build the adb for windows. At first site all seems well, but when I run the adb.exe on a windows host it just does nothing. I just gets back to the command prompt without any output, not even the usage info when you run adb without andy command line options. I added a small debug printf as the first thing it does, but still no output.
So I'm seeking help on hwo to properly build adb.exe.
Here is what I have.
Development environment on a Fedora-20 64-bit machine
Installed the mingw-32-gcc toolset.
Setup 'repo' and downloaded the sdk sources.
. build/envsetup.sh
lunch sdk-eng (also tried aosp_arm-eng and aosp_x86-eng)
make adb -> gets me a working linux adb
USE_MINGW=1 make adb -> gets me an adb.exe (and api dlls) but it just does nothing, no output now window1s errors, nothing
The file type seems fine:
file adb.exe
adb.exe: PE32 executable (console) Intel 80386, for MS Windows
which is the same as an older working adb.exe I downloaed form xda-dveloppers
Any help is much appreciated,
Thanks
How to rebuild adb tool for mac machine?
Hi,
I'd like to develop for Android using Qt5. I installed the SDK and the NDK, set the AVD up and tried to launch the Emulator.
If launching the x86_64 machine, the emulator's display is blank (there's only skin).
If launching the x86 machine, I only have the android logo blinking without any progress.
Command line gives the log
Code:
$ ./emulator -avd Androidx86
emulator: WARNING: Host CPU is missing the following feature(s) required for x86 emulation: SSSE3
Hardware-accelerated emulation may not work properly!
emulator: ERROR: _factory_client_recv: Unknown camera factory query name in 'listZ'
emulator: ERROR: _factory_client_recv: Unknown camera factory query name in ''
Killed
The camera is disabled, though. The emulator fails to work no matter if there's snapshotting enabled or not, the same for the "Host GPU" option.
Why does it refuse to work? I'm using Linux Mint 17 with MATE.
check if you setup the right path to the SDK
mlabouardy said:
check if you setup the right path to the SDK
Click to expand...
Click to collapse
I didn't set the path at all. I simply `cd`-ed to the sdk directory and ran the emulator
marmistrz said:
I didn't set the path at all. I simply `cd`-ed to the sdk directory and ran the emulator
Click to expand...
Click to collapse
Search for tutorial "how to set environment variable for SDK path", depend in your machine. Good luck.
Sent from here to there