ionic cordova build android生成的是带签名的android-debug.apk, 这个是可以在手机上安装的, 但是换个电脑打包这个签名就不一样了, 这样就不能直接替换安装了, 需要卸载了再安装.

ionic cordova build android --release 生成的是android-release-unsigned.apk, 这个apk是没有签名的, 无法安装到手机, 需要我们签名

https://blog.csdn.net/jiangwei0910410003/article/details/50402000 - 深度解析

https://www.jianshu.com/p/286d2b372334

https://www.cnblogs.com/share123/p/5900583.html

http://blog.csdn.net/maxbalance/article/details/49157579

给apk签名一共要用到3个工具,或者说3个命令,分别是:keytool、jarsigner和zipalign,下面是对这3个工具的简单介绍:

1)keytool:生成数字证书,即密钥,也就是上面说到的扩展名为.keystore的那类文件;JDK包含

2)jarsigner:使用数字证书给apk文件签名;JDK包含

3)zipalign:对签名后的apk进行优化(非必须),提高与Android系统交互的效率(Android SDK1.6版本开始包含)

1. 生成keystore文件, 中间输入的密码牢记

keytool -genkey -v -keystore mark.keystore -alias mark.keystore -keyalg RSA -validity 20000

2. 对apk签名

前面的是生成的apk文件, 后面的是要签名的apk路径, 可以相对和绝对

jarsigner -verbose -keystore mark.keystore -signedjar mark_signed.apk d:/GitHub/qqtr/apk/android-release-unsigned.apk mark.keystore

3. 查看证书信息 - 私钥信息

将签名后的apk解压, 进入解压的目录, 执行下面的命令

