重新打包apk,使用java bin目录里的jarsigner进行签名

重新打包apk,使用java bin目录里的jarsigner进行签名

反编译android apk包使用apktool工具,下载地址http://download.csdn.net/detail/fancylovejava/8447801

命令:

cmd>cd /d E:\apktool

apktool d xxxx.apk执行后会在当前apktool目录下生成一个xxxx名的文件,此文件就是apk包反编译后的文件

然后如果想在asset目录下添加个文件,可以放在文件下,不过代码需要修改预先写入读取asset的逻辑

然后使用命令apktool b xxxx<这个是目录> 然后会在xxxx目录里多出个dist文件,里面包含个重新打包好的apk,但是这个apk没有使用keystore签名,所以需要使用java的jarsigner进行签名

命令如下

C:\Program Files\Java\jdk1.8.025\bin>jarsigner -verbose -keystore keybaohuai -digestalg SHA1 -sigalg MD5withRSA -signedjar AndroidTestsigned.apk zhaocaixiong_101.apk baohuai

会出现一行警告

警告:未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。如果没有时间戳, 则在签名者证书的到期日期 (2113-10-30) 或以后的任何撤销日期之后, 用户可能无法验证此 jar。

注意

jarsigner 签名命令里加入如下参数来解决:-digestalg SHA1 -sigalg MD5withRSA

可以忽略,安装后测试是否可行!

利用标准的java工具keytool.exe(位于jdk\jre\bin目录下)创建key,利用jarsigner.exe工具使用生成证书和给程序签名(位于jdk\bin目录下)。

win+R运行cmd,进入目录D:\temp(注:使用该目录为示例工作目录)

a)、创建可以,运行如下命令

keytool -genkey -alias demo.keystore -keyalg RSA -validity 20000 -keystore demo.keystore

/*说明:keytool工具是Java JDK自带的证书工具

-genkey参数表示:要生成一个证书(版权、身份识别的安全证书)

-alias参数表示:证书有别名,-alias demo.keystore表示证书别名为:demo

-keyalg RSA表示加密类型,RSA表示需要加密,以防止别人盗取

-validity 20000表示有效时间20000天

-keystore demo.keystore表示要生成的证书名称为demo

b)、删除之前的签名文件

用解压缩工具解打开apk文件(如:更改a.apk为a.zip,便可用压缩工具打开,并找到下面的目录META-INF下的CERT.RSA和CERT.SF文件,并删除该文件。删除后,再次更改后缀名为.apk;)

注:

META-INF目录:存放签名后的CERT和MANIFEST文件,用于识别软件的签名及版权。

res目录:存放各种Android原始资源,包括:动画anim、图片drawable、布局layout、menu菜单、xml等等

AndroidManifest.xml编码后的Android项目描述文件,包括了Android项目的名称、版本、权限、程序组件描述等等

classes.dex编译后Class被dx程序转换成Dalvik虚拟机的可执行字节码文件

resources.arsc所有文本资源的编译产物,里面包含了各Location对应的字符串资源。

c)、使用生成的key对apk签名,运行如下命令:

jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demoAlias

/*说明:jarsigner是java的签名工具

-verbose参数表示:显示出签名详细信息

-keystore表示:使用当前目录中的demo.keystore签名证书文件。

-signedjar demo_signed.apk demo.apk demo正式签名,三个参数中依次为签名后产生的文件

demo_signed,要签名的文件demo.apk和秘钥库demo.keystore.*/

(注:查看某个apk是否经过了签名方法,jarsigner -verify demo.apk。优化:签名后需要做对齐优化处理zipalign -v 4 yourprojectname-unaligned.apk yourprojectname.apk)

时间: 2024-09-30 09:17:08

重新打包apk,使用java bin目录里的jarsigner进行签名的相关文章

打包apk java 虚拟机内存不足

解决方案:在android->sdk->build-tools-android-version 中有个 dx.bat dx.bat --dex 命令的dx.bat脚本有这样一句代码 REM By default, give dx a max heap size of 1 gig and a stack size of 1meg. rem This can be overridden by using "-JXmx..." and "-JXss..." o

