Android 脚本文件替换APP内数据

1、写一个脚本复制文件

#!/system/bin/sh

FLAG_FILE=/data/local/tmp/preinstalled
SOURCE_FILE=/vendor/etc/moyujun.db
TARGET_FILE=/data/data/com.moyujun.demo/databases/moyujun.db
SLEEP_TIME=2
# 检测是否进行过数据替换
if [ ! -f $FLAG_FILE ]; then
    while true; do
    	# 判断一下文件是否存在
        if [ -f $TARGET_FILE ]; then
            echo "file installed!!!"
            # 写一下属性
            setprop persist.sys.moyujun.used 1
            # 延迟两秒,写完属性rc文件自动设置权限
            sleep $SLEEP_TIME
            cp -f $SOURCE_FILE $TARGET_FILE
            #给一下拷贝过后的文件权限
            chmod 777 $TARGET_FILE
            #记录数据替换成功,避免重复操作
            touch $FLAG_FILE
            echo "copy done."
            break;
        else
            echo "file not install"
            # 文件不存在,检测是否安装
            if pm list packages com.moyujun.demo | grep -q "package:com.moyujun.demo"; then
                setprop persist.sys.moyujun.install 1
            fi
            sleep $SLEEP_TIME
        fi
    done
fi

3、找一个系统内的rc文件,添加

# 开机运行脚本
on property:sys.boot_completed=1
    start preinstall
    
# 检测到apk安装,给权限,不然db文件无法监测
on property:persist.sys.moyujun.install=1
	chmod 777 data/data/com.moyujun.demo/

# 检测到db文件存在,给权限
on property:persist.sys.moyujun.used=1
    chmod 777 data/data/com.moyujun.demo/databases/
	
service preinstall /system/bin/preinstall
    oneshot
    disabled
    user shell
    group shell
    seclabel u:r:shell:s0

4、项目.mk文件中复制preinstall和moyujun.db到指定的out目录

PRODUCT_COPY_FILES += \
    $(LOCAL_PATH)/preinstall:$(TARGET_COPY_OUT_SYSTEM)/bin/preinstall \
    $(LOCAL_PATH)/moyujun.db:$(TARGET_COPY_OUT_VENDOR)/etc/moyujun.db
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值