在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
公司项目关系,要求在通过PHP解析android系统应用apk包内的一切可用的信息。比如说:APK包名,版本号,版本名,安装权限等一系列关于对应包的信息。通过google查找相关的解决方案,都没有找到很有效的解决方案。但取得了解决此问题的思路。 目前就我所了解,有二种方案: 第 一:通过安装PHP-JAVA-Bridge桥接方式,让PHP环境下可以执行JAVA。通过JAVA去解析APK包内的 AndroidManifest.xml文件,通过解析出来的XML可以取得上面所提到的相关信息。第二:在服务器上安装android-apktool 工具,通过aapt命令直接去解析apk包的信息。 有了相关思路,我就按照上面的二种思路去尝试解决问题。
1.
# Linux:
2.
1. Download apktool-install-linux-* file 【下载文件】
3.
2. Download apktool-* file 【下载文件】
4.
3. Unpack both to /usr/local/bin directory (you must have root permissions)【在/usr/local/bin解压,需要有root权限】
执行命令:
1.
$
tar
-jxvf apkktool-
install
-linux-2.2_r01-1.
tar
.bz2
b.测试aapt命令是否可用。执行命令: 1.
$ aapt d badging
test
.apk
1.
<?php
2.
exec
(
"/usr/bin/sudo /usr/local/bin/aapt d badging /var/www/test/test.apk>info.txt 2>&1"
,
$out
,
$return
);
3.
//用root 去执行aapt命令,把输出的信息写入info.txt文件,下面我们要用用正则取输出的相关数据
4.
var_dump(
$out
);
5.
var_dump(
$return
);
6.
?>
1.
www ALL=NOPASSWD:/usr/
local
/bin/aapt(让www用户以root权限来执行aapt,NOPASSWD代表
sudo
时候不用输入密码).
2.PHP脚本执行sudo时,可能会报出:sudo: sorry, you must have a tty to run
sudo错误,提示需要一个终端才能执行sudo.此时解决办法,用visduo命令,找到Defaults
requiretty这行前面加#号它注解掉。 【转载】http://blog.csdn.net/raojinpg/article/details/6110253 |
2022-08-18
2022-08-15
2022-08-17
2022-11-06
2022-08-17
请发表评论