本文将通过前言、apk安全测评、应用加固、字节对齐、二次签名、总结共6大版块来阐述

一、前言

评判一个App是否出色,除了看它的性能、体验外,本人认为最为重要的是它的安全性。市面上apk安全评测、加固、二次签名的软件不少,但本人比较喜欢也经常使用的是腾讯云。本文也将以腾讯云 — 移动应用安全的使用为开端,按步骤详细阐述后续4大版块的使用流程。

二、apk安全测评

apk安全测评、应用加固都是通过腾讯云 — 移动应用安全来实现的。由于腾讯云早前下架了“乐固”,导致现在只能通过网页端在线实现上述功能。“乐固”这款软件,集成了包括安全测评、加固、对齐、二次签名的所有功能,但至于为什么下架该款软件,我也不得而知。网上有很多第三方的下载地址,不是很建议去下载安装,会有很多捆绑软件,软件是否被篡改也不得而知。

第一步肯定要登录:点击跳转登录页

登录成功后,按照下图所示,依次点击红框标识的1、2:

选择需要上传的apk文件,上传成功后显示如下图所示界面,点击“确认测评”按钮后并等待一段时间(apk越大时间越长,需要耐心等待)。测评结束会显示测评结果,可以在结果中查看该应用存在的漏洞风险(会在漏洞风险展示页详细显示所有可能存在的风险,并标明了风险等级和代码修改建议,这点本人比较喜欢)。

三、应用加固

如下图所示,依次点击红框标识的1、2,按照步骤选择完apk文件并等待加固完成后,会在下方列表展示加固结果信息:

查看加固结果如下图所示,在图中可以看到,下载的加固包需要重新签名,否则该加固包是不能够安装的。如何二次签名,继续往下看。

四、字节对齐

字节对齐的好处是帮助操作系统更高效率的根据请求索引资源,降低内存消耗。

Android SDK自带字节对齐工具zipalign,二次签名前,最好先进行字节对齐操作(一般为4字节对齐)。虽然Android Studio打包的apk是默认经过字节对齐的,但是由于经历过应用加固步骤,不能保证该应用中的数据还处于对齐状态,以防万一,再进行一次字节对齐操作。当然,不进行字节对齐操作也是可以的,应用还是可以正常使用的。

进行字节对齐的步骤如下所示(下面提到的apk文件操作都是上文中下载的加固包):

修改apk文件的后缀名为 .zip(其它压缩格式也可以,主要是为了用压缩软件打开该文件),修改完成后打开该文件,删除下图中红框选中的“META-INF”文件夹(该文件夹经过应用加固后,签名信息已经被删了,多了一些杂七杂八的文件,没什么用。如果不删除该文件夹,后续二次签名就无法成功);

删除成功后,将该文件的后缀名重新改为 .apk;

将该文件复制到zipalign工具所在目录;

该工具位于sdk\build-tools\build版本目录下,本人选取的build版本为29.0.3

上图所示,红框1中的zipalign.exe即为字节对齐工具,将需要对齐的apk文件放到该工具的同级目录下,例如上图红框2所示。

键盘Win+R,输入cmd,打开命令提示窗口,cd到压缩工具所在目录;

继续输入zipalign.exe -v -p 4 input.apk output.apk(命令中的input.apk为需要对齐的apk文件名,output.apk为对齐完成后输出的apk文件名);

中间省略一大段运行中输出的代码…

如上图所示,运行结束,出现红框中的代码,表示字节对齐成功,同时可以在目录中看到多了个字节对齐成功后的apk文件,如下图所示:

五、二次签名

签名工具SDK也是自带的,apksigner。该工具位于字节对齐工具同级目录lib的下一级,如下图所示:

上图红框1即为签名工具,红框2为第4版块中字节对齐输出的apk文件,红框3为该apk文件的签名文件。(红框2、3表示的文件需要跟签名工具在一级目录下)

接着,继续在命令提示窗口中依次输入:

cd lib

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就行了)。

签名成功,在命令提示窗口不会有任何提示;反之则有错误提示。只需查看目录中红框2的apk文件修改日期是否改变,例如下图所示:

时间较之前最初的,变成签名命令执行成功后的时间。想要确保签名成功,也可输入下述命令查看:

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

其中的output.apk为签名文件的文件名,例如上图中的test_align.apk,签名成功结果如下图所示:

六、总结

至此,从安全测评到二次签名整一个流程就结束了。大家有什么问题可以提,本人看到后会在第一时间解答。

