android apk 的root 權限和USB adb 權限的區別
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