php脚本生成google play url的下载链接,下载apk并自动反编译后获取android版本号

需求:

get the offer tracking link

follow the redirect to get google play url

Go to http://apps.evozi.com/apk-downloader/

Enter google play url

Download APK file

Decompile APK file using https://code.google.com/p/android-apktool/wiki/ApktoolOptions#Decompile_Options

Extract this file

[app name]/smali/com/kochava/android/tracker/Global.smali

Extract this line

.field public static final SDK_VERSION:Ljava/lang/String; = “Android20141023”

This output the Kochava SDK version numbe

脚本的目的就是将上面的操作步骤自动化

运行脚本之前必须在linux里安装apktool和java环境

操作演示:

上面输入的是应用的包名字,你也可以输入对应的google play url:     https://play.google.com/store/apps/details?hl=en&id=com.priceline.android.negotiator

以下是代码:

1 <?php2 fwrite(STDOUT, "please enter the google play url or app package name: ");3 $url = trim(fgets(STDIN));4 $name_reg="/id=([^&]+)/";5 preg_match($name_reg,$url,$name);6 if(empty($name)){7 $packagename=$url;8 }else{9 $packagename=$name[1];10 }11 functiongetParameter(){12 $url="http://apps.evozi.com/apk-downloader";13 $context=file_get_contents($url);14 preg_match("/var evoziJsData = {(.+)};/",$context,$json);15 $t=explode(",",$json[1]);16 foreach($t as $key=>$value){17 $value=str_replace(' ','',$value);18 $t[$key]=$value;19 }20 $token_value=explode(":",$t[1]);21 $t_value=$token_value[1];22 $dtrken=explode(":",$t[2]);23 $patten="/var ".$dtrken[1]." = '(.+)';/";24 preg_match($patten,$context,$daw);25 $dtrken[1]=$daw[1];26 return array("t"=>$t_value,"dtrken"=>$dtrken);27 }28 function ajaxPost($packagename) {29 $tk=getParameter();30 $t=$tk['t'];31 $dtrken_key=$tk['dtrken'][0];32 $dtrken_value=$tk['dtrken'][1];33 $post_url='http://api.evozi.com/apk-downloader/download';34 $data = 'packagename='.$packagename.'&t='.$t.'&'.$dtrken_key.'='.$dtrken_value.'&fetch=false';35 $ch =curl_init();36 $headers = array('content-type: application/x-www-form-urlencoded;charset=UTF-8');37 curl_setopt($ch, CURLOPT_URL, $post_url);38 curl_setopt($ch, CURLOPT_POSTFIELDS, $data);39 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);40 curl_setopt($ch, CURLOPT_POST, 1);41 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);42 $results = curl_exec($ch);43 curl_close($ch);44 $results = json_decode($results);45 return $results;46 }47 function getVersion($packagename){48 $version="/Android[0-9]+/";49 $path=$packagename."/smali/com/kochava/android/tracker";50 $filename1="Global.smali";51 $filename2="a.smali";52 if(is_dir($path)){53 $file=scandir($path);54 foreach($file as $key=>$value){55 $filename=$value;56 if(isset($filename)&file_exists($path."/".$filename)){57 $context=file_get_contents($path."/".$filename);58 preg_match($version,$context,$v);59 if(!empty($v)){60 $vs=$v[0];61 break;62 }63 }64 }65 if(isset($vs)){66 $info=array("status"=>200,"description"=>"success detection in the file:".$filename,"version"=>$vs);67 }else{68 $info=array("status"=>203,"description"=>"failure detection in all the .smal file:(".$file."),we can't find the android version number");69 }70 }else{71 $info=array("status"=>201,"description"=>"there is no such directory:".$path);72 }73 $info=json_encode($info);74 return $info;75 }76 function getFile($file_path,$file_name){77 exec("sudo wget -O $file_name $file_path");78 }79 function deCompileApk($file_name){80 print_r("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++start decompile apk,this may need a long time,please wait...++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++".PHP_EOL);81 exec("sudo apktool d $file_name");82 print_r("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++decompile end++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++".PHP_EOL);83 }84 function delFile($packagename,$file_name){85 exec("sudo rm -f $file_name");86 exec("sudo rm -rf $packagename");87 }88 $result=ajaxPost($packagename);89 if($result->status=="success"){90 $file_name=$packagename."."."apk";91 $downloadUrl=$result->url;92 $downloadUrl=preg_replace("/&/i", "\&", $downloadUrl);93 getFile($downloadUrl,$file_name);94 deCompileApk($file_name);95 $info=getVersion($packagename);96 delFile($packagename,$file_name);97 }else{98 $tinfo=array("status"=>204,"description"=>"we can't generate Download Link from http://apps.evozi.com/apk-downloader/,please check your input of google play url or app package name!");99 $info=json_encode($tinfo);100 }101 print_r($info.PHP_EOL);102 ?>

