在android系統源碼中預置apK

  如何將無源碼的google play APK預置進系統(有源碼和無源碼有一點區別,網上下載的google play.apk解壓之後裏面沒有源碼)?
(注意下文中的Test就是我們要預置到源碼中的googleplay.apk的名字!!網上下載的Google Play Store 4.6.17.apk,名字中含有空格,將空格去掉或者自直接將它重新命名)


1.在 packages/apps 下面以需要預置的 APK 名字創建文件夾,以預製一個名爲FaceLock的APK爲例 


2.將 FaceLock.apk 放到 packages/apps/FaceLock 下面 


3.在  packages/apps/FaceLock 下面創建文件 Android.mk,文件內容如下 :

ifeq ($(MY_FACELOCK_SCREEN), yes)

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := FaceLock
LOCAL_SRC_FILES := FaceLock.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED

LOCAL_PRIVILEGED_MODULE := true

include $(BUILD_PREBUILT)

endif

4.  在device\mediatek\common\device.mk中

# [MY]MY_FACELOCK_SCREEN][人臉解鎖][20171110] BEGIN
ifeq ($(strip $(MY_FACELOCK_SCREEN)), yes)
    PRODUCT_PROPERTY_OVERRIDES += ro.MY_face_lock=1//定義一個值 在其他地方可以判斷
    PRODUCT_PACKAGES += FaceLock //預裝應用
    PRODUCT_PACKAGES += libApkPatchLibrary//預置.so
    PRODUCT_PACKAGES += libLivenessDetect 
    PRODUCT_PACKAGES += libfacecntrl_api 
    PRODUCT_PACKAGES += libfacedetector 
    PRODUCT_PACKAGES += libfaces_managers 
    PRODUCT_PACKAGES += libfacesbase
    #注意將so庫拷貝的源路徑改成真實系統中的路徑
    ifneq ($(wildcard packages/my_app/FaceLock/libs/armeabi-v7a),)
        PRODUCT_COPY_FILES += packages/my_app/FaceLock/libs/armeabi-v7a/libApkPatchLibrary.so:system/lib/libApkPatchLibrary.so
        PRODUCT_COPY_FILES += packages/my_app/FaceLock/libs/armeabi-v7a/libfacecntrl_api.so:system/lib/libfacecntrl_api.so
        PRODUCT_COPY_FILES += packages/my_app/FaceLock/libs/armeabi-v7a/libfacedetector.so:system/lib/libfacedetector.so
        PRODUCT_COPY_FILES += packages/my_app/FaceLock/libs/armeabi-v7a/libfaces_managers.so:system/lib/libfaces_managers.so
        PRODUCT_COPY_FILES += packages/my_app/FaceLock/libs/armeabi-v7a/libfacesbase.so:system/lib/libfacesbase.so
        PRODUCT_COPY_FILES += packages/my_app/FaceLock/libs/armeabi-v7a/libLivenessDetect.so:system/lib/libLivenessDetect.so
    else
        $(error Can not find SO files of facelock! Please put them into correct place!!!)
    endif
endif
# [MY][MY_FACELOCK_SCREEN][人臉解鎖][20171110] END

發佈了33 篇原創文章 · 獲贊 5 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章