【Android 逆向】Android 权限 ( adb 降权相关的属性 | ro.secure 属性 | ro.debuggable 属性 | service.adb.root 属性 )
文章目錄
- 一、adb 降權
- 1、ro.secure 屬性
- 2、ro.debuggable 屬性
- 3、service.adb.root 屬性
- 4、ro.kernel.qemu 屬性
一、adb 降權
遠程 adb 命令 , 需要通過 adbd 服務程序處理 ;
adbd 文件的權限 , 屬于 root 權限 , shell 分組 ; 因此這里涉及到 adb 的降權 ( Drop Privileges ) 問題 ,
-rwxr-xr-x 1 root shell 1758824 2009-01-01 16:00 adbd一些系統屬性可以影響 adb 是否降權 ; adb 的權限初始為 root 權限 ;
1、ro.secure 屬性
ro.secure 屬性 , 配置 是否開啟安全防護 ; 如果該屬性配置為 1 , 則 adb 的權限就會降權 ;
調用 getprop ro.secure 命令 , 獲取該屬性的屬性值 ;
對應 /system/core/adb/adb_main.cpp 源碼位置 :
#if defined(ALLOW_ADBD_ROOT)// 影響'adb root'和'adb unroot'的屬性是ro.secure和// 可調試的。在此上下文中,名稱不會產生預期的行為 特別明顯。//// ro.debugable:// 允許成為根,但不一定是默認值。在上設置為1// eng和userdebug構建。//// ro.secure:// 默認情況下刪除特權。在用戶調試和用戶生成時設置為1。property_get("ro.secure", value, "1");bool ro_secure = (strcmp(value, "1") == 0); #elsereturn true; // "adb root" not allowed, always drop privileges. #endif /* ALLOW_ADBD_ROOT */ } #endif /* ADB_HOST */Android 源碼地址 : /system/core/adb/adb_main.cpp
2、ro.debuggable 屬性
ro.debuggable 屬性 , 配置 是否可以調試 ;
調用 getprop ro.debuggable 獲取的屬性為 0 ;
對應 /system/core/adb/adb_main.cpp 源碼位置 :
#if defined(ALLOW_ADBD_ROOT)property_get("service.adb.root", value, "");bool adb_root = (strcmp(value, "1") == 0); // adb_root 值為 false ; bool adb_unroot = (strcmp(value, "0") == 0); // adb_unroot 值為 true // ...except "adb root" lets you keep privileges in a debuggable build.//adb_root 為 false , 該分支不會進入 if (ro_debuggable && adb_root) {// 該分支永遠不會進來 // 但是只要進來了 , 就意味著 adb 不降權 , 持有 root 權限 drop = false;}// ...and "adb unroot" lets you explicitly drop privileges.if (adb_unroot) {drop = true;}return drop; #elsereturn true; // "adb root" not allowed, always drop privileges. #endif /* ALLOW_ADBD_ROOT */ } #endif /* ADB_HOST */Android 源碼地址 : /system/core/adb/adb_main.cpp
3、service.adb.root 屬性
service.adb.root 屬性 , 配置 adb 是否擁有 root 權限
調用 getprop service.adb.root 命令 , 獲取的值為空 ;
4、ro.kernel.qemu 屬性
ro.kernel.qemu 屬性 , 該屬性只有模擬器有 , 手機真機沒有改配置 ;
調用 getprop ro.kernel.qemu 獲取的屬性為空 ;
對應 /system/core/adb/adb_main.cpp 源碼位置 :
#if defined(ALLOW_ADBD_ROOT)// 模擬器永遠都不安全,所以不要在那里放棄特權。// TODO:這看起來像一個bug——仿真器的行為不應該像一個設備嗎?property_get("ro.kernel.qemu", value, "");if (strcmp(value, "1") == 0) {// 該分支永遠不會命中 , 不會被執行到return false;}#elsereturn true; // "adb root" not allowed, always drop privileges. #endif /* ALLOW_ADBD_ROOT */ } #endif /* ADB_HOST */Android 源碼地址 : /system/core/adb/adb_main.cpp
總結
以上是生活随笔為你收集整理的【Android 逆向】Android 权限 ( adb 降权相关的属性 | ro.secure 属性 | ro.debuggable 属性 | service.adb.root 属性 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 逆向】Android
- 下一篇: 【Android 逆向】Android