android源码预装第三方apk,android4.4预装第三方apk,可卸载,工厂重置后能恢复。...

1.init.rc配置:

on property:init.svc.bootanim=stopped

start preinstall

service preinstall /system/bin/preinstall.sh

user root

group root

disabled

oneshot

2./system/bin/preinstall.sh脚本文件:

#!/system/bin/sh

MARK=/data/local/symbol_thirdpart_apks_installed

PKGS=/system/preinstall/

if [ ! -e $MARK ]; then

echo "booting the first time, so pre-install some APKs."

busybox find $PKGS -name "*\.apk" -exec sh /system/bin/pm install {} \;

# NO NEED to delete these APKs since we keep a mark under data partition.

# And the mark will be wiped out after doing factory reset, so you can install

# these APKs again if files are still there.

# busybox rm -rf $PKGS

touch $MARK

echo "OK, installation complete."

fi

3. android源码device/....../apps/preinstall, android.mk内容:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := preinstall.sh

LOCAL_SRC_FILES := preinstall.sh

LOCAL_MODULE_TAGS := optional

LOCAL_MODULE_CLASS := ETC

LOCAL_MODULE_PATH := $(TARGET_OUT)/bin

include $(BUILD_PREBUILT)

manager_apk := $(patsubst $(LOCAL_PATH)/%,%,$(wildcard $(LOCAL_PATH)/*.apk))

$(foreach t,$(manager_apk), \

$(eval include $(CLEAR_VARS)) \

$(eval LOCAL_MODULE     := $(notdir $(t))) \

$(eval LOCAL_MODULE_TAGS := optional) \

$(eval LOCAL_MODULE_CLASS := ETC) \

$(eval LOCAL_MODULE_PATH := $(TARGET_OUT)/preinstall) \

$(eval LOCAL_SRC_FILES   := $(t)) \

$(eval LOCAL_CERTIFICATE := shared) \

$(eval include $(BUILD_PREBUILT)) \

)

$(LOCAL_INSTALLED_MODULE): $(notdir $(manager_apk))

4.android源码device/....../device.mk增加:

#Third Part Apps

PRODUCT_PACKAGES += \

preinstall.sh \

$(patsubst $(DEVICE_SOURCES)/apps/preinstall/%,%,$(wildcard $(DEVICE_SOURCES)/apps/preinstall/*.apk))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值