android APK内存多少字节,Android apk安全测评、应用加固、字节对齐、二次签名(有这一篇就够了)...相关推荐

  1. Android 系统性能优化(42)---Android代码内存优化建议-Android资源篇

    Android代码内存优化建议-Android资源篇 这篇文章主要介绍在实际Android应用程序的开发中,容易导致内存泄露的一些情况.开发人员如果在进行代码编写之前就有内存泄露方面的基础知识,那么写 ...

  2. android pss内存,如何释放android系统中pss cache住的内存

    通过dumpsys meminfo可以统计查看到android各进程内存使用情况: Total RAM: 463136 kB Free RAM: 170277 kB (48221 cached pss ...

  3. android取消内存限制吗,Android 内存限制

    Android 内存限制 Android是一个多任务系统, 为了保证多任务的运行, Android给每个App可使用的Heap大小设定了一个限定值. 这个值是系统设置的prop值, 系统编译时内置的, ...

  4. android回收内存保存变量,android基础之onSaveInstanceState用法(一)保存容易被回收的自定义类的静态全局变量...

    当切换到其它apk时且内存不足时,在之前设置的单例模式静态变量会被回收掉.解决方法要么定义为Applicantion全局变量,要么在onSaveInstanceState中保存 @Override p ...

  5. Android起始内存大,调整Android Studio分配内存大小

    如果Androidstudio运行起来非常卡顿.缓慢,很可能是因为初始分配的内存不够导致卡顿. 查看当前分配的Heap 总大小以及使用状况可以在studio中设置展示.具体位置Settings -&g ...

  6. Android之内存机制分析-Android堆和栈

    1.dalvik的Heap和Stack 这里说的只是dalvik  java部分的内存,实际上除了dalvik部分,还有native.这个以后再说. 下面针对上面列出的数据类型进行说明,只有了解了我们 ...

  7. 查看Android应用内存的方法,Android获取App内存使用情况的方法

    1.代码获取当前app内存的使用情况 ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SER ...

  8. Android apk安全测评、应用加固、字节对齐、二次签名(有这一篇就够了)

    本文将通过前言.apk安全测评.应用加固.字节对齐.二次签名.总结共6大版块来阐述 一.前言 评判一个App是否出色,除了看它的性能.体验外,本人认为最为重要的是它的安全性.市面上apk安全评测.加固 ...

  9. android linux 优化,【「Android」UE手游研发中,如何做好Android内存优化?】|Linux|DEX|腾讯游戏|_傻大方...

    傻大方提要:[「Android」UE手游研发中,如何做好Android内存优化?]编者按在大年夜多半人的印象里,用UE引擎制造出来的游戏实际占用内存会比较高.腾讯游戏学院专家Leonn,将和大年夜家分 ...

最新文章

  1. TF之VGG系列:利用预先编制好的脚本data_convert .py文件将图片格式转换为tfrecord 格式
  2. JavaScript --- 跨浏览器的事件处理程序
  3. 原版英文书籍《Linux命令行》阅读记录2 | 在文件系统中翱翔
  4. 配置ganesha-nfs对接rgw
  5. MySQL + Atlas --- 部署读写分离
  6. 产品管理 OKR:最佳实践和示例
  7. 十几减9的口算题_十几减9精品口算练习
  8. 贾扬清:从授之以鱼到授之以data,人工智能如何重塑传统软件行业
  9. python 调用Multipart类型接口上传文件和下载文件
  10. MySQL 数据库下载(windows)
  11. 购房从银行贷了一笔款d,准备每月还款额为p,月利率为r,计算多少月能还清。设d为300 000元,p为6000元,r为1%。对求得的月份取小数点后一位,对第2位按四舍五人处理。
  12. 钢笔朝花夕拾录————一位钢笔玩家的入坑至出坑心路历程
  13. jflash命令行下自动加载配置、烧录、退出
  14. c语言 宏定义 宏用法
  15. 小米抢购页面源码分析2014年03月11号
  16. Python xlrd
  17. 移动物联卡信号无服务器,为什么有时移动设备的物联卡的信号满格网速忙
  18. STM32F407ZGT6串口通信讲解
  19. 系统规划与管理师相关英语
  20. **《彩色宝石项链》

热门文章

  1. 寻找两个正序数组的中位数——冒泡排序(归并排序)
  2. 2D秒变3D!视角还能随意切!华为上交提出:CIPS-3D:基于GAN的3D感知生成器
  3. 重磅直播|多模态融合SLAM技术分享!
  4. ICCV2021|单目3D目标检测真的需要伪激光雷达吗?
  5. 表面缺陷检测数据集汇总及其相关论文集收集 | Github开源
  6. 形态学处理:膨胀、腐蚀、开运算、闭运算、形态学梯度、顶帽、黑帽
  7. Welsh色彩迁移算法
  8. RDKit | 可视化重要片段
  9. Linux(CentOS 7_x64位)系统下安装RDkit(修正)
  10. 【错误归纳】selenium.common.exceptions.WebDriverException: Message: unknown error