[GUIDE] Lazyman's installation guide to ADB on Ubuntu 10.10 - Now with Ubuntu 11.10 ! - Android Software Development

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

Related

Can someone help me with booting debian ?

I am following this guide here, http://ubuntuforums.org/showthread.php?t=1413313 but when i type the command
"sh android-sdk-linux_86/tools/ddms"
it says it can't open the file. Any help would be great. Thanks
btw i am already unlocked and rooted so i just need to do steps 2 and 5
does the file exist?
ddms is part of the android sdk. i'm assuming you have installed the linux version of the sdk and know where the tools directory for the installation is?
i don't think you are even required to run this step anyway:
Code:
Now, for example, if you plug in the phone and run
$ sh android-sdk-linux_86/tools/ddms
[b]you will see the phone listed. (Note: this is not a step in the howto) [/b]
-verify the file exists at the location specified
-make sure it is executable to the current user (chmod +x)
or post the exact error message here
Yep the file is there and in the right place but when i type it it tells me "Can't open android-sdk-linux_86/tools/ddms"
Anyone...all i need is to get ubuntu to recognize my phone when i plug it in...
Hmm, seems a little odd. If you type the same command but replace the "sh" with "ls -l" what comes back? Plus, what user are you logged in as?
Sent from my Nexus One using the XDA mobile application powered by Tapatalk
I got it working yesterday, not sure what i did but ubuntu recognizes my phone now.

[Guide] ADB with Galaxy S in Ubuntu *Updated 9-10-10*

