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

相关推荐

  • Java调用PhantomJs将网页转换成PDF或者长图片

    PhantomJS 是一个基于WebKit的服务器端 JavaScript API。它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG。PhantomJS可以用于页面自动化,网络监测,网页截屏,以及无界面测试等。 需要先安装好phantomjs 执行使用到JS渲染加载,…

    2022年5月31日
    61420
  • Apache Log4J2 远程代码执行漏洞处置手册

    1、漏洞概述 Apache Log4j2是一个基于Java的日志记录工具。该日志框架被大量用于业务系统开发,用来记录日志信息。此次爆发的0day漏洞触发条件为只要外部用户输入的数据会被日志记录,即可造成远程代码执行。 漏洞细节 漏洞PoC 漏洞EXP 在野利用已公开 已公开 已公开 存在 参考链接:https://issues.apache.org/jira…

    2022年8月3日
    2.2K1400
  • 将本地jar包上传至Nexus

    其实上传jar包到Nexus有好几种方法,这里先来介绍一种比较简单的方法: 1.首先登陆私服: 2.点击左边“Repositories”,选中“3rd party” 上传本地jar包(第五步可根据需要自行修改): 2.点击头部Refresh按钮,检查是否上传成功,如下图表示上传成功: 4.本地pom.xml文件添加依赖: <dependency>…

    2022年5月16日
    14.8K26940
  • fastdfs的一些常见错误 getStoreStorage fail, errno code: 2

    错误1:getStoreStorage fail, errno code: 2 这个错误是storage没有启动 或者是配置错误 ,这是其中一个可能 我这里出现这个问题是因为没有启动 storage 启动会去连接 tracker server 所以你要是出现启动 storage的时候一直在等待(或者说卡死)的情况下 是因为他一直在连接tracker serv…

    2022年7月11日
    6.9K11930
  • CISP模拟测试三【CISE方向】

    祝老铁们早日拿证~ 1. 最小特权是软件安全设计的基本原则,某应用程序在设计时,设计人员给出了以下四种策略,其中有一个违反了最小特权的原则,作为评审专家,请指出是哪一个?(单选) A、A.软件在Linux下安装后,设定运行时使用nobody用户运行实例 B、B.软件的日志备份模块由于需要备份所有数据库数据,在备份模块运行时,以数据库备份操作员账号连接数据库 …

    2022年5月17日
    10.9K23470

回复 Trefnxa

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

评论列表(1,196条)