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

相关推荐

  • Python实战:用Selenium webdriver 爬取网页数据 webdriver,爬取隐私政策地址

    Python实战:用Selenium webdriver 爬取网页数据 webdriver,爬取隐私政策地址 import os.path import requests import sys import time from selenium import webdriver from bs4 import BeautifulSoup from flask…

    2023年6月2日
    16.1K1740
  • WIN10 控制台cmd乱码及永久修改编码的解决办法

    WIN10 cmd控制台本来的编码是ANSI的,所以要求执行的批处理脚本编码格式也是ANSI才行,要不就两边统一都改成UTF-8处理(作为一个程序员,一般我都会统一成UTF-8编码格式),下面就介绍如何统一改成UTF-8编码格式   一、修改控制台CMD编码格式为UTF-8 我本机的系统环境: OS Name: Microsoft Windows 10 企业…

    2022年12月6日
    1.2K360
  • MySql 计算两个日期的时间差函数

    MySql计算两个日期的时间差函数 MySql计算两个日期的时间差函数TIMESTAMPDIFF用法:语法:TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2) 说明:返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其结果的单位由interval …

    2022年12月15日
    17.5K43770
  • ChatGPT,什么来头?

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

    2023年2月15日
    1.2K60
  • Java多线程方式快速解析大量文本内容得到pdf链接转换为文本-学习笔记

    Java多线程方式快速解析大量文本内容得到pdf链接转换为文本-学习笔记 解析流程: 1、一个目录里面包含大量多种格式文件;2、从目录中提取txt为后缀的文件路径List;3、根据服务器性能设定多线程处理文本数量;4、txt文本中获取所有的链接;5、通过正则提取后缀为.pdf链接;6、下载pdf文件到本地;7、使用开源工具把pdf转换为txt内容;获取链接正…

    2022年5月2日
    9.2K11910

回复 Iariorqpp

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

评论列表(1,196条)