给APK签名,修改签名
简介:
本来是不需要签名的,但是我有个android的专用设备,限制安装,但是售后给我通过了一个证书的验证。
那么我想装什么软件,就需要这个证书验证。
现在记录一下签名的主要过程,还有修改签名的方法。
一:环境准备
其实也没用什么特别的工具JAVA JDK 就够用了。
https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html
根据自己的版本下载,我下载的是Windows 158.63 MB jdk-12.0.2_windows-x64_bin.exe
一路下一步安装就可以了。
二:生成签名的证书
找到你安装文件夹
D:\Program Files\Java\jdk-12.0.1\bin>keytool -genkey -alias jackadam -keyalg RSA -validity 36500 -keystore jackadam.keystore
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]: jack
您的组织单位名称是什么?
[Unknown]: technology
您的组织名称是什么?
[Unknown]: fntco
您所在的城市或区域名称是什么?
[Unknown]: zhengzhou
您所在的省/市/自治区名称是什么?
[Unknown]: henan
该单位的双字母国家/地区代码是什么?
[Unknown]: cn
CN=jack, OU=technology, O=fntco, L=zhengzhou, ST=henan, C=cn是否正确?
[否]: y 正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 36,500 天):
CN=jack, OU=technology, O=fntco, L=zhengzhou, ST=henan, C=cn
标红的可以根据自己喜好来换。会在bin目录生成证书名称为jackadam的jackadam.keystore这个密钥文件。
-validity 36500 很多资料里没写这个参数,这个参数是100年的有效期。
谁没事换证书玩啊?就写100年吧。
三:查看签名
第一步:将apk解压
第二步:找到META-INF 下的.RSA文件
第三步:在mac终端或者window控制器上输入命令:
keytool -printcert -file xxx.RSA回车,即可查看签名文件.将.RSA文件拖入到-file后面,即可查看:如下图
这比我还狠,1000年,365000天。真是地老天荒啊。
四:删除签名
其实很简单,用WinRAR打开apk,找到META-INF文件夹,删除MANIFEST.MF之外的所有其他文件即可。
五:签名
签名命令如图下:
使用jarsigner进行签名
jarsigner -verbose -keystore [您的私钥存放路径] -signedjar [签名后文件存放路径] [未签名的文件路径] [您的证书名称]
或者直接把密码给带进签名里面去,就不用手动输入密码库密码了:命令如下
jarsigner -verbose -keystore [您的私钥存放路径] -storepass 密码库密码 -signedjar [签名后文件存放路径] [未签名的文件路径] [您的证书名称]
或者
jarsigner -verbose -keystore [您的私钥存放路径] -signedjar [签名后文件存放路径] [未签名的文件路径] [您的证书名称] -storepass 密码库密码
我的操作如下:
六:验证签名
这怎么验?和查看签名样啊。
查看到有签名就对了。
给APK签名,修改签名的更多相关文章
- ApkTool反编译apk,去除广告或者汉化后重新打包apk,并签名
http://my.oschina.net/mopidick/blog/135581 以ubuntu的环境为例子,window的大同小异 首先下载apktool工具:https://code.goog ...
- 【keytool jarsigner工具的使用】Android 使用JDK1.7的工具 进行APK文件的签名,以及keystore文件的使用
一个android apk的编译过程 请参考: http://www.2cto.com/kf/201312/261475.html 典型的编译过程: aapt( Android Asset Packa ...
- 利用signapk.jar工具对apk文件进行签名
signapk.jar是Android源码包中的一个签名工具. 代码位于:Android源码目录下,signapk.jar 可以编译build/tools/signapk/ 得到. 使用signapk ...
- 转 对APK进行重签名
1. 生成Android APK包签名证书1). 在doc中切换到jdk的bin目录cd C:\Program Files\Java\jdk1.6.0_18\bin2). 运 ...
- 给第三方apk进行系统签名的几种方式【转】
本文转载自:http://blog.csdn.net/luzhenrong45/article/details/47733053 版权声明:本文为博主原创文章,未经博主允许不得转载. -------- ...
- mac下自己实现re-sign.jar对apk进行重签名
利用Robotinum对给的apk文件进行自动化测试,在不知道源码的情况下,只有apk文件如何进行自动化测试呢? 首先需要对apk文件进行重签名,并获得该apk文件的包名和程序入口的类名. 最开始网上 ...
- 使用re-sign.jar对apk进行重签名
准备: ① re-sign.jar重签名工具:(下载地址为:http://troido.de/downloads/category/1): ② 待重签名的apk: 重签名步骤: ① 右键re ...
- android 推断Apk是否签名和 签名是否一致
推断Apk是否签名 用命令:jarsigner -verify -verbose -certs <apk文件> 假设有Android Debug字樣就是debug 假设已经签名: [证书的 ...
- apk的重签名
1. 生成Android APK包签名证书 1). 在doc中切换到jdk的bin目录 cd C:\Program Files\Java\jdk1.6.0_18\bin 2). ...
随机推荐
- java如何连接数据库并对其操作(以PostgreSQL为例)
java如何连接数据库并对其操作(以PostgreSQL为例) 相关概念 JDBC(Java Data Base Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数 ...
- leaning java swing 为组件设置边框
import javax.swing.*; import javax.swing.border.BevelBorder; import javax.swing.border.Border; impor ...
- 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(远程升级WIFI内部程序)
https://www.cnblogs.com/yangfengwu/p/10360618.html 演示视频: https://www.bilibili.com/video/av54894356/ ...
- leetcode解题报告(30):Detect Capital
描述 Given a word, you need to judge whether the usage of capitals in it is right or not. We define th ...
- SDOI R2 咕咕记
Day 0 路上堵车,\(5\)点才到宾馆 \(BCT\)为什么在山上啊!!!! 试机的时候敲了一下多项式求逆的板子 回到宾馆订了\(KFC\)的外卖 Day 1 爬山的时候跟\(asuldb\)说 ...
- codevs:2849 素数判定 3:输入一个正整数x(3<=x<=100000),判断x是否是质数,如果是质数则输出信息“prime”,否则输出“composite”。
#include<iostream>#include<cstdio>#include<cmath>using namespace std;int a[2];int ...
- 中山纪中集训Day5叒是测试(划淼)
A组T1 矩阵游戏(game) 九校联考24OI__D1T1 问题描述 LZK发明一个矩阵游戏,大家一起来玩玩吧,有一个N行M列的矩阵.第一行的数字是1,2,…M,第二行的数字是M+1,M+2…2*M ...
- avalon中的ms-attr?
<div class="item" id="move5" style="margin:0" > <a class=&quo ...
- encode(编码)和decode(解码)方法
JS对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1 ...
- Leet Code 2.两数相加
2.两数相加 题目描述 给出两个非空的链表用来表示两个非负的整数.其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字.如果,我们将这两个数相加起来,则会返回一个新的链表来表 ...