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操作SFTP工具类,文件上传下载删除,获取列表目录

    Java操作SFTP工具类,文件上传下载删除,获取列表目录 需要依赖的Maven包 <!– SFTP –> <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>…

    2022年6月1日
    1.5K840
  • ChatGPT对话:结婚视频制作是用了什么技术呢,有很多平台上给用户提供个视频模板,然后把自己图片上传上去就可以自动化生成一个视频,背后的技术是什么呢?

    问:结婚视频制作是用了什么技术呢,有很多平台上给用户提供个视频模板,然后把自己图片上传上去就可以自动化生成一个视频,背后的技术是什么呢?详细说明下 答:结婚视频制作通常涉及到多个技术领域,包括视频编辑、图像处理、人工智能等。在现代科技的支持下,许多平台都能够通过提供视频模板、自动化生成等方式来帮助用户制作结婚视频。 具体来说,结婚视频制作平台的背后技术主要包…

    2023年2月17日
    11.4K11310
  • 将本地jar包上传至Nexus

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

    2022年5月16日
    14.8K26940
  • 为什么不建议在Docker中部署数据库

    说明近些年来,docker凭借着容器化技术和便捷的操作征服了大多数开发者的心,恨不得将所有的软件环境,应用都部署到docker容器中,但数据库真的适合容器化吗?这是一个值得思考的问题,下面讨论和列举数据库不适合部署到容器的若干理由,仅供参考。 一、数据安全问题入门docker的都知道,容器是可以随时创建和销毁的,当执行rm操作删除容器时,容器内的数据就会丢失…

    学习笔记 2022年6月24日
    79320
  • 微信小程序在Android、iOS、Windows、MacOS的文件存放路径

    一、微信小程序文件存放路径 /data/data/com.tencent.mm/MicroMsg/{{user哈希值}}/appbrand/pkg/ iOS越狱:/User/Containers/Data/Application/{{系统UUID}}/Library/WechatPrivate/{{user哈希值}}/WeApp/LocalCache/rel…

    学习笔记 2022年12月4日
    5.1K930

回复 Diplomi_ddEi

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

评论列表(1,196条)