USB adb 權限是指,當adb 連接手機時,手機中的守護進程adbd 的權限為root 權限,從而它的子進程也具有root 權限,通常如果adb shell 看到是:
Android 4.0 以後版本:
C:\Users\mtk29\Desktop>adb shell
root@android:/ #
Android 2.3 版本:
C:\Users\mtk29\Desktop>adb shell
即表明adb 的連接是root 權限的,相反如果看到是$ 即表明是shell 權限
Android 的APK 本身都是不具備root 權限的,如果想啟用root 權限,那麼就必須借助具有root 權限的進程或者具有s bit 的文件,目前比較通用的手法是,手機root 後,內置了su到system/bin, 然後普通APP 即可借助su 命令來達到root 權限切換。
網絡上已經有同仁修改su 命令,並通過一個APK 來控制su 命令的權限控制。
如常見的Superuser: http://androidsu.com/superuser/ 這樣即可人為的控制root 權限的使用。((因很久都沒有更新了,只能用於ICS 以及以前的版本))
SuperSU: http://forum.xda-developers.com/showthread.php?t=1538053 (更新速度很快,推薦使用)
綜上所敘,如果adb 已經有root 權限,那麼讓apk 行使root 權限就很簡單了。比如在JB 版本或者以前的版本上:
adb remount
adb push su /system/bin
adb push Superuser.apk /system/app
adb shell chmod 0644 /system/app/Superuser.apk
adb shell chmod 6755 /system/bin/su
adb reboot