Android 系统签名打包方法

Android 系统签名打包方法方式一命令行生成(推荐):此方式不需要配置,步骤也不多。1、在应用程序manifest.xml文件根节点中加入属性:Android:sharedUserId=“android.uid.system”;2、在android系统目录build/target/product/security/拷贝系统签名文件:platform.x509.pem、platform.pk8;3、在out/host/linux-x86/framework目录下找到signapk.jar文件;4、把三个文件(plat

大家好,又见面了,我是你们的朋友全栈君。

方式一 命令行生成(推荐):
此方式不需要配置,步骤也不多。

1、在应用程序manifest.xml文件根节点中加入属性:Android:sharedUserId=“android.uid.system”;

2、在android系统目录build/target/product/security/拷贝系统签名文件:platform.x509.pem、platform.pk8;

3、在out/host/linux-x86/framework目录下找到signapk.jar文件;

4、把三个文件(platform.x509.pem、platform.pk8、signapk.jar)放在一个文件夹下,再把需要系统签名的test.apk也放在该文件下。

5、window cmd 路径要在引导(cd)该文件夹下,利用签名工具signapk.jar修改应用程序签名:命令为:java -jar signapk.jar platform.x509.pem platform.pk8 test.apk testsign.apk

方式二 更改AS 打包配置:
此方式配置繁琐,但一劳永逸,适合频繁打包的场景
使用keytool-importkeypair工具
原理:
就是通过Android studio 直接给 apk 加上开发者签名(jks文件),使用 keytool-importkeypair 对jks文件进行系统签名,在出包的时候,直接使用带有系统签名的 jks 对 apk 进行签名,这样编译生成的 apk 文件就自带系统签名了

1、使用Android studio 生成你自己的 jks 文件,如下图;

在这里插入图片描述
如果,之前没有的就新建,点击Create New … 设置密码(易记,建议123456),如下图:

在这里插入图片描述

 然后Next – Finish

2、使用keytool-importkeypair对jks文件引入系统签名
把platform.x509.pem、platform.pk8和上一部生成的jks文件统一放到一个文件夹下,比如我的是放在工程目录的 signAPK目录下

在这里插入图片描述
将下载好的keytool-importkeypair配置一下,其实主要就是配置一下环境变量,不熟悉的可以阅读官方文档,然后使用下面这条命令(需要在linux下,用windows的可以去在linux下生成jks,然后复制出新的jks回原目录也可以)对jks文件引入系统签名:

 ./keytool-importkeypair -k [jks文件名] -p [jks的密码] -pk8 platform.pk8 -cert platform.x509.pem -alias [jks的别名]

例如我的对应的就是:
./keytool-importkeypair -k SignDemo.jks -p 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias SignDemo

运行完这条命令之后,我们就得到了有系统签名的jks。

keytool-importkeypair工具下载链接:https://github.com/getfatday/keytool-importkeypair

3、配置gradle(app)
在Android区域下(与defaultConfig同级)添加signingConfigs配置:
依次填写jks的路径,密码,别名等

apply plugin: ‘com.android.application’

android {

    compileSdkVersion 23
    buildToolsVersion “23.0.2”

    defaultConfig {

        applicationId “com.cxq.signdemo”
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 1
        versionName “1.0”
    }
    signingConfigs {

        release {

            storeFile file(“../signApk/SignDemo.jks”)
            storePassword ‘123456’
            keyAlias ‘SignDemo’
            keyPassword ‘123456’
        }

        debug {

            storeFile file(“../signApk/SignDemo.jks”)
            storePassword ‘123456’
            keyAlias ‘SignDemo’
            keyPassword ‘123456’
        }
    }
    buildTypes {

        release {

            minifyEnabled false
            proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’
        }
    }
}

dependencies {

    compile fileTree(dir: ‘libs’, include: [‘*.jar’])
    testCompile ‘junit:junit:4.12’
    compile ‘com.android.support:appcompat-v7:23.3.0’
}

4、运行 

经过以上配置之后,以后每次直接点击run,app 就可以带着系统签名,直接安装到设备上了

本文转载自:https://blog.csdn.net/cui130/article/details/89451422

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151958.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 命令行修改hosts_windows host文件

    命令行修改hosts_windows host文件命令行修改host文件打开终端;sudovi/etc/hosts;提示输入电脑密码输入密码,点击enter键,进入host页面;点击键盘i,命令行最下方显示–INSERT–,意思是当前可以编辑,输入需要修改的host;点击esc退出编辑;同时按住shift和:,输入wq保存退出host页面;…

    2022年10月11日
  • 移动机器人轮式里程计

    移动机器人轮式里程计移动机器人灵魂三问:我在哪?我要去哪里?怎么去?其中,第一问对应机器人定位问题。定位问题可阐述为:移动机器人根据自身状态、传感器信息实时确定自己在世界(全局或局部)中的位置与姿态。阿克曼转向的无人驾驶汽车的定位方案主要有:轮式里程计、视觉里程计、激光里程计、惯性导航模块(IMU+GPS)以及多传感器融合。轮式里程计是一种最简单,获取成本最低的方法。与其它定位方案一样,轮式里程计也需要传感器感知外部信息,只不过,轮式里程计采用的电机转速测量模块是一种成本非常低廉的传感器。本文对搭建智能小车系统过程.

    2022年6月15日
  • android退出app代码,Android应用退出代码各种方式

    android退出app代码,Android应用退出代码各种方式1.点击按钮最小化app返回到home//并不会退出app,只是最小化findViewById(R.id.button3).setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){Intentintent=newIntent(Intent.ACTION_MAIN);intent.addCategory(In…

    2022年7月17日
  • pychrm激活码破解方法

    pychrm激活码破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
  • 第二范式和bcnf范式区别(第二范式改第三范式)

    文章系转载,通俗易懂,写了很久代码,数据库知识一直薄弱,学习中;本文能够很好帮助理解,谢谢原作者!转载WencoChen发布于2019-03-0216:08:45阅读数4353收藏展开文章目录什么是”范式(NF)” 1.第一范式(1NF) 2.第二范式(2NF) 2.1函数依赖 2.1.1完全函数依赖 2.1.2部分函数依赖 2….

    2022年4月16日
  • 中标麒麟/NeoKylin U盘安装系统「建议收藏」

    中标麒麟/NeoKylin U盘安装系统「建议收藏」这里以NeoKylin6为例,其他版本与此相类似大同小异。但是下载指定版本的镜像时要注意配合该版本的软件包是否充足,不然就会遇到安装好系统很多软件无法安装或更新的情况。1.官方下载地址:http://download.cs2c.com.cn/neokylin/desktop/releases/2.第二步,在上个地址中找你想要下载的版本,注意前面说的先检查下资源,以我想下载的版本6.0为…

    2022年8月10日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号