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