(此代码是Android Q MTK)
无源码预置apk并无so文件
代码路径:项目名/vendor/mediatek/proprietary/packages/apps
在这个路径下去创建一个与要预置的apk名字一样的文件夹,在此路径下把apk文件放进去,并创建Android.mk文件
Android.mk文件为
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Module name should match apk name to be installed
#这个是apk的文件
LOCAL_MODULE := xxxx
#源码编译方式
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_PRIVILEGED_MODULE := true
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
#LOCAL_CERTIFICATE := platform
LOCAL_CERTIFICATE := PRESIGNED
#LOCAL_DEX_PREOPT := false
#之后预置到手机中的路径
LOCAL_MODULE_PATH := $(TARGET_OUT)/priv-app
include $(BUILD_PREBUILT)
然后在项目名\device\mediatek\system\common\device.mk去配置此apk
PRODUCT_PACKAGES += xxxx.apk
这里基本就完成了,但是有些还是需要去配置权限。
配置权限的路径为:项目名\frameworks\base\data\etc\privapp-permissions-platform.xml
<privapp-permissions package="xxxx">
<permission name="android.permission.WRITE_MEDIA_STORAGE"/>
<permission name="android.permission.ACCESS_CACHE_FILESYSTEM"/>
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
<permission name="android.permission.READ_EXTERNAL_STORAGE" />
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" />
<permission name="android.permission.READ_PHONE_STATE" />
<permission name="android.permission.SET_TIME" />
<permission name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<permission name="android.permission.INSTALL_PACKAGES" />
</privapp-permissions>
这些权限可以自己去反编译apk就可以加上去了。
这里有可能会编译报错,报错就把odex关掉就行了