1. 程式人生 > 程式設計 >Android user版通過adb_enable開啟adb 除錯 不提示對話方塊的流程分析

Android user版通過adb_enable開啟adb 除錯 不提示對話方塊的流程分析

需求解讀

由於定製rom給使用者具體需求如下:

  • 入工廠測試app自動開啟adb除錯模式,退出就關閉,防止客戶的使用者安裝其它應用(直接通過改變Settings.Global.ADB_ENABLED欄位)
  • 開啟usbdebug不提示彈出框
  • 禁止除錯圖標出現在通知狀態列

過程分析

通過欄位關閉和開啟usb除錯模式

通過開啟開發者模式最終發現開啟或者關閉是改變如下欄位:

Settings.Global.putInt(getContentResolver(),Settings.Global.ADB_ENABLED,0);

開啟USBdebug不彈框流程

當adb_enable為0時會關閉adb除錯模式,為1是會有彈框提示點選確認時會預設開啟usb除錯模式;通過程式碼查詢發現在frameworks\base\services\usb\java\com\android\server\usb\UsbDeviceManager.java中監聽

在這裡插入圖片描述

傳送訊息handler訊息

在這裡插入圖片描述

獲取訊息,進入如下方法

在這裡插入圖片描述

調取mDebuggingManager.setAdbEnabled(mAdbEnabled);目前就以ENABLED為例

在這裡插入圖片描述

收到訊息建立執行緒:

在這裡插入圖片描述

監聽

在這裡插入圖片描述

傳送handler訊息,得到相應的key

在這裡插入圖片描述

進一步調取

在這裡插入圖片描述

啟動對應的activity,標記為對應的activity報名和類名

在這裡插入圖片描述

修改frameworks\base\packages\SystemUI\src\com\android\systemui\usb\UsbDebuggingActivity.java
遮蔽授權彈框

在這裡插入圖片描述

禁止通知狀態列usb顯示

/device/rockchip/xxxx/system.prop 新增 欄位persist.adb.notify=0

實現完成

總結

到此這篇關於Android user版通過adb_enable開啟adb 除錯 不提示對話方塊的文章就介紹到這了,更多相關android 開啟adb 除錯內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!