Android 預置APK



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“ 目錄查找。






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM