RK3288 android 7.1 预装可卸载APK

本文详细介绍了在RK3288平台搭载Android7.1系统中,如何实现预装可卸载的应用程序。包括创建特定目录存放APK、调整分区大小等步骤,确保应用能在烧录后自动安装,并允许用户手动卸载,同时维持安装/卸载状态在重启和重置后。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RK3288 android 7.1 预装可卸载APK

平台

RK3288 + Android 7.1

需求

ROM 中集成可卸载APK, 需满足要求:

  1. 烧录完成启动后, 应用已装上
  2. 用户可手动卸载
  3. 重启后保持应用安装/卸载状态
  4. 重置后, 应用已安装上

实现

在make 完成后, 创建out/target/product/rk3288/vendor/bundled_uninstall_back-app目录
把预装APK存放到此目录下, 结构如下:
|--out/target/product/rk3288/vendor/bundled_uninstall_back-app/
    |--apkFile-1.apk
    |--apkFile-2.apk
    ....
其中, apkFile为APK文件名, 任意, 建议使用英文最好不带字符, 避免使用中文编码

接着再重新 make
并使用 mkimage生成image文件
最后打包update.img 固件

后续

vendor 分区有大小限制, 注意APK不能超过分区大小
那么问题来了, 如何修改 分区大小?
首先, 这里走了一个弯路:

diff --git a/device/rockchip/rk3288/BoardConfig.mk b/device/rockchip/rk3288/BoardConfig.mk
index fb36305..da5ffc0 100755
--- a/device/rockchip/rk3288/BoardConfig.mk
+++ b/device/rockchip/rk3288/BoardConfig.mk
@@ -99,7 +99,7 @@ ifeq ($(strip $(USE_DEFAULT_PARAMETER)), true)
   BOARD_VENDORIMAGE_PARTITION_SIZE := $(shell python device/rockchip/common/get_partition_size.py $(TARGET_DEVICE_DIR)/parameter.txt vendor0)
   #$(info Calculated BOARD_VENDORIMAGE_PARTITION_SIZE=$(BOARD_VENDORIMAGE_PARTITION_SIZE) use $(TARGET_DEVICE_DIR)/parameter.txt)
 else
-  BOARD_VENDORIMAGE_PARTITION_SIZE ?= 52428800
+  BOARD_VENDORIMAGE_PARTITION_SIZE ?= 104857600

原来以为修改这个分区大小即可, 后面验证不可行.

正确方法

diff --git a/device/rockchip/rk3288/parameter.txt b/device/rockchip/rk3288/parameter.txt
index 37ab61e..f869e67 100755
--- a/device/rockchip/rk3288/parameter.txt
+++ b/device/rockchip/rk3288/parameter.txt
@@ -7,4 +7,4 @@ ATAG: 0x60000800
 MACHINE: 3288
 CHECK_MASK: 0x80
 PWR_HLD: 0,0,A,0,1
-CMDLINE: console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console=ttyFIQ0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(trust),0x00002000@0x00006000(misc),0x00008000@0x00008000(resource),0x0000C000@0x00010000(kernel),0x00010000@0x0001C000(boot),0x00010000@0x0002C000(recovery),0x00038000@0x0003C000(backup),0x00040000@0x00074000(cache),0x00400000@0x000B4000(system),0x00008000@0x004B4000(metadata),0x00019000@0x004BC000(vendor0),0x00019000@0x004D5000(vendor1),-@0x004EE000(userdata)
+CMDLINE: console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console=ttyFIQ0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(trust),0x00002000@0x00006000(misc),0x00008000@0x00008000(resource),0x0000C000@0x00010000(kernel),0x00010000@0x0001C000(boot),0x00010000@0x0002C000(recovery),0x00038000@0x0003C000(backup),0x00040000@0x00074000(cache),0x00400000@0x000B4000(system),0x00008000@0x004B4000(metadata),0x00100000@0x004BC000(vendor0),0x00100000@0x005BC000(vendor1),-@0x006BC000(userdata)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值