IDevicePolicyManager.aidl 定義**跨進程介面**(IPC),系統服務 DevicePolicyManagerService 實現該介面,客戶端(App)通過代理對象調用。
App (Client Process)
→ DevicePolicyManager (SDK 封裝類)
→ IDevicePolicyManager.Stub.Proxy (Binder 代理)
→ Binder 驅動 (Kernel)
→ DevicePolicyManagerService (System Server Process)
→ 實際邏輯執行
→ 返回值回傳
frameworks/base/core/java/android/app/admin/IDevicePolicyManager.aidlframeworks/base/services/core/java/com/android/server/devicepolicy/DevicePolicyManagerService.javaframeworks/base/core/java/android/app/admin/DevicePolicyManager.javaint getPasswordQuality(int userHandle, String admin);DevicePolicyManagerService 搜尋同名方法實現。DevicePolicyManagerService.getPasswordQualityLocked() → 讀取設備策略 XML/數據庫。android:name(<service android:name=".MyAIDLService">)。intent-filter 中 action 唯一標識,避免客戶端綁定錯誤服務。bindService 時指定完整 ComponentName 或 Intent.setPackage() 精確匹配。# 查看 Binder 事務
adb shell dumpsys activity services | grep DevicePolicyManager
# 監控 IPC 調用
adb shell setprop debug.binder.enable_user_copy_tracking 1
adb logcat -b events | grep binder
AIDL 定義介面,Binder 驅動跨進程傳輸,服務端在 System Server 進程實現邏輯。追蹤方法:AIDL → Service 實現 → 邏輯委託層。自定義 IPC 需自建 AIDL + Service,不可修改系統介面。