Android13 在rk3588上实现自定义系统应用的一些笔记

一、将自己的应用内置到系统中,变为系统应用

  1. 在源码的packages/apps/下新建一个文件夹,我这里将文件夹命名为MySystemApp
  2. 使用系统签名打包APK,将APK放入MySystemApp文件夹中:如何生成系统签名请自己搜索
  3. 在MySystemApp下新建Android.mk:
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE        := MySystemApp # 替换你自己的模块名,建议模块名和文件夹名一致,因为我没试过不一致能否成功
LOCAL_MODULE_TAGS   := optional
LOCAL_MODULE_CLASS  := APPS
LOCAL_CERTIFICATE   := PRESIGNED
LOCAL_SRC_FILES     := MySystemApp.apk # 替换你自己的apk名字
LOCAL_PROPRIETARY_MODULE := true
include $(BUILD_PREBUILT)

对Android.mk的参数解释:

LOCAL_MODULE
用来指定模块的名称,该模块名称需要加入到PRODUCT_PACKAGES

LOCAL_MODULE_TAGS
用来指定该app在编译什么样子的版本的时候会被安装到机器上;
user: 指该模块只在user版本下才编译
eng: 指该模块只在eng版本下才编译
tests: 指该模块只在tests版本下才编译
optional:指该模块在所有版本下都编译

LOCAL_MODULE_CLASS
在采用预装这种形式的时候,该变量来指定预装的模块的类型,此处为APPS;

LOCAL_CERTIFICATE
用于设置APK的签名模式,一共有如下四种:
media:使用media签名文件签名
platform:使用平台签名文件签名,也就是系统签名
shared:使用shared签名文件签名
PRESIGNED:如果文件已经签过名,不需要重新签名,则使用PRESIGNED

LOCAL_SRC_FILES
要预装的APK源文件;

LOCAL_PROPRIETARY_MODULE
LOCAL_PRIVILEGED_MODULE 决定了其编译后的在ROM中的安装位置: 如果不设置或者设为false,安装位置为system/app; 如果设置为true,安装位置为system/priv-app。
  1. 在/device/rockchip/common/modules/hdmi_in.mk中的PRODUCT_PACKAGES里添加自己的模块名,或者在device/rockchip/rk3588/device.mk中添加,这两个地方都是成功的
PRODUCT_PACKAGES += \
   ...... \
    MySystemApp 
  1. 整编,烧录
  2. 如果是在hdmi_in.mk下添加的,是在设备的/vendor/app/目录中;在device.mk中添加的,在设备的/system/app/目录中

二、更新自己的系统应用

如果要对应用代码进行修改的话,不需要重新进行编译以及烧录

  1. 重新打包最新的APK
  2. 执行如下命令直接替换apk
adb root

adb remount

adb push '你自己新打包的apk路径' 在设备中你的apk路径
eg: adb push 'MySystemApp.apk' /system/app/MySystemApp/

adb reboot

三、暂时没了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值