(注意下文中的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 := optionalLOCAL_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