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

php中文网
发布: 2016-06-23 13:39:15
原创
2952人浏览过

    需求:

    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环境

    操作演示:

立即学习PHP免费学习笔记(深入)”;

   

一览AI编剧
一览AI编剧

创意生成+情节生成+脚本生成,AI编剧3步走,AI自动帮你搞定剧情!

一览AI编剧 87
查看详情 一览AI编剧

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

  以下是代码:

 

  1 <?php  2    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    function getParameter(){ 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 ?>
登录后复制

 

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号