linux apk 打包工具,linux下apk批量打包
1.思路
整个思路就是,把需要修改的参数以的方式定义在项目的AndroidManifest.xml文件中,具体参数如何获取及具体用法这儿我就不多说,然后打包好一个完整的apk包作为参照包。然后用python脚本把调用apktool工具把apk解开,修改xml文件里面节点下对应参数的值,然后再把apk封起来。提供参数的文件我这儿用的是一个txt的文件,利用python脚本循环读取txt中的每一行,每一行代表一个apk所需的所有参数,使用时以'#'字符split.具体的可参照python脚本的主函数. 当然各位使用的话可以根据自己的需要另行修改,即使对python不懂的童鞋也不用慌张,其实我也不懂,但只要你有一定代码基础,再花十几分钟认真看看这个脚本文件,就会读懂具体的情节,然后根据自己需要修改。
2.崭新的linux环境下需要安装:
以下所有操作都是在linux终端里面用命令行搞定,所以大多数情况下是需要超级管理员权限。
①.jdk/jre
刚开始搞这个'工具'时,用的是一个新装的ubuntu12.04的系统。没想到会需要装jdk/jre的环境。但是在执行python脚本时,看日志报了一个错误,提示需要jre的环境,所以就想起还没装它的包,一查看ubuntu自带了jdk的包,所以就直接使用命令行装了。
②.expect包
为嘛要装这个呢,是因为在打包apk的时候,需要输入签证秘钥时,用到了shell脚本来处理交互动作,就是检测到日志输出:Enter Passphrase for keystore时就输入密码,shell脚本此处用处就是不需要自己手动来输入,直接用脚本交互。在我自己玩这个打包的时候,发现我装的ubuntu日志输出要求输入秘钥时竟然报出的是:输入密钥库的口令短语。所以这个需要根据自己装的系统来查看具体情况,然后适当修改shell脚本里面的东西。如何查看呢,直接在终端里面用命令行运行这个shell脚本,就可以看到它的系统日志提示。
③.python环境
为嘛需要装这个运行环境,我就不多说。具体如何装,大家去go去哈。
④.androidSDK环境,要用到zipalign并赋予可执行权限
因为新装的linux系统,所以没有android的开发环境,在给apk打包的时候,最后一步用到了androidSDK里面的zipalign这个工具。如果你没装这个包,在执行python脚本的时候,日志会报错告诉你找不到这个包。所以我就索性在官网下载了一个android开发的adt,里面附带了最新版SDK,然后就把SDK,tools下的这个包copy到/usr/local/bin下面去,并赋予可执行权限。
⑤.apktool 三个文件都赋予权限.
apktool工具,是在解开apk时会用到,所以需要装这个包。这个需要在网络上去下载,我下载的地址是
http://code.google.com/p/android-apktool/downloads/list到这个里面去把第一个和最后一个ForLinux的都下载下来,解压缩有三个文件,aapt、apktool、apktool.jar 都拷贝到 /usr/local/bin下面去,并赋予可执行权限。
3.准备完成后,如何打包
以上一切工作准备好之后,只需要执行python脚本,就会自动打包了。txt文件中有多少行,就会打包多少个,如果情况正常的话。
注意的地方:
1.shell脚本中 spawn /usr/bin/jarsigner -verbose -keystore 自己的秘钥文件名 -signedjar $new_name $origin_name 生成秘钥时的Alias
2.注意文件的路径及命名,比如所需参数的txt文件的路径,python中调用的shell脚本的路径,还有已经存在原始的apk的路径和命名,目前提供的文件中都是放在同一目录下的相对路径。
3.最后打包出来的apk文件也在同一目录下,但是请大家验证一下其可用与否,主要是验证它的签名是否正确,最简单的方式就是覆盖安装确定正确的包,看能否覆盖安装成功。
4.整个过程中涉及到很多linux基础命令,如果linux菜鸟,最好请教一下同事或朋友帮忙。
5.之前尝试了把这套脚本放在windows下去执行,但无论我如何装执行shell脚本的兼容包神马的,都没能成功。这套脚本的原创者是android开发者@杨豪 同学。作为高富帅的他是在自己的mac下运行的,所以我只是把它移植到linux下了而已。谢谢@杨豪 同学给于我莫大的帮助哈。
linux apk 打包工具,linux下apk批量打包相关推荐
- Linux漏洞建议工具Linux Exploit Suggester
Linux漏洞建议工具Linux Exploit Suggester 在Linux系统渗透测试中,通常使用Nessus.OpenVAS对目标主机进行扫描,获取目标主机可能存在的漏洞.如果无法进行漏洞 ...
- linux环境对apk文件写入数据,Linux下7zip命令apk中插入文件标识渠道批量打包
项目需要:需要对某个包分包,对渠道和下面的包做标记,但又不改变原包的签名,想到在原apk中插入某个带渠道号和包号的文件,服务器Linux环境,采用7zip 压缩格式解压,打包,插入文件到apk解压后的 ...
- linux系统打包工具,Linux 压缩、解压缩和打包工具
前言:你是否曾经因为某个文件占用空间较大,而空间紧缺的U盘无法存放此文件.你是否曾经因为软件里有太多文件而不方便复制和携带.你是否曾因需要备份太过零散而头疼.那么基于"文件压缩和打包&quo ...
- linux下qt多个程序打包,解决Ubuntu下使用linuxdeployqt打包Qt程序问题
写了点Qt界面程序,然而发现很难移植到其他没有安装Qt环境的电脑上运行.查资料了解到,在windows上有windowsdeployqt程序,linux上有linuxdeployqt可以帮助我们快速打 ...
- linux rom打包工具,Android rom解包打包工具
eMMC主要是针对手机和平板电脑等产品的内嵌式存储器,由于其在封装中集成了一个控制器,且提供标准接口并管理闪存等优势,越来越受到Android手机厂商的青睐,以eMMC为存储设备的android手机, ...
- linux c语言工具,Linux下C语言编程环境的工具.doc
Linux下C语言编程环境的工具 Linux下C语言编程环境的工具 Linux下C语言编程环境的工具 要想在Linux下进行C语言编程,首先得搭建好一个编程环境.这里分别说明一下几个非常有用的软件包. ...
- 7z替换exe文件内容不能替换文件_Windows小技巧 批处理文件实现目录下文件批量打包压缩...
最近整理资料,发现很多 pdf 文档,占用了不少的存储空间,考虑使用 7-zip 进行压缩存储,由于文件比较多,且分散在不同目录下,一个个文件压缩比较繁琐.为了提高效率且,方便后面取用,所有打算捣鼓个 ...
- c# 指定打开某个路径下的CMD_Windows小技巧 批处理文件实现目录下文件批量打包压缩...
最近整理资料,发现很多 pdf 文档,占用了不少的存储空间,考虑使用 7-zip 进行压缩存储,由于文件比较多,且分散在不同目录下,一个个文件压缩比较繁琐.为了提高效率且,方便后面取用,所有打算捣鼓个 ...
- Windows小技巧 -- 批处理文件实现目录下文件批量打包压缩
文章目录 for 命令实现 使用方法 批处理 for 命令说明 **forfiles** 命令实现 批处理 forfiles 命令说明 关于 7-zip DEL 命令删除文件 参考阅读 最近整理资料, ...
- linux中top工具,Linux命令工具 top详解
Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不 ...
最新文章
- PCL深度图像(1)
- 黑客必知的SQL语句 黑客知道,程序员必知
- OpenCV 4.5.3 发布!优化DNN等多个模块~
- 洛谷P4206 聪聪与可可
- 【原创】Aspose.Words组件介绍及使用—基本介绍与DOM概述
- django 添加comments app
- thonny中文版(python编辑器)
- 中国毛纺织行业竞争分析与发展前景展望报告2022-2028年
- Rainmeter 天气
- 使用github时因fatal: remote origin already exists错误,无法提交
- 13个代码注释的小技巧
- python点击按钮创建进程_python-创建进程的三种方式
- Python绘制傅里叶变换、反变换与带通滤波图像
- 计算机机房新风机管道布置要求,新风系统管道布置—新风系统管道布置连接方法介绍...
- 1997年起至今的所有 WiFi 设备均易遭 Frag 攻击
- ASP.NET - 一般处理程序获取session值
- caffe2 mdl文件转init_net.pb, predict_net.pb
- 实用的技巧之免费下载百度文库VIP文章
- 基于遗传算法(deap)的配词问题与deap框架
- 6种自动化测试框架(总有一款适合你)