Android项目在eclipse中无法打包apk文件[bin目录下没生成apk文件]问题解决

后来我发现在eclipse的Preferences -> Android -> Build中有一项“Skip packaging and dexing until export or launch....”,原来这个选项默认是被勾选的,这个选项的意思是“跳过packing和dexing,直到export或者 launch...”,去掉这个选项即可解决问题. Android项目在eclipse中无法打包apk文件[bin目录下没生成apk文件]问题解决

[转] Java的打包apk, jar、war、ear包

apk, war, ear可用zip压缩,看起来这四个包都是用简单方式zip/jar即可生成. ------------------------------------------------------------------------ android-apk打包流程&adb常用指令  (转自: http://15035554141.iteye.com/blog/2090198) android-apk.png 程序打包&安装的过程 Src下 :Jar 文件编译为class文件 Gen

Java多层目录打包和解压代码(apache commons compress, io, lang)

Java多层目录打包和解压代码(apache commons compress, io, lang) package zip;   import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.Fil

ionic2新手入门整理,搭建环境,创建demo,打包apk,热更新,优化启动慢等避坑详解

onic官方文档链接:http://ionicframework.com/docs/ 如果是新的环境会有很多坑,主要是有墙,请仔细阅读每个步骤 文档包含以下内容: l  环境搭建 l  创建demo并调试运行 l  打包APK l  添加支持热更新 l  优化启动慢问题 l  常用命令 1.      环境搭建 需要安装以下软件和插件(Android): l  安装nodeJS(自带npm) l  配置cnpm  (使用淘宝镜像取代npm) l  安装cordova和ionic2 l  安装JA

cocos环境配置和打包apk

环境: Win10 + vs2015 + cocos2d-X-3.10 开发  软件的安装与环境配置: 资源准备:(后面备注的版本为笔者所选的) 1  python (python-2.7.3) 2  CocosForWin-v3.10(官网可下载) 3  vs2015 分别安装以上三个软件,路径没有限制,但是路径名称最好不要出现中文/空格等特殊字符,包括后面建立项目时项目的存放路径,最好用纯英文+"-",比如"cocos2d-x-3.10",因为笔者以前就因为路径

通过命令打包apk

平时使用android studio打包,方便快捷,对命令不太熟悉,但在上传apk包到应用市场时,需要认领apk,“认领页的[选择APK]”不是上传您要更新的APK应用文件,而是下载我们提供的空包文件[unsign.apk],您需要将其做数字签名,需要和您将要认领的线上应用的签名一致. 所以我们需要用自己的签名文件给apk签名然后上传,基本步骤如下: 1.到jdk的bin目录下 比如我的目录如下:/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/

在Hudson中,使用ant自动对安卓项目编译打包apk

本文对如何在hudson中配置ant编译打包apk进行说明,主要包括build.xml文件的编写.环境的配置.在Hudson中创建任务. 一.为安卓项目创建build.xml文件 1.打开cmd进入sdk目录下的tools目录,输入: android.bat list target  来查询我们现有的版本list有哪些.如下图: 途中用红框圈出的 id 与蓝框圈出的版本号对应关系,下面需要用到. 2.打开安卓项目工程下的 project.properties 文件,查看target 版本号,如下

Cocos2dx打包apk时变更NDK引发问题及解决

现在官方的Cocos Studio已经支持打包apk文件,写该随笔的时候还没试过官方的打包功能,所以就按自己的学习顺序先把打包的心得卸下. 问题及最终解决方案: 其中耗时最长的问题就是ndk-r10改成ndk-r9d后一直编译不通过: 最终解决办法是删除项目路径下/proj.android/obj/local/armeabi目录下的所有文件.(当时因为使用cocos2dx2.2.3版本源码学习才遇到该问题,可能cocos2dx最新版本已无该问题). 发现问题过程: 初学Cocos2dx,了解了下