keytool -printcert -file META-INF/*.RSA

所有者: CN=mark, OU=mark, O=mark, L=SZ, ST=guangdong, C=CN
发布者: CN=mark, OU=mark, O=mark, L=SZ, ST=guangdong, C=CN
序列号: 4b8b5121
有效期开始日期: Tue Dec 26 13:36:45 CST 2017, 截止日期: Wed Sep 28 13:36:45 CST 2072
证书指纹(私钥Hash, 用GenSignature看到的就是这个MD5):
MD5: D6:BF:74:FA:B6:29:2C:D8:9F:45:0A:8E:B2:7F:6D:97
SHA1: 93:2B:E9:CC:6E:41:01:A7:B7:7C:CC:DC:80:A9:6B:29:25:DB:A8:E9
SHA256: 89:37:59:99:FA:36:57:52:E6:B3:2D:82:29:C0:F7:FF:B3:65:5F:72:8A:86:D4:6C:41:44:DF:C4:2E:CE:CE:53
签名算法名称: SHA256withRSA
版本: 3

4. APP工具查看证书信息

使用下面这个APP, 通过包名查看任意APP的签名值

https://files.cnblogs.com/files/wancy86/Gen_Signature_Android2.apk

5. 查看APP的实际签名信息

解压APK后查看 \META-INF\XXXX.RSA中的内容

这里我们看到的都是二进制文件,因为RSA文件加密了,所以我们需要用openssl命令才能查看其内容

openssl pkcs7 -inform DER -in XXXX.RSA -noout -print_certs –text

ionic andorid apk 签名, 查看签名MD5的更多相关文章

  1. 查看APK包名签名等信息

    有些游戏第三方比如分享需要配置游戏包名和签名,不同渠道包名签名又不同,所以时常需要查看不同apk包等签名信息,之前是使用等微博开放平台的手机客户端查看apk签名,前提是知道包名,网上找了下查看签名和包 ...

  2. android获取未安装APK签名信息及MD5指纹

    站在巨人的肩膀上写博客: http://blog.csdn.net/wulianghuan/article/details/18400581 http://www.jb51.net/article/7 ...

  3. android 推断Apk是否签名和 签名是否一致

    推断Apk是否签名 用命令:jarsigner -verify -verbose -certs <apk文件> 假设有Android Debug字樣就是debug 假设已经签名: [证书的 ...

  4. apk的重签名

    1.      生成Android APK包签名证书 1).     在doc中切换到jdk的bin目录 cd C:\Program Files\Java\jdk1.6.0_18\bin 2).    ...

  5. Android 验证APK是否已经签名或是否是Debug签名

    https://source.android.google.cn/ http://www.android-doc.com/tools/publishing/app-signing.html Signi ...

  6. 转 对APK进行重签名

    1.      生成Android APK包签名证书1).     在doc中切换到jdk的bin目录cd C:\Program Files\Java\jdk1.6.0_18\bin2).     运 ...

  7. ionic安卓打包apk--安卓签名

    上周项目上线,在网上看了看打包的博客,感觉不是很清晰我自己来总结下 首先,我们在项目的根目录下 build android apk 的时候执行的命令一定要是 ionic build android - ...

  8. apk增加系统签名的方法

    1.命令行方法给apk加系统签名在Linux环境:java -Djava.library.path=. -jar signapk.jar platform.x509.pem platform.pk8 ...

  9. mac下自己实现re-sign.jar对apk进行重签名

    利用Robotinum对给的apk文件进行自动化测试,在不知道源码的情况下,只有apk文件如何进行自动化测试呢? 首先需要对apk文件进行重签名,并获得该apk文件的包名和程序入口的类名. 最开始网上 ...

随机推荐

  1. Excel ——多表关联查询-vlookup

    一.分组 需求: 在B列的右侧添加一列[消费分组]对B列的[月分组水平]进行分组,原始数据如下: 公式:在 C2 输入:“=VLOOKUP(B2,$E$1:$G$4,2,1)”,下拉填充. 提示:VL ...

  2. Codeforces 870C Maximum splitting (贪心+找规律)

    <题目链接> 题目大意: 给定数字n,让你将其分成合数相加的形式,问你最多能够将其分成几个合数相加. 解题分析: 因为要将其分成合数相加的个数最多,所以自然是尽可能地将其分成尽可能小的合数 ...

  3. c#一步一步实现ORM

    本篇适合新手了解学习orm.欢迎指正,交流学习. 现有的优秀的orm有很多. EF:特点是高度自动化,缺点是有点重. Nhibnate:缺点是要写很多的配置. drapper:最快的orm.但是自动化 ...

  4. JavaScript中值类型与引用类型

    JavaScript中的变量类型有哪些? 值类型:字符串(string).数值(number).布尔值(boolean).null.undefined 引用类型:对象(Object).数组(Array ...

  5. ubantu16.04安装sougou输入法

     安装搜狗拼音输入法下载安装包:http://pinyin.sogou.com/linux/?r=pinyin如果直接安装不了,则按如下方法进行安装:sudo dpkg -i sogoupinyin_ ...

  6. 一个小demo 实用selenium 抓取淘宝搜索页面内的产品内容

    废话少说,上代码 #conding:utf-8 import re from selenium import webdriver from selenium.webdriver.common.by i ...

  7. Err.number错误号和可捕获的 Microsoft access 数据库引擎和 DAO错误说明

    错误码        信息2420        数字语法错误2421        日期语法错误2422        字符串语法错误2423        ‘.’.‘!’.或 ‘()’的使用无效2 ...

  8. Java并发编程(七)-- ThreadLocal

    提到ThreadLocal,有些Android或者Java程序员可能有所陌生,可能会提出种种问题,它是做什么的,是不是和线程有关,怎么使用呢?等等问题,本文将总结一下我对ThreadLocal的理解和 ...

  9. IntelliJ IDEA使用教程(简介)

    最智能的IDE IDEA 全称IntelliJ IDEA   是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支 ...

  10. Scrapy基础(十三)————ItemLoader的简单使用

    ItemLoader的简单使用:目的是解决在爬虫文件中代码结构杂乱,无序,可读性差的缺点 经过之前的基础,我们可以爬取一些不用登录,没有Ajax的,等等其他的简单的爬虫回顾我们的代码,是不是有点冗长, ...