【Android安全】从xapk中提取apk并进行重命名
关于xapk格式
XAPK文件是由APKPure首创的。
它是一种文件扩展格式,包含了单独的APK文件和OBB cache assets文件。这种格式节省了文件大小以助于开发者能够在最大限制100 MB内上传他们的安卓应用到谷歌商城。APKPure APP是提供在安卓下载和安装XAPK文件的最受信任的来源之一。
参考:https://m.apkpure.com/cn/how-to/how-to-install-xapk-apk
核心:xapk中,解压之后,有一个apk的名字是包名(称为main apk,或者main application package),将这个main apk提取出来,进行后续分析即可
术语参考:https://filext.com/file-extension/XAPK
任务描述
当前文件夹下有一些xapk文件
原始文件名 例如:PA01-0018-com.nra.flyermaker-90.xapk
希望从中解压并提取出主apk 例如:com.nra.flyermaker.apk
并将com.nra.flyermaker.apk命名为PA01-0018-com.nra.flyermaker-90.apk
解决方案
Xapk2Apk.py
import os
import zipfile
import shutil# 原始文件名:例如PA01-0018-com.nra.flyermaker-90.xapk
# 希望从中解压并提取出主apk:com.nra.flyermaker.apk
# 并将com.nra.flyermaker.apk命名为PA01-0018-com.nra.flyermaker-90.apk# 获取当前目录下所有.xapk文件
xapk_files = [file for file in os.listdir('.') if file.endswith('.xapk')]# 循环处理每个文件
for file in xapk_files:print(file)# PA01-0018-com.nra.flyermaker-90.xapk# 解压缩到当前目录下的与文件同名的文件夹中with zipfile.ZipFile(file, 'r') as zip_ref:folder_name = os.path.splitext(file)[0]zip_ref.extractall(folder_name)# 在解压缩后的文件夹中找到apk文件并进行重命名folder_files = os.listdir(folder_name)apk_files = [name for name in folder_files if name.endswith('.apk')]for apk_file in apk_files:# 找到解压后的主apkif os.path.splitext(apk_file)[0] in os.path.splitext(file)[0]:print(apk_file) # com.nra.flyermaker.apkapk_path = os.path.join(folder_name, apk_file)print("old apk name : " + apk_path) # old apk name : PA01-0018-com.nra.flyermaker-90/com.nra.flyermaker.apknew_apk_path = os.path.join(folder_name, folder_name+'.apk')print("new apk name : " + new_apk_path) # new apk name : PA01-0018-com.nra.flyermaker-90/PA01-0018-com.nra.flyermaker-90.apkos.rename(apk_path, new_apk_path)# 将./PA01-0018-com.nra.flyermaker-90/PA01-0018-com.nra.flyermaker-90.apk 移动至 ./PA01-0018-com.nra.flyermaker-90.apkshutil.move(new_apk_path, "./"+folder_name+'.apk')# 删除./PA01-0018-com.nra.flyermaker-90/文件夹shutil.rmtree(folder_name)
参考:
https://chat.openai.com/
【Android安全】从xapk中提取apk并进行重命名相关推荐
- 【Android音视频开发】【032】Android从RTMP流中提取H264和AAC数据进行播放
前篇 在上篇博客中,我们已经讲解过,如何从RTMP流中提取H264和AAC数据,并保存为FLV,AAC,H264等文件 这篇博客我们讲解,怎么通过Android多媒体框架播放这些数据 上篇博客的重点在 ...
- 对数组中重复的值进行重命名
对数组中重复的值进行重命名 把:arr = [{name: '张三'}, {name: '李四'}, {name: '王五'},{name: '张三'}, {name: '李四'}, {name: ' ...
- Java 提取EXIF信息批量重命名
手机或照机拍摄的照片名称通常是"IMG_001.JPG"这种格式,这种文件名称是无意义的.使用照片拍摄时间命名可以让我们在多年以后查找照片时根据文件名就能快速筛选出某一时间段的照片 ...
- linux批量对文件改名,在Linux中对文件进行批量重命名文件的方法
在Linux中,当你想要改变一个文件名,使用mv命令就好了.然而mv不能使用通配符重命名多个文件.可以用sed.awk或者与xargs结合使用来处理多个文件的情况.然而,这些命令行即繁琐又不友好,并且 ...
- android studio2.3安装apk,在Android Studio 2.3中安装apk时出错
工具: > Android Studio 2.3 > Firebase 设备测试 >三星GT-I9505 >三星SM-T211 设备OS: > Android 5.0 问 ...
- Jenkins中Maven构建Archiving会重命名jar
[问题来源]jenkins配置Maven构建时,在Archiving的时候,会修改名字: [JENKINS] Archiving /proj/ip_ers/jenkins_**/6018/s11/wo ...
- 一分钟学会在Mac中如何将文件批量重命名
以前如果我们需要批量修改文件名时候,想到的都要借助第三方(多数为收费的)应用程序.但现在,如果你是用的Mac电脑,在 Finder 窗口内就可以直接批量重命名了.接下未来小编就来教大家如何操作. 1. ...
- Java复制一个文件到新文件夹中,并对新文件重命名
需求:将图片A从文件夹A,复制到新文件B,没有新文夹B则新建一个B,并将图片A的名称改为B.路径:/Users/mgx/apache-tomcat-8.5.78/webapps/img/testimg ...
- ArcGIS 一级文件夹下的所有GDB中的所有要素类重命名
一级文件夹下存在多个GDB,每个GDB存在多个要素类,要求对所有要素类重命名为:"GDB名_原数据名",如下图: 相关代码: arcpy.env.workspace = " ...
最新文章
- ubuntu中安装rabbitmq
- 支付宝开发中return_url和notify_url的区别分析
- Javascript 5 种原始数据类型
- Go语言GO111MODULE设置
- 每日两SQL(10),欢迎交流~
- [排序][二分][dp]JZOJ 2747 捡金子
- 机器学习入门(二):工具与框架的选择
- 【程序源代码】万岳在线教育系统WEB开源版
- 2022年首次升级:静态代码测试工具Helix QAC 2022.1 新版本功能快讯
- win10使用powerShell执行ps1文件方法
- 123456789 中间随机添加 “加减符号” 进行运算结果等于100
- 关于canvas修改模式
- 第2章第7节:标题设计技巧:实现字叠字的创意艺术效果 [PowerPoint精美幻灯片实战教程]
- K路归并排序与败者树
- PCB的分类以及它的制造工艺
- HTML中设置行高的属性是,line-height属性(行高标签用法)
- Android关联文件类型,使得自己app支持打开【加入到“用其它应用打开”的列表中】
- python调用PHP
- 怎么将两个pdf文件合并在一起?
- 【时间序列聚类】KMedoids聚类+DTW算法