為Android應用程式讀取 dev下裝置而提權2

2021-06-02 07:21:46 字數 1667 閱讀 5634

為android應用程式讀取/dev下裝置而提權(一)

中,簡單總結了提權的兩種方法: device_init和init.rc 。在此篇文章中,我將詳細總結的是稍一不留神,就容易把人弄暈乎的init.c、device_init和init.rc 三者之間的關係,ta們到底是如何工作的。

ls一下system/core/init/ 

devices.c、devices.h、

init.c

、init.h、keywords.h、parser.c、property_service.c

....

另外system/core/rootdir

/init.rc

,當然init.rc的位置可以另行指定。

init過程的起點是

init.c:     

*注釋中的序號表示執行順序    

intmain(intargc,char**argv)    

system/core/init/parser.c:

static

voidparse_config(const

char*fn,char*s)  

else

nargs = 0;  

}break;  

caset_text:  

if(nargs < maxargs)   

break;  

}  }  

}voidparse_new_section(structparse_state *state,intkw,  

intnargs,char**args)  

break;  

casek_on:  

state->context = parse_action(state, nargs, args); // 7、建立乙個action 鍊錶,把這個鍊錶加入到action_list中 

if(state->context)   

break;  

}  state->parse_line = parse_line_no_op; // 9、走到這就是出錯了,段的名字沒寫或者寫多了 

}  

本章小結

經過上面的分析,對/dev/裝置許可權的修改放在不同的位置會有覆蓋的效果,device.c內的修改會覆蓋early-init段內的命令,init 段內的命令會覆蓋device.c中的修改,如果3個位置都有對用乙個裝置許可權的修改,那init段的修改會最終生效。

Android學習筆記五 為應用程式打包

apk專案打包有兩種方式 1 專案發布成功,在bin下會生成乙個 專案名.apk檔案。同名的.apk會直接覆蓋原來安裝的軟體。應用軟體的名稱為 androidmanifest.xml下的package名稱。2 簽名的方式 簽名的意義 為了保證每個應用程式開發商合法id,防止部分開發商可能通過使用相同...

判斷Android應用程式的是否為debug

在開發android應用程式時,我們可以在androidmanifest.xml中設定其debug屬性 示例1android icon drawable ic launcher android debuggable true 只有android debuggable true 時我們才可以在手機上除...

Android應用程式簽名

android系統要求所有的程式經過數字簽名才能安裝,如果沒有可用的數字簽名,系統將不許安裝執行此程式,不管是模擬器還是真實手機。因此,在裝置或者是模擬器上執行除錯程式之前,必須為應用程式設定數字簽名。android 系統僅僅會在安裝的時候測試簽名證書的有效期,如果應用程式的簽名是在安裝之後才到期,...