admin管理员组文章数量:1614276
背景
这两天,一直在折腾,从app上获取Android设备上的SN问题,折腾良久,最终,还是使用系统签名的办法解决掉了,想着把开发的流程简单记录一下,也算一种积累了,可能存在很多问题,望海涵。
1、AndroidManifest.xml 中添加shareUserId
android:sharedUserId="android.uid.system"
2、生成系统签名文件
在使用shareUserId之后,直接打包或者运行会报错闪退,具体错误应该是INSTALL_FAILED_SHARED_USER_INCOMPATIBLE这个问题,出错的原因,是在使用shareUserId之后,需要使用和系统相同的一个签名文件,所以就需要找Android的原生应用签名文件,具体见Google的git上的Android源码,地址如下:
https://android.googlesource/platform/build/+/donut-release/target/product/security
主要从Google的git上获取几个相应的文件,可以直接使用tgz进行下载,具体如下:
主要就是上面的两个文件:media.pk8、media.x509.pem
ps:有些设备可能厂家会对原生应用的签名文件进行修改,所以需要跟硬件厂家索要。
3、使用keytool工具进行签名生成
在准备好上面的两个签名文件之后,需要使用keytool进行签名生成,可从网上把keytool下载下来,地址如下:
https://github/getfatday/keytool-importkeypair
4、生成签名文件
在项目Android项目跟目录下,新建一个文件夹,例如叫signJks,并把准备的keytool和签名文件放到这个文件夹下
在signJks文件夹下,创建signature.sh脚本,担心有格式问题,可以使用git bash进行创建,在git bash中进入到signJks所在目录,执行touch signature.sh命令,回车就行了:
使用文本编辑工具,或者其他开发软件,编辑signature.sh
./keytool-importkeypair -k demos.jks -p 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias demos
命令解释如下:
1,demos.jks是生成的签名文件名称;
2,-p 123456 为签名文件的密码
3,-alias demos是签名文件的别称
5、在Android项目中配置,具体配置为build.gradle,具体如下:
找到,signingConfigs 可以根据上图进行调整,其中file是生成的签名文件的相对路径,例如:
../signJks/demos.jks
6、启动项目之前,尽量先clean && rebuild一次项目,在打包时注意更换签名地址。
版权声明:本文标题:关于Android 10添加系统签名的方法 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1728671985a1169181.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论