我想从hex / dalvik apk代码中替换一个字符串。 我意识到这需要找到将字符串从Android类项目转换为签名的apk文件时如何进行编码的方法。

这可能吗? 好吧,我知道在代码中,一切皆有可能..但是这里有人知道如何做到吗? 我了解到,可以在Windows平台上使用简单的zip存档(例如替换SystemUI.apk的图标)删除并添加到.apk文件中,而不会破坏apk ..但是如何编程地实现呢? 特别是在python中?

有人对如何执行此操作有任何想法吗?

我努力了:

import zipfile
zf=zipfile.ZipFile('APK.apk') # my zip file
for filename in ['classes.dex']: # zipped file content file
 data=zf.read(filename)
data=data.replace('mystring','newstring') #replace string within the content file
file=open('classes.dex','wb')
file.write(data) # write NEW content file to local disk
file.close()
zin=zipfile.ZipFile('APK.apk','r')       # create zip in and zip out
zout=zipfile.ZipFile('APK.apk','w')      # iterate through zipped contents and
for item in zin.infolist():              # copy all EXCEPT 'classes.dex' content file
  buffer=zin.read(item.filename)
  if (item.filename!='classes.dex'):
    zout.writestr(item,buffer)
zout.close()
zin.close()
zf=zipfile.ZipFile('APK.apk',mode='a')   # finally, add new content file from my local disk
zf.write('classes.dex',arcname='classes.dex')
zf.close()

这将获取原始的APK.apk文件,并在一个压缩的内容文件中重写一个字符串,然后将其重新打包回APK.apk。 问题是:原始APK.apk = 170 kb新APK.apk = 399 kb,无法安装,apk被“损坏”,并且Android系统无法安装该apk。

===============>>#1 票数:0

您不能添加比原始字节高的字符串。必须将相同大小的字符串替换为特定大小的字符串。 尝试幸运的修补程序。 它仅在您的Android中替换字符串。.无需将其带入您的PC。 :-)

  ask by Diamond Dave translate from so

未解决问题?本站智能推荐: