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

作者:花了脸 时间:2022-12-19 19:39:04 

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

标签:python,反编译,apk,签名出包
0
投稿

猜你喜欢

  • Python使用smtplib模块发送电子邮件的流程详解

    2023-09-28 03:28:35
  • Python pandas.DataFrame调整列顺序及修改index名的方法

    2023-11-22 20:53:59
  • python如何在终端里面显示一张图片

    2023-08-23 01:34:00
  • Python深度学习理解pytorch神经网络批量归一化

    2021-09-26 06:38:53
  • SQL Server数据体系和应用程序逻辑详解

    2009-04-14 07:23:00
  • python常见的占位符总结及用法

    2023-10-11 10:39:58
  • Ubuntu Server 11.10安装配置lamp(Apache+MySQL+PHP)

    2023-11-17 02:55:00
  • form表单的submit方法和submit事件

    2008-10-15 11:22:00
  • 浅谈python在提示符下使用open打开文件失败的原因及解决方法

    2023-12-07 18:31:33
  • asp中去除html中style,javascript,css代码

    2011-02-16 11:18:00
  • 设计者在网页排版中应注意的一些问题

    2012-04-20 13:13:58
  • python 进程间数据共享multiProcess.Manger实现解析

    2021-03-25 14:06:53
  • python一绘制元二次方程曲线的实例分析

    2023-08-23 00:49:56
  • 利用Python实现Windows下的鼠标键盘模拟的实例代码

    2023-06-22 04:37:31
  • 关于select元素的两个小问题

    2008-12-25 13:41:00
  • 在SUSE10环境下安装和配置MySQL数据库

    2008-12-17 15:03:00
  • python 实现一个反向单位矩阵示例

    2023-07-27 16:05:51
  • 常用的三种修改mysql最大连接数的方法

    2010-03-09 15:42:00
  • 成功的用户界面的八个特性[译]

    2009-04-20 20:36:00
  • Python实现线程池代码分享

    2021-09-24 18:13:43
  • asp之家 网络编程 m.aspxhome.com