Android系統設定Android adb 開關的方法【轉】

來源:互聯網
上載者:User

標籤:參考   模式   提示   相關   內容   adb   blank   程式   啟動   

本文轉載自:http://www.wxtlife.com/2015/11/24/Android-set-adb-status/

想第一時間擷取我的最新文章,請關注公眾號: 技術特工隊

在整機系統開發中,一般系統預設的adb開發是開啟的,那麼在對外發布的系統中,肯定是不希望預設開啟adb的,但是在開發的過程中,肯定希望能夠通過某種操作開啟adb,便於調試,這就需要在系統的某個部位做一個開關了。那麼這篇文章就是說說這邊是如何做到在系統中增加一個adb開關。

    1. 在系統中有一個usb deubg的開關,此開關是開啟usb調試的對adb 但是通過預設設定的開發人員模式都可以將其開啟。
    1. adb 啟動肯定會啟動了一個adbd服務,那麼手動將該服務kill掉就可以關閉adb服務了.當然這樣是在adbd啟動後可以這麼做,但是還是直接預設就不啟動服務吧,需要的時候在開啟吧。

開啟adbd服務實際是再系統啟動中 init.rc檔案中啟動的,裡面有很很多部分有調用start adbd或者restart adbd這部分是Android啟動流程中zygote(受精卵)啟動的,這部分涉及整個安卓的啟動流程,以及init.rc檔案的定義和使用大家可以查看網上資料。
首先要將所有系統中start adbdrestart adbd的部分將其注釋掉,不使用系統預設啟動方式。一般都是在init.rc檔案中,在使用find . -iname "init*.rc" | xargs grep "adbd" 將系統中所有有關adbd服務的都將其搜尋出來,避免遺漏。
再開看看init.rc檔案中的adbd服務是怎麼定義的:

123456 # adbd is controlled via property triggers in init.<platform>.usb.rcservice adbd /sbin/adbd class core socket adbd stream 660 system system disabled seclabel u:r:adbd:s0

實際上它是定義了一個sbin/adbd檔案為adbd服務,在init.rc檔案中定義服務,那我們就使用init.rc檔案中的觸發器來控制adbd服務的開啟與關閉。定義一個屬性persist.sys.adbd.on來標記adb的開關狀態,定義觸發器內容如下:

12345 on property:persist.sys.adbd.on=1 start adbd on property:persist.sys.adbd.on=0 stop adbd

看字面上的意思也可以大致看出來當property系統屬性persist.sys.adbd.on改變的時候在init.rc中能夠收到改變的訊息。且當屬性值為1的時候,則會調用start adbd,當為0的時候則會調用stop adbd,因為adbd是一個服務,通過start和stop即可控制,這樣通過程式中設定property屬性即可切換adb的狀態了。

大致的實現過程就是這樣了,口才文采不行,表達不好,見諒。
這裡面需要瞭解一些Android啟動過程,以及init檔案定義等。

提示:要設定系統屬性需要系統許可權才行,所以這種也只是自己開發系統應用才起作用。

關於許可權相關的文章參考http://blog.csdn.net/a345017062/article/details/6254402

Android系統設定Android adb 開關的方法【轉】

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.