注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

创新改变世界

you changed the world

 
 
 

日志

 
 

apktool + eclipse 动态调试APK  

2014-05-31 16:42:44|  分类: android |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

用了会AndBug,虽然挺强大的但是作为习惯了OD,EDB作为动态调试工具的人,自然有些不习惯,于是乎寻求新的动态调试解决方案。但大多数都是NetBeans + apktool,想着还得多下一个IDE就各种烦躁,还是去寻求Eclipse的组合吧。 
http://code.google.com/p/android-apktool/wiki/SmaliDebugging

找到apktool的官网,看到有可以实现动态调试。可以在反编译和回编的时候通过设置参数给目标APK中的manifest文件中加入android:debuggable="true",,同时为了结合Eclipse,之后也会自动把.smali后缀改为了.java。这样就可以用来调试了。当然,别忘了回编后还需要签名等,于是自己写了个简易的脚本:

'''
Created on 2014-5-28

@author: Xbalien
'''
import os
import sys
import subprocess

class APKdebugger(object):
  def unpackaging(self, apk_path):
    print 'Start Unpackaging...'
    subprocess.call(['apktool_2.0.0b9.jar','d','-d',apk_path],shell=True)

  def packaging(self, file_path):
    print 'Start Packaging...'
    subprocess.call(['apktool_2.0.0b9.jar','b','-d',file_path],shell=True)

  def signer(self, unsigned_path):
    print 'Start Signing...'
    signer_comm=['jarsigner','-verbose','-keystore','key','-digestalg','SHA1','-sigalg', 'MD5withRSA' ,'-signedjar','signed.apk']
    signer_comm += [unsigned_path,'key']
    p = subprocess.Popen(signer_comm,stdin=subprocess.PIPE,stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell = True)
    p.communicate(input='key123456')
    p.wait()

  def zipalign(self, outapk_path):
    subprocess.call(['zipalign','-v','4','signed.apk',outapk_path],shell=True)


if __name__ == '__main__':
  if len(sys.argv) >1:
    print 'Start Create APKdebugger...'
    apk_path = sys.argv[1]
    file_path = apk_path[:-4]
    unsigned_path = './'+file_path+'/dist/'+apk_path
    outapk_path = file_path+'//'+apk_path
    apk_debugger = APKdebugger()
    apk_debugger.unpackaging(apk_path)
    apk_debugger.packaging(file_path)   
    apk_debugger.signer(unsigned_path)
    apk_debugger.zipalign(outapk_path)
  else: print 'useage:main.py apk_name'
  评论这张
 
阅读(67)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017