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

Android App系统签名

1.在AndroidManifest中添加

android:sharedUserId="android.uid.system"

2.获取系统签名
把以下所有文件放入同一个文件夹命名为sign
在Android系统源码中的\build\target\product\security目录下找到platform.x509.pem 和 platform.pk8两个文件;
在out/host/Linux-x86/framework目录下找到signapk.jar文件
找到 libconscrypt_openjdk_jni库
若是mac系统拷贝
prebuilts/sdk/tools/darwin/lib64/libconscrypt_openjdk_jni.dylib
若是Linux系统拷贝
prebuilts/sdk/tools/linux/lib64/libconscrypt_openjdk_jni.so
需要进行系统签名的app.apk
PS:有的系统在android源代码里是编译产生的,
在out/host/linux-x86/lib/ 或者 out/host/linux-x86/lib64/目录下面
3.进入sign目录执行以下命令即可完成签名即可

java -Djava.library.path=. -jar signapk.jar platform.x509.pem platform.pk8 app.apk app_sign.apk

以上即可完成普通app获得系统权限
若是需要在Android Studio使用要完成以下步骤

4.通过platform.x509.pem platform.pk8 生成签名keystore,可在github上下载脚本
https://github.com/getfatday/keytool-importkeypair
放入platform.x509.pem platform.pk8所在目录
执行以下命令


./keytool-importkeypair -k ~/.android/debug.keystore -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform

5.在Android studio中使用
 

signingConfigs {
       sginconfig {
           keyAlias 'platform'
           keyPassword 'android'
           storeFile file('/Users/macbook/.android/debug.keystore')
           storePassword 'android'
       }
   }
   buildTypes {
       release {
           signingConfig signingConfigs.sginconfig
           minifyEnabled false
           proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
       }
       debug {
           signingConfig signingConfigs.sginconfig
           minifyEnabled false
           proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
       }
   }


http://www.kler.cn/a/350040.html

相关文章:

  • 利用Kubespray安装生产环境的k8s集群-排错篇
  • 安卓动态设置Unity图形API
  • AIGC浪潮下,图文内容社区数据指标体系如何构建?
  • 150 Linux 网络编程6 ,从socket 到 epoll整理。listen函数参数再研究
  • Unity中实现伤害跳字效果(简单好抄)
  • C#中的语句
  • 苍穹外卖学习笔记(二十二)
  • 集成mqtt协议 并以线程池来读取请求
  • springboot医院预约挂号系统
  • Paramiko的keepalive机制
  • ubuntu安装docker及docker compose
  • 创建包含可导入浏览器信任的SSL自签名证书
  • jeecg3版本的vue,离线启动
  • Python中asyncio的多种用法:异步同步
  • 解决php连接本地mysql连接错误的问题
  • MySQL改密码后不生效问题
  • Flutter-发现局域网中的设备
  • 使用Qwen千问大模型和LangChain打造RAG应用
  • QObject: Cannot create children for a parent that is in a different thread
  • mysql 慢查询记录
  • docker网络管理详解 一
  • 各种软件学习版本Mark 长更
  • springBoot 实现 cas身份认证登录
  • 【计算机网络】详解IP协议网段划分路由转发子网掩码网络号
  • 78天闭门深造1258页SpringCloud学习进阶笔记,再战蚂蚁金服
  • C++中的引用详解