Python 通过脚本获取Android的apk的部分属性,再通过加密算法生成秘钥。
Python 通过脚本获取Android的apk的部分属性,再通过加密算法生成秘钥。
#!/usr/bin/env python
# -*- coding: utf- -*-
import os
import sys
import zipfile
import re
import 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='' 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()
versionCode = match.group()
versionName = match.group() 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[]:
if os.path.splitext(filename)[] == '.apk':
#print('find apk:', filename)
return filename def 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) == :
apkName = getCurrentDirApk()
else:
apkName = sys.argv[]
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 <enter>")
在windows7电脑上使用,需要先安装python-2.7.msi,
把aapt.exe,Secretkey.py,目标apk放在同一个目录,
通过点击Secretkey.py文件会生成一个秘钥。
PS:aapt.exe文件在SDK内
Python 通过脚本获取Android的apk的部分属性,再通过加密算法生成秘钥。的更多相关文章
- 生成二维码 加密解密类 TABLE转换成实体、TABLE转换成实体集合(可转换成对象和值类型) COOKIE帮助类 数据类型转换 截取字符串 根据IP获取地点 生成随机字符 UNIX时间转换为DATETIME\DATETIME转换为UNIXTIME 是否包含中文 生成秘钥方式之一 计算某一年 某一周 的起始时间和结束时间
生成二维码 /// <summary>/// 生成二维码/// </summary>public static class QRcodeUtils{private static ...
- Android 获取android安装apk框的安装状态(如点击取消、返回)
最近鼓捣android,碰到个问题,因为没有root权限,需要调用Intent安装apk,但需要获取用户是否安装了(如,用户点击了返回或取消),查了很多文章,最后可以解决,但有瑕疵,解决方法如下: p ...
- python使用adb获取Android Phone截图(解决Windows传输编码导致png文件损坏的问题)
使用adb命令 ./adb shell screencap -p 可以截取当前屏幕,并且作为stdout,传给外部.那么对于python,我们可以用如下代码获取数据流. 使用Popen创建子进程用于读 ...
- 获取Android运行apk的packagename 和activityname
自动化测试中经常遇到这个问题,关于这个题目,方法众多,咱的目的是找个比较简单靠谱的: 方法一: 先进入cmd窗口,adb shell 后: cd /data/data ls 可以看到包名了吧,缺点很明 ...
- Android中保存静态秘钥实践(转)
本文我们将讲解一个Android产品研发中可能会碰到的一个问题:如何在App中保存静态秘钥以及保证其安全性.许多的移动app需要在app端保存一些静态字符串常量,其可能是静态秘钥.第三方appId等. ...
- ssh秘钥免交互批量分发脚本
将以下内容保存为.sh文件后运行即可,需根据各自情况修改ip_up和ip_arr #!/bin/bash #脚本功能:ssh秘钥免交互批量分发 #制 作 人:罗钢 联系方式:278554547@qqc ...
- 获取Android自己写好了的apk以及反编译
今天,我们先说一下,获取Android自带的apk以及反编译它们来学习Android工程师是怎样写的,今天我们就以拿到Android自带的短信管理器的apk为例子 你可能有疑问,为什么要那么麻烦,从系 ...
- Python Python实现批量安装android apk包
基于Python实现批量安装android apk包 by:授客 QQ:1033553122 1.相关软件包及文件下载 下载地址:adb软件包及批量安装apk包的py文件.zip 2.测试环境 Win ...
- 获取Android APK JNI库
/************************************************************************** * 获取Android APK JNI库 * 说 ...
随机推荐
- 【面试篇】资深招聘HR有哪些面试技巧?
15年资深招聘HR总结的面试技巧 1.做一下自我介绍 了解应聘者的基本信息和工作经历 2.以往工作中您的职责是什么? 了解应聘者的相关工作经验和其系统性全面性 3.请讲一下您以往的工作经历. ...
- FFmpeg 结构体学习(四): AVFrame 分析
在上文FFmpeg 结构体学习(三): AVPacket 分析我们学习了AVPacket结构体的相关内容.本文,我们将讲述一下AVFrame. AVFrame是包含码流参数较多的结构体.下面我们来分析 ...
- [Swift]LeetCode298. 二叉树最长连续序列 $ Binary Tree Longest Consecutive Sequence
Given a binary tree, find the length of the longest consecutive sequence path. The path refers to an ...
- [Swift]LeetCode764. 最大加号标志 | Largest Plus Sign
In a 2D grid from (0, 0) to (N-1, N-1), every cell contains a 1, except those cells in the given lis ...
- [Swift]LeetCode766. 托普利茨矩阵 | Toeplitz Matrix
A matrix is Toeplitz if every diagonal from top-left to bottom-right has the same element. Now given ...
- 第2章 Java编程基础
本章重点 ·Java的基本语法形式 ·Java语言中的常量与变量 ·Java语言运算符的使用 ·Java程序的流程控制 ·Java中方法的定义与使用 ·Java中数组的定义与使用 2.1 Java的基 ...
- 使用xUnit为.net core程序进行单元测试 -- Assert
第一部分: http://www.cnblogs.com/cgzl/p/8283610.html Assert Assert做什么?Assert基于代码的返回值.对象的最终状态.事件是否发生等情况来评 ...
- Python内置函数(52)——range
英文文档: range(stop) range(start, stop[, step]) Rather than being a function, range is actually an immu ...
- 通用网页调用本地应用程序方案(windows平台)
一.更新注册表 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\receiveOutOfArg] "URL Protocol& ...
- 说一说MVC的CustomHandlerErrorAttribute(五)
九月第一篇,呵呵 前言:最近刚入职了一家公司,上司让我维护一个项目,我接手了看了一下项目,try catch 严重影响我的视觉,我直接通过vs插件将其try catch全部替换掉占位符,呵呵. 所以我 ...