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

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

操作演示:

20200625000644-5ef3ea943d083.png

上面输入的是应用的包名字,你也可以输入对应的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 ?>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563601.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle单行子查询返回多个行 order by,单行子查询返回多个行 Issue分析求助

with order_base as --获取订单基础情况(select ou.order_key order_key, ou.order_quantity_i, ood.dispatch_time_t, ou.part_number_s, I032ZZ01 pline_name_sfrom order_uv ou left join at_as_om_orderdispatchstatus ood on ou.order_key ood.order_54union allselect m…

php按照名称搜索,PHP从类型和名称搜索

很抱歉,标题不好,但我不知道有更好的选择.目前,我正在创建一个搜索引擎以获取产品详细信息.我有2种搜索类型,第一种是使用产品类型进行搜索,另一种是使用产品名称进行搜索.这是搜索代码&#xff1a;$search_exploded explode (" ", $search);$x "";$cons…

简述oracle数据库特殊状态,【OracleDB】 01 概述和基本操作

实例概念&#xff1a;Oracle有一个特殊的概念Oracle数据库 数据库 Oracle文件系统 Oracle实例实例处理Oracle的请求&#xff0c;调用文件系统然后返回结果响应给客户端单实例和多实例一个数据库可以对应多个实例操作数据库服务这是Oracle数据库的服务&#xff0c;一定要安装…

oracle中affirm,2.Oracle Data Guard 参数介绍

Oracle Data Guard 参数介绍Data Guard作为Oracle提供的一个高可用及灾备解决方案,理解并可以实施它对于DBA来说是非常重要套的技能上节介绍了有关Data Guard的概念&#xff0c;这节将介绍相关的一些参数有的参数是做为备库角色时才生效的&#xff0c;会单独说出来1. DB_NAME该…

Linux单独编译设备树,迅为IMX6Q开发板-非设备树内核-单独编译内核驱动

内核驱动不仅可以将驱动编译到内核中&#xff0c;还可以动态的编译内核驱动。本文档介绍如何以模块的方式编译内核驱动。要动态的编译内核&#xff0c;首先需要将内核源码编译通过&#xff0c;内核的编译请参考使用手册第五章。9.5.2.1 内核和编译器路径本节介绍内核路径、编译…

win8关闭uefi+linux,UEFI启动是什么?Win8关闭UEFI引导方式的方法

UEFI启动是什么?不少新电脑都给用户直接预装了Win8系统&#xff0c;后来使用又非常不习惯&#xff0c;因此想改成Win7系统&#xff0c;但是在换系统之前&#xff0c;需要在BIOS下关闭UEFI引导方式&#xff0c;可能很多朋友都不懂该如何关闭UEFI启动项。针对这个问题&#xff0…

android listview自动加载更多,如何实现 Android ListView『上拉加载更多』?

ListView上拉加载更多的UI需求(1)向上滑动 ListView&#xff0c;当最后一个条目滚入屏幕时开始加载更多条目&#xff0c;在列表底部增加一个 footerView&#xff1a;一个 infinite progressBar&#xff0c;一个 textView 显示 “Loading...”&#xff1b;(2)根据数据加载的结果…

android安全性发展,Android未来发展 安全是重点

自2008年首部Android手机问世以来&#xff0c;谷歌智能手机方面的发展也开始高歌勇进&#xff0c;经过近8年的发展&#xff0c;Android已经成为市场上最大的移动互联网操作系统&#xff0c;市场占有率位居第一&#xff0c;虽然其竞争对手iOS步步紧逼&#xff0c;但是由于Androi…

android excel布局,Android实现仿excel数据表格效果

在没给大家分享代码之前&#xff0c;先给大家展示下效果图&#xff1a;1.activity/*** 采购需求* Created by Administrator on 2016/10/13.*/public class PurchaseRequireActivity extends BaseActivity implements PurchaseRequireView {Bind(R.id.appTitle)TextView appTit…

首款搭载鸿蒙os的设备,华为发布会配件汇总,首款搭载 鸿蒙OS 的设备来了

2020 年 10 月 30 日&#xff0c;华为召开 Mate40 系列发布会&#xff0c;正式发布 Mate40 系列手机。除了手机&#xff0c;本次发布会还发布了华为 Watch GT2 Pro 手表、华为 Sound 音箱等配件。以下是详细情况&#xff1a;华为智选智能摄像头 Pro该设备是首款搭载 HarmonyOS …

html图片自动切换的幻灯片效果的,js带点自动图片轮播幻灯片特效代码分享

本文实例讲述了javascript带点自动图片轮播幻灯片特效。分享给大家供大家参考。具体如下&#xff1a;这是一款基于javascript实现带点自动图片轮播幻灯片特效代码&#xff0c;实现过程很简单。运行效果图&#xff1a;-------------------查看效果下载源码-------------------小…

计算机网络硬件脆弱性,计算机网络的脆弱性有哪几点

计算机网络系统在设计、实施、应用和控制过程中存在的一切可能被攻击者利用从而造成安全危害的缺陷都是网络的脆弱性。佰佰安全网的专家顾问给出了这个问题的答案。计算机网络脆弱性(vulnerability)涉及一切信息系统或信息网络中可被非预期利用的方面。从整体上看&#xff0c;网…

全球计算机用户人数,NIC2019年11月:全球IPv6 用户数占比中国居43位

2019年11月&#xff0c;全球IPv4地址分配数量为29B&#xff0c;其中获得最多的是肯尼亚&#xff0c;8B&#xff1b;其次是美国&#xff0c;3B。除亚太、欧洲、拉美、北美等地区IPv4地址已耗尽外&#xff0c;非洲地区处于IPv4地址耗尽第一阶段。各地区IPv4地址消耗情况&#xff…

登录计算机怎么保存用户名,浏览器保存了账号密码怎么查看,教您怎么查看

有时候登录一个账号输入密码时&#xff0c;浏览器在征得同意后会自动储存并填写密码&#xff0c;但是这些密码都藏哪儿去了呢&#xff1f;当我们忘记了的时候又该如何才能查看呢&#xff1f;可能一些用户不知道该怎么去查看&#xff0c;今天教给大家查看这些已保存的密码的方法…

浅谈WPF之DataGrid过滤,分组,排序

使用过Excel的用户都知道&#xff0c;Excel可以方便的对数据进行分组&#xff0c;过滤&#xff0c;排序等操作&#xff0c;而在WPF中&#xff0c;默认提供的DataGrid只有很简单的功能&#xff0c;那么如何才能让我们开发的DataGrid&#xff0c;也像Excel一样具备丰富的客户端操…

计算机组成原理第六章难,计算机组成原理第六章答案

第6章 计算机的运算方法2. 已知X0.a1a2a3a4a5a6(ai为0或1)&#xff0c;讨论下列几种情况时ai各取何值。 (1)X (2)X (3)121 811X4161&#xff0c;只要a11&#xff0c;a2~a6不全为0即可。 2解&#xff1a; (1)若要X(2)若要X (3)若要1&#xff0c;只要a1~a3不全为0即可。 811 X &a…

职高学计算机走单招是,职高学生不用愁了,还有机会上本科,走“单招”或是最佳途径!...

原标题&#xff1a;职高学生不用愁了&#xff0c;还有机会上本科&#xff0c;走“单招”或是最佳途径&#xff01;职高学生不用愁了&#xff0c;也有机会上“本科”&#xff0c;走“单招”或是最佳途径随着教育制度的不断改革&#xff0c;中考也成为了人生的分水岭之一&#xf…

css3 filter url,CSS3 filter(滤镜) 属性

CSS3 filter(滤镜) 属性实例修改所有图片的颜色为黑白 (100% 灰度):img {-webkit-filter: grayscale(100%); /* Chrome, Safari, Opera */filter: grayscale(100%);}定义和使用filter 属性定义了元素(通常是)的可视效果(例如&#xff1a;模糊与饱和度)。默认值:none继承:no动画…

云联惠身份认证得多久_【转发扩散】你完成认证了吗?老来网APP也可以刷脸认证哦!...

为缓解民生山西认证压力&#xff0c;提高认证效率与认证率&#xff0c;山西省社保局推出“老来网”认证手机app&#xff0c;请未认证人员以及民生山西无法认证人员&#xff0c;采用此认证方式。附&#xff1a;民生山西APP认证流程老来网APP具体操作流程如下&#xff1a;一、 老…

区域显示触发_Nature Communications:地幔数据显示可氧化的火山气体的减少可能触发了大氧化事件...

Nature Communications&#xff1a;地幔数据显示可氧化的火山气体的减少可能触发了大氧化事件包括人类在内的需氧生物之所以能在地球上繁盛兴旺&#xff0c;主要得益于大气中大量O2的存在&#xff0c;但在地球整个历史的大部分时间内O2含量水平并不高。地质记录中的硫同位素非质…