java方式调用apksigner对Apk 检查是否签名异常 v1、v2、v3、v4 (JAVA)

apksigner

apksigner 是 Google 官方提供的针对 Android Apk 签名和验证的专用工具,位于 Android SDK / build-tools / SDK 版本 / apksigner 。

无论是 apk 包 还是 jar 包,其本质都是 zip 格式的压缩包,如果只针对 v1 签名的话,两者的签名过程其实差不多。

apksigner 工具默认同时使用 v1 和 v2 签名

在终端输入如下命令即可

java -jar apksigner.jar verify –print-certs –min-sdk-version=24 -v 11.apk

file

JAVA方式调用校验

jar包自己改过,之前只能man调用。修改后抽出了一个公共方法调用。

apksigner-1.1.jar包下载
链接: https://pan.baidu.com/s/1Z6QQA7870C-Y4MB_6K6zVg 提取码: ex92

测试代码:

package com.utils.sign;

import com.alibaba.fastjson.JSON;
import com.android.apksig.ApkVerifier;
import com.android.apksigner.ApkSignerTool;

public class ApkV2SignInfo {

    /**
     * 判断v1~v4签名是否通过
     */
    public static boolean getApkSingInfo(String apkPath) {
        String[] arg = {"--print-certs","--min-sdk-version=24","-v",apkPath};
        try {
             ApkVerifier.Result result = ApkSignerTool.verify2(arg);
             return (result !=null && result.isVerified())?true : false; 
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    //java -jar apksigner-1.0.jar verify --print-certs --min-sdk-version=24 -v 12.apk
    public static void main(String[] args) {
        String apkPath = "F:\\11.APK";
        String[] arg = {"--print-certs","--min-sdk-version=24","-v",apkPath};
        try {
//          ApkSignerTool.main(arg);
             ApkVerifier.Result result = ApkSignerTool.verify2(arg);
             System.out.println(result.isVerified());
             System.out.println(JSON.toJSONString(result));
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

运行得到结果
file

发布者:小站,转转请注明出处:http://blog.gzcity.top/4817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年12月6日 14:46
下一篇 2022年12月9日 17:51

相关推荐

  • OOM专题-String 和 StringBuilder的最大可用长度是多少

    String 直接量 超出 65535之后(127KB),IDEA 编译器会报错,因为 直接量是存储在常量池,常量池的定义规定中 有长度限制 2e16 。 String在运行期间的拼接后的最大长度是 int 的最大值 。 StringBuilder 长度是 int 的最大值 2e32 ,21亿 个字符,42亿字节 Byte= 大小4G。 超出长度的需要 用文…

    Java 2022年7月5日
    1.2K610
  • Spring Cloud Alibaba版本对应关系

    版本依赖关系(推荐使用) 由于 Spring Boot 2.4+ 和以下版本之间变化较大,目前企业级客户老项目相关 Spring Boot 版本仍停留在 Spring Boot 2.4 以下,为了同时满足存量用户和新用户不同需求,社区以 Spring Boot 2.4 为分界线,同时维护 2.2.x 和 2021.x 两个分支迭代。 2021.x 分支 适配…

    Java 2022年6月28日
    14.1K32970
  • ChatGPT,什么来头?

    ChatGPT正在掀起一股新的人工智能热潮。 最近大火的ChatGPT,获得微软巨额投资,连比尔·盖茨都盛赞:“AI将成为2023年最热门的话题,那是合适的。这(AI)与 PC 和互联网一样重要……这让我能一窥未来,整个平台的方法和创新速度都令我印象深刻。” 不少商界大佬也纷纷夸赞ChatGPT。 马斯克表示,“ChatGPT很惊人,…

    2023年2月15日
    1.2K60
  • Pycharm激活码,Pycharm稳定专属激活码

    2018.2~2023版本用这个,下面激活码直接复制粘贴到activation code即可激活软件 FDXL1Y2811-eyJsaWNlbnNlSWQiOiJGRFhMMVkyODExIiwibGljZW5zZWVOYW1lIjoiQmVub2l0IE1lbmVuZGV6IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbW…

    学习笔记 2023年4月13日
    8.1K1470
  • linux selenium 配置安装

    1.进入linux,首先安装谷歌浏览器,如果有的话,这步骤可以直接跳过。 方法: yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm/usr/bin/google-chrome-stable -v //查看/usr/bin/google-…

    学习笔记 2022年10月11日
    982720

回复 vivod iz zapoya v stacionare balashiha_lrkn

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(1,196条)