(原创)Android apk应用加固、字节对齐、二次签名全流程

news/2024/9/16 4:03:10/

这篇博客主要是讲如何对apk应用进行加固、对齐和签名的,会有详细的步骤逐一介绍

前言

随着各大加固工具都开始逐一收费后,个人开发中或者中小型企业如何对应用进行加固就成了一个问题。以前我常用的是360加固助手,虽然每天限制一定的免费次数,但起码能用。
可是最近它也提示我要强制更新,更新后,我要去设置签名,就变成了这样子:
在这里插入图片描述
结果我的测试,360加固工具现在虽然还能免费给你加固,但是加固后,你原来apk的签名就会丢失,也就是你要重新签名了。下面就来看下如何解决这个问题

加固

加固不用说,我这边用的还是360加固助手,
360加固官网
主界面如下:
在这里插入图片描述
点击“添加应用”把你的apk加入进来,或者直接拖进来,就可以进行加固操作,完成后我们就得到了一个被剥夺了签名但是已经加固了的apk

字节对齐

字节对齐的好处是帮助操作系统更高效率的根据请求索引资源,降低内存消耗。
Android SDK自带字节对齐工具zipalign,二次签名前,最好先进行字节对齐操作(一般为4字节对齐)。虽然Android Studio打包的apk是默认经过字节对齐的,但是由于经历过应用加固步骤,不能保证该应用中的数据还处于对齐状态,以防万一,再进行一次字节对齐操作。

第一步

要进行字节对齐,首先修改刚刚加固了的apk文件,把它的的后缀名为 .zip(其它压缩格式也可以,主要是为了用压缩软件打开该文件),修改完成后打开该文件,删除下图中红框选中的“META-INF”文件夹(该文件夹经过应用加固后,签名信息已经被删了,多了一些杂七杂八的文件,没什么用。如果不删除该文件夹,后续二次签名就无法成功);
在这里插入图片描述
删除成功后,将该文件的后缀名重新改为 .apk;

第二步

将该apk文件复制到zipalign工具所在目录
该工具位于sdk\build-tools\build版本目录下
一般选择你项目中使用到的版本的目录即可
我这边用的是30.0.3
在这里插入图片描述
上图所示,红框中的zipalign.exe即为字节对齐工具,ziptest.apk就是需要对齐的apk文件

第三步

在当前目录的地址栏中输入cmd,回车
进入到命令提示窗口
输入zipalign.exe -v -p 4 input.apk output.apk
(命令中的input.apk为需要对齐的apk文件名,output.apk为对齐完成后输出的apk文件名)
在这里插入图片描述

中间省略一大段运行中输出的代码…
在这里插入图片描述

如上图所示,运行结束,出现红框中的代码,表示字节对齐成功,同时可以在目录中看到多了个字节对齐成功后的apk文件,如下图所示:
在这里插入图片描述
这样,对齐就完成了
我们也可以通过命令验证下apk是否对齐
还是把要验证是否对齐的apk放到这个目录下,执行命令:

zipalign -c -v 4 apk名字

比如验证刚刚没有对齐的ziptest.apk

zipalign -c -v 4 ziptest.apk

输出结果为succesful就是代表对齐
FAILED就代表没有对齐
得到结果如下:
在这里插入图片描述

二次签名

完成了字节对齐,就要对apk重新进行签名了
签名工具SDK也是自带的,apksigner。该工具位于字节对齐工具同级目录lib的下一级,
如下图所示:
在这里插入图片描述
接下来要做的就是把我们对齐的apk和签名文件jks放入目录下
接着,在该路径下打开cmd窗口,输入命令:

java -jar apksigner.jar sign --ks key.jks --ks-key-alias releasekey output.apk

key.jks为签名文件,releasekey为签名文件的别名,output.apk为上图红框2所示的apk文件。
例如下图所示:
在这里插入图片描述
命令中的签名文件别名由于隐私原因,就隐藏了,大家替换成自己签名文件的别名即可。
如果命令行输入没有任何问题,会在下方显示输入Keystore密码的指令,如上图最后一行所示Keystore password for signer #1: (这里需要注意:输入密码的时候命令提示窗口是不会有任何字符显示的,估计是为了隐私安全,输入完成后直接Enter就行了)。
签名成功,在命令提示窗口不会有任何提示;反之则有错误提示。只需查看目录中的apk文件修改日期是否改变,例如下图所示:
在这里插入图片描述
时间较之前最初的,变成签名命令执行成功后的时间。想要确保签名成功,也可输入下述命令查看:

