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

Android APK签名全解析:从jarsigner到apksigner的演进与实战 在软件安全领域,数字签名是确保软件完整性与来源可信性的核心技术。其原理基于非对称加密算法,通过私钥对软件包生成唯一“指纹”,公钥则用于验证,从而防止应用在分发过程中被篡改。这项技术对于保护用户安全、建立开发者信任至关重要,尤其在移动应用生态中。Android应用的APK签名正是这一原理的具体实践,它不仅是应用上架商店的强制要求,更是Android安全架构的基石。随着Android系统演进,签名工具也从通用的`jarsigner`发展为更安全、高效的专用工具`apksigner`。理解`jarsigner`与 阅读详情

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

反编译android apk包使用apktool工具,下载地址http://download.youkuaiyun.com/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

如果想要实现自动化打包签名可以使用批处理文件,但是需要输入密码,可以使用jarsigner查看下帮助命令。

使用下面两个命令可以提前输入密码口令密码

[-storepass <口令>] 用于密钥库完整性的口令[-keypass <口令>] 私有密钥的口令 (如果不同)jarsigner -verbose -keystore keybaohuai -storepass 123456 -keypass 123456 -digestalg SHA1 -sigalg MD5withRSA -signedjar AndroidTestsigned.apk zhaocaixiong101.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)

从‘考勤App’实战出发:手把手教你用Apktool和Jarsigner完成逆向、修改与重签名 本文详细介绍了如何使用Apktool和Jarsigner工具对Android应用进行逆向工程、修改与重签名。通过‘考勤App’实战案例,从环境准备、反编译、Smali代码修改到重打包签名,提供全流程指导,适合开发者学习逆向工程和安全审计技能。 阅读详情

相关推荐

手把手教你用JADX和Apktool反编译APK,并修改Smali代码后重新签名打包

本文详细介绍了如何使用JADX和Apktool进行APK反编译,并修改Smali代码后重新签名打包的全流程。从工具准备、代码分析到重打包签名,每个步骤都配有实用技巧和操作指导,适合移动安全研究和应用定制领域的开发者学习。

weixin_30243533的博客 466

Android中APK签名工具之jarsigner和apksigner详解

这篇文章主要给大家介绍了关于Android中APK签名工具之jarsigner和apksigner的相关资料,文中介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 一.工具介绍 jarsigner是JDK提供的针对jar包签名的通用工具, 位于JDK/bin/jarsigner.exe apksigner是Google官方提供的针对Android apk签名及验证的专用工具, 位于Android SDK/build-tools/S..

qq_36157827的博客 4034

逆向实战:用Apktool修改APK资源后如何重新签名并安装测试?完整流程分享

本文详细介绍了使用Apktool进行APK逆向工程的完整流程,包括环境准备、资源修改、重打包与签名,以及安装测试。通过实战指南,帮助开发者掌握从解包到重新签名的关键技术,适用于Android应用的学习、安全审计和本地化修改。

weixin_30384217的博客 343

Android 签名、空包签名 、jarsigner、apksigner

Android 签名、空包签名 、jarsigner、apksigner

NewActivity的博客 2661

Mac上Cocos Creator安卓打包全攻略:从环境配置到APK签名

在跨平台游戏开发中,安卓打包是一个涉及多工具链集成的关键技术环节。其核心原理在于通过构建系统将游戏代码、资源与原生库整合为可安装的APK文件。这一过程的技术价值在于打通不同操作系统间的开发壁垒,实现一次开发多端部署。在实际应用场景中,开发者常需在macOS环境下配置Java、Android SDK/NDK等依赖,并处理签名、包体优化等工程实践问题。针对Cocos Creator这一流行游戏引擎,**环境配置**与**APK签名**成为确保构建成功的关键步骤,特别是在处理M系列芯片与Intel架构差异时,正确

weixin_33755557的博客 612

从修改一个按钮文字开始:我的第一个Android App逆向实战记录(含APKTool重打包签名全流程)

本文详细记录了作者从修改一个按钮文字开始的Android App逆向工程实战经历。通过使用JADX、Apktool等工具,完成反编译、修改资源文件、重新打包和签名的全流程,为逆向工程新手提供了实用的入门指南。文章特别强调了工具链配置、常见错误解决和自动化脚本优化等关键技巧。

weixin_30251829的博客 336

