Android系統預製APK(不可解除安裝)
第一步:
在 “/vendor/.../packages/apps” 目錄下建立一個對應名稱的資料夾。
第二步:
將所需apk放入資料夾中。
第三步, 編輯 Android.mk :
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Module name should match apk name to be installed.
#設定apk的名字,XXX為apk名稱
LOCAL_MODULE := XXX
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
#簽名方式,如果是platform,代表簽名成系統軟體, 如果還是PRESIGND,表示用的是apk原本的簽名。
LOCAL_CERTIFICATE := platform
#將apk編進“/system/priv-app/目錄”,如果為false,或者不加這句話,就會編進“/system/app” 目錄, 二者區別在於前者的許可權要高於 後者
LOCAL_PRIVILEGED_MODULE := true
#(如果 LOCAL_MULTILIB 是32,意思是編譯出32位的lib庫,64異曲同工,如果是both,代表編譯出兩種庫檔案, 當然,首先要解壓 apk,看看lib庫是32的還是64的。 另外,如果手機系統是64位的,而lib庫是32位的,則需要在 “/frameworks/base/services/core/java/com/android/serve/pm/PackageManagerService.java” 中進行配置, lineNumber : 6221)
LOCAL_MULTILIB := 32
include $(BUILD_PREBUILT)
補充: LOCAL_OVERRIDES_PACKAGES := Calculator #覆蓋掉之前有的一個apk,名字叫Calculator
第四步:
在 /device/平臺/.../專案目錄下找到相應的版本,開啟其中的 “專案名.mk” 檔案, 新增:
#編譯專案時,會在對應的版本中新增上這個apk。
PRODUCT_PACKAGES += XXX
第五步:
編譯一下整個專案,執行除錯,就會將apk編進 "/system/priv-app/" 或 " /system/app"。
轉載出處:https://www.cnblogs.com/neo-java/p/6830451.html