PHP读取APK的包信息,包括包名,应用名,权限,LOGO等
来源:互联网 发布:淘宝小号信用查询网站 编辑:程序博客网 时间:2024/05/01 23:13
/** * 获取 APK 包信息和应用图标(需要exec支持) */ public function apkParseInfo($apk) { $aapt = 'aapt';// 这里其实是aapt的路径,不过我已经ln到/usr/local/aapt了。就不用了。 $temp_save_path='/var/www/apks/temp/'; exec("{$aapt} d badging {$apk}", $output, $return); // 解析错误 if ( $return !== 0 ) { return FALSE; } $output = implode(PHP_EOL, $output); dump($output); echo '<br/>'; $apkinfo = new \stdClass; // 对外显示名称 $pattern = "/application: label='(.*)'/isU"; $results = preg_match($pattern, $output, $res); $apkinfo->label = $results ? $res[1] : ''; // 内部名称,软件唯一的 $pattern = "/package: name='(.*)'/isU"; $results = preg_match($pattern, $output, $res); $apkinfo->sys_name = $results ? $res[1] : ''; // 内部版本名称,用于检查升级 $pattern = "/versionCode='(.*)'/isU"; $results = preg_match($pattern, $output, $res); $apkinfo->version_code = $results ? $res[1] : 0; // 对外显示的版本名称 $pattern = "/versionName='(.*)'/isU"; $results = preg_match($pattern, $output, $res); $apkinfo->version = $results ? $res[1] : ''; // 系统支持 $pattern = "/sdkVersion:'(.*)'/isU"; $results = preg_match($pattern, $output, $res); $apkinfo->sdk_version = $results ? $res[1] : 0; // 分辨率支持 $densities = array( "/densities: '(.*)'/isU", "/densities: '120' '(.*)'/isU", "/densities: '160' '(.*)'/isU", "/densities: '240' '(.*)'/isU", "/densities: '120' '160' '(.*)'/isU", "/densities: '160' '240' '(.*)'/isU", "/densities: '120' '160' '240' '(.*)'/isU" ); foreach($densities AS $k=>$v) { if( preg_match($v, $output, $res) ) { $apkinfo->densities[] = $res[1]; } } // 应用权限 $pattern = "/uses-permission: name='(.*)'/isU"; $results = preg_match_all($pattern, $output, $res); $apkinfo->permissions = $results ? $res[1] : ''; // 需要的功能(硬件支持) $pattern = "/uses-feature: name='(.*)'/isU"; $results = preg_match_all($pattern, $output, $res); $apkinfo->features = $results ? $res[1] : ''; // 应用图标路径 if( preg_match("/icon='(.+)'/isU", $output, $res) ) { $icon_draw = trim( $res[1] ); $icon_hdpi = 'res/drawable-hdpi/' . basename($icon_draw); $temp =$temp_save_path.basename($apk, '.apk') . DIRECTORY_SEPARATOR; if( @is_dir($temp) === FALSE ) { mkdir($temp,0777,true); } exec("unzip {$apk} {$icon_draw} -d " . $temp); exec("unzip {$apk} {$icon_hdpi} -d " . $temp); $apkinfo->icon = $icon_draw; $icon_draw_abs = $temp . $icon_draw; $icon_hdpi_abs = $temp . $icon_hdpi; $apkinfo->icon = @is_file($icon_hdpi_abs) ? $icon_hdpi_abs : $icon_draw_abs; } return $apkinfo; }
阅读全文
0 0
- PHP读取APK的包信息,包括包名,应用名,权限,LOGO等
- 通过PHP怎样取到android系统下apk应用的包名,版本号等信息
- 通过PHP怎样取到android系统下apk应用的包名,版本号等信息
- 通过上传的APK文件,解析APK文件内容,获取应用权限包名等
- Android获取apk的版本及包名等信息
- Android获取apk的版本及包名等信息
- Android获取apk的版本及包名等信息
- 完整版java读取apk、ipa包名、版本名、版本号等信息
- Android应用获取包名等信息
- 获取手机已安装应用的包名等信息
- PC端解析APK文件中的信息(图标、权限、包名等)
- (获取应用的包名/应用名等信息)打开、安装和卸载应用
- 利用build_tools 里的aapt查看 apk包信息(versionCode,versionName,包名等)
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等) 收藏
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等) 收藏
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等) 收藏
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.1基本概念(4.1.4-4.1.5)
- stylus之注释(Comments)
- 10 ASCII编码与Unicode编码
- react学习之路(二)
- keil c51没有智能提示怎么破?
- PHP读取APK的包信息,包括包名,应用名,权限,LOGO等
- 利用GetPrivateProfileString读取配置文件(.ini)
- Csdn开源爬虫项目
- fuzhuo---Problem 1082 最大黑区域
- redis的坑
- 随机种子
- 第一天 javascript
- android音频采集,MediaCodec实时PCM转AAC
- Android中的MVP模型