I still see a lot of people having trouble with ADB in ubuntu, so here is quick guide for anyone still having trouble.
The guide is located HERE and also can be viewed on post #12
*Updated 9-10-10* Thanks to xipher_zero for his very quick and easy guide (Much better than my original).
Hope this helps some people having issues.
If I install unbuntu it overrides my win7 correct?
Sent from my SGH-T959 using XDA App
Oh my!! I've been searched for this guide for a long time Thanks you so much MR.the3dman
Wykedx
Oh boy... where to get started. You could install Ubuntu without overwriting your W7 installation. Then you would "dual boot" your computer. As it boots up, you choose which OS to load. Or of course you could install Ubuntu on a computer by itself.
You don't need to install Ubuntu just to use ADB. ADB runs on both Win and Linux. What is it that you are trying to do? If you just want to learn linux, then make yourself a live CD and you won't have to worry about overwriting any operating systems.
But this is not a linux forum. If this is something that you are interested in, then google is your friend.
if you are interested in trying ubuntu, you might check this out: http://wubi-installer.org/. or just run a LiveCD, as already suggested.
Do you happen to have a HTC??
My output of lsusb:
Code:
Bus 002 Device 002: ID 04e8:681d Samsung Electronics Co., Ltd
Shouldn't /etc/udev/rules.d/51-android.rules contain 04e8 instead of 0bb4?
And no, even that didn't help me. I'm on Ubuntu Lucid Lynx 64 bit.
fantasyzer said:
Do you happen to have a HTC??
My output of lsusb:
Code:
Bus 002 Device 002: ID 04e8:681d Samsung Electronics Co., Ltd
Shouldn't /etc/udev/rules.d/51-android.rules contain 04e8 instead of 0bb4?
And no, even that didn't help me. I'm on Ubuntu Lucid Lynx 64 bit.
Click to expand...
Click to collapse
Thanks for noticing that! I have updated the rules with the correct ones. I have an htc also and uploaded the wrong rules. I am also on Ubuntu Lucid 64 bit and this is what worked for me. I also have done this on my netbook which runs 9.10 so I am really not sure what the issue is then. Did you use ADB from the sdk or from the app inventor adb in the guide?
If I read correctly when browsing for this topic, your instruction is to drop in these rule files, and then run adb using sudo
When using sudo to run adb, it'll always work, regardless of what's in your rules file
If you have your rules file correct, you don't need to do sudo adb
Just adb will work fine
animefans said:
If I read correctly when browsing for this topic, your instruction is to drop in these rule files, and then run adb using sudo
When using sudo to run adb, it'll always work, regardless of what's in your rules file
If you have your rules file correct, you don't need to do sudo adb
Just adb will work fine
Click to expand...
Click to collapse
I did try this, I removed my rules and reloaded my udev folder then tried adb with sudo and it was a no go (I get nothing listed under the list of devices). Also the only way I could get adb to recognize anything without sudo was by adding a line in the rules making my user as the owner, but even still without sudo under devices I get ???????????? no permissions. With sudo and the rules everything works fine which is why I wrote the guide that way.
If you don't want to run ADB as root you can follow the steps in this post
http://forum.xda-developers.com/showpost.php?p=7282335&postcount=4 - FOR SAMSUNG ONLY DEVICES!!!
after you installed SDK.
I also have adb in my path so I do not have to be in the tools directory, and can execute it from anywhere
In my .bashrc file (if you are using bash shell)
Code:
export PATH=$PATH:/path/to/android-sdk/tools
Thanks the3dman for the guide. Unfortunately I am still having problems as when I run the sudo ./adb devices nothing is listed. I followed the directions step by step and also confirmed my Vibrant is in debug mode (also confirms on the phone it is in debug mode when connected via usb. I even rebooted everything again, double checked everything and still no devices listed. I am running Ubuntu 10.04 Any ideas? Thanks so much!
-mG
Four Step ADB installation in Ubuntu
Here is a simple guide without using custom debs:
1. Download the SDK:
wget dl.google.com/android/android-sdk_r07-linux_x86.tgz
2. Extract the archive to the current directory and move into the extracted directory.
tar xvfz android-sdk_r07-linux_x86.tgz && cd android-sdk-linux_x86
3. Move the "tools" folder to your local system folder:
sudo mv tools /usr/local/share/android-tools
4. Create a symbolic link to the adb executable:
sudo ln -s /usr/local/share/android-tools/adb /usr/local/bin/
Done!
from a terminal type:
sudo adb devices (This will start the server and search for connected devices)
Are you running Ubuntu 64bit? If so you need to make sure that you have the 32bit compatibility libraries installed. From the command line run the following:
sudo apt-get install ia32-libs
This will allow you to run 32bit apps in 32bit mode. Not sure if this is whats causing your issue, but it might be worth a shot.
xipher_zero: Thank you, I followed your steps and it is working now.
Oh, I am running 32bit Ubuntu so that was not the problem.
lqaddict said:
If you don't want to run ADB as root you can follow the steps in this post
http://forum.xda-developers.com/showpost.php?p=7282335&postcount=4 - FOR SAMSUNG ONLY DEVICES!!!
after you installed SDK.
I also have adb in my path so I do not have to be in the tools directory, and can execute it from anywhere
In my .bashrc file (if you are using bash shell)
Code:
export PATH=$PATH:/path/to/android-sdk/tools
Click to expand...
Click to collapse
This is not working for some people that is what is being figured out. I am in the process of updating my guide and the new and better one should be up shortly.
xipher_zero said:
Here is a simple guide without using custom debs:
1. Download the SDK:
wget dl.google.com/android/android-sdk_r07-linux_x86.tgz
2. Extract the archive to the current directory and move into the extracted directory.
tar xvfz android-sdk_r07-linux_x86.tgz && cd android-sdk-linux_x86
3. Move the "tools" folder to your local system folder:
sudo mv tools /usr/local/share/android-tools
4. Create a symbolic link to the adb executable:
sudo ln -s /usr/local/share/android-tools/adb /usr/local/bin/
Done!
from a terminal type:
sudo adb devices (This will start the server and search for connected devices)
Click to expand...
Click to collapse
This version worked well also! Thanks its much shorter and easier than my method.
MrGibbage said:
Wykedx
Oh boy... where to get started. You could install Ubuntu without overwriting your W7 installation. Then you would "dual boot" your computer. As it boots up, you choose which OS to load. Or of course you could install Ubuntu on a computer by itself.
You don't need to install Ubuntu just to use ADB. ADB runs on both Win and Linux. What is it that you are trying to do? If you just want to learn linux, then make yourself a live CD and you won't have to worry about overwriting any operating systems.
But this is not a linux forum. If this is something that you are interested in, then google is your friend.
Click to expand...
Click to collapse
thanks for the response, and sorrry i didn't see this before lol,
what i am trying to do is be able to use adb, at the moment I can't seem to use it because my default.prop is not correct so i heard i have to use linux to be able to edit my default prop...when i try to adb push or remount i get permission denied and yet I have superuser permission and everything.
do you have to root your phone while being an administrator on the computer?
Wykedx said:
thanks for the response, and sorrry i didn't see this before lol,
what i am trying to do is be able to use adb, at the moment I can't seem to use it because my default.prop is not correct so i heard i have to use linux to be able to edit my default prop...when i try to adb push or remount i get permission denied and yet I have superuser permission and everything.
do you have to root your phone while being an administrator on the computer?
Click to expand...
Click to collapse
Try putting your phone in clockwork recovery then issuing the adb commands, and yes your phone has to be rooted.
Thanks for the excellent how to, however...
I've still got a problem:
after "sudo adb devices" (step 5) I always get this message:
List of devices attached
??????????? no permissions;
while "lsusb" gives me that:
Bus 002 Device 007: ID 04e8:681c Samsung Electronics Co., Ltd Galaxy Portal/Spica Android Phone
so how can I solve this?
(Kubuntu 10.10 is my current os)
RiverTam said:
I've still got a problem:
after "sudo adb devices" (step 5) I always get this message:
List of devices attached
??????????? no permissions;
while "lsusb" gives me that:
Bus 002 Device 007: ID 04e8:681c Samsung Electronics Co., Ltd Galaxy Portal/Spica Android Phone
so how can I solve this?
(Kubuntu 10.10 is my current os)
Click to expand...
Click to collapse
you'll need to edit a usb rule to "look" for the samsung phone. i forgot what file to edit and what to put in there, once i find the file, i'll post it from my laptop.
EDIT: lol, i found it.
http://forum.xda-developers.com/showpost.php?p=7343021&postcount=1

[Q] Setting up ADB on nook with Ubuntu

Hey everyone, I'm a big newb when it comes to Ubuntu. I got into it because I wanted an OS that was as open as CM7, and so far it's great! I was trying to install ADB on my computer and I was using the link http://forum.xda-developers.com/showthread.php?t=921169. I got JDK installed, and sdk, its about step 4 that I get lost. In terminal when I put in $ ./adb devices it doesn't list any devices. I might be wrong, but I think it needs to recognize my nook as a adb device before I can do anything else. Am I missing a step? Any help would be great!
actorman46 said:
Hey everyone, I'm a big newb when it comes to Ubuntu. I got into it because I wanted an OS that was as open as CM7, and so far it's great! I was trying to install ADB on my computer and I was using the link http://forum.xda-developers.com/showthread.php?t=921169. I got JDK installed, and sdk, its about step 4 that I get lost. In terminal when I put in $ ./adb devices it doesn't list any devices. I might be wrong, but I think it needs to recognize my nook as a adb device before I can do anything else. Am I missing a step? Any help would be great!
Click to expand...
Click to collapse
Follow the steps from Nookdevs.com here http://nookdevs.com/NookColor_USB_ADB
In your case, since you have everything setup. Make note specifically to run this command from the link posted above:
Ensure that your rooted NOOKcolor is plugged in.
Run the following command in terminal:
Code:
mkdir -p ~/.android && echo 0x2080 > ~/.android/adb_usb.ini && adb kill-server && adb devices
If you get output that looks like the following you have succeeded:
Code:
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
[YOUR NOOKCOLOR SN] device
-Racks
racks11479 said:
Follow the steps from Nookdevs.com here http://nookdevs.com/NookColor_USB_ADB
Click to expand...
Click to collapse
okay on step 4 it says to edit your .bash_profile, by putting the command in terminal
nano ~/.bashrc
then append these lines at the end and save the file.
export PATH=${PATH}:<your_sdk_dir>/platform-tools
I'm not sure what it's asking me to do. After putting in nano ~/.bashrc do I just scroll to the bottom and add that line? And if that's it, how do I save it?
Told you I new! But thanks for showing me the right link.
Oh, that command you told me to pay attention to doesn't work for me but when I type in
$ cd ~/android-sdk-linux_x86/platform-tools
[email protected]:~/android-sdk-linux_x86/platform-tools$ ./adb devices
it now lists my device with permission, the same way that command was supposed to.
I just need help setting my path in bashrc!
actorman46 said:
okay on step 4 it says to edit your .bash_profile, by putting the command in terminal
nano ~/.bashrc
then append these lines at the end and save the file.
export PATH=${PATH}:<your_sdk_dir>/platform-tools
I'm not sure what it's asking me to do. After putting in nano ~/.bashrc do I just scroll to the bottom and add that line? And if that's it, how do I save it?
Told you I new! But thanks for showing me the right link.
Oh, that command you told me to pay attention to doesn't work for me but when I type in
$ cd ~/android-sdk-linux_x86/platform-tools
[email protected]:~/android-sdk-linux_x86/platform-tools$ ./adb devices
it now lists my device with permission, the same way that command was supposed to.
I just need help setting my path in bashrc!
Click to expand...
Click to collapse
1. Yes, just scroll to the bottom and add 'export PATH=${PATH}:~/android-sdk-linux_x86/platform-tools/platform-tools' to the file.
2. Once you add the path, to save and exit. Press 'Control' and 'X'. It will give you an option to save changes. Type in "Y" and then press "Enter"
3. After you save the file you have to run:
Code:
$ source ~/.bashrc
That should now set the correct path to your SDK tools. You might have to restart terminal for it to take effect.
-Racks

Enable ADB under Ubuntu/Linux

Alright so it turns out making ADB work for the Kindle Fire under Ubuntu is just a touch more difficult than in Windows.
Thanks to Gbhil (@ AndroidCentral) for the write up on windows it was a great jumping off point to try to figure this out.
Also thanks to the guys on chat.andirc.net (Skourg3 in particular for helping me figure this out the first time).
Let's get down to the nitty gritty yeah?
First you will still need the entry provided by Gbhil, go ahead and set it using the echo command in a terminal.
Code:
echo 0x1949 >> ~/.android/adb_usb.ini
You can confirm that it took by using the cat command
Code:
cat ~/.android/adb_usb.ini
You should get a return of '0x1949' (plus any other rules that you may have added in the past).
Now really that should work but everytime you run adb you will have to either run it as root or using the sudo command. To allow standard user access we have to setup a udev rule.
Code:
sudo gedit /etc/udev/rules.d/51-android.rules
That should open up gedit for you to edit the file 51-android.rules. If this is the first time you have added any udev rules the file will be empty as gedit will have just created it for you. go ahead and add in the following.
Code:
# adb/fastboot protocols for blaze / otter (Amazon Kindle Fire)
SUBSYSTEM=="usb", ATTR{idVendor}=="1949", ATTRS{idProduct}=="0006", MODE="0660", OWNER="root", GROUP="androiddev", SYMLINK+="android%n"
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTRS{idProduct}=="0100", MODE="0660", OWNER="root", GROUP="androiddev", SYMLINK+="android%n"
Save that than add in the user group androiddev.
Code:
sudo addgroup --system androiddev
And add your username to that group.
Code:
sudo adduser <username> androiddev
Replace <username> with your primary username without the <> around it.
After that you will need to logout and log back in for these values to apply. You will probably need to restart the adb server as well.
Change directory to your platform-tools directory and run the following.
Code:
./adb kill-server
./adb start-server
Assuming all went well that should work properly and you can than connect through adb, if for some reason this doesn't work try restarting your computer (though I do not believe this is necessary).
If you don't want to type the "./" before all of your adb and fastboot commands, you need to add their parent directory into your PATH environment variable. For example, (assuming you are using the bash shell) if you have adb and fastboot in your /home/<username>/bin directory, you want to define...
Code:
PATH=~/bin:${PATH}
or
Code:
PATH=${PATH}:~/bin
It just depends on whether you want your own binaries to be used before the system equivalents or after. Most people would probably use the first one to have your own binaries be the preferred ones, but either one should work for adb and fastboot since there are no system binaries by the same names.
If you don't want to have to do this for every shell you open, you can place the definition at the end of your ~/.bashrc file. If you need it for you your login shell, you also need to put it into your ~/.bash_profile file. If you don't want to maintain two parallel files with much of the same information, take a look at this post.
Sblood86 said:
First you will still need the entry provided by Gbhil, go ahead and set it using the echo command in a terminal.
Code:
echo ~/.android/adb_usb.ini 0x1949
Click to expand...
Click to collapse
Thanks for the guide on setting this up for linux. I just wanted to point out a small error in the instructions. The echo command above is incorrect and will not do what you intended. It should be corrected to
Code:
echo 0x1949 >> ~/.android/adb_usb.ini
That will create or append to the file as necessary.
no adb_usb.ini file
kinfauns said:
Thanks for the guide on setting this up for linux. I just wanted to point out a small error in the instructions. The echo command above is incorrect and will not do what you intended. It should be corrected to
Code:
echo 0x1949 >> ~/.android/adb_usb.ini
That will create or append to the file as necessary.
Click to expand...
Click to collapse
Somehow the guide I followed for setting up adb/fastboot on Ubuntu did not create the udb_usb.ini file.
I had to go into android-sdk-linux folder on my home directory and copy the one provided with KFU. Only then I could use the echo command.
freefaling said:
Somehow the guide I followed for setting up adb/fastboot on Ubuntu did not create the udb_usb.ini file.
I had to go into android-sdk-linux folder on my home directory and copy the one provided with KFU. Only then I could use the echo command.
Click to expand...
Click to collapse
This...
Code:
echo 0x1949 >> ~/.android/adb_usb.ini
will definitely create the file if it doesn't exist, but only if the ~/.android/ directory exists (with the correct permissions). It won't make those directories if they don't exist. I'm guessing the .android directory wasn't there when you ran the command.
kinfauns said:
This...
Code:
echo 0x1949 >> ~/.android/adb_usb.ini
will definitely create the file if it doesn't exist, but only if the ~/.android/ directory exists (with the correct permissions). It won't make those directories if they don't exist. I'm guessing the .android directory wasn't there when you ran the command.
Click to expand...
Click to collapse
I read a lot of guides and did what they all said and ended up with a working adb command but my kindle was still not detected. At the end it was this thing that solved the issue.
I dont think I had that "android" folder (i did not unhide the home folder to check but since i setup the android sdk inside "android-sdk-linux" folder, i doubt "android" folder was there).
It's because of these tiny details I was sugesting that you, sir, create a how-to for setting up adb on ubuntu (only if you feel comfortable doing it, that is).
Thanks.
Sent from my Amazon Kindle Fire using XDA
My OS is Mint 12, so same as Ubuntu (except for Unity and a bit of non open-source software) and setting up ADB was also a little bit more difficult than I anticipated. I don't know how other distros are.
The guide that got me most of the way there was this one http://forum.xda-developers.com/showpost.php?p=19446284&postcount=62, and then I hit the same problems as the OP. I had to do a bit of mostly useless searching and reading before I found the entry provided by Gbhil and .adb/ devices made the legend "0123456789ABCDEF device" pop up.
I updated every platform in the sdk while I was at it, oops, must get that 4 or 5 gigs of space in my Home folder back sometime.
A kindle fire specific guide for Ubuntu would be awesome, I hereby second freefaling's nomination of you, Sblood86, as author of said guide, if you're into it, because you seem pretty good at it.
Someone asked me about my Ubuntu setup last night and I thought that I should contribute back to this thread with the same information.
You can add another udev rule to cover fastboot commands on FFF so they don't have to be run as root...
Code:
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTRS{idProduct}=="0100", MODE="0660", OWNER="root", GROUP="androiddev", SYMLINK+="android%n"
If you don't want to type the "./" before all of your adb and fastboot commands, you need to add their parent directory into your PATH environment variable. For example, (assuming you are using the bash shell) if you have adb and fastboot in your /home/<username>/bin directory, you want to define...
Code:
PATH=~/bin:${PATH}
or
Code:
PATH=${PATH}:~/bin
It just depends on whether you want your own binaries to be used before the system equivalents or after. Most people would probably use the first one to have your own binaries be the preferred ones, but either one should work for adb and fastboot since there are no system binaries by the same names.
If you don't want to have to do this for every shell you open, you can place the definition at the end of your ~/.bashrc file. If you need it for you your login shell, you also need to put it into your ~/.bash_profile file. If you don't want to maintain two parallel files with much of the same information, take a look at this link.
http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html
I follow the recommendation at the end.
Hope that helps someone.
kinfauns said:
Someone asked me about my Ubuntu setup last night and I thought that I should contribute back to this thread with the same information.
You can add another udev rule to cover fastboot commands on FFF so they don't have to be run as root...
Code:
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTRS{idProduct}=="0100", MODE="0660", OWNER="root", GROUP="androiddev", SYMLINK+="android%n"
If you don't want to type the "./" before all of your adb and fastboot commands, you need to add their parent directory into your PATH environment variable. For example, (assuming you are using the bash shell) if you have adb and fastboot in your /home/<username>/bin directory, you want to define...
Code:
PATH=~/bin:${PATH}
or
Code:
PATH=${PATH}:~/bin
It just depends on whether you want your own binaries to be used before the system equivalents or after. Most people would probably use the first one to have your own binaries be the preferred ones, but either one should work for adb and fastboot since there are no system binaries by the same names.
If you don't want to have to do this for every shell you open, you can place the definition at the end of your ~/.bashrc file. If you need it for you your login shell, you also need to put it into your ~/.bash_profile file. If you don't want to maintain two parallel files with much of the same information, take a look at this link.
http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html
I follow the recommendation at the end.
Hope that helps someone.
Click to expand...
Click to collapse
I spent something like 3 weeks trying to find the rule that worked with fastboot lol... thanks!
Your link is dead btw.
Sblood86 said:
I spent something like 3 weeks trying to find the rule that worked with fastboot lol... thanks!
Your link is dead btw.
Click to expand...
Click to collapse
Well it worked a couple of days ago when I made my post. It's not my fault it took you so long to read it.
All it really said was to add...
Code:
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
to the .bash_profile file so that it will source the .bashrc file regardless of the way you got to the shell. Then you only have to maintain the .bashrc file and only put login shell specific info into .bash_profile
I picked up another tidbit yesterday while engrossed in the whole CWMR bricking thread. Ubuntu has a plugdev group that's used for (mounting?) hot-pluggable firewire/USB devices... sounds a lot like the KF. The first user created on the system is automatically put into that group. Since most Ubuntu desktop are going to be single user machines anyway, that's going to be THE user for the majority of these cases. So, creating a androiddev group just for the KF is probably not necessary most of the time. You can just skip the addgroup and adduser to group commands if you just want to adjust your rules to use the plugdev group instead.
First I'm going to apologize for not being good with this stuff. Now I'm going to ask questions that will probably frustrate some readers. If you aren't irritated by them please help me out.
Sblood86 said:
First you will still need the entry provided by Gbhil, go ahead and set it using the echo command in a terminal.
Code:
echo 0x1949 >> ~/.android/adb_usb.ini
Click to expand...
Click to collapse
What is the entry provided by gbhil? Where do I get it? I thought I had adb in here but apparently I don't because when I run the echo command I'm getting "no such file or directory."
Can anyone dumb this down for me just a bit. Add the steps I'm obviously going to need as a newb?
Thanks
hortstu said:
First I'm going to apologize for not being good with this stuff. Now I'm going to ask questions that will probably frustrate some readers. If you aren't irritated by them please help me out.
What is the entry provided by gbhil? Where do I get it? I thought I had adb in here but apparently I don't because when I run the echo command I'm getting "no such file or directory."
Can anyone dumb this down for me just a bit. Add the steps I'm obviously going to need as a newb?
Thanks
Click to expand...
Click to collapse
The most likely cause of that error is you don't have a .android directory in your home directory. You'll need to run the following command before that echo command...
Code:
mkdir ~/.android
That will create a ".android" directory in your home directory (~ is shorthand for your home directory). Then you can create that adb_usb.ini file with the "0x1949" line in it.
Thanks for the help. Stuck again.
After that you will need to logout and log back in for these values to apply. You will probably need to restart the adb server as well.
Change directory to your platform-tools directory and run the following.
Code:
./adb kill-server
./adb start-server
Click to expand...
Click to collapse
logged out and in. what is the name of the "platform-tools" directory?
OK found them and realize they're 2 directories. How to I write to 2 directories at once? I'm going to try one at a time. Looking forward to the elaboration on this.
---------- Post added at 06:16 AM ---------- Previous post was at 06:03 AM ----------
ok followed all the steps except this one.
Code:
PATH=~/bin:${PATH}
Code:
PATH=${PATH}:~/bin
Seems like that's for people that not only know what they're doing in the terminal but spend a lot of time there.
Is there a way to confirm that I've enabled adb before I proceed?
Will I need to follow the latter half of these step everytime I want to enable adb or just the start server command?
Again sorry for newb questions and many thanks for the help.
Tried to push pokey's 9000 fb and it didnt work. I don't think I have adb enabled or something.
hortstu said:
What is the entry provided by gbhil? Where do I get it? I thought I had adb in here but apparently I don't because when I run the echo command I'm getting "no such file or directory."
Can anyone dumb this down for me just a bit. Add the steps I'm obviously going to need as a newb?
Thanks
Click to expand...
Click to collapse
I'm guessing Gbhil is a user who originally posted this information, but not sure...
If you go into a Terminal program, like UXTerm or whatever, you simply type that echo command as shown. It will append the 0x1949 to that .ini file in the hidden folder (.android), so adb can see your device. Of course, this is assuming you have a .android folder. It should be in your Home directory.
When I was playing around with custom ROMs and recovery, my KF stopped registering at 0x1949 at one point. Just in case that is happening to you, plug in your KF to your Linux PC. Go into a terminal program and type lsusb. You will get a list of devices and your KF will be there somewhere. If it is not 0x1949, you will see the correct number. If you get a different number (0x whatever), run the echo command for that number, too. No problem having more than one id num in your adb_usb.ini file.
hortstu said:
Thanks for the help. Stuck again.
Click to expand...
Click to collapse
Don't take this the wrong way, but you might want to take a step back from this and learn a little bit about getting around in Linux before you tackle this project with the Kindle Fire. If this is your primary OS, at least knowing how to navigate around the directory structures, how the PATH variable affects how you run commands, and many other things will be invaluable in your day to day use of the operating system. Linux has come a long way to being user-friendly, but it's still reliant on the users knowing their way around the command line interface... much more than the other two big OS's.
There are countless primers and introductions on the basics of getting around the unix/linux command line. I suggest you search for some and familiarize yourself with them.
In the meantime... the "platform-tools" directory the OP refers to in his post is part of Google's Android SDK distribution...
http://developer.android.com/sdk/index.html
kinfauns said:
Don't take this the wrong way, but you might want to take a step back from this and learn a little bit about getting around in Linux before you tackle this project with the Kindle Fire. If this is your primary OS, at least knowing how to navigate around the directory structures, how the PATH variable affects how you run commands, and many other things will be invaluable in your day to day use of the operating system. Linux has come a long way to being user-friendly, but it's still reliant on the users knowing their way around the command line interface... much more than the other two big OS's.
There are countless primers and introductions on the basics of getting around the unix/linux command line. I suggest you search for some and familiarize yourself with them.
In the meantime... the "platform-tools" directory the OP refers to in his post is part of Google's Android SDK distribution...
http://developer.android.com/sdk/index.html
Click to expand...
Click to collapse
This would be a good start:
vic.gedris.org/Manual-ShellIntro/1.2/ShellIntro.pdf
Sent from my Amazon Kindle Fire using XDA
OK thanks for the help. Realize I should probably know more about this stuff.
Really want to root for the sake of swype and google store. Tough to commit hours to this stuff since I have a family and a job that is non tech.
I have rooted my evo but that was a while back. Seems a little more complicated on the kindle. Thanks again. Not taken the wrong way.
Sblood86 said:
Alright so it turns out making ADB work for the Kindle Fire under Ubuntu is just a touch more difficult than in Windows.
Thanks to Gbhil (@ AndroidCentral) for the write up on windows it was a great jumping off point to try to figure this out.
Also thanks to the guys on chat.andirc.net (Skourg3 in particular for helping me figure this out the first time).
Let's get down to the nitty gritty yeah?
First you will still need the entry provided by Gbhil, go ahead and set it using the echo command in a terminal.
Code:
echo 0x1949 >> ~/.android/adb_usb.ini
You can confirm that it took by using the cat command
Code:
cat ~/.android/adb_usb.ini
You should get a return of '0x1949' (plus any other rules that you may have added in the past).
Now really that should work but everytime you run adb you will have to either run it as root or using the sudo command. To allow standard user access we have to setup a udev rule.
Code:
sudo gedit /etc/udev/rules.d/51-android.rules
That should open up gedit for you to edit the file 51-android.rules. If this is the first time you have added any udev rules the file will be empty as gedit will have just created it for you. go ahead and add in the following.
Code:
# adb/fastboot protocols for blaze / otter (Amazon Kindle Fire)
SUBSYSTEM=="usb", ATTR{idVendor}=="1949", ATTRS{idProduct}=="0006", MODE="0660", OWNER="root", GROUP="androiddev", SYMLINK+="android%n"
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTRS{idProduct}=="0100", MODE="0660", OWNER="root", GROUP="androiddev", SYMLINK+="android%n"
Save that than add in the user group androiddev.
Code:
sudo addgroup --system androiddev
And add your username to that group.
Code:
sudo adduser <username> androiddev
Replace <username> with your primary username without the <> around it.
After that you will need to logout and log back in for these values to apply. You will probably need to restart the adb server as well.
Change directory to your platform-tools directory and run the following.
Code:
./adb kill-server
./adb start-server
Thanks for the post and the guide.
I have a little problem. i.e How do i change the directory to platform-tools directory before i ru the code u gave me. Please dont be mad at me becouse the truth is i am a new user.
Click to expand...
Click to collapse
majexy033 said:
Thanks for the post and the guide.
I have a little problem. i.e How do i change the directory to platform-tools directory before i ru the code u gave me. Please dont be mad at me becouse the truth is i am a new user.
Click to expand...
Click to collapse
As in; from your terminal use the 'cd' command to change directory to where-ever platform-tools is actually installed on your PC.

[HOW-TO] Lenovo IdeaTab A1000 Rooting

HOW TO ROOT YOUR LENOVO IDEATAB A1000​
<DISCLAIMER>​
By attempting these steps, your warranty will be void. Even worse than that, it might cause crashes, freezes, random explosions, 2nd degree burns, or even turn your beloved tab into $100+ paperweight. What works on mine might not work on yours, so don't attempt if you don't know what you're doing. Do at your own risk. Corrections are welcome. I must admit that I'm not an expert, so any info I posted might be wrong, and I can't offer you much help. I'm not responsible for anything arising from the use of this how-to. I can only wish you good luck.
<WHY ROOT?>​
- Without root or OTA upgrades (at time of writing, Indonesian customers still can't get it), you'll be stuck with ~500MB internal memory. That's annoying.
- You're stuck with the default IO scheduler (cfq) and governor (hybrid, haven't heard that one..)
- You have an incredibly large amount of bloatware you can't get rid of, in that already cramped up internal storage
- Did I mention freedom?
<REQUIREMENTS>​
This method is originally used to root Acer Iconia B1-A71. Somehow I noticed that the two actually has the same chipset, MTK8317 (if it really was relevant ). So I tried the method, and through sheer n00b's luck, it worked like a charm!
Lenovo IdeaPad A1000-G --> 4GB storage, 2G/EDGE. This method haven't been tested on A1000-T/F, different storage cap (16GB, etc.) or other variants, but it should work with slight modification. Screenshots of my specs are attached below. Remember, proceed at your own risk!
A Linux System. Never tried on Windows or Mac. I personally used Linux Mint 15. The source post uses Ubuntu.
working ADB (android-tools-adb). You can get this from synaptics, apt-get, etc. If your system can detect adb devices, you should be fine.
Superuser Binary
Busybox Binary (You can get these two from the links on original post. XDA says noobs can't post links :'( )
ORIGINAL THREAD
<CREDITS>​
XDA Senior Member entonjackson, for writing such a noob-friendly how-to for rooting Acer Iconia B1-A71 and for allowing me to use it for this how-to.
XDA Member alba81, for discovering the method as acknowledged on the original post by entonjackson
All awesome gurus on XDA which I can't mention one by one.
<THE STEPS>​
1. Extract the android sdk to your home folder, e.g. a user named Bob will use like /home/bob
2. Open a terminal
3. Now plug your A1000 into your machine and turn on Debugging Mode (Go into Settings -> Developer Tools, turn on Developer tools, then turn on USB Debugging Mode)
4. Now back at the keyboard of your Linux machine in your terminal type:
Code:
sudo adb devices
The output should be something like:
Code:
123456789ABCDEF device
If it's not, google for it. Somehow your Linux hasn't detected the A1000, although the android sdk for Linux brings all needed drivers with it.
If your device was found, congratulations. The adb connection between your linux machine and your tablet is intact.
5. Now extract the downloaded busybox archive to your home folder, in it there should be a busybox binary. So Bob does:
Code:
sudo ./adb push /home/bob/busybox /data/local/tmp
Code:
sudo ./adb shell
Code:
chmod 755 /data/local/tmp/busybox
6. You should copy the busybox binary into a directory where you can access it as a plain non-root user on the tablet. We need this binary. so we can apply unix tools like telnet, dd, cat, etc. But for now we need it to establish a telnet session between our tablet and our linux machine.
(This point is written on original post. Seems important, but as soon as I finished step 5, I can use those tools)
7. Dial *#*#3646633#*#* to enter Engineer Mode
8. Go to Connectivity -> CDS Information -> Network Utility
9. type the following command:
Code:
/data/local/tmp/busybox telnetd -l /system/bin/sh -p 1234
Advice from original poster: copy and paste it from the browser on your tablet, because dependent on which keyboard app installed, this can be freakin tricky. In the next step you will learn, why it's so important why this command should be correct.
10. Tap on Run. You won't get any feedback, so you will never know if the entered command runs properly or not. That's why you should make sure the command is ok.
Now we have started our telnet server on the tablet.
11. Back in the terminal type:
Code:
/data/local/tmp/busybox telnet 127.0.0.1 1234
If you now get an error like couldn't find busybox or something, then either adb push failed or you forgot to chmod, in step 5
12. Now enter:
Code:
cat /proc/dumchar_info
You should get a bunch of lines, try to find a line containing the partition named android
{..... partition list .....}
android 0x0000000028A00000 0x00000000020E8000 2 /dev/block/mmcblk0p3
{..... partition list .....}
13. We will create a dump of our android system. This is the point where different variants *MIGHT* have different parameters. This step is important, as wrong parameter will result in unmountable image.
Stop. Take a deep breath. If you're not familiar with dd, find a good doc of it. There's a plethora of them.
Get yourself a programmer's calculator (Linux Mint 15 has one built in).
Here's what you'll do :
Convert the hex number on the 3rd column into decimal. In my case (0x20E8000) will yield 34504704. Divide by 4096. The result (8424) goes to the skip parameter.
Convert the hex number on the 2nd column. In my case (0x28A00000) will yield 681574400. Divide by 4096. The result (166400) goes to the count parameter.
So the full dd command will look like :
Code:
dd if=/dev/block/mmcblk0 bs=4096 skip=8424 count=166400 | gzip > /cache/system.img.gz
Do a full sanity check before hitting enter! It will take about 5 minutes.
14. After it's finished we must make the image readable for adb, so we do:
Code:
chmod 777 /cache
and
Code:
chmod 777 /cache/system.img.gz
15. Leave the telnet, and then adb shell session by:
Code:
exit
Code:
exit
16. Now we pull our image by
Code:
sudo adb pull /cache/system.img.gz
wait 1-2 minutes.
It should be then located inside /home/bob. It did for me. If not, do a search . It should be a .gz, extract it right there (or /home/bob if it isn't there)
17. Now we need to modify our system image by adding the tiny but helpful su binary. Extract the SU binary to /home/bob.
18. We create a folder where we will mount our system image to. To create it do:
Code:
sudo mkdir /media/a1000
19. Now we mount it:
Code:
sudo mount -o loop /home/bob/system.img /media/a1000
if it fails, then you entered wrong parameters on step 13
20. Now we copy our SU binary to our mounted system image:
Code:
sudo cp /home/bob/su /media/a1000/bin
21. the su binary needs to have the proper rights to make it usable, so we 'suid' it with:
Code:
sudo chmod 06755 /media/a1000/bin/su
22. Let's unmount our baby by:
Code:
sudo umount /media/a1000
and because bob doesn't like a messed up system, he does:
Code:
sudo rm -rf /media/a1000
because he hopefully won't need it anymore.
23. We have to gzip it again to bring it back to where it belongs to. this we do by:
Code:
cd /home/bob
Code:
gzip /home/bob/system.img
24. So here we are now, we made it to the final Boss fight! The next steps are dangerous and should be performed with caution. We copy back our modified system image, which can brick your device, if you do a mistake! Enter adb shell again :
Code:
sudo adb shell
25. Remove the old boring image:
Code:
rm /cache/system.img.gz
26. Leave adb shell
Code:
exit
27. copy our cool new system image containing the su binary:
Code:
sudo adb push /home/bob/system.img.gz /cache
28. Enter adb shell again
Code:
sudo adb shell
29. Usually the telnet server on the tablet is still running, at least in my case it's been like that. That's why we can directly connect to the telnet server with:
Code:
/data/local/tmp/busybox telnet 127.0.0.1 1234
If this doesn't work, then obviously your telnet server isn't running anymore. So on your tablet if the telnet command is still entered (see step 9), tap on Run again and repeat step 29.
30. Now this is the most dangerous step in this how to (no it wasn't the mkdir one). You can copy following command to make sure everything is fine and paste it into your telnet session on your linux terminal.
<WARNING! SANITY CHECK! MAKE SURE *ALL* THE DD PARAMETERS MATCH THE FIRST DD (STEP 13) OR YOUR A1000 WILL TURN INTO A VERY EXPENSIVE PAPERWEIGHT!>
Code:
[B]/data/local/tmp/busybox zcat /cache/system.img.gz | dd of=/dev/block/mmcblk0 bs=4096 seek=8424 count=166400[/B]
After 1-2 minutes you're done, if your tablet or pc or yourself didn't catch fire, everything's fine.
31. Leave telnet / adb shell by doing
Code:
exit
Code:
exit
32. Reboot your A1000 via ADB, then exit
Code:
sudo adb reboot
Code:
exit
33. Unplug your tablet from PC
34. Install Superuser (No, not SuperSU, cause it won't work!). I personally use Superuser by ChainsDD, from Play Store
35. Be lucky. Your tablet and thus you are now free!
Don't forget to hit thanks, if this helps ​
hi, after step 13 (i double checked the command), i get this error
Code:
/system/bin/sh: can't create /cache/system.img.gz: Permission denied
/dev/block/mmcblk0: cannot open for read: Permission denied
I have the WiFi 4G version
Im too stuck in step 13.....nothing wrong with the script, can u give me a solution?
Im using A1000G also
@ts
Your guide work perfectl, in windows enviroment but mount step still need linux,
I've question are you using DirectoryBinding? Mine always close when playing Real Racing, its very annoying
You have suggeztion or alternative for DirectoryBinding?
Root with Windows ?
Hi,
I am a new member because i bought this tblet but i can't root. I don't have a linux environment, so there is a solution with W8 Pro 64 ?
Thanks a lot for you help,
ulisez said:
hi, after step 13 (i double checked the command), i get this error
Code:
/system/bin/sh: can't create /cache/system.img.gz: Permission denied
/dev/block/mmcblk0: cannot open for read: Permission denied
I have the WiFi 4G version
Click to expand...
Click to collapse
have you chmod-ed the busybox (or is the chmod successful without error)? Try chmod-ing the /cache before attempting step 13. It seems that you still don't have access to the NAND device (mmcblk0). Have you updated firmware via OTA?
artonelico said:
Im too stuck in step 13.....nothing wrong with the script, can u give me a solution?
Im using A1000G also
Click to expand...
Click to collapse
Do you encounter the same error message like ulisez had? Could you post the screenshot of the partition list (the lines after you execute dumchar_info)?
rmage said:
@ts
Your guide work perfectl, in windows enviroment but mount step still need linux,
I've question are you using DirectoryBinding? Mine always close when playing Real Racing, its very annoying
You have suggeztion or alternative for DirectoryBinding?
Click to expand...
Click to collapse
I personally use Link2SD by Bulent Akpinar to link apps to 2nd partition on my SDcard.
Letsar said:
Hi,
I am a new member because i bought this tblet but i can't root. I don't have a linux environment, so there is a solution with W8 Pro 64 ?
Thanks a lot for you help,
Click to expand...
Click to collapse
The original developer who posted the method (entonjackson) plans to integrate the method in the next release his toolkit, the Acer Iconia Toolkit. I think you should check his thread : http://forum.xda-developers.com/showthread.php?t=2240029
sammymaddog said:
have you chmod-ed the busybox (or is the chmod successful without error)? Try chmod-ing the /cache before attempting step 13. It seems that you still don't have access to the NAND device (mmcblk0). Have you updated firmware via OTA?
Do you encounter the same error message like ulisez had? Could you post the screenshot of the partition list (the lines after you execute dumchar_info)?
I personally use Link2SD by Bulent Akpinar to link apps to 2nd partition on my SDcard.
The original developer who posted the method (entonjackson) plans to integrate the method in the next release his toolkit, the Acer Iconia Toolkit. I think you should check his thread : http://forum.xda-developers.com/showthread.php?t=2240029
Click to expand...
Click to collapse
Link2SD doesn't link app data, do you have any option?
yes i had same message with ulyses, by the way im from indonesia too can i contact you through chat client?
oh yeah im using windows 7 and using cmd as a terminal in linux
thx before bro
sammymaddog said:
The original developer who posted the method (entonjackson) plans to integrate the method in the next release his toolkit, the Acer Iconia Toolkit. I think you should check his thread : http://forum.xda-developers.com/showthread.php?t=2240029
Click to expand...
Click to collapse
Ok, i see his toolkit. It's very good. I'll wait
rmage said:
Link2SD doesn't link app data, do you have any option?
Click to expand...
Click to collapse
I'm not sure whether the stock kernel of our devices supports init.d, thus supports CronMod/Data2SD. Lenovo locked our bootloader, and currently there's no way around it. So I personally think, Link2SD method are the best option for now.
Let's give it several months until our dev gurus bring their miracles upon this device
The attached image shows mt6577 Hardware, can u provide the Soc details please
Hi, Can any one upload Lenovo ideatab A1000 system.img
in step 20, it appears you are writing to a /bin directory on the android system. However such a directory is not visible either through shell or the system telnet account.
Do I need to understand something else about android to make sense of this.
regards
vidya
one month gone past but the op seems to be in caves or has bricked the device
STOCK ROM
CAN ANY BODY PROVIDE ME A STOCK ROM OF THIS DEVISE
I HV ROOTED SUCCESSFULLY BY A VERY EASY METHOD
BUT SCREWED UP WHILE UPDATING IT SO PLZ PLZ HELP ME OUT
THE DEVICE BOOTS BUT ALL THE APP CRASHES :crying::crying:
VR.gtmini said:
The attached image shows mt6577 Hardware, can u provide the Soc details please
Click to expand...
Click to collapse
VR.gtmini said:
one month gone past but the op seems to be in caves or has bricked the device
Click to expand...
Click to collapse
sorry to make you wait. I'm a last grader university student, and final project stuffs have got me pinned down. Hope you understand
Actually the SoC is MT8317. For some god-knows reason Mediatek have made this SoC with signatures similar to MT6577. But somehow CPU tweaker correctly detects the SoC (MT8317). Maybe it's the CPU-Z bug?
unknown_world said:
Hi, Can any one upload Lenovo ideatab A1000 system.img
Click to expand...
Click to collapse
zod0070 said:
CAN ANY BODY PROVIDE ME A STOCK ROM OF THIS DEVISE
I HV ROOTED SUCCESSFULLY BY A VERY EASY METHOD
BUT SCREWED UP WHILE UPDATING IT SO PLZ PLZ HELP ME OUT
THE DEVICE BOOTS BUT ALL THE APP CRASHES :crying::crying:
Click to expand...
Click to collapse
I'm uploading the modified .img. Let's pray my old HSPA modem won't catch fire by the morning.
vidyadhara said:
in step 20, it appears you are writing to a /bin directory on the android system. However such a directory is not visible either through shell or the system telnet account.
Do I need to understand something else about android to make sense of this.
regards
vidya
Click to expand...
Click to collapse
I think you got it wrong. The write process does not take place on the device. It's on the loop-mounted .img in /mnt/a1000 on your computer (step 18-19). Cheers!
Here's the ALREADY BUSYBOX-ED .img for Ideapad A1000-G 4GB EDGE version. Hope it helps :
www dropbox com/s/rmpnz7c285t5sqz/system.7z
sammymaddog said:
Here's the ALREADY BUSYBOX-ED .img for Ideapad A1000-G 4GB EDGE version. Hope it helps :
www.dropbox.com/s/rmpnz7c285t5sqz/system.7z
Click to expand...
Click to collapse
Thanks for coming back, could u post the MD5 of the system.7z & system.zip.
Also could u provide simple way/steps to directly flash this .img without extracting existing stock system image
My tab A1000-G
do you have stockROM for lenovo A1000G
I need this :crying:
raffly said:
do you have stockROM for lenovo A1000G
I need this :crying:
Click to expand...
Click to collapse
Don't worry, the above link is a stock Lenovo A1000 G ROM, but with pre-root files having no superuser app. Just extract the .7z file
System.7z MD5: 658CA71AC8A230B244F267513857F9A5

Categories

Resources