java -jar apksigner.jar verify -v output.apk

其中的output.apk为签名文件的文件名,签名成功结果如下图所示:
在这里插入图片描述
至此,从加固到二次签名整一个流程就结束了。
顺便推荐一个,爱加密的重签名工具,实现原理其实就是上面的。
这个工具可以避免手动输入上面哪些命令
在这里插入图片描述

不过我自己试了下,还是有问题,就是别名那块始终出不来
反正如果不能用这个工具,就按照我上面的步骤来做也是一样可以的


http://www.ppmy.cn/news/138218.html

相关文章

【C++初阶】C++STL详解(一)—— string类

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:C初阶 🎯长路漫漫浩浩,万事皆有期待 文章目录 CSTL详解(一…

Ae 脚本:Face Tools 4 脸部工具

Motion Bro 的 AE Face Tools 扩展脚本工具,包含几百种预设,如换脸、换妆、美颜、液化、失真扭曲、面部修饰、蒙板工具、文字跟踪、添加元素、人脸锁定防抖稳定以及遮挡等预设效果,大大扩展了 After Effects 中的人脸跟踪功能。 AE Face Tool…

顺序栈实现

#include <stdio.h> #include <stdlib.h> #define MAXSIZE 100typedef int elemType;typedef struct Stack{elemType data[MAXSIZE];int top;//栈顶指针 }Stack,*StackList;void init(StackList l){l->top0;//初始为0&#xff1a;每次数组最后一个位置空出来不使…

ps3手柄安装资料

https://blog.csdn.net/qq_25349629/article/details/80076273 http://wiki.ros.org/ps3joy http://wiki.ros.org/ps3joy/Tutorials (主要参考) http://wiki.ros.org/joy/Tutorials/ConfiguringALinuxJoystick https://yq.aliyun.com/ziliao/406934 https://blog.csdn.ne…

PS3模拟器使用教程

1、下载PS3模拟器 2、下载PS3最新固件 3、安装游戏&#xff1a; https://baijiahao.baidu.com/s?id1668940562969257302&wfrspider&forpc

丽台p1000相当于什么级别的显卡

相当于GTX760。 1.丽台Quadro P1000专业显卡基于帕斯卡架构的GP107核心&#xff0c;640个CUDA核心&#xff0c;配备4GB显存。这款显卡的硬件规格和gtx1050基本相同&#xff0c;二者的3D性能比较接近&#xff0c;但是游戏性能明显低于gtx1050显卡。这款专业图形显卡的功耗只有47…

ps4路由器虚拟服务器,在PC上使用PS4手柄图文教程(附模拟360手柄教程)

相信很多入手了PS4的朋友都有的疑问&#xff0c;PC上怎么使用PS4手柄&#xff0c;下面小编就带来详细的操作教程&#xff0c;不当可以直接让PC使用PS4手柄&#xff0c;还可以模拟XBOX360手柄自动适配游戏。 连接分两种方式 有线方式&#xff1a; 直接用USB线连接&#xff0c;电…

ps手柄震动测试软件,PS3 可实现震动 用PS3手柄连接电脑图文教程 - 电玩巴士

设置完后你就可以打开“控制面板->打印机和其它硬件->的游戏控制器 首先按一下“PS”键&#xff0c; 唤醒手柄(注意了每次断电后也就是关了电脑或者拔了USB线你都要先叫醒他)。按按别的按键可以看到有反应了&#xff0c;蘑菇头现在没动作&#xff0c;不要着急。 附录 可以…

ps4手柄android ppsspp,求助,ppsspp模拟器能用ps4手柄吗

满意答案 sfeda2081 2018.10.12 采纳率&#xff1a;53% 等级&#xff1a;8 已帮助&#xff1a;612人 .首先找到ppsspp文件夹里“PSP“下的“cheats”文件夹。 .进入ppsspp&#xff0c;在游戏设置中的系统设置中先把作弊设置里的“启用金手指”打钩&#xff0c;不是在游戏里&…

台式机:喇叭+麦克风二合一转接头DIY

台式机的喇叭和麦克风均为三线制的&#xff0c;常用的手机耳机是四线制的&#xff0c;也就是说一个耳机只能听或者讲&#xff0c;而网上买的耳机线二合一少则十几块&#xff0c;后面想到实验室有四线制的耳机孔&#xff0c;和一些师兄留下的不用的耳机&#xff0c;就想着自己动…

【用PS3手柄在安卓设备上玩游戏系列】连接手柄和设备

背景 硬件要求1&#xff1a;PS3 手柄 手柄配套的USB线 硬件要求2&#xff1a;已经获得 ROOT 权限并且支持蓝牙的安卓设备 软件要求1&#xff1a;Sixaxis Compatibility Checker PS3 手柄和设备连接配对的原理 软件要求2&#xff1a;Sixaxis Pair Tool 软件要求3&#xf…

PS2游戏操纵杆

PS2游戏操纵杆 摇杆模块&#xff08;双轴按键摇杆&#xff09; 产品简介&#xff1a; 双轴按键摇杆传感器模块由采用PS2摇杆电位器制作&#xff0c;具有(X,Y)2轴模拟输出&#xff0c;(Z)1路按钮数字输出。配合Arduino传感器扩展板可以制作遥控器等互动作品。另外本产品为了让客…

PS2手柄按键测试

arduino的PS2手柄控制测试&#xff1a; #include <PS2X_lib.h> //电机引脚 #define PWMA 12 //A电机转速 #define DIRA1 34 #define DIRA2 35 //A电机方向 #define PWMB 8 //B电机转速 #define DIRB1 37 #define DIRB2 36 //B电机方向 #define PWMC 9 //C电机…

国行Switch Joy-Con手柄-摇杆漂移的官方解决方法(送修)

以下为个人查资料的记录&#xff0c;仅供参考&#xff0c;关于保修的各项相关事项&#xff0c;请以厂商说明为准。 1. 什么是Joy-Con手柄摇杆漂移 参考此视频&#xff1a;传说中的Switch Joy-Con手柄摇杆漂移是什么 2. 自行维修的风险 对于不太会维修的用户&#xff0c;自行…

【游戏手柄】如何在PC上使用非XBOX手柄玩游戏

PC上许多游戏其实都可以使用手柄玩&#xff0c;如果使用XBOX手柄连接&#xff0c;游戏就会自动切换到手柄模式&#xff0c;但是但是XBOX手柄动辄几百块的价格让我这种非硬核游戏玩家感到索然无味&#xff0c;高中时买过一款通威的USB游戏手柄&#xff0c;工作后买过飞智的wee拉…

ps3手柄连Linux,树莓派连接 Dualshock3(ps3手柄)

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 rootraspberrypi:/home/pi/tools/QtSixA-1.5.1/sixad# make mkdir -p bins g -O2 -Wall -Wl,-Bsymbolic-functions sixad-bin.cpp bluetooth.cpp shared.cpp textfile.cpp -o bins/sixad-bin pkg-config --cflags --libs bluez -l…

ps4使用Remote play把画面输出到笔记本电脑

事先声明 it works on my computer 也只是把自己的配置过程给需要的人做个参考需求 笔记本电脑&#xff08;win10&#xff0c;其它系统没试过&#xff09;PS4网线网络&#xff08;因为要登录psn&#xff09;带hdmi的显示器&#xff08;设置ps4的网络用&#xff09; 显示器只需…

android 手柄,Android平台使用PS3无线手柄攻略

随着智能手机的的普及,手机上的游戏越来越多,人们们可以在自己的iPhone或者Android手机上随时随地的体验游戏的乐趣。不过对于一些稍微大型一些的游戏,使用触摸屏的操纵感实在令人不怎么爽,所以就有聪明的玩家想出了将PS3的无线手柄连接至手机上来玩游戏的好主意,下面我们…

零成本修复XBox手柄摇杆漂移

零成本修复XBox手柄摇杆漂移 前几天玩游戏&#xff0c;发现我的Xbox One手柄左摇杆总是失控&#xff0c;主要表现为&#xff0c;我不推摇杆&#xff0c;电脑上却显示我在推摇杆。起初以为是手柄软件如问题了&#xff0c;于是更新了固件发现根本不管用。后来在设备中校准了摇杆…

玩转树莓派——支持PS3手柄

之前写过一篇用树莓派玩模拟器的。通过retropie可以集成不同的模拟器&#xff0c;在树莓派上玩街机、玩红白机、玩PSP都不是问题。 不过我不喜欢让游戏直接接管我的树莓派&#xff0c;毕竟用树莓派还得做正经事对吧。 还好retorpie提供on the top的使用方式&#xff0c;只不过是…