最近进行三方安全测试,剩最后一个问题:

原因是我用360加固宝之后,又用了360Signer对apk进行二次签名,而360Signer是用v1方式对apk进行签名的,所以安全检测还是不通过。

下面给出自己百度出来的对360加固之后的apk进行v2二次签名的方法。(注意要用同一个keystore)

(1)先找到电脑中25或者25以上版本的SDK的build-tools\版本号的目录,并把需要签名的安装包放在该目录下。
 
(2)使用zipalign将安装包对齐:打开cmd,将目录切换到sdk的build-tools\版本号的目录下,使用zipalign -v -p 4 input.apk output.apk进行对其操作,其中input.apk是需要签名的安装包,output.apk是对齐之后的的安装包。
 
(3)把对齐后的安装包apk文件放到build-tools\版本号下的lib文件下,使用apksigner对安装包进行签名:打开cmd,将目录切换至当前目录下,使用如下命令:java -jar apksigner.jar sign --ks kestore的路径 --out output.apk input.apk 然后会提示输入keystore的密码,输入后回车即可完成签名。
 
(4)检查是否签名成功:依旧在当前目录下打开cmd,然后输入如下命令:java -jar apksigner.jar verify -v my.apk。如果v1 scheme和v2 scheme的值都为true,即表示签名成功。

使用apksigner对apk进行v2签名的更多相关文章

  1. 使用re-sign.jar对apk进行重签名

    准备: ① re-sign.jar重签名工具:(下载地址为:http://troido.de/downloads/category/1): ② 待重签名的apk:      重签名步骤: ① 右键re ...

  2. ApkTool反编译apk,去除广告或者汉化后重新打包apk,并签名

    http://my.oschina.net/mopidick/blog/135581 以ubuntu的环境为例子,window的大同小异 首先下载apktool工具:https://code.goog ...

  3. apk的重签名

    1.      生成Android APK包签名证书 1).     在doc中切换到jdk的bin目录 cd C:\Program Files\Java\jdk1.6.0_18\bin 2).    ...

  4. Android apk应用程序签名

    Android apk应用程序签名 分类: Android 2012-11-25 19:33 570人阅读 评论(0) 收藏 举报 一.Android Apk签名 Apk签名首先要有一个keystor ...

  5. 【keytool jarsigner工具的使用】Android 使用JDK1.7的工具 进行APK文件的签名,以及keystore文件的使用

    一个android apk的编译过程 请参考: http://www.2cto.com/kf/201312/261475.html 典型的编译过程: aapt( Android Asset Packa ...

  6. Android 验证APK是否已经签名或是否是Debug签名

    https://source.android.google.cn/ http://www.android-doc.com/tools/publishing/app-signing.html Signi ...

  7. 对cordova打包的apk文件进行签名

    可用于没有签名和已经签名的apk,再次签名. jarsigner -verbose -keystore [keystorePath] -signedjar [apkOut] [apkin] [alia ...

  8. 利用signapk.jar工具对apk文件进行签名

    signapk.jar是Android源码包中的一个签名工具. 代码位于:Android源码目录下,signapk.jar 可以编译build/tools/signapk/ 得到. 使用signapk ...

  9. 转 对APK进行重签名

    1.      生成Android APK包签名证书1).     在doc中切换到jdk的bin目录cd C:\Program Files\Java\jdk1.6.0_18\bin2).     运 ...

随机推荐

  1. Shell-8--数值运算及处理

    RANDOM 默认范围是 0~32767

  2. MySQL 字符集utf8和utf-8的关系

    目录 什么是字符集(character set) 校对规则(collation) ASCII码 Unicode国际化支持 UTF-8 utf8 utf8与utf8mb4的关系 超集 字符集设置 什么是 ...

  3. js中break、continue和return的一般用法总结

    break break :终止break的整个循环体,包括内部所有循环.但对循环体外部的循环不影响. for(let i = 0;i<2;i++){ for(let j = 0;j<2;j ...

  4. List通过HashSet去重

    //JAVA中//使用hashset去重复,set为重复的集合,可以通过new ArrayList(set)转换成list HashSet<HashMap<String, String&g ...

  5. session失效时间设置

    session失效时间设置 一.java代码 request.getSession().setMaxInactiveInterval(1800);/*秒为单位*/ 二.web.xml <sess ...

  6. ES6中的proxy

    1 概述 Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写. Proxy 这个词的原意是代理,用在这 ...

  7. C#开发必会

    1.字符串的各种属性和方法: 2.数组的各种熟悉和方法: 3.public.private.protect.internal.protect internal 4.构造函数 5.属性 6.ADO.NE ...

  8. Java并发编程笔记之ReentrantLock源码分析

    ReentrantLock是可重入的独占锁,同时只能有一个线程可以获取该锁,其他获取该锁的线程会被阻塞后放入该锁的AQS阻塞队列里面. 首先我们先看一下ReentrantLock的类图结构,如下图所示 ...

  9. top命令查看进程下线程信息以及jstack的使用

    转自:https://www.cnblogs.com/shengulong/p/8513652.html top -Hp pid可以查看某个进程的线程信息 -H 显示线程信息,-p指定pid jsta ...

  10. 深入学习sequoiadb巨杉数据库及python连接方式

    随着公司日益复杂与多变的需求,以及迅速扩展带来的海量数据业务,我们需要在提供高效服务的同时,降低其设备与程序维护成本.算了,不吹了,说白了就是需要从巨杉数据库中抓取大量的数据,但是我现在不会,所以需要 ...