当前位置: 首页 > news >正文

做一个Andriod系统应用的方法

背景是最近有个需求,要在某个定制的系统上做个系统应用。其实主要有2点,一是要有系统签名文件,二是系统要可以修改可读写权限。为了避免后面自己忘记怎么搞,这里留个记录。 :)

step 1

获取系统签名,用系统签名文件,给自己的应用签名,可以通过Android的signapk工具(或自定义脚本)进行签名:

java -jar signapk.jar platform.x509.pem platform.pk8 app-unsigned.apk app-signed.apk

确保使用与设备系统镜像相同的platform.x509.pemplatform.pk8文件。

PS: 可选的,可以在AndroidManifest.xml中添加系统属性

<!-- 声明共享用户ID,与系统进程共用 -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:sharedUserId="android.uid.system">

<!-- 声明所需系统权限(如安装APK) -->
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />

step 2 修改系统为可读写系盘 + 开启root权限

挂载/system分区为可读写

adb shell
su
mount -o remount,rw /system

PS:如果是模拟器,在设置中勾选打开即可,不需要上面的命令行操作。

step 3 推送app

su
cd /system/priv-app/ 
mkdir -p /system/priv-app/org.yeshen.test.system # 创建专属目录
cp /sdcard/Download/xx.apk /system/priv-app/org.yeshen.test.system
reboot
  • 推荐路径:/system/priv-app/(更高权限)或/system/app/
  • org.yeshen.test.system 替换成你的应用包名

step 4 检查应用是否安装成功

adb shell pm list packages | grep org.yeshen.test.system

step 5 调试与常见问题

  • Logcat排查错误
adb logcat | grep "PackageManager"

常见问题:

  • 签名错误:确保使用正确的platform密钥。
  • 权限不足:检查APK是否放在/system/priv-app并正确设置权限。
  • 区挂载失败:某些设备需使用mount -o rw,remount /system
  • 替代方案(无root):若设备未解锁System分区,可通过Magisk模块将应用注入系统分区(需Magisk root权限)。
  • 替代方案:在模拟器上/云真机操作,模拟器/云真机基本上都有root。 :)
http://www.dtcms.com/a/111176.html

相关文章:

  • 软件设计师之设计模式
  • 第七章 Python基础进阶-异常、模块与包(其五)
  • 手撕AVL树
  • 模运算核心性质与算法应用:从数学原理到编程实践
  • Julia语言的测试覆盖率
  • 卷积神经网络CNN 经典模型 — GoogleLeNet、ResNet、DenseNet算法原理与模型构造
  • Visual Basic语言的网络协议栈
  • AIGC时代Kubernetes企业级云原生运维实战:智能重构与深度实践指南
  • SpringAI整合Ollama集成DeepSeek
  • 搜索树——AVL、红黑树、B树、B+树
  • WinForm真入门(5)——控件的基类Control
  • 使用 Swift 实现 LRU 缓存淘汰策略
  • React编程模型:Project Reactor深度解析
  • Java的基本语法
  • 006贪心——算法备赛
  • 蓝桥杯 2023 省赛 B 组 E 题。
  • KubeVirt虚拟化管理架构
  • 热更新简介+xLua基础调用
  • 《AI大模型开发笔记》MCP快速入门实战(一)
  • 英语学习:读科技论文的难处
  • JSON介绍
  • 免费送源码:Java+ssm+MySQL SpringBoot社区配送服务系统小程序 计算机毕业设计原创定制
  • OpenMinus 源码深度解析:从 React 模式到多智能体架构实现
  • 元宇宙浪潮下,前端开发如何“乘风破浪”?
  • OCR的备份与恢复
  • Nacos 如何管理配置版本?支持配置回滚吗?如何实现?
  • 栈回溯和离线断点
  • 2024第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组
  • 4.4 代码随想录第三十五天打卡
  • 生活电子常识--删除谷歌浏览器搜索记录