android: 对apk进行系统签名
下午收到合作伙伴给的测试的Apk,该apk需要用到系统权限,并且要在我司开发的android开发板上运行。本来想图省事,于是直接使用 adb push 命令将这个apk push 到system/app目录下,后来发现apk push成功了,但是重启板子后,他们的apk 死活跑不起来,甚至launcher上连图标都没有!后来咨询他们的工程师,说是需要给该apk 加上系统签名,并且要使用adb install 指令才能安装成功。通过反编译他们的apk, 注意到清单文件中声明了:
android:sharedUserId="android.uid.system"
所以要是直接使用adb install 指令安装是肯定不行的,可能会报一些:
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE 诸如此类的问题。
于是找系统组的人要了签名证书文件:platform.pk8 和 platform.x509.pem,对该apk进行系统签名:
java -jar signapk.jar platform.x509.pem platform.pk8 8761_Dongle_Demo.apk 8761_Dongle_signed.apk
signapk.jar 是签名工具。
8761_Dongle_Demo.apk 是合作伙伴给的未签名的apk
8761_Dongle_signed.apk 是我指定的生成的apk的名字
执行:
这样就能生成带系统签名的apk, 再次执行adb install 就不会再报 INSTALL_FAILED_SHARED_USER_INCOMPATIBLE 这样的问题了。
关于 platform.pk8 和 platform.x509.pem 这两个文件
这两个文件位于: /build/target/product/security/ 目录下:http://androidxref.com/4.4_r1/xref/build/target/product/security/
但要注意不能直接使用AOSP code中的这两个文件,这两个文件由定制android系统的厂商提供。
signapk.jar 下载链接:链接: https://pan.baidu.com/s/1mVQTwLP_Ju52p5A_MGr8UQ 提取码: ba3c
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2019-05-08 android: 日期转Unix时间戳,Unix时间戳转日期,带时区