700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android-如何预置APK使得用户可以卸载 并且恢复出厂设置时能够恢复?

Android-如何预置APK使得用户可以卸载 并且恢复出厂设置时能够恢复?

时间:2021-12-15 04:11:43

相关推荐

Android-如何预置APK使得用户可以卸载 并且恢复出厂设置时能够恢复?

方案:

第一步:把apk编译到/system/preloadapp/

第二步:在系统启动时将其安装到/data/app/

第三步:配置各种相关权限

---------------------------------------------------------------------------------

详解:

【编译】创建preloadapp目录:

|----Android.mk#Makefile

|----preloadapp.sh #安装脚本

|----HelloWorld.apk #要预置的Apk.

Android.mk:

LOCAL_PATH := $(call my-dir)#preloadapp.shjust_copy_to:=$(PRODUCT_OUT)/system/bin/just_copy_from:=$(LOCAL_PATH)/preloadapp.sh$(shell mkdir -p $(just_copy_to))$(shell cp $(just_copy_from) $(just_copy_to))#HelloWorld.apkinclude $(CLEAR_VARS)LOCAL_MODULE := HelloWrold.apkLOCAL_MODULE_TAGS := optional userdebugLOCAL_MODULE_CLASS := EXECUTABLESLOCAL_MODULE_PATH := $(TARGET_OUT)/preloadappLOCAL_SRC_FILES := $(LOCAL_MODULE)include $(BUILD_PREBUILT)

做了两件事:1.把当前目录的preloadapp.sh拷贝到/system/bin/

2.把当前目录所有的apk拷贝到/system/preloadapp/

(preloadapp.sh负责在首次启动时把/system/preloadapp/下的apk拷贝到/data/app/)

preloadapp.sh:

#!/system/bin/shPATH=/sbin:/system/sbin:/system/bin:/system/xbinexport PATHPRELOAD_DEST=/data/appPRELOAD_FLAG=${PRELOAD_DEST}/preloadappPRELOAD_SOURCE=/system/preloadappif [ ! -d ${PRELOAD_DEST} ]; thenmkdir -p ${PRELOAD_DEST}fiif [ ! -f ${PRELOAD_FLAG} ]; thencp -f -p ${PRELOAD_SOURCE}/* ${PRELOAD_DEST}/echo "abcd" > ${PRELOAD_FLAG}fi

【安装】boot完成后拷贝:

在system/ore/rootdir/****/init.rc中增加以下内容:

service preloadapp system/bin/preloadapp.shclass mainuser systemgroup systemoneshoton property:sys.boot_completed=1chown system shell /system/bin/preloadapp.shchmod 0500 /system/bin/preloadapp.shchown system system /system/preloadapp/*chmod 0701 system /system/preloadapp/*start preloadapp

【权限】

增加external/sepolicy/preloadapp.te:

# preloadapp - servicetype preloadapp, domain;type preloadapp_exec, exec_type, file_type;init_daemon_domain(preloadapp)allow preloadapp app_data_file:file { read write create getattr };

在external/sepolicy/service_contexts中添加:

/system/bin/preloadapp.sh u:object_r:preloadapp_exec:s0

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。