adb的分析

一開始使用paul 的r5 root包開始就納悶,

爲什麼他的adb-windows 和 android 官方adb 有一個決定性的區別:

官方windows 下的adb push 上手機的文件都沒有可執行的權限, 而adb-windows就是777.

 

還是從代碼入手:

adb 的commandline.c  中 push 參數 會執行 do_sync_push 函數(file_sync_client.c 定義)

 

do_sync_push 函數 會調用stat 獲取文件信息 .

然後傳入sync_send  跟文件一併發送:

       static int sync_send(int fd, const char *lpath, const char *rpath,
                       unsigned mtime, mode_t mode, int verifyApk);

 

測試證實, 自己通過android源代碼編譯獲取的adb 是帶上原文件權限的.

 

估計就是因爲 adb-windows 通過修改 sync_send中傳出的 mode  , 讓目標777

 

我沒有windows下的源碼編譯環境, 沒法實現, 現在愈發發現在ubuntu 上玩 android 比windows下爽多了...

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章