Java的安装及‘jarsigner‘ 不是内部或外部命令解决方法(附jdk8下载链接)

安装JDK 1. 下载JDK: 网盘地址 https://pan.baidu.com/s/1cxE7QKDHEmrT0FUBgim4SQ 提取码:C6k6 2. 双击安装程序 ...

yeShengHuLuWa的博客 8033

安卓APK包名修改与重签名实战:从工具准备到安装验证的完整指南

本文详细介绍了安卓APK包名修改与重签名的完整流程,从工具准备、反编译、修改包名到重新打包与签名的实战步骤。通过Apktool、JDK等工具组合,帮助开发者掌握APK重签名技术,解决安装冲突等问题,适用于应用二次开发和安全测试场景。

weixin_30660027的博客 320

腾讯对app应用认领,jarsigner对未签名的apk进行签名

今天渠道告诉我腾讯应用市场需要进行app应用认领,只好用命令行对下载下来的apk进行签名了 1.首先要cd到jdk的bin目录(就是环境变量使用的jdk的bin路径) cdC:\Program Files\Java\jdk1.8.0_161\bin 2.将从腾讯应用市场上面下载下来的tap_unsign.apk和studio生成的签名文件.jks或者.keystore(看公司或者自己的...

Android格调小窝 1395

jarsigner.exe_windows安装错误

目录 问题 过程 更新JDK 成功执行 jarsigner工具去检测安装包的签名【apk】——安卓APP测试 问题 No public JRE 等 过程 地址:http://www.filediag.com/down/jarsigner.exe_237201.html 从网上下载的包 进行环境变量的修改 JDK下载并且去设置环境变量 更新JDK 下载最新版本:https://www.oracle.com/java/technologies/javase-jdk15-d

战神/calmness的博客 1159

jarsigner.exe

使用jarsigner对apk进行手动签名 jarsigner是JDK提供的针对jar包签名的通用工具,

Android应用签名工具深度对比:jarsigner与apksigner的选择与实战

数字签名是保障软件安全与完整性的核心技术,通过非对称加密算法验证发布者身份并防止内容篡改。在Android开发中,APK签名机制经历了从V1到V4方案的演进,V1方案基于JAR格式对单个文件签名,而V2及以上方案采用全文件分块哈希,显著提升了安全性和验证效率。正确选择签名工具直接影响应用的市场合规、安装成功率和用户体验。jarsigner作为传统Java工具仅支持V1签名,适用于遗留项目或特定环境;而apksigner作为Android官方工具,全面支持V1/V2/V3/V4混合签名,并与现代构建流程深度集

weixin_34293141的博客 782

ANSYS接触分析实战:从法兰连接案例看接触刚度与穿透容差的黄金搭配

本文以法兰连接为实战案例,深入解析了ANSYS接触分析中接触刚度(FKN)与穿透容差(FTOLN)的参数设置策略。通过系统性敏感性分析,揭示了这对关键参数的博弈关系与调优逻辑,旨在帮助工程师在保证计算收敛的同时,获得高精度的有限元分析结果,有效解决工程中的非线性接触难题。

moon9的博客 314

ionic apk 签名 生成了 app-release-unsigned.apk 怎么转为 正式签名文件

jdx/bin 下 jarsigner命令 第一步,打开cmd,进入到bin目录下,将所要签名的apk和keystore文件放入jdk的bin目录下。 cd C:\Program Files\Java\jdk1.8.0_101\bin 第二步,输入jarsigner命令: jarsigner的命令格式: jarsgner-verbose-keystore [keystorePath] -singnedjar [apkOut] [apkln] [alias] 其中: [keystorePath] 是签名

who_become_gods的博客 760

(实战)[re:Invent 2018]-001:赛道分析-(致敬1024)

打印log

Rainbow 2784

电影票购票小程序搭建(源码部署)

答:为用户提供便捷的购票方式,包括授权登录、个性化推荐、在线选座、订单管理等功能,同时在界面设计上注重用户友好性,简化用户的购票流程。答:通过展示电影院的优惠活动和票价信息,同时提供电影推荐功能,根据用户的历史购票记录和电影评分推荐个性化的电影列表,吸引用户购票。编写页面逻辑代码:使用JavaScript编写小程序页面的逻辑代码,实现电影列表的获取、电影详情的展示、座位选择的逻辑等。设计小程序界面:使用WXML和WXSS编写小程序的界面代码,实现电影列表的展示、电影详情的样式、座位选择页面的布局等。

2301_79072569的博客 2068

Apk反编译

用jd-gui打开编译后的jar 类中出现多行注释Byte code:开头,这仅是由于反编译工具的JDK版本过高导致的显示差异,并非代码本身存在问题。建议使用低版本JDK进行反编译以获得正常显示。或者用luyten打开jar查看。

1082

Apple Pay不能添加卡,不一定是卡的问题,有可能是设备的问题

Apple Pay不能添加卡,不一定是卡的问题,有可能是设备的问题。

wyxtx的博客 3440

Android通过命令签名apk文件

一,需要三个文件:jarsigner ,xxx.jks,xxx.apk. jarsigner 签名工具 位置:Java\jdk1.8.0_211\bin xxx.jks 自己签名文件,通过Andoidstudio生成 xxx.apk 需要签名的apk文件 将上述三个文件都放Java\jdk1.8.0_211\bin 目录下 二, 命令 jarsigner -verbose -keysto...

qq_29382145的博客 284

射频工程师笔记---射频通信基础

回顾一下移动通信技术的发展,其实是互联网和通信技术的融合过程。在这个过程中,很多应用都在不断加入其中。比如计算机跟通信的融合产生了互联网、互联网跟手机的融合带来了移动互联网。手机可以看杂志、看视频、听音乐,于是又出现了内容服务产业;再后来,电视音箱等设备也能联网,于是网络跟家电又产生了融合。所以应用的出现总是在融合其他产业。在1995年,比尔·盖茨在《未来之路》一书中首次提出:在未来...

多年硬件从业经历,热爱学习,记录生活! 2万+

Kafka 系列 —(17)Kafka 流式处理:Kafka Streams架构、使用场景、框架选择

本文介绍了KafkaStreams的架构特点、应用场景及与其他流处理框架的比较。KafkaStreams作为嵌入式分布式流处理库,其核心架构包含流处理器、任务、拓扑和本地状态存储,具备自动容错和伸缩能力。适用于实时监控、ETL、聚合、Join、物化视图等低延迟场景。与Flink、Spark相比,KafkaStreams适合简单架构和微服务,而Flink适合大规模处理,Spark更适合批处理。选择框架需根据具体场景需求,如微服务推荐KafkaStreams,大规模处理推荐Flink。

moton2017的博客 1632

apk重新签名

命令行运行: jarsigner -verbose -keystore a.jks -storepass 123456 -signedjar sign.apk release.apk alias a.jks:签名文件,jks或keystore文件 123456:store password sign.apk:重新签名后的文件 release.apk:需要签名的文件 alias:别名 回车,输入alias的密钥口令(key password),再次回车。 报错:jarsigner不是内部或外部命令,也不

u010219889的博客 808

基于物联网的门禁与考勤系统(阿里云)_81

本课题设计的基于物联网的门禁与考勤管理系统,结合现代信息技术,利用指纹识别、射频卡、密码输入和远程控制等多种开锁方式,提升门禁系统的安全性和灵活性;同时,通过物联网平台进行数据上传和远程管理,极大提高了管理效率。通过智能化的考勤功能,系统可以实时记录员工的出入情况,并通过云平台进行远程查询和管理,推动门禁与考勤管理的数字化、智能化和高效化。

1万+

给apk文件重新签名

给apk文件重新签名 命令提示符进入到jdk的bin目录下,如下路径 C:\Program Files\Java\jdk1.8.0_172\bin 然后输入命令如下 jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore C:\Users\Administrator\Desktop\sdk\xxx.keystore C:\Users\Administrator\Desktop\sdk\xxx.apk XXX -signedja.

u013433889的专栏 210

【PyTorch】CNN(一维卷积Conv1D)实现时间序列预测

本文介绍了一维卷积神经网络(Conv1D)在时间序列预测中的应用,展示了其基本原理及实现方式。通过合适的数据预处理和模型调参,Conv1D可以有效地捕捉时间序列数据中的模式,从而进行精准预测。

走向CTO的路上... 1173

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

上一篇: Android加载图片导致内存溢出(Out of Memory异常
下一篇: 80后的北漂IT人:你的未来在哪?该做好打算了!
fancylovejava
博客等级 码龄16年 1052粉丝 184原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值