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

相关推荐

  • Appium异常 Original error: Cannot find any free port in range 8200..8299

    Appium运行一段时间后就出现异常: log———> 2022-11-09 09:36:53 at io.appium.java_client.android.AndroidDriver.(AndroidDriver.java:94)log———> 2022-11-09 0…

    学习笔记 2022年11月9日
    1.6K2370
  • 反编译获取微信小程序源码(包含错误解决办法)

    本文章仅用于分享自己反编译的过程以及解决办法,切勿小程序反编译成功后做一些违法事情! 一. 前言 微信小程序的反编译听起来很屌,其实非常简单,就是纯粹的傻瓜式的操作。GitHub有写好的node.js脚本!要想拿到微信小程序源码,找到源文件在手机存放的位置就行,源文件拿到,用反编译脚本跑一下,微信小程序代码包里的所有文件、资源就出来了。 二. 微信小程序的小…

    学习笔记 2022年11月15日
    1.6K1110
  • Git clone代码报“fatal: Out of memory, malloc failed (tried to allocate xxxx bytes)”的解决办法

    问题描述: 之前clone代码的时候一直没问题,今天clone代码的时候突然报错“fatal: Out of memory, malloc failed (tried to allocate 1058576000 bytes)”。 按报错的理解就是本机的内存不足了,查看了本机运行的服务和进程,没有可以停掉的服务和进程,那该怎么办呢? 查询资料都说的是因为GI…

    2023年3月21日
    12.9K16550
  • 【云原生】Spring Cloud微服务学习路线汇总

    Spring Cloud是什么?简单来说Spring Cloud是一系列框架的组成集合。主要利用的我们现在主流应用的Spring Boot框架开发便利性、巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以利用Spring Boot的开发风格做到一键启动和部署。Spring Cloud没有重复制造轮子…

    2022年6月24日
    861760
  • yum命令提示error: rpmdb: BDB0113 Thread/process,解决方法

    Executing docker install script, commit: 3d8fe77c2c46c5b7571f94b42793905e5b3e42e4sh -c ‘yum install -y -q yum-utils’error: rpmdb: BDB0113 Thread/process 7689/140162110208064 failed…

    学习笔记 2023年1月6日
    5.3K7530

回复 1win apk_dvKl

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

评论列表(1,196条)