关于使用python反编译apk签名出包的问题
作者:花了脸 发布时间:2022-12-19 19:39:04
标签:python,反编译,apk,签名出包
demo实现脚本下载
安装工具
需要python3,apktool.jar,apktool
1.用apktool进行反编译
cmd = 'apktool d -f '+apkPath+' -o '+outPath
2.修改需要配置的参数值
说明:如果是AndroidManifest.xml,注意在 parse 前 一定要设置namespace, 不然就会出现 ns0:name错误, 而不是预期的 android:name,设置namespace的方法 ET.register_namespace('android', "http://schemas.android.com/apk/res/android")
curPath = (apktoolPath+'/ihdrm202103161405apk/')
tree = ET.parse(curPath + 'AndroidManifest.xml') #打开xml
root = tree.getroot() #找到manifest的根文件
print(root.tag) #我们输出一下就知道root目录就是manifest目录
print(root.attrib) #输出一下root目录的成员
#获取package
versionName = root.get('package')
#修改
root.set('package', 'com.youxi.jiayou')
#获取application目录
application = root.find('application')
#遍历所有meta-data
for item in application.iter('meta-data'):
name = item.attrib.get(SPACE +'name')
value = item.attrib.get(SPACE +'value')
3.修改应用名字
def appnamechang():
print('--------修改应用名字完成--------')
tree = read_xml(in_path)
text_nodes = get_node_by_keyvalue(find_nodes(tree, "string"), {"name": "app_name"})
change_node_text(text_nodes, "霸道传奇")
# write_xml(tree, "./strings的绝对路径.xml")
write_xml(tree,apktoolPath+"/ihdrm202103161405apk/res/values/strings.xml")
4.修改icon图标
source_path = (apktoolPath+'/icon')
target_path = (apktoolPath+'/ihdrm202103161405apk/res')
def copy_search_file():
print('--------修改icon成功--------')
'''将一个目录下的全部文件和目录,完整地<拷贝并覆盖>到另一个目录'''
# source_path 源目录
# target_path 目标目录
if not (os.path.isdir(source_path) and os.path.isdir(target_path)):
return
for a in os.walk(source_path):
# #创建目录
for d in a[1]:
dir_path = os.path.join(a[0].replace(source_path,target_path),d)
if not os.path.isdir(dir_path):
os.makedirs(dir_path)
#拷贝文件
for p in a[2]:
dep_path = os.path.join(a[0],p)
arr_path = os.path.join(a[0].replace(source_path,target_path),p)
shutil.copy(dep_path,arr_path)
5.删除签名回编译
cmd = 'apktool b -f '+outPath
6.创建证书
def createzu():
cmd = 'keytool -genkey -alias jayoux.keystore -keyalg RSA -validity 20000 -keystore jayoux.keystore'
print('-------- 创建证书--------')
os.system(cmd)
来源:https://blog.csdn.net/zmjwf521/article/details/114885390
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 实例源码:#pip3 install opencv-pythonimport cv2from datetime import datetim
- 一般情况下,导出超时可能都是以下三种情况:一、sql语句复杂,查询时间过长;二、处理查询后数据逻辑冗余;三、数据量过大导致响应超时。接下来分
- background-clip 和 background-origin 是 CSS3 中新加的 background module 属性,用
- 演示:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//
- 今天在看框架的时候无意间看到了document.compatMode,经过一番资料查找,终于搞懂了。文档模式在开发中貌似很少用到,最常见的是
- 作者:Dmitry @ Usability Post 版权所有 Copyright.译者:明月星光 @ UCD翻译小组原文:ht
- 大大小小也搞过一些数据库设计,见过一些其他人的设计,看过些书,总结总结,经验谈。选表类型:大家都知道mysql的myisam表适合读操作大,
- Jaslabs的Justin Silverton列出了十条有关优化MySQL查询的语句,我不得不对此发表言论,因为这个清单非常非常糟糕。另外
- 可视性的问题几乎在每次不同产品的用户测试中都会出现:用户总是对页面的某些元素、功能视若无睹,或根本无视。基于此,对这个问题进行了一番小小的研
- 背景:我们有一个用go做的项目,其中用到了zmq4进行通信,一个简单的rpc过程,早期远端是使用一个map去做ip和具体socket的映射。
- 一个已知管用的方法是,使用session_set_save_handler,接管所有的session管理工作,一般是把session信息存储
- cli 的全称 command-line interface(命令行界面),也就是前端同学常用的脚手架,比如 yo、vue cli、reac
- 以去掉去掉<!--和-->为例进行说明:def clearContentWithSpecialCharacter(content
- Facebook的网站速度做为最关键的公司任务之一。在2009年,我们成功地实现了Facebook网站速度提升两倍 。而正是我们的工程师团队
- 如何显示数据库的结构?<html><head><meta http-equiv="Cont
- 一:文字加粗 倾斜的代码文字加粗的代码是: <b>你好</b>文字倾斜的代码是: <i>你好!</
- 人们对于那些抄袭模仿的网站有诸多抱怨,但在这篇文章中,却没有冷嘲热讽的意思。但正如他们所说,“模仿是最为忠诚的奉承形式”。“如果你确实需要借
- '''数据集:伪造数据集(两个高斯分布混合)数据集长度:1000--------------------------
- 最近,就“尊重”一词,个人小有感概。也许跟我说“尊重”一词的同事并不是这么想的,但我反思了一下自己,作为一名设计师,确实存在这些疑问(不足之
- 组件:"Adodb.Stream" 有下列方法: Canc