apk私钥_Android创建私钥并为APK文件签名
Android创建私钥并为APK文件签名的相关命令
创建私钥命令:
keytool -genkey -keystore .keystore -keyalg RSA -validity -alias
该命令位于jdk安装目录的bin目录下,用于创建签名用的私钥。
其中:
-genkey 表示创建私钥。
-keystore 后面跟私钥仓库的名称,如果指定的仓库不存在,则创建一个新的仓库文件。
-keyalg 表示加密方式,一般跟RSA即可。
-validity 表示有效期限,单位为天,可以指定36500,即100年。
-alias 表示要添加的私钥名称,这个名称会被添加并存储到仓库文件中。
命令执行后,需要再输入一些信息,最后输入Y确认。
其中涉及到两个密码,一个是私钥仓库的密码,一个是具体私钥的密码,可以相同。
当输入完私钥的密码后,命令执行完成。
签名命令:
jarsigner -verbose -keystore .keystore -signedjar .apk .apk
该命令位于jdk安装目录的bin目录下,用于使用私钥对未签名APK进行签名。
其中:
-verbose 表示输出相关信息。
-keystore 后面跟签名时使用的私钥所在的仓库文件。
-signedjar 表示对文件进行签名,后面跟三个参数:
第一个为签名后的文件名。
第二个为未签名的文件名,可以使用Eclipse的插件Android Tools导出未签名APK。
第三个是使用的私钥名称。
命令执行后,需要输入相关密码,然后输出相关信息,直到命令结束。
另外需要注意的是,如果是JDK1.7的版本,需要在签名命令后边添加如下参数:
-digestalg SHA1 -sigalg MD5withRSA
否则,最后签名的APK不能被安装,会提示以下错误:
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
对齐优化命令:
zipalign -v 4 .apk .apk
该命令位于sdk安装目录下的tools目录下,用于对已签名APK进行对齐优化。
其中:
-v 表示对齐的字节数,一般指定为4即可。
后面紧跟的两个参数分别为未对齐优化的文件名和优化后的文件名。
对已签名文件进行对齐优化后,可以得到更好的执行速度。
================================================================================
Eclipse下使用ADT插件进行图形化的签名相关的操作
生成签名的APK:
该过程将包含生成私钥仓库、生成私钥、打包APK、为APK签名、对APK对齐优化等一系列操作。
Android工程目录下的bin目录下,由Eclipse自动生成的APK文件是使用了默认的debug签名的。
使用该方式签名的apk可以安装到设备上,但是不同的环境,可能debug签名不同,并不通用。
而且,debug签名的APK无法发布到Market上。
可以用如下方式导出一个APK并进行签名:
工程->右键->Export->Android->Export Android Application...
或者
工程->右键->Android Tools->Export Signed Application Package...
在打开的窗口中,如果想要修改导出的工程,可以点击Browse进行修改。点击Next继续。
这里有两个选项:
Use existing keystore 使用既存的私钥仓库文件。
Create new keystore 创建一个新的私钥仓库文件。
一般的,如果已经创建了一个仓库文件,选择第一项即可,否则,需要选择第二项,创建一个新的仓库文件。
1、创建一个新的仓库文件:
Location 私钥仓库文件的保存位置。
Password 私钥仓库的密码。
Confirm 再次确认私钥仓库的密码。
2、使用已有的仓库文件:
Location 既存私钥仓库文件的位置。
Password 既存私钥仓库的密码。
点击Next继续。
这里又有两个选项:
Use existing key 使用已经存在的私钥对APK进行签名。
Create new key 创建一个新的私钥用于对APK进行签名。
1、创建一个新的私钥:
选中Create new key后,点击Next继续。
在打开的窗口中,输入相关参数,其中:
Alias 私钥名称。
Password 私钥的密码。
Confirm 再次确认私钥密码。
Validity (years) 有效期,单位是年,与命令行执行时的单位不同。
下面的可选参数里,必须有一项不为空,其它可选参数可以不填。
2、使用已有的私钥:
Alias 下拉列表里会列出私钥仓库文件里存在的私钥,选择想要使用的私钥。
Password 输入选择的私钥对应的密码。
点击Next继续。
在新窗口中,选择签名后的文件保存的位置,点击Finish完成上述所有操作。
生成未签名的APK:
使用命令的方式对APK进行签名,该APK必须是未签名的。
如果对已签名文件进行再签名,不会成功。如下方式可以得到一个未签名的APK:
工程->右键->Android Tools->Export Unsigned Application Package...
另外,新的ADT会在工程目录下生成proguard.cfg文件,使用它可以在签名时混淆代码。
混淆代码可以加大反编译代码后的理解难度,起到保护代码的作用。
使用方法是,修改工程目录下的project.properties文件,在最后添加:
proguard.config=proguard.cfg
apk私钥_Android创建私钥并为APK文件签名相关推荐
- apk私钥_Android应用apk的程序签名详解
在Android系统中,要求所有应用程序必须经过数字签名后才能安装.Android系统使用这个证书来识别应用程序的作者,并建立程序间的信任关系. 证书并不用让于用户控制可以安装哪些程序,证书也不需要授 ...
- 安卓java安装apk代码_Android 通过代码安装 APK的方法详解
在 APK 开发中,通过 Java 代码来打开系统的安装程序以安装 APK 并不是什么难事,一般的 Android 系统都有开放这一功能. 但随着 Android系统版本的迭代,其对于权限的把控越来越 ...
- Android APK文件结构 完整打包编译的流程 APK安装过程 详解
Android apk文件结构 打包编译的流程 Android官网 配置构建 流程 Configure your build The build process APK文件结构 assets res ...
- 【Android 安全】DEX 加密 ( Java 工具开发 | apk 文件签名 )
文章目录 一.生成 jks 文件 二.签名命令 三.执行结果 四.处理 Unsupported major.minor version 52.0 错误 参考博客 : [Android 安全]DEX 加 ...
- RSA不对称加密,公钥加密私钥解密,私钥加密公钥解密
RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作. RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一 ...
- React Native之APK文件签名及打包
生成apk签名文件 我们使用android studio的方式进行签名 AS工具栏找到并点击 build->gennrate signed apk 两种情况: 1.这里如果已经有签名文件了则直接 ...
- 如何给apk文件签名(一)
给apk文件签名主要分三步,创建证书(如果没有)-->签名-->优化(可选 ) 1)使用jdk的keytool工具生成签名用的证书 > keytool -genkey -v -ali ...
- [Android 之美] 那些你不知道的APK 瘦身,让你的APK更小
[Android 之美] APK 瘦身,减少APK的大小 让我们的apk文件尽可能更小,移除那些未使用的代码和资源文件.本章节介绍了如何做到让APK更小,性能更好,下载转化率会更高,以及如何指定在构建 ...
- 关于apk加壳之动态加载dex文件
由于自己之前做了一个关于手机令牌的APK软件,在实现的过程中尽管使用了native so进行一定的逻辑算法保护,但是在自己逆向破解的过程中发现我的手机令牌关键数据能够"轻易地"暴露 ...
最新文章
- appium运行报错java.net.SocketException: socket write error
- php 格式化html,HTML代码如何格式化
- javafx应用启动自动执行函数_一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式...
- python PyQt5 sizeHint()
- 《IBM-PC汇编语言程序设计》(第2版)【沈美明 温冬婵】——第十一章——自编解析与答案
- 工作197:判断对象里面是否有0和1
- Git SSH key配置
- TCP/IP 协议栈 -- 编写UDP客户端注意细节
- Tkinter图片按钮
- socket connect java_网络编程 – 为什么Java的socket.connect()消耗100%的cpu资源?
- 1到100的偶数之和是多少_什么白酒适合收藏,收藏多久出手,茅台五粮液老酒价格是多少?...
- 牛逼!这么问 OutOfMemoryError 能让我懵逼!
- 基于FPGA的波束形成verilog开发
- win7电脑怎么录屏?如何使用电脑录屏软件
- Nacos注册中心和配置中心
- PS网页设计教程XXII——在PS中创建单页复古网页布局
- 雷神笔记本关闭触摸板
- 4G+5G多卡聚合智能融合通信
- 哔哩哔哩(bilibili)视频下载-支持4K
- hello.s:15: 错误: junk at end of line, first unrecognized character valued 0x8 的解决方法
热门文章
- python物联网工具
- 学习笔记【Java 虚拟机④】内存模型
- 水墨屏开发设备,旧 Kindle 改造而成
- [FAQ09065][Others]MTK发布的Android software Tools 工具包中所有工具的说明
- JavaMail 访问Hotmail
- Hypermesh14.0主界面显示不全
- vue CLI异步组件报错import' and 'export' may only appear at the top level
- HAL库+stm32cubeIDE+4.3寸LCD显示器驱动移植
- java进行视频合成_java使用ffmpeg进行多个视频合并
- mysql 库比对_库比蒂诺日期时间选择器