服务器之家

服务器之家 > 正文

关于使用python反编译apk签名出包的问题

时间:2021-09-25 00:10     来源/作者:花了脸

demo实现脚本下载

安装工具

?
1
需要python3,apktool.jar,apktool

1.用apktool进行反编译

?
1
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")

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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.修改应用名字

?
1
2
3
4
5
6
7
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图标

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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.删除签名回编译

?
1
cmd = 'apktool b -f '+outpath

6.创建证书

?
1
2
3
4
def createzu():
 cmd = 'keytool -genkey -alias jayoux.keystore -keyalg rsa -validity 20000 -keystore jayoux.keystore'
 print('-------- 创建证书--------')
 os.system(cmd)

到此这篇关于使用python反编译apk签名出包的文章就介绍到这了,更多相关python反编译apk内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/zmjwf521/article/details/114885390

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
返回顶部