demo實(shí)現(xiàn)腳本下載
安裝工具
需要python3,apktool.jar,apktool
1.用apktool進(jìn)行反編譯
cmd = 'apktool d -f '+apkPath+' -o '+outPath
2.修改需要配置的參數(shù)值
說明:如果是AndroidManifest.xml,注意在 parse 前 一定要設(shè)置namespace, 不然就會出現(xiàn) ns0:name錯誤, 而不是預(yù)期的 android:name,設(shè)置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.修改應(yīng)用名字
def appnamechang():
print('--------修改應(yīng)用名字完成--------')
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圖標(biāo)
source_path = (apktoolPath+'/icon')
target_path = (apktoolPath+'/ihdrm202103161405apk/res')
def copy_search_file():
print('--------修改icon成功--------')
'''將一個目錄下的全部文件和目錄,完整地拷貝并覆蓋>到另一個目錄'''
# source_path 源目錄
# target_path 目標(biāo)目錄
if not (os.path.isdir(source_path) and os.path.isdir(target_path)):
return
for a in os.walk(source_path):
# #創(chuàng)建目錄
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.創(chuàng)建證書
def createzu():
cmd = 'keytool -genkey -alias jayoux.keystore -keyalg RSA -validity 20000 -keystore jayoux.keystore'
print('-------- 創(chuàng)建證書--------')
os.system(cmd)
到此這篇關(guān)于使用python反編譯apk簽名出包的文章就介紹到這了,更多相關(guān)python反編譯apk內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- PyInstaller將Python文件打包為exe后如何反編譯(破解源碼)以及防止反編譯
- python 反編譯exe文件為py文件的實(shí)例代碼
- python反編譯學(xué)習(xí)之字節(jié)碼詳解
- Python使用dis模塊把Python反編譯為字節(jié)碼的用法詳解
- Python3加密解密庫Crypto的RSA加解密和簽名/驗(yàn)簽實(shí)現(xiàn)方法實(shí)例
- PYTHON實(shí)現(xiàn)SIGN簽名的過程解析
- Python下實(shí)現(xiàn)的RSA加密/解密及簽名/驗(yàn)證功能示例