1. 預置apk,使其不可卸載
第一步:
在 “/vendor/huawei/packages/apps” 目錄下創建一個對應名稱的文件夾。
第二步:
將所需apk放入文件夾中。
第三步, 編輯 Android.mk :
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Module name should match apk name to be installed.
#設置apk的名字
LOCAL_MODULE := HuaweiMobiControl
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
第四步,編輯 packages.mk:
PRODUCT_PACKAGES += HuaweiMobiControl
第五步:
在 /device/ontim目錄下找到相應的版本,打開其中的 “項目名.mk” 文件, 添加:
#編譯項目時,會在對應的版本中添加上這個apk。
PRODUCT_PACKAGES += HuaweiMobiControl
第六步:
編譯一下整個項目,運行調試,就會將apk編進 "/system/priv-app/" 或 " /system/app"。
2. 預置apk,使其可以卸載
如此的話,就不需要考慮so文件的問題了,因為這樣相當於安裝apk,會自己把so文件帶過去了。
操作步驟:
(1). 首先在 "/vendor/mediatek/proprietary/binary/3rd-party/free" 目錄中創建apk文件夾.
(其實換做其他也可以,比如 "/vendor/huawei/packages/apps")將對應的apk放入其中。
(2). 然后在其他的apk文件夾中拷貝兩個文件: Android.mk 和 packages.mk。
編輯以上兩個文件:
# 對於Android.mk,保留以下基本內容:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Module name should match apk name to be installed
LOCAL_MODULE := HuaweiMobiControl
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := platform
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app
include $(BUILD_PREBUILT)
對於 packages.mk,主要是一句話:
PRODUCT_PACKAGES += \
HuaweiMobiControl
(3). 在" /device/ontim/xxx" 目錄下找到相應的版本,打開其中的 “項目名.mk” 文件, 添加: PRODUCT_PACKAGES += HuaweiMobiControl
(4). 這樣就把apk預置進了 "/out/target/product/xxx/system/vendor/operator/app" 目錄下。
重新編譯項目即可。
如何查看是否已經編譯進去了??
1. 打開手機settings,點擊應用管理,可以看到安裝的apk。
2. 如果沒有,電腦鏈接手機,執行命令adb shell, 然后進入/system/app/ 或/system/priv-app/ ,在這個目錄中查看手機的apk。
3. 如果是可卸載的,就去 ”/out/target/product/xxx/system/vendor/operator/app“ 目錄查找。