Python 通过脚本获取Android的apk的部分属性,再通过加密算法生成秘钥。

#!/usr/bin/env python  # -*- coding: utf-8 -*-  import os  import sys  import zipfile  import reimport hashlib #MD5和sha1算法def getAppBaseInfo(apkpath):      #print(apkpath)      #检查版本号等信息      output = os.popen("aapt.exe d badging %s" % apkpath).read()    if not output:          raise Exception("can't find aapt.exe")      #print('output:' + output)      #package: name='com.student.xiaomuxc' versionCode='2016062800' versionName='3.2.1'      match = re.compile("package: name='(\S+)' versionCode='(\d+)' versionName='(\S+)'").match(output)      if not match:          raise Exception("can't get packageinfo")        packagename = match.group(1)      versionCode = match.group(2)      versionName = match.group(3)      print('packageName:' + packagename)      #print('versionCode:' + versionCode)      print('versionName:' + versionName)    return packagename + versionCode + versionName  def getCurrentDirApk():      for dir in os.walk(os.curdir):          for filename in dir[2]:              if os.path.splitext(filename)[1] == '.apk':                  #print('find apk:', filename)                  return filenamedef md5_encode(data):    #调用md5算法,用一个变量接收    m = hashlib.md5()    #调用update对传来的data进行数据加密,encode utf-8的编码后才能用update    m.update(data.encode('utf-8'))    return m.hexdigest() #经过特殊处理之后以字符串形式返回    if __name__ == "__main__":      #获得apk名      if len(sys.argv) == 1:          apkName = getCurrentDirApk()      else:          apkName = sys.argv[1]      if not apkName:          print('can not find apk!!!')          exit()      appinfo = getAppBaseInfo(apkName)      if not appinfo:          print('can not get appinfo!!!')          exit()    #print('appinfo:' + appinfo)    result1 = md5_encode(appinfo)    print('Secretkey:' + result1)raw_input("Press ")    

 

 

在windows7电脑上使用,需要先安装python-2.7.msi,
把aapt.exe,Secretkey.py,目标apk放在同一个目录,
通过点击Secretkey.py文件会生成一个秘钥。

PS:aapt.exe文件在SDK内

更多相关文章

  1. android 打包 生成apk 出现的问题 javascript失效 json解析失败
  2. Android4.2锁屏源码跟踪
  3. Android源码分析:Java的Media Scanner层(阅读笔记)
  4. Android中相机,相册,剪切的原生使用
  5. Android音频流程二(Binder部分)
  6. android中基本的加密方法
  7. 进程内服务Service(SimpleRandomServiceDemo)
  8. Android(安卓)P 各种ANR的时间
  9. Android(安卓)Studio 定制快速生成Jni 头文件工具 Ndk教程

随机推荐

  1. Spinner控件的使用
  2. 2010.12.13——— android listView 滚动
  3. Android访问WCF服务(使用json实现参数传
  4. Android消息机制不完全解析(上)
  5. java\tomcat\android\mysql 环境变量
  6. adt20新建项目Android(安卓)Support libr
  7. 多平台部署
  8. Android(安卓)Activity的启动
  9. Android查看网页源码与开启子线程
  10. Android(安卓)中Layout实现点击水波纹特