Related
Hello everyone,
Its been great to have root on your X10 using the method posted here:
http://forum.xda-developers.com/showthread.php?t=711907
Well, this method works all right but I did some investigating of my own to audit the state of the system after its been rooted. Thanks to the discussions you may find here: http://forum.xda-developers.com/showthread.php?t=712178, the original developers soon chose to update the Rooting tutorial with some additional steps (See post #2 and #4 of the rooting thread). This is all good, because now you have the real power to act as a the *real* superuser i.e uid 0.
Most of the discussions that follow are only intended for users who are well versed with general *NIX security and concepts about user ids, permissions and other things. So please disregard this post if you have no ideas of these concepts.
Ok, so first things first. I basically followed the root tutorial as it is all the way upto step3 (or step3a as in my case). Remember, you essentially have a rooted phone right after step2, step3/3a just adds the updated baseband firmware, which has no effect whatsoever on the subsequent things that you do to your phone.
Well essentially, what I did do was install the "su" binary and the "Superuser.apk" following in the lines of step4v2 (post #2 in root thread). These are essential to give you control over your system as without them you are simply relying on a hacked "sh" binary which runs with elevated privileges. Here are the file permission masks for the "sh" binary which gets installed after the FOTA in step2:
Code:
# ls -l sh
ls -l sh
-rwsrwsrwx root root 86944 2010-06-28 18:08 sh
#
Wait!!! This is *not* quite ok. What this means is that any process can use this binary to gain super user privileges. This binary is setuid and setgid root!!!
Well you might say that... so is the case for "su":
Code:
# ls -l su
ls -l su
-rwsrwsrwx root root 22120 2010-06-28 08:08 su
#
But, this is different because its use is controlled by the Superuser Whitelist application that was installed with Superuser.apk.
This difference is crucial because if any non-privileged application and process forks and execs "su", the Superuser Whitelist app would immediately post a notification screen on the phone and provide options to allow or disallow.
With the "sh" binary installed on your phone as it is, you are basically inviting *any* application to be able to do anything it wants to your phone... and all this without your knowledge!!!
To test this theory, all you need to do is simply install one of the terminal emulators floating around the market or use the one provided in the rooting thread under the step4/app folder and launch it. It straight away, launches you into a root shell. Here is a screen shot of what you can do this way:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
(Remember, no warnings, no notifications and all this can be done by any app under the hood)
Here is what you can do to make your phone more secure.
Step1: Download an alternative shell or simply change the permissions on the "sh" binary:
Code:
# cd /system/bin
# chmod 755 sh
Step2: In case you downloaded an alternative shell like "bash" and copied it under your /system/bin folder, simply get rid of the original "sh" binary and create a symlink to the one you download, for ex: bash:
Code:
# cd /system/bin
# rm sh
# ln -s bash sh
(Note: the above steps assume that you have /system mounted as rw, if you don't know what that means, then you should not be reading this, sorry)
Remember, when installing any alternative shell make sure that its permission mode is set to 755 or lower. I recommend to *never* set the setuid and setgid bits on the shell!!!
Here is what I did personally:
Installed bash from here: http://forum.xda-developers.com/showthread.php?t=537827
Installed it under /system/bin *without* the setuid and setgid bits
Removed the "sh" binary
Created a symlink named "sh" to the binary "bash"
This way, whenever I launch "adb shell" or use any terminal emulator on my phone, I always get a un-privileged shell. To get root, simply fire "su".
PS: This information is not intended for casual users who have limited or no knowledge of UNIX or UNIX like sytems like Linux, Adrdoid SDK commands like adb or don't know their way around if faced with a command line!!!
PS: Another post with some steps to properly secure the system: http://forum.xda-developers.com/showthread.php?t=712945
lmao..
http://forum.xda-developers.com/showthread.php?t=712945
zephyrix said:
lmao..
http://forum.xda-developers.com/showthread.php?t=712945
Click to expand...
Click to collapse
lol, you must've done this while I was writing mine!!
Anyways, its good to have this info out and I do point out some concepts detailing *why* this is a problem.
Definitely.
Make sure people have installed a proper way to elevate to root before attempting to change sh to not setuid, or they may screw themselves over lol
Thanks for your guide! Much appreciated would be an understatement.
is there any other way of testing that as using tht method in ur given picture now says read only error does this mean i successfully secured my root?
bcool15 said:
is there any other way of testing that as using tht method in ur given picture now says read only error does this mean i successfully secured my root?
Click to expand...
Click to collapse
Oh... I think I forgot to show this, but essentially you need to get the system partition into read/write mode as well. So it will be one more command before the write is attempted:
# mount -o remount,rw -t yaffs2 /dev/mtdblock2 /system
...
...
# echo "I can...
j4mm3r said:
Oh... I think I forgot to show this, but essentially you need to get the system partition into read/write mode as well. So it will be one more command before the write is attempted:
# mount -o remount,rw -t yaffs2 /dev/mtdblock2 /system
...
...
# echo "I can...
Click to expand...
Click to collapse
thats the command which stoppped wrkin so i just redid whole rooting procedure with new v3 update does it still need securing?
bcool15 said:
thats the command which stoppped wrkin so i just redid whole rooting procedure with new v3 update does it still need securing?
Click to expand...
Click to collapse
Dont worry about the example shown in the screen shot. That is just to illustrate what a setuid "sh" binary can do to your system.
j4mm3r said:
Dont worry about the example shown in the screen shot. That is just to illustrate what a setuid "sh" binary can do to your system.
Click to expand...
Click to collapse
this securing procedure isnt working on my new root any suggestions?
please
Regards,
bcool15 said:
this securing procedure isnt working on my new root any suggestions?
please
Regards,
Click to expand...
Click to collapse
Exactly what procedure are you referring to? The post is just meant to be a set of guidelines of a vulnerability that existed on the phone after it was rooted using "the root procedure" at the time this was posted.
If you have a "sh" binary on your phone which is setuid and setgid, then you have this vulnerability. I haven't updated the post with results from any new root procedures that have been posted since, but I suspect even the newer methods posted so far in the "root thread" don't get rid of the compromised "sh" binary.
Please ignore if you don't know what setuid and setgid means.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
The remainder of this post contains historical information. Please read the update. Thank you.
__________________
BotBrew is
a repository of *nix software (such as bzip2, curl, openssl, python, and ruby) for ARM-based Android
a package manager powered by Opkg, a lightweight program that feels like dpkg+apt
a service manager powered by runit
a build system for anyone looking to build and package his/her own scripts and programs
Thanks: mateorod and xela92 for testing the heck out of this thing; racks11479 for delicious artwork; you for using this project, reporting bugs, and making it better
If I missed anyone, let me know!
Warning: BotBrew has been used successfully on a variety of rooted ARM devices, and is developed using a Nook Color, but you should still make backups before trying, just in case.
Install BotBrew
[ Google Play | BotBrew.apk | BotBrew.debug.apk ]
Read the Quick-Start Guide & Manual
[ botbrew.com/manual.htm ]
Click to expand...
Click to collapse
Alternative (Command Line) Installation
If the BotBrew app fails to bootstrap, you might be able to bootstrap using the command line:
Code:
wget http://repo.botbrew.com/anise/bootstrap/install.sh -O- | su
Such a setup should be compatible with the app, though it may not work perfectly. The manual has more tips for command line usage.
Enjoy!
Install BotBrew+1
The next release of BotBrew, named basil, will be powered by Debian's Dpkg and Apt. This is a non-trivial update, so the app is being rewritten from scratch. I've posted some usage instructions, in case you are adventurous enough to try. Thanks! This app may be used in parallel with the current-stable BotBrew release, without conflict.
[ Google Play | GitHub ]
Click to expand...
Click to collapse
Changes
5/20: the next release of BotBrew is in development!
4/20: improve support for long package names; fix list of repairable packages
4/16: new UI for devices with wide-enough screens; experimental support for moving to /sd-ext
4/9: Google Play release of BotBrew "anise"; previous release is now BotBrew.oldstable.apk; lots of updates since oldstable
3/16: lots of installer and filesystem changes for cross-device compatibility, work started on multiuser support
3/10: installers now depend on botbrew-core, which will (in the future) pull in basic packages that everyone should have
3/4: swipe left and right to see all/installed/upgradable packages
3/3: added ability to start installation of *.opk files from file managers
3/2: added ability to start installation from browser after clicking *.opk link
3/1: fixed some BotBrew.apk bugs; updated command line installer
2/27: reworked BotBrew.apk; new packages in stable repo
2/18: testing repository now open; new opkg -- please read before upgrading
2/16: make BotBrew.apk display latest versions in the package list
2/2: bugfix release of BotBrew.apk
Well, I now have python, ncurses, openssl and a couple other packages running on my nook. I have indeed printed 42, and even wrote my own (proprietary) code to advance the project some that printed 43. Advanced scripting.
But seriously, this is sweet. I am all over anything that opens up this device. I don't think I have ever bought a piece of hardware that has so outstripped my expectations.
Thanks for the program. I will report back after I play with it some.
Wow, what a great idea! Looks like my Nook will be used for a bit more than entertaining my family with casual games; nice to have some productivity back I was thinking about installing Ubuntu on my Nook for this sort of thing, but there's no need anymore.
It would be great to get this a bit more recognition, and getting more useful things such as gcc or even the GNU toolchain installable with this package manager. Might put a link in my signature, if you don't mind.
Now to look for an affordable lightweight bluetooth keyboard...
You read my mind I got binutils, gmp, mpfr, and mpc working earlier today... and gcc is in the pipeline. My main reason for wanting a native gcc is that some software (such as python) do not like to be cross-compiled at all. I'm having a bit of trouble with gcc, but I'll keep hacking away at it.
Please, go right ahead and share this thread; this is a young project but I think it could be more useful. On the one hand, there's a whole lot of free software (such as the GNU stuff) just asking to be built and packaged; on the other hand, many people who hang out around here have a few scripts/programs of our own to distribute.
In case you're interested, here's where all the packages live. There are actually two more ways to install (remote and local) stuff using Opkg:
Code:
opkg install http://host/path/to/package.opk
Code:
opkg install path/to/package.opk
Very nice project !!!
I have python 2.7 standalone on android.
One problem, in python commandline i can't import hashlib, i can fix this?
Thanks.
So, I just got a working build of GCC+binutils and pushed the packages to the stable repo. Please keep in mind that for now, stable means I tested it a couple of times and it works, so be careful and use at your own risk.
To install gcc and binutils, make sure you have about 160mb of storage free in /system and run:
Code:
opkg update
opkg install gcc-4.6
That's about 70mb's worth of downloads, and my server's underpowered, so please wait patiently and retry if it fails (failure when receiving data from the peer). When that's done, you might want to compile something:
Code:
cd /cache
wget http://dl.dropbox.com/u/1213413/htdocs/agcc/hello.c
gcc -o hello hello.c
And if that completed successfully, you should have a new executable, which you could run for a classic greeting. I was not able to get the C++ libraries compiled, but C code should compile alright.
@Fritos2: I've been trying to fix this issue, but I'm not confident that I could do it without help. Python (and Perl) are very resistant to cross-compilation, and even after I hammered it into submission, some modules do not work. Another module that I'd really like is readline, which gives you enhanced editing capabilities in the interactive interpreter. I'm a Pythonista, but I've got to say: Ruby does cross-building right. Even sqlite3 supports readline. I suspect that Python might have to be compiled natively, and this is where native gcc comes in.
I'd appreciate any help, of course
I'll follow this project with great interesting.
Hey guys, there have been a few updates:
opkg's lock file has been moved to /cache/opkg/lock so there's no need for a read-write /system just to query packages
gnupg has been packaged, for those who like to sign their stuff
python... well, I'm still working on it >.<
Anyway, I thought I'd do something to make this project more accessible. I don't have any apk's for you yet, but I've attached a screenshot of the work-in-progress
I am very impressed with the progress. I am a super-noob but have enjoyed toying with the packages from your opening post. I haven't had time to do much but explore, but this sure does open up a whole new world for the nook, from an accessability stand point alone. I wouldn't be suorised to see an uptick in interest as some if the more experienced coders are able to turn their attention from cm9.
I will probably install those latest packages sometime this weekend. Just real strong stuff.
Edit. Ok, o I just went ahead and did it now. Obviously, I couldn't get it to work. Have downloaded the FCC and got the hello file fro the dropbox. I ran the gcc -o hello hello.c and was returned a hashtag only. If I ran gcc hello, it outputted the hello program code. I tried several things basically willynilly until I got tired of getting a fatal error and having the build canceled.
If this is too basic and will clog the thread, I would happily accept a pm with a good tutorial. Thanks a bunch.
The problem with python maybe relationed with python-devel package?
Sorry is the question is stupid, i'm so noob.
The Python build process has two steps: first, you get the main Python executable, and then you get the modules. The executable built in the first step is used to test the modules in the second step. So, naively cross-compiling Python would result in most modules not passing the test (because you cannot actually run the Python you just built), and these modules would be removed. As it turns out, you could patch the build scripts to run the tests using a host-native Python, but even then, there are a few modules with particular requirements that still don't pass. This is where we are now, but I think we could do better.
Okay, so more progress: BotBrew.apk is out in the wild! I decided to put it off until I got some basic functionality working. What is this?
a basic GUI for package management
lists all packages
searches for packages by name
shows package information
installs/upgrades/removes packages
manages list of repositories
I've only really tested it with CM7, but it works on the latest CM9 previews as well.
Screenshots
mateorod said:
Edit. Ok, o I just went ahead and did it now. Obviously, I couldn't get it to work. Have downloaded the FCC and got the hello file fro the dropbox. I ran the gcc -o hello hello.c and was returned a hashtag only. If I ran gcc hello, it outputted the hello program code. I tried several things basically willynilly until I got tired of getting a fatal error and having the build canceled.
Click to expand...
Click to collapse
No worries. If gcc did not complain and dropped you back in the shell, this means it's done! Just list the directory to find a new file named hello, which you could run:
Code:
# gcc -o hello hello.c
# ls
backup download hello.c opkg
dalvik-cache hello lost+found recovery
# ./hello
hello world
#
I hope this helps!
Sorry if this sounds ignorant but is there any future usage aside from being a very interesting project? Will we be able to distribute open source projects / software specifically made for Android devices like on common Linux distributions?
BobbyBest said:
Sorry if this sounds ignorant but is there any future usage aside from being a very interesting project? Will we be able to distribute open source projects / software specifically made for Android devices like on common Linux distributions?
Click to expand...
Click to collapse
A valid question, I think. BotBrew has the potential of becoming a Cydia of sorts, distributing system extensions, interface customizations, and other useful software for rooted Android devices. Android has a vibrant community of programmers and scripters, but there isn't any standard way to manage software that are not apps. And there's a large body of open source Linux software that might work well on Android. Of course, BotBrew is also able to handle root apps that live in /system/app (i.e. gapps); for user-level apps, the various app stores already work quite well.
In order for this to become a serious platform, we'll need a couple of things: a solid technical foundation, developer support, and a user base. I've been making progress mostly towards the first point; hopefully the rest would follow.
Well I'll be. Yeah it worked. Who knew?
Okay, so that's great! I have printed 43 (my own design) and now the standard greeting has been successfully built and ran as well. I must toodle with it some more. What would you recommend to try? Remember, i am slow-witted and totally inexperienced.
If you say print 44 i will totally understand. : )
How about this, i would like to learn and i would like to help you with your program. I will probably be of most use as a guinea pig, but since i spend a fair amount of time jiggering system files and databases, I have to complete wipe about once a week. failure or risk doesn't bother me.
---------- Post added at 02:27 AM ---------- Previous post was at 01:51 AM ----------
Okay, i just got the apk. I autoremoved all installed packages. I installed opkg, python, gcc (binutils came along as a dependency) and the hello executable. But when i went into a terminal once i cd cache, it only lists opkg out of the five packages. This worked when i did the wget through the terminal. The packages show as installed within the botbrew app (nice icon and UI, btw).
I known I am doing something very simple incorrectly. Do you have enough information to be able to tell me what that is?
Congrats on a successful build! Now that you have a working program, you could package it up for distribution
What's more, you could do it directly on Android. Let's call this package mateorod-hello, prefixing it with the vendor's (your) name to avoid conflicts with other variants. We'll also rename the executable itself.
We'll install the program to /system/bin, where it would feel at home with all the other programs; so we create a staging directory tree that mimics the structure of an Android system, but contains just the one program:
Code:
cd /cache
mkdir -p system/bin
cp hello system/bin/mateorod-hello
Next, we need a control file to describe what's in the package. It might be easier to create the file on a computer and push it over, but we could also create it using the command line:
Code:
echo "Package: mateorod-hello" > control
echo "Version: 1.0" >> control
echo "Architecture: armeabi" >> control
echo "Description: a greeting from mateorod" >> control
And, finally, a magic value to signify what kind of package this is:
Code:
echo -n "2.0" > debian-binary
Okay, now let's pack this up:
Code:
tar zcvf data.tar.gz system
tar zcvf control.tar.gz control
ar -r mateorod-hello.opk debian-binary data.tar.gz control.tar.gz
We now have mateorod-hello.opk, which we could test by installing:
Code:
opkg install mateorod-hello.opk
Now that it's installed, the program within is also available:
Code:
mateorod-hello
This is quite a bit of work for something that could just be pushed over adb, but it could be automated and it works tremendously well for more complex software. The control file helps keep track of versions, and lets you specify dependencies too.
Oh, and to clean up a bit: (the first command makes sure you're in /cache and do not accidentally erase /system)
Code:
cd /cache
rm -r system control data.tar.gz control.tar.gz debian-binary
/edit:
mateorod said:
But when i went into a terminal once i cd cache, it only lists opkg out of the five packages. This worked when i did the wget through the terminal. The packages show as installed within the botbrew app (nice icon and UI, btw).
Click to expand...
Click to collapse
What did you do, cd /cache then ls? If so, you're most likely looking at the /cache/opkg directory, which contains temporary data. If you want to see what's installed using the command line, try opkg list-installed
I uh... picked a random icon I had lying around, and I plan to swap it out when I have time to make one. Thanks, though :3
The amount of help you're offering is just staggering. I will put the above together tonight and will report back.
I have a bug here in the GUI.
Rotation makes the app start looking for updates again.
edit: Reentering does the same...
opkg has then problems with set locks.
(CM7 KANG by MiRaGe)
Currently trying to install gcc to compile and run a small program...
edit2: gcc-4.6 installed. Still trying to compile a small prog. Will continue tomorrow...
Edit3: Well, problem with GUI fixed itself somehow.
Still, maybe you should check out how the GUI behaves during the installation process when rotated.
Yes, I can see how this bug could occur, and it should only happen during the first run. When the package cache is empty, the app tries to update by itself, and it seems that rotation causes something to restart. I've uploaded an update, which hopefully fixes this issue. Thanks for the report.
/edit:
Bug fixed for real. You may now rotate with impunity. Man, why can't Android have sensible defaults?
Okay, took me awhile, but...
$ export PATH=/data/local/bin:$PATH:.
$su
# cd cache/
# wget http://dl.dropbox.com/u/1213413/htdocs/agcc/hello.c
Connecting to dl.dropbox.com (174.129.218.194:80)
hello.c 100% |************************************| 93 0:00:00 ETA
# gcc -o hello hello.c
#ls
dalvik-cache hello lost+found recovery
download hello.c opkg
# ./hello
hello world
#mkdir -p system/bin
# cp hello system/bin/mateo-hello
#echo "Package: mateo-hello" > control
#echo "Version: 1.0" >> control
#echo "Architecture: armeabi" >> control
# echo "Description: a word from Mateo" >> control
#echo -n "2.0" > debian-binary
# tar zcvf data.tar.gz system
system/
system/bin/
system/bin/mateo-hello
# tar zcvf control.tar.gz control
control
# ar -r mateo-hello.opk debian-binary data.tar.gz control.tar.gz
ar: creating mateo-hello.opk
#opkg install mateo-hello.opk
Installing mateo-hello (1.0) to root...
Collected errors:
Two sets of collected errors related to system not being mounted R/W excised
Installing mateo-hello (1.0) to root...
Configuring mateo-hello.
#mateo-hello
hello world
#
So there it is. I just followed your more-then-generous guide, with some phrasing changes to show i didn't just copy/paste.
Some notes from the inexperienced:
-As you can see, I had to use the wget command to work on the hello.c script. I had hello as an installed package through the Botbrew GUI already, but no matter what permutation of hello command I ran, gcc would not recognize it as an input file. Just to say that your guide to the initial build, as written, i don't think will work for anyone who installs the packages through the apk. I don't know the solution, but i bet it's simple.
Edit: I guess the package you get through your apk is a fully built executable? I hadn't gone through the later steps when I first tried to build it, so I never thought to simply enter "hello". Output a much fancier greeting then the one I built. Capital letters and an exclamation mark! Very nice.
- For other newbies- make sure that system is mounted R/W through root explorer or some such. And if you employ a firewall, if you intend to use the wget command, not only do you need to allow your terminal through, you also need to allow applications running as root! I am sure this is news to no one, but it cost me FOREVER!
I feel like this constitutes progress. Thanks for all the work!
I am trying to install Ubuntu onto my LG Optimus (P970) using VNC and Complete Linux Installer. My tablet is rooted and I have found several sources saying they have achieved this on their tablet. It is Ubuntu 12.04
The script I am trying to run is as follows:
$ cd /sdcard/ubuntu $ su
# sh /data/data/com.zpwebsites.linuxonandroid/files/bootscript.sh /sdcard/ubuntu/ubuntu.img
This is what it returns:
$ cd /sdcard/ubuntu $ su
# sh /data/data/com.zpwebsites.linuxonandroid/files/bootscript.sh /sdcard/ubuntu/ubuntu.img
[: not found
dirname: not found
[[: not found
[: not found
[: not found
[: not found
[: not found
Checking loop device... [: not found
MISSING
Creating loop device... mknod: applet not found
[: not found
FAILED
Error: Unable to create loop device!
#
Please help :crying:
Don't think your kernel supports it
Sent from my One X using xda app-developers app
rohitjan5 said:
The script I am trying to run is as follows:
$ cd /sdcard/ubuntu $ su
# sh /data/data/com.zpwebsites.linuxonandroid/files/bootscript.sh /sdcard/ubuntu/ubuntu.img
Click to expand...
Click to collapse
sh (shell) won't resolve the "/data......./bootscript.sh" link.
You need to download the bootscript.sh ; make sure that it is executable (e.g. busybox chmod 777 bootscript.sh), and then run your command (e.g. ./bootscript.sh /sdcard/ubuntu/ubuntu.img)
If it still fails to work, how about printing a copy of bootscript.sh here.
HTH
Are you sure that you have the ubuntu.img.md5 ?
Gesendet von meinem Galaxy Ace
______________________________
Phone:Samsung Galaxy Ace GT-S5830
Rom:Tw5 JB Rom by pidio1
Scripts:Adrenalin CPU Control
Launcher:TSF Shell Beta 1.7.9.4
Do you have busybox installed?
Check whether your device supports Loop Device or not???
Its very easy to check whether your device supports LOOP Device or not. Just follow the steps:-
1.open your terminal emulator and go to the root directory. Now type
cp /proc/config.gz /sdcard/kernel_config.gz
2. You will find a file named kernel_config.gz on your sdcard root.
3. Unzip the archive with Winrar or 7zip and open the file inside with any text editor.
4. Now look for the configure option - CONFIG_BLK_DEV_LOOP=y
5. If it is written as CONFIG_BLK_DEV_LOOP is not set or CONFIG_BLK_DEV_LOOP=n then your device doesn't support loop device.
Are you on a custom ROM?
Sent from my GT-N7000 using Tapatalk 2
rohitjan5 said:
I am trying to install Ubuntu onto my LG Optimus (P970) using VNC and Complete Linux Installer. My tablet is rooted and I have found several sources saying they have achieved this on their tablet. It is Ubuntu 12.04
The script I am trying to run is as follows:
$ cd /sdcard/ubuntu $ su
# sh /data/data/com.zpwebsites.linuxonandroid/files/bootscript.sh /sdcard/ubuntu/ubuntu.img
This is what it returns:
$ cd /sdcard/ubuntu $ su
# sh /data/data/com.zpwebsites.linuxonandroid/files/bootscript.sh /sdcard/ubuntu/ubuntu.img
[: not found
dirname: not found
[[: not found
[: not found
[: not found
[: not found
[: not found
Checking loop device... [: not found
MISSING
Creating loop device... mknod: applet not found
[: not found
FAILED
Error: Unable to create loop device!
#
Please help :crying:
Click to expand...
Click to collapse
I install ubuntu on my galaxy s2, as long as your phone is duo core, 3.5 GB free on sdcard, 500mb RAM and supports loop device. That's all you need you dont have to create the loop device.
Install terminal
Install vnc viewer with the links on complete installer.
-Just using complete linux installer to lauch the image if you already have it. Once lunch follow instrucions on terminal very important is to specify your phone resolution when asked and make the password ubuntu.
Then when you are in root directory
You are in linux.
Now use vnc viewer to connect to ubuntu using port 5900 nickmame ubuntu password ubuntu , address localhost the connect then ubuntu gui will render.
Sent from my SAMSUNG-SGH-I727 using xda premium
I thought it hasnt been released yet?
__________________
Sweet Devil >_<
GT-P3100
Android 4.0.4 ICS
Sun Cellular
"LG should go bankrupt"
OptimusLove said:
I thought it hasnt been released yet?
__________________
Sweet Devil >_<
GT-P3100
Android 4.0.4 ICS
Sun Cellular
"LG should go bankrupt"
Click to expand...
Click to collapse
This is just a lightweight desktop version of Ubuntu run via chroot. Not the Ubuntu phone OS.
Sent from my GT-N7000 using Tapatalk 2
OptimusLove said:
I thought it hasnt been released yet?
__________________
Sweet Devil >_<
GT-P3100
Android 4.0.4 ICS
Sun Cellular
"LG should go bankrupt"
Click to expand...
Click to collapse
This is the PC version of Ubuntu that we had for a while now
Phone Slow? go ------>HERE<------
Ubuntu phone OS announced
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
what do u think share your thoughts --->HERE<---
_____________________________________
This post uses the patented TingTingin®™ method I would teach it to you but you are not yet worthy (come back in a hundred years)
--Sent from the future with a galaxy s4 like a freaking BAWS--
hi i am totally new to this android world just bought Galaxy Tab 2 p3113, and i always has this thing in me trying linux os frankly never tried to install linux on my pc but now i am totally addicted to this Tab and really wanted to try something new.
After clicking the launch button from the profile i click start linux and this is the msg i get on my terminal emulator
creating loop device ... /data/data/com/zpwebsites.linuxonandriod/files/bootscript.hs[129]: /data/data/com/zpwebsites.linuxonandriod/files/busybox: can't execute: permission denied
FAILED
Error: Unable to create loop device
The above msg has to to do something with loop device support or it has to do something with bootscript.hs
i tired to check whether my kernel has loop device support or not did some gooling found out how i tired these steps
zcat /proc/config.gz | grep CONFIG_BLK_DEV_LOOP[/COLOR]
nohting i got on my terminal
error msg : no such file or directory
Then i tried
cp /proc/config.gz /sdcard/kernel_config.gz
but same result as above.
i hope here someone can help me out :angel:
No loop device
I am not able to create a loop device either. I did check the config file and it says I do have CONFIG_BLK_DEV_LOOP=y
chris
AdeelonAndroid is your device rooted?
Sent from my SM-N9005 using xda app-developers app
You can check if yout device supports loop device with this app:
https://play.google.com/store/apps/details?id=com.rokas.loopdevicecheck
DISCLAIMER:
I'm not responsible for damage to your phone or watch.
You are using this app at your own responsibility
WearToolbox was just an idea to make life easier.
With WearToolbox you can connect from your phone to your watch through adb, with this it's possible to send commands or sideload apps etc. (see features).
For now design doesn't matter for me, functionality does. Design will be better when app is in a further stage.
When enough people have tested it and provided me feedback, it will be released in the Play Store for easier updating.
The app is in DEVELOPMENT and TEST stage and can have BUGS.
Tested on LG Watch R with Android Wear 5.1.1 and LG G2 5.0.2
Have fun with it and let me know if it works or not!
FEATURES
- Automatic installation of necessary binaries (adb -> /system/bin/)
- Automatic connection
- Reboot (system, recovery, bootloader)
- Sideload apps (/sdcard/WearToolbox/sideload/)
- Uninstall apps
- Push files to /sdcard/
- Send adb commands (adb command)
- Send shell commands (adb shell command)
- ADB and shell command history
- Script parser for own created scripts
TODO:
- Make a nicer UI
IDEAS:
- Pull files
- ADB filebrowser
REQUIREMENTS
- Enabled debug and bluetooth debug on android watch, developer options (youtube)
- Enabled debug on phone, developer options
- Enabled debug in Android Wear app, under settings
- Rooted phone
FAQ:
Q: How to use root with shell:
A:
Code:
"su -c '[COMMAND]'"
Snippets:
Code:
"su -c 'echo 85 > /sys/class/timed_output/vibrator/amp'"
Code:
"su -c 'echo 120 > /sys/class/timed_output/vibrator/driving_ms'"
Code:
wm density 200
Q: How to sideload apps:
A: Place apk in the folder /sdcard/WearToolbox/sideload/, restart WearToolbox, choose right apk, click sideload, wait a long time
Q: How to use scripts:
A: Make for example a dummy.txt file in /sdcard/WearToolbox/scripts/ with shell commands in it. Each command on a newline. Save it, restart WearToolbox, test it.
Example (vibrate.txt):
Code:
cat /sys/class/timed_output/vibrator/amp
cat /sys/class/timed_output/vibrator/driving_ms
"su -c 'echo 85 > /sys/class/timed_output/vibrator/amp'"
"su -c 'echo 120 > /sys/class/timed_output/vibrator/driving_ms'"
cat /sys/class/timed_output/vibrator/amp
cat /sys/class/timed_output/vibrator/driving_ms
DOWNLOAD
https://play.google.com/apps/testing/com.diechel.xda.weartoolbox
I might go ahead and try this. Having something like this would be very very useful. (fyi, I believe you initial change log date has the wrong month. Unless it is June 31st already)
Rennat said:
I might go ahead and try this. Having something like this would be very very useful. (fyi, I believe you initial change log date has the wrong month. Unless it is June 31st already)
Click to expand...
Click to collapse
Haha yes youre right about the changelog Will change.
Let me know if it works and what you think about it.
What features would you like etc etc.
stuck on "Checking Connection" for me Sammy 5.1.1 S6 Edge (arm64) and LGWR 5.1.1
EDIT - seems to download binaries every time I open the app, still won't connect - perhaps something to do with arm64 architechture ???
EDIT2 - in Android Wear Manager bluetooth debugging ON, it says HOST disconnected, TARGET connected
kashortiexda said:
stuck on "Checking Connection" for me Sammy 5.1.1 S6 Edge (arm64) and LGWR 5.1.1
EDIT - seems to download binaries every time I open the app, still won't connect - perhaps something to do with arm64 architechture ???
EDIT2 - in Android Wear Manager bluetooth debugging ON, it says HOST disconnected, TARGET connected
Click to expand...
Click to collapse
- Can you check if the files 'adb' and 'fastboot' are present in /system/bin/
- What is there permission? should be 755
- Are the files 'adb' and 'fastboot' on your root of your /sdcard/
- Can you type 'adb' and 'fastboot' in terminal and post output
- Can you type 'mount -o remount, rw /system' in terminal and post output
For me HOST and TARGET are connected in Android Wear App
@Diechel , I have adb but not fastboot in /system/bin
Okay copied adb and fastbook to /system/bin and 755'd them.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
kashortiexda said:
Okay copied adb and fastbook to /system/bin and 755'd them.View attachment 3343013
Click to expand...
Click to collapse
i see something weird
Code:
localhost:4444:4444
should be
Code:
localhost:4444
Will look if i can find something.
Also wondering why copying didnt work, was searching all over the internet how to correctly remount /system
My output is as follows, see attachment. Of course a newer version but nothing changed to adb init
@Diechel am I supposed to have my watch or phone plugged into my PC by USB when doing all this / running weartoolbox ?
kashortiexda said:
@Diechel am I supposed to have my watch or phone plugged into my PC by USB when doing all this / running weartoolbox ?
Click to expand...
Click to collapse
No just bluetooth connected to each other.
And all the 3 debugging option on as stated in the OP
Edit:
Build 21 online
Yip got all that but no adb devices and the localhost:4444:4444 is clearly wrong
Would a logcat help
kashortiexda said:
Yip got all that but no adb devices and the localhost:4444:4444 is clearly wrong
Would a logcat help
Click to expand...
Click to collapse
I dont know if logcat helps, what you can try is manually connect with terminal on your phone.
Code:
su
adb kill-server
setprop service.adb.tcp.port 5555
stop adbd
start adbd
adb forward tcp:4444 localabstract:/adb-hub
adb connect localhost:4444
adb devices
Each line need to be filled in, not all together.
And try build 21
Did the manual Terminal stuff and it FIXED the 4444 problem, installed v21 and.....[emoji1]
kashortiexda said:
Did the manual Terminal stuff and it FIXED the 4444 problem, installed v21 and.....[emoji1]
View attachment 3343080
Click to expand...
Click to collapse
TADAAAAAA
GOOD!
Let me know if you have ideas to implement. First i go for functionality then change the user interface a bit
@Diechel
EDIT: I tried sideloading es file explorer apk ... worked !!! [emoji1]
kashortiexda said:
@Diechel I tried sideloading es file explorer apk ...it says done but nothing on watch.
Have you successfully sideloaded any apks ?
Click to expand...
Click to collapse
Yes i had, will try again.
It takes some time for the watch to install, will try now and report back!
Edit:
From what i see now is that the message done comes too fast.
Bluetooth is slow and is still transferring after the done message, can see that in my top bar.
Seems not working indeed, will check thanks
EDIT:
It got installed after a while
Good that it is working! Will see how i can report in log
I got it installed too, yes the done is misleading .... GREAT app btw, well done [emoji106] [emoji106]
kashortiexda said:
I got it installed too, yes the done is misleading .... GREAT app btw, well done [emoji106] [emoji106]
Click to expand...
Click to collapse
Haha thank you, now there is a message that you need to wait untill it arrives on your watch, bluetooth is slow
@Diechel are you planning on adding the trickier "adb remove sideloaded app" but I think it may not be possible. .
kashortiexda said:
@Diechel are you planning on adding the trickier "adb remove sideloaded app" but I think it may not be possible. .
Click to expand...
Click to collapse
Can try at least, I think it's possible. Maybe a lot of work
What the heck is all this about?
So, you all know that unlocking a Nexus device is usually pretty straight forward, especially if you're on Ubuntu; you're used to just install android-tools-fastboot and android-tools-adb from the default repos, using sudo fastboot oem unlock, and being on your merry way.
Unfortunately, that's been a bit of a pain with the new 6P for multiple reasons; the default Ubuntu 14.04+ repositories don't yet have the latest adb and fastboot binaries (which you need because the unlock command is now totally different), and the Android SDK Manager is kind of a piece of crap and needs to be beaten into submission before it works for you. I wrote this guide after figuring it out because I don't use Windows and don't ever use it unless there is simply no other way.
Yes, I could just post the adb and fastboot binaries, but this is Linux. We use it to better understand how computers work and ultimately learn.
This process will take you 5 minutes.
What I'm assuming about you
You know what a terminal is and how to use it
You are on Ubuntu 14.04+ 64bit
You have Java already installed
You have already booted your phone, gone into Developer Settings, and turned on "OEM Unlocking"
You're smart enough to not blame me for ruining your new phone (which won't happen) or your Ubuntu installation
Let's kick this off.
Install the Dependencies
The official Android SDK guidelines specify that you need several 32bit dependencies before proceeding. Let's get those set up.
Code:
[B]sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libncurses5:i386 libstdc++6:i386 zlib1g:i386 -y[/B]
That's it, dependencies are installed.
Grab the SDK
Pop open your terminal and grab the SDK:
Code:
wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
Extract it:
Code:
[B]tar -xzf android-sdk_r24.4.1-linux.tgz[/B]
The SDK is downloaded and extracted.
Open and Configure the SDK Manager
Change directory to the tools directory
Code:
[B]cd android-sdk-linux/tools/[/B]
Execute the "android" executable you see in there:
Code:
[B]./android[/B]
Oh no! We immediately run into an issue connecting to Google's server.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
That's okay, we can easily remedy that. Move your mouse up to your task bar to show your menu, and go to Options.
Uncheck "Use download cache", click on the "Clear cache" button, and then check the box for "Force https:// sources to be...".
Hit close, and reload. Voila! We now have ALL THE THINGS ready for us to grab.
Download the Platform Tools!
Go ahead and check the box for the latest Android platform tools (23.0.1) and hit "Install 1 Package".
When prompted, fill in the bubble to accept the license, and hit "Install".
You'll likely run into this error, which says it can't kill the adb server. This makes sense because there isn't yet an adb server running for it to kill. Ignore it.
Congrats! You've now installed the platform tools. Lets close the SDK.
Put those binaries where they belong!
From here on, you can just execute the adb and fastboot binaries using ./adb and ./fastboot, but come on now, let's make adb and fastboot globally accessible binaries to use so you don't have to cd into the Android tools directory each time you want to use it.
Go back to your terminal, and cd into the newly-created platform-tools folder. Assuming your terminal is where we left it when we launched the Android SDK, this is what you'll run:
Code:
[B]cd ../platform-tools/[/B]
Use "ls -l" to list the contents, you should see an adb and fastboot binary.
Code:
[B]total 3360
drwxrwxr-x 5 user user 4096 Nov 25 16:42 ./
drwxrwxr-x 7 user user 4096 Nov 25 16:42 ../
[COLOR="Magenta"]-rwxrwxr-x 1 user user 1221540 Nov 25 16:42 adb*[/COLOR]
drwxrwxr-x 2 user user 4096 Nov 25 16:42 api/
-rwxrwxr-x 1 user user 58920 Nov 25 16:42 dmtracedump*
-rwxrwxr-x 1 user user 211200 Nov 25 16:42 etc1tool*
[COLOR="magenta"]-rwxrwxr-x 1 user user 556700 Nov 25 16:42 fastboot*[/COLOR]
-rwxrwxr-x 1 user user 11427 Nov 25 16:42 hprof-conv*
drwxrwxr-x 2 user user 4096 Nov 25 16:42 lib/
-rw-rw-r-- 1 user user 220534 Nov 25 16:42 NOTICE.txt
-rw-rw-r-- 1 user user 16508 Nov 25 16:42 source.properties
-rwxrwxr-x 1 user user 1109318 Nov 25 16:42 sqlite3*
drwxrwxr-x 3 user user 4096 Nov 25 16:42 systrace/
[/B]
Copy these binaries to your /usr/bin/ folder.
Code:
[B]sudo rsync -ah adb /usr/bin/
sudo rsync -ah fastboot /usr/bin[/B]
Now they're in your bin folder, let's give them the proper permissions. Change directory to /usr/bin/.
Code:
[B]cd /usr/bin/[/B]
Let's give them the proper permissions.
Code:
[B]sudo chmod 755 adb fastboot[/B]
All done! Close your terminal window and open it again. Type sudo fastboot and sudo adb and you should see the help pages for both.
Go ahead and unlock your Nexus 6P now, using the command sudo fastboot flashing unlock. Done!
Word of advice, I assume you know how to flash TWRP, but make sure you do it in this order to prevent any bricking:
Let the device boot once after unlocking.
Turn off phone, manually enter bootloader.
Flash the TWRP image (sudo fastboot flash recovery twrp-image-name-goes-here.img)
From bootloader, boot into recovery. Allow TWRP to write to /system.
Reboot, and when rebooting DO NOT ALLOW TWRP TO INSTALL SUPERSU.
Now, reboot back into recovery and head off to the races.
Conclusion + FAQs
I hope this guide was useful to you. Here's some FAQs to help out.
"Sick guide bro, but what theme are you using??"
GTK: Arc Darker Theme
Icon Theme: Numix Circle
Font: Myriad Pro, Myriad Pro Semibold for WIndow Titles
Awesome work...a lot of work! This is the wave of the future on the go...
I had referenced this ground breaking thread by chamatht before Marshmallow.
galaxys said:
Awesome work...a lot of work! This is the wave of the future on the go...
I had referenced this ground breaking thread by chamatht before Marshmallow.
Click to expand...
Click to collapse
I did notice that, but I wanted people to be able to grab the binary themselves so they know exactly where it came from. :good:
Nice work, but manually copy binaries into /usr/bin is actually a very bad idea... Will conflict soon or later with your package manager.
Keep your binaries where ever you downloaded them, and learn how to tweak your $PATH variable instead (hint :it's easy)
@LiquidSolstice
very good guide. thanks a lot.
effraie said:
Nice work, but manually copy binaries into /usr/bin is actually a very bad idea... Will conflict soon or later with your package manager.
Keep your binaries where ever you downloaded them, and learn how to tweak your $PATH variable instead (hint :it's easy)
Click to expand...
Click to collapse
More than a hint, the solution to do it clean
instead copying binaries to /usr/bin (which is bad, dangerous and must be discouraged), keep your downloaded binaries where you want (people commonly use /opt or $HOME/bin ), and add that place to your $PATH, by adding a line such :
Code:
export PATH=$PATH:$HOME/bin/
or
Code:
export PATH=$HOME/bin/:$PATH
the position of $HOME/bin/, before or after $PATH, will determine the priority, if a binary with the same name is found in :$HOME/bin/ and your regular $PATH.
You can choose any place : $HOME/bin/ is usual, but :/home/my/fancy/name will work the same, as long you correctly adjust permissions
effraie said:
More than a hint, the solution to do it clean
instead copying binaries to /usr/bin (which is bad, dangerous and must be discouraged), keep your downloaded binaries where you want (people commonly use /opt or $HOME/bin ), and add that place to your $PATH, by adding a line such :
Code:
export PATH=$PATH:$HOME/bin/
or
Code:
export PATH=$HOME/bin/:$PATH
the position of $HOME/bin/, before or after $PATH, will determine the priority, if a binary with the same name is found in :$HOME/bin/ and your regular $PATH.
You can choose any place : $HOME/bin/ is usual, but :/home/my/fancy/name will work the same, as long you correctly adjust permissions
Click to expand...
Click to collapse
Eh, rather than dealing with exports, in this specific case, I would personally rather manually move the binary myself, and when the default repos actually finally update to the latest platform tools, I'll delete them before installing from the repo.
I appreciate the advice though!
Well, if you copy the binaries in the place package manager install regular software, you'll have to purge your distribution adb package, so you won't have any notification when it will be updated.
Export one variable is not so hard... Only one line to copy in your ~.bashrc, and then you can keep both, while keeping your system clean, not messing with your package manager, and being notified when the adb and fastboot packaged in your distribution is updated.
Obviously, you can do whatever you want, but i really can't see any advantage with your solution. (while I can see many possibilities of messing around and breaking your package manager or your system)
Quick question,my Ubuntu is 32bit will this still work? Honestly kinda confused when it comes to the 6p lol command changes and what not got me a little worried.
all good, for me simply downloading dependencies(after a gernal update) then the fastboot flashing unlock worked for me, Ubuntu 15.10 32bit.
Not sure if mentioned here but you can download adb tools and it gives you the adb tools through the terminal so you can do all the commands as you would on a windows machine. http://www.webupd8.org/2012/08/install-adb-and-fastboot-android-tools.html this is an old guide but the ppa is up to date.
xSilas43 said:
Not sure if mentioned here but you can download adb tools and it gives you the adb tools through the terminal so you can do all the commands as you would on a windows machine. http://www.webupd8.org/2012/08/install-adb-and-fastboot-android-tools.html this is an old guide but the ppa is up to date.
Click to expand...
Click to collapse
No. That PPA does not have up to date android-tools. Check the versions here. It doesn't have the latest fastboot binary, which is required if you want to be able to unlock your 6P. The command is no longer "fastboot oem unlock".
LiquidSolstice said:
No. That PPA does not have up to date android-tools. Check the versions here. It doesn't have the latest fastboot binary, which is required if you want to be able to unlock your 6P. The command is no longer "fastboot oem unlock".
Click to expand...
Click to collapse
They worked fine for me but here is a more updated ppa I believe. http://lifehacker.com/the-easiest-way-to-install-androids-adb-and-fastboot-to-1586992378
xSilas43 said:
They worked fine for me but here is a more updated ppa I believe. http://lifehacker.com/the-easiest-way-to-install-androids-adb-and-fastboot-to-1586992378
Click to expand...
Click to collapse
You were able to use "fastboot flashing unlock" with the Webupd8 PPA? I'm not so sure I believe that. The PPA you linked to in the Lifehacker article is using the same 2 year old tools package as well, man. https://launchpad.net/~phablet-team/+archive/ubuntu/tools
Not sure why you wouldn't just properly grab the latest tools.
LiquidSolstice said:
You were able to use "fastboot flashing unlock" with the Webupd8 PPA? I'm not so sure I believe that. The PPA you linked to in the Lifehacker article is using the same 2 year old tools package as well, man. https://launchpad.net/~phablet-team/+archive/ubuntu/tools
Not sure why you wouldn't just properly grab the latest tools.
Click to expand...
Click to collapse
To unlock I used a windows tool but have used the fastboot tools for various other things, I was unaware they were all so outdated thanks for the info!
great tutorial
working fine on 16.04
might need to install java to run sdk
Code:
sudo apt-get install default-jre
Hi everyone! I'm on cinnamon and I'm trying to unlock my 6p but when typing "fastboot flashing unlock" it gives me the list of fastboot commands. I downloaded the platform tools from the google site and installed adb and fastboot commands (or whatever they are ) with:
sudo apt-get install android-tools-fastboot
sudo apt-get install android-tools-adb
Adb devices and fastboot devices are working tho. I have even installed java with the command posted by dogmatism. Am I missing something? TIA
hughfollett said:
Am I missing something? TIA
Click to expand...
Click to collapse
Yes, reading the OP
What you downloaded is too old.
If you absolutely want packages, you need to follow testing or unstable --> https://tracker.debian.org/pkg/android-platform-system-core. I only know debian.
rchtk said:
Yes, reading the OP
What you downloaded is too old.
If you absolutely want packages, you need to follow testing or unstable --> https://tracker.debian.org/pkg/android-platform-system-core. I only know debian.
Click to expand...
Click to collapse
But why would google release some outdated files?
hughfollett said:
But why would google release some outdated files?
Click to expand...
Click to collapse
Google isn't doing the debian packaging. A maintainer is trying to, in his spare time.
Also debian distros follow stable or testing/unstable. Stable packages stay a long time unless they contain grave or security bugs. People following stable seek.. stable stuffs rather than newest packages. I run unstable to get rather recent packages.
And even this said, the fastboot and adb packages don't seem to get the attention they should deserve.