遇到了这样一个问题:我们已经在centos下签名生成好的apk,拿到腾讯乐固上加固以后,签名没有了,就需要重新签名,我乐滋滋的想,既然原来是在centos下签名的,那再去centos上签名一次就好了,可以并没有那么简单,一直报错jarsigner不能打开我的apk,如下:

jarsigner: unable to open jar file: my.apk

后面想了下,我之前的签名是先使用apktool.jar反编译apk,删除里面的META-INF文件夹,然后再编译生成新的apk,然后才签名的,我也尝试了这种方式,发现报错,反编译失败,查了资料,发现腾讯乐固加固有一项就是为了防止apk反编译的,所以我反编译失败是解释的通的。

觉得centos不行,那我再windows下试试,同样的签名命令,windows下在git bash下可以!!!   目前不清楚为啥,不知道是不是不同系统的jdk不一样。

 

在ftp上我们指定了路径给签名apk使用,比如是\\192.168.1.3\ftp\sign_apk

用到了两个脚本,一个bat,一个shell,所以需要在windows上安装下git bash,话不多说,直接看下脚本,

bat脚本:sign_apk.bat

@echo on
setlocal ENABLEDELAYEDEXPANSION
set apk_path="\\192.168.1.3\ftp\sign_apk"
set local_sign_path=C:\build_bat\sign_apk
::当前路径
set cur_path=%cd%
::复制key文件
echo cur_path=%cur_path% and ftp_path=%apk_path%
copy %local_sign_path%\mirror_aw.key .\
xcopy %apk_path%\* .\
md target
::查找当前目录下的所有apk文件,并调用shell脚本签名
for /F %%h in ( 'dir /B %cur_path%\ ^|findstr ".apk" ' ) do (

set apk_name=%%h
echo apk_name=!apk_name!
call %local_sign_path%\sign_tool.sh !apk_name!
)
::等shell执行结束后,将签名后的apk回收到ftp上
ping 127.0.0.1
xcopy target\* %apk_path%

shell脚本:sign_tool.sh

#!/bin/bash
echo ==========sign $apk_name=====================
time_now=`date "+%Y%m%d%H%M"`
jarsigner -verbose -digestalg SHA1 -sigalg SHA1withRSA -keystore mirror.key -signedjar target/"$time_now"_signed_"$apk_name" $apk_name $key_alise -storepass $passwd

两个脚本放在同一个目录下,同级目录下还有个key文件,加密时使用

最后直接执行bat脚本就可以了,执行结束后,会在你的ftp路径下看到以“时间_signed”标志开始的apk,就是已经签名了的apk

乐固加固后windows下实现给apk签名的更多相关文章

  1. Windows下文件加固

    今天学到一种Windows下简单的文件加固方法,可以防止文件被(普通)删除. CMD找到要加固的文件. 例:C盘下有个 1516.txt 文本文件需要加固. 然后 copy 该文件.(注意:这里并非普 ...

  2. Windows下MySQL配置及安全加固总结

    Windows下MySQL配置及安全加固总结 在网管的实际使用过程中,MySQL数据库在安装后的配置及安全加固内容,在客户中逐渐要求越来越高.从反馈的问题看,一般都是由第三方软件公司的软件扫描整个系统 ...

  3. MySQL 5.7 Command Line Client输入密码后闪退和windows下mysql忘记root密码的解决办法

    MySQL 5.7 Command Line Client输入密码后闪退的问题: 问题分析: 1.查看mysql command line client默认执行的一些参数.方法:开始->所有程序 ...

  4. React Native在Windows下修改js代码后reload无效

    iOS下因为有watchman这个插件,所以启动很快(npm start),而Windows下则非常慢,最要命的是遇到了修改js文件后,点击reload居然一直是请求的缓存bundle,泪崩... 后 ...

  5. Pycharm 在Windows下出现闪退问题(即是在运行一段时间后,自己就退出崩掉了)的解决方法

    Pycharm 在Windows下出现闪退问题(即是在运行一段时间后,自己就退出崩掉了)的解决方法 最近自己下载了最新版本的Pycharm,运行程序过程中发现,在运行一段时间后(比如10几分钟),Py ...

  6. vim 编辑 windows下的文本时出现乱码, 修改配置后 已解决

    最近用VIM 查看一个 WINDOWS下的文本,打开以后发现出现乱码,具体如上图. 最后在网上找到了一个解决方法: 原文地址: https://www.zhihu.com/question/22363 ...

  7. 解决Windows下编辑脚本上传到Linux后遇到^M的方法

    Windows下编辑脚本上传到Linux后遇到^M,导致脚本无法执行,原因是因为Linux与Windows对 "回车键" 编码不同 解决方法如下: 在使用UE->文件-> ...

  8. windows下elasticsearch安装ik分词器后无法启动

    windows下elasticsearch安装ik分词器后启动报如下图错误: 然后百度说是elasticsearch路径有空格,一看果然我的路径有空格,然后重新换个路径就好了.

  9. Windows下升级Python3.7.7后(原Python3.6.2版本)如何切换Python版本

    笔者:风起怨江南 出处:https://www.cnblogs.com/mengjinxiang 笔者原创,文章欢迎转载,如果喜欢请点赞+关注,谢谢! 问题:window系统下,如果升级了最新的Pyt ...

随机推荐

  1. 10.8Xadmin url注册

    2018-10-8 16:45:31 这两天在弄我的服务器,就是是看各种教程 死活部署不好我的Django项目 博客网站 过几天再弄! 越努力,越幸运!永远不要高估自己! 通过两个方法,通过类变量找到 ...

  2. [LintCode] Max Points on a Line 共线点个数

    Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. ...

  3. Java:对double值进行四舍五入,保留两位小数的几种方法

    1. 功能 将程序中的double值精确到小数点后两位.可以四舍五入,也可以直接截断. 比如:输入12345.6789,输出可以是12345.68也可以是12345.67.至于是否需要四舍五入,可以通 ...

  4. linux 下修改键盘映射

    参考文档 原因: 输入 键盘原本的 “\ |”,结果映射到 "< >",而 < 与 > 对应的键名分别是 less 与 greater 查看键名: xev ...

  5. Linux 下文件

     Linux下文件的三个时间(Atime,Mtime,Ctime) [root@node ~]# stat install.log File: `install.log' Size: Blocks: ...

  6. Linux系统下公式编辑器KLatexFormula

    方法1:源码安装 https://blog.csdn.net/ouening/article/details/79008636 方法2:通过apt-get 安装 首先安装libqt4-sql-sqli ...

  7. [No000010B]Git4/9-时光机穿梭

    我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容: Git is a distributed version c ...

  8. 生成树协议(STP)

    首先了解一下环路问题: 两个交换机将两个局域网同时连接起来的时候,不幸地出现了环路: 这两个交换机还是都能够收到广播包的.交换机 A 一开始是不知道机器 2 在哪个局域网的,所以它会把广播消息放到局域 ...

  9. wpf(Application 如何创建一个事件,及其Application相关的属性)

    1.如何关闭wpf程序.应用程序的关闭只有调用其shutdown方法才可以.shutdown有三种属性.OnLastWindowClose,OnMainWindowClose,OnExplicitSh ...

  10. 在U盘上安装GRUB2直接引导ISO

    本文的内容来源于 http://maxmars.net/blog/2012/10/02/boot-multiple-iso-from-usb-using-linux/ 以下所有命令都在 root 用户 ...