您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎么在python中使用反編譯apk簽名出包,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
安裝工具
需要python3,apktool.jar,apktool
1.用apktool進(jìn)行反編譯
cmd = 'apktool d -f '+apkPath+' -o '+outPath
2.修改需要配置的參數(shù)值
說明:如果是AndroidManifest.xml,注意在 parse 前 一定要設(shè)置namespace, 不然就會(huì)出現(xiàn) ns0:name錯(cuò)誤, 而不是預(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的絕對(duì)路徑.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成功--------') '''將一個(gè)目錄下的全部文件和目錄,完整地<拷貝并覆蓋>到另一個(gè)目錄''' # 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)
上述內(nèi)容就是怎么在python中使用反編譯apk簽名出包,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。