link url下载php,php脚本生成google play url的下载链接,下载apk并自动反编译后获取android版本号...相关推荐

  1. php下载链接生成,php脚本生成google play url的下载链接,下载apk并自动反编译后

    需求: get the offer tracking link follow the redirect to get google play url Go to http://apps.evozi.c ...

  2. python动态映射_Python Django框架url反向解析实现动态生成对应的url链接示例

    本文实例讲述了Python Django框架url反向解析实现动态生成对应的url链接.分享给大家供大家参考,具体如下: url反向解析:根据url路由规则,动态生成对应的url链接 (防止硬编码). ...

  3. 【Android 安全】使用 360 加固宝加固应用 ( 加固工具准备 | 生成签名 APK | 加固操作 | 反编译验证加固效果 )

    文章目录 一. 加固工具准备 二. 生成签名 APK 三. 加固操作 四. 反编译验证加固效果 本博客用于记录下 360 加固保 加固应用流程 ; ( 上一次加固还是一年前 , 过程全忘了 o(╥﹏╥ ...

  4. 反编译 轻松调频 Android APP 下载“飞鱼秀”录音

    经常听"飞鱼秀",但是由于时间的原因,只能听回放,但是轻松调频的APP做的有点儿... 听回放的时候经常会中断,还不能拖动进度条,就决定把录音下载下来听. 1.反编译apk(And ...

  5. apktool反编译生成java_apktool反编译工具下载|apktool反编译工具 v3.0.1 最新版-520下载站...

    apktool反编译工具是一款专业的apk编译工具,能够完美地反编译及回编译apk文件,想要使用apktool反编译工具的话就需要先安装JAVA,如果你想要修改apk文件,那么就需要先安装JAVA才可 ...

  6. android 反编译 jadx,jadx gui下载 jadx(Android反编译gui工具) v0.6.1 官方版 下载-脚本之家...

    jadx是一款Android反编译gui工具,它支持apk.dex.jar.class.zip.aar等文件.jadx操作方便,反编译后的代码可读性高,同时还拥有较完善的gui界面,除去混淆部分的代码 ...

  7. 反编译工具java知乎_GDA反编译器更新至3.66:支持污点传播分析、方法签名、python脚本...

    本帖最后由 gjden 于 2019-9-24 16:44 编辑 GDA3简介(下载链接: www.gda.wiki:9090) GDA是一款由本人对反编译理论的长期研究和实践而形成的全交互式反编译器 ...

  8. 浅析android手游lua脚本的加密与解密(番外篇之反编译的对抗)

    前言   去年在看雪论坛写了一篇<浅析android手游lua脚本的加密与解密>的精华文章,今年写一篇番外篇,将一些lua反编译对抗的内容整合一起,并以3个实例作为说明(包括2018腾讯游 ...

  9. .so文件反编译_o泡果奶软件在哪下载 o泡果奶一份礼物魔性文件下载

    o泡果奶病毒事件是怎么回事?最近很多高校学生都有被这个"O泡果奶"事情困扰着,安装之后会自动播放出关于"我要哦泡"的声音.之前也有类似的事情发生.那么大家知道o ...

最新文章

  1. 如何删除写保护的文件_如何找回已删除或永久删除的Office Excel文件
  2. fopen,fopen_s,fclose, _fcloseall函数用法
  3. 文件存取方式是哪两种python_常用的Python存储方式有哪些?
  4. LeetCode 1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?(前缀和)
  5. Android-Note
  6. hlsl之ambient
  7. 知识图谱够火,但底层技术环节还差点火候 | AI 技术生态论
  8. ubuntu16.0.4安装mysql5.7以及设置远程访问
  9. Total Commander 使用技巧
  10. 统一资源定位符URL和统一资源标识符URI
  11. pegasus 简介
  12. linux var mqm权限,MQ7.5通道权限问题
  13. 断食、清肠 三日记录
  14. 解决win10右击鼠标卡顿问题
  15. 申请专利时要不要向专利局出示实物?
  16. ACM-ICPC模板整理
  17. 高效阅读 - 日本 - 渡边康弘
  18. Paddle入门实战系列(四):中文场景文字识别
  19. 卡特尔十六种个性因素测试16PF-人格测试 测评报告
  20. 计算机特长测试,测试:你的专长是什么

热门文章

  1. dell服务器r730安装esxi系统,安装Esxi系统重装Esxi系统
  2. axios 获取上传进度_PHP获取HTTP body内容的方法总结
  3. qq农场 html5,腾讯客服-QQ农场/牧场-QQ农场打不开该怎么解决?
  4. ftp 服务器 性能,FTP 服务器性能 测试点
  5. Win7系统桌面右下角托盘图标不显示原因和解决方法
  6. Java SSM篇5——SpringMVC
  7. div靠边隐藏_css如何隐藏div不占位置?
  8. c语言树莓派音乐播放器,使用web端来控制我的树莓派播放音乐
  9. 在java中jvm目录_JVM具体在哪个文件夹下的
  10. iis php的mime映射_iis MIME 映射添加.php文件映射类型肿么定义