標籤:evel 調用 protect 報錯 刪除 pre cut 影響 sys
■目標
定製自己的HOME適應車載中控螢幕
■案1
將系統的HOME刪除掉。將自建的APK植入。
■案1效果
實驗成功。但是對於使用者自己再次下載的自訂HOME無能無力。
原HOME叫Launcher2,直接將此apk刪除掉,放入自己編譯好的APK到priv-app即可。
■案2
建立新的intent HOME類別。系統調用時全部改為調用該私人類別。
■案2效果
實驗成功。使用者即便下載自訂的HOME APP,由於類別不符,一律失效。
經驗點:
- framework下遍曆所有檔案,找到Home類別相關的原始碼,一律替換為私人類別。
- 由於intent中追加了新的類別,sdk發生了變更。編譯前需要執行update-api命令。
- 其中test目錄下的Home類別相關的原始碼修改了編譯報錯,機制未深入調查,test目錄下改回去沒動不影響。
- core.mk中記錄了所有要編譯的模組,如果要加入自訂的apk源碼,該檔案中也需要追加編譯目錄。
- 修改完成後,模擬器啟動過程中報莫名錯誤。貌似在自訂apk中加入許可權代碼,問題解決。
<permission android:name="com.android.launcher.permission.PRELOAD_WORKSPACE" android:permissionGroup="android.permission-group.SYSTEM_TOOLS" android:protectionLevel="signatureOrSystem" /> <permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" android:permissionGroup="android.permission-group.SYSTEM_TOOLS" android:protectionLevel="dangerous" /> <permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" android:permissionGroup="android.permission-group.SYSTEM_TOOLS" android:protectionLevel="dangerous"/> <permission android:name="com.android.launcher.permission.READ_SETTINGS" android:permissionGroup="android.permission-group.SYSTEM_TOOLS" android:protectionLevel="normal"/> <permission android:name="com.android.launcher.permission.WRITE_SETTINGS" android:permissionGroup="android.permission-group.SYSTEM_TOOLS" android:protectionLevel="signatureOrSystem"/>
<uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.SET_WALLPAPER" /> <uses-permission android:name="android.permission.SET_WALLPAPER_HINTS" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.BIND_APPWIDGET" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> <uses-permission android:name="com.android.launcher.permission.WRITE_SETTINGS" />
Android6.0 Home定製