精华内容
下载资源
问答
  • 程序自动开启其他APK 需要知道 包名和主Activity Android SDK platform-tools目录下有个aapt.exe 可以帮忙解析其他APK的包名和主Activity 需要先确定环境变量中的配置可以正常使用aapt.exe
  • Java解析apk文件

    2015-01-14 14:16:05
    解析apk文件,从apk中可以拿到版本号码,版本名称,包名,权限, 支持的android平台最低版本号,支持的SDK版,建议的SDK版本,应用程序名,程序的图标等一系列信息。
  • Java解析APK信息,使用ApkFile

    千次阅读 2017-05-09 10:25:01
    由于这两天工作需要写一个自动发包平台,需要写一个解析APK信息工具类,这里用到了 Apk Parser(https://github.com/xiaxiaocao/apk-parser), 这是一个纯Java实现Apk解析Lib,也是现存功能最强Apk Parser...

    由于这两天工作需要写一个自动发包的平台,需要写一个解析APK信息的工具类,这里用到了
    Apk Parser(https://github.com/xiaxiaocao/apk-parser),
    这是一个纯Java实现的Apk解析Lib,也是现存的功能最强的Apk Parser。在不需要aapt等工具的前提下,可以:
    1. 查看Apk 的元信息,如标题、图标、SDK版本、权限、支持的语言等
    2. 解析Apk 中任意的Binary Xml 文件,翻译成可读的Xml 文本
    3. 查看Apk Dex 文件中包含的Class 信息
    4. 验证Apk 签名,查看签名的信息
    Apk Parser 可以解析和翻译Apk中binary Xml。在翻译的同时,还会解析Resource Table中的资源,并将Binary Xml 中相应的资源ID替换成实际的字符串。如果Apk是支持多语言的,那么指定不同的locale, 就可以解析出不同语言下的元数据,如标题等。

    简单的使用实例如下:

    ApkFile apkParser = new ApkFile(new File(filePath));
    String xml = apkParser.getManifestXml();
    System.out.println(xml);
    ApkMeta apkMeta = apkParser.getApkMeta();
    System.out.println(apkMeta);
    apkParser.close(); 



    展开全文
  • 从网上找到,不过找不到来源了,需要你服务器端安装有AndroidSDK工具,并且可以被PHP运行,这个代码还可以获得应用名称(application下android:label)function readApkInfoFromFile($aapt_file, $apk_file, $...

    从网上找到的,不过找不到来源了,需要你的服务器端安装有AndroidSDK工具,并且可以被PHP运行,这个代码还可以获得应用的名称(application下的android:label)

    function readApkInfoFromFile($aapt_file, $apk_file, $get_icon = false){

    exec("{$aapt_file} d badging {$apk_file}", $out, $return);

    $temp_path = FCPATH . 'cache/temp/'.md5($apk_file).'/';

    if($return == 0){

    @mkdir($temp_path);

    $str_out = implode("n", $out);

    $out = null;

    #icon

    if($get_icon){

    $pattern_icon = "/icon='(.+)'/isU";

    preg_match($pattern_icon, $str_out, $m);

    $info['icon'] = $m[1];

    if($info['icon']){

    //$command = "unzip {$apk_file} {$info['icon']} -d " . $temp_path;

    $command = '7z x "' . $apk_file . '" -y -aos -o"' . $temp_path . '" ' . $info['icon'];

    //exit($command);

    //mkdirs("/tmp/".$info['icon'],true);

    exec($command);

    $info['icon'] = $temp_path . $info['icon'];

    }

    }

    #对外显示名称

    $pattern_name = "/application: label='(.*)'/isU";

    preg_match($pattern_name, $str_out,$m);

    $info['lable']=$m[1];

    #内部名称,软件唯一的

    $pattern_sys_name = "/package: name='(.*)'/isU";

    preg_match($pattern_sys_name, $str_out,$m);

    $info['sys_name']=$m[1];

    #内部版本名称,用于检查升级

    $pattern_version_code = "/versionCode='(.*)'/isU";

    preg_match($pattern_version_code, $str_out,$m);

    $info['version_code']=$m[1];

    #对外显示的版本名称

    $pattern_version = "/versionName='(.*)'/isU";

    preg_match($pattern_version, $str_out,$m);

    $info['version']=$m[1];

    #系统

    $pattern_sdk = "/sdkVersion:'(.*)'/isU";

    if(preg_match($pattern_sdk, $str_out,$m)){

    $info['sdk_version']=$m[1];

    if($info['sdk_version']){

    $sdk_names = array(3=>"1.5",4=>"1.6",7=>"2.1",8=>"2.2",10=>'2.3.3',11=>"3.0",12=>"3.1",13=>"3.2",14=>"4.0");

    if($sdk_names[$info['sdk_version']]){

    $info['os_req'] = "Android {$sdk_names[$info['sdk_version']]}";

    }

    }

    }

    #权限

    $pattern_perm = "/uses-permission:'(.*)'/isU";

    preg_match_all($pattern_perm, $str_out,$m);

    if(isset($m[1])){

    foreach($m[1] as $mm){

    $info['permissions'][] = $mm;

    }

    }

    #需要的功能(硬件支持)

    $pattern_features = "/uses-feature:'(.*)'/isU";

    preg_match_all($pattern_features, $str_out,$m);

    if(isset($m[1])){

    foreach($m[1] as $mm){

    $info['features'][] = $mm;

    }

    }

    $info['apk_info'] = $str_out;

    return $info;

    }

    return false;

    }

    展开全文
  • [ADB] Starting 'D:\Program Files (x86)\Android\android-sdk\build-tools\29.0.3\apksigner.bat' with args '["verify","--print-certs","C:\\Users\\huxuejing\\AppData\\Local\\Programs\\Appium\\resources\\...

    如何查看apk签名

    使用appium 启动运行后,选择此apk,查看运行日志,可发现解析apk数据的签名信息

    [ADB] Starting 'D:\Program Files (x86)\Android\android-sdk\build-tools\29.0.3\apksigner.bat' with args '["verify","--print-certs","C:\\Users\\huxuejing\\AppData\\Local\\Programs\\Appium\\resources\\app\\node_modules\\appium\\node_modules\\appium-uiautomator2-server\\apks\\appium-uiautomator2-server-v1.18.0.apk"]'
    [ADB] apksigner stdout: Signer #1 certificate DN: EMAILADDRESS=android@android.com, CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US
    

    查看包名,activity

    查看包名就一行命令, 显示Apk的信息.

    aapt dump badging [xxx.apk]

    如何解析apk

    使用工具:jadx-1.0.0
    在这里插入图片描述在这里插入图片描述

    在这里插入图片描述

    如何查看或者验证apk的基本信息

    apk解压或者解析之后,找到AndroidManifest.xml文件,打开查看
    包名:
    在这里插入图片描述
    版本号:
    在这里插入图片描述
    targetSdkVersion:
    在这里插入图片描述

    MD5签名:

    CN 名称(名字与姓),OU 组织单位名称 ,O =组织名称  L 城市, ST=省份   C=国家
    

    可使用keytool工具生成证书
    在这里插入图片描述

    AndroidManifest.xml介绍

    显示了manifest文件的通常的结构以及它可以含有的元素

    <?xml version="1.0" encoding="utf-8"?> 
    <manifest>  //根节点,描述了package中所有的内容 
        <uses-permission /> //请求你的package正常运作所需赋予的安全许可。一个manifest能包含零个或更多此元素 
        <permission />  //声明了安全许可来限制哪些程序能使用你的package中的组件和功能。一个manifest能包含零个或更多此元素 
        <permission-tree />  
        <permission-group /> 
        <instrumentation />  //声明了用来测试此package或其他package指令组件的代码。一个manifest能包含零个或更多此元素 
        <uses-sdk />  //指定当前应用程序兼容的最低sdk版本号 
        <application>  //包含package中application级别组件声明的根节点。此元素也可包含application中全局和默认的属性,如标签,icon,主 题,必要的权限,等等。一个manifest能包含零个或一个此元素(不允许多余一个) 
            <activity>  //用来与用户交互的主要工具。当用户打开一个应用程序的初始页面时一个activity,大部分被使用到的其他页面也由不同的activity所实现并声明在另外的activity标记中。 
                <intent-filter>  //声明了指定的一组组件支持的Intent值 
                    <action /> 
                    <category /> 
                    <data /> 
                        <type/> 
                        <schema/> 
                        <authority/> 
                        <path/> 
                </intent-filter> 
                <meta-data /> 
            </activity> 
            <activity-alias> 
                <intent-filter> . . . </intent-filter> 
                <meta-data /> 
            </activity-alias> 
            <service>  //Service是能在后台运行任意时间的组件 
                <intent-filter> . . . </intent-filter> 
                <meta-data/> 
            </service> 
            <receiver>   //IntentReceiver能使你的application获得数据的改变或者发生的操作,即使它当前不在运行 
                <intent-filter> . . . </intent-filter> 
                <meta-data /> 
            </receiver> 
            <provider>  //ContentProvider是用来管理持久化数据并发布给其他应用程序使用的组件 
                <grant-uri-permission /> 
                <meta-data /> 
            </provider> 
            <uses-library /> 
            <uses-configuration />   
        </application> 
    </manifest>
    

    <uses-permission 含有系统权限和自定义权限

    <permission 一般是自定义权限

    <permission 与<uses-permission中的权限可存在重复权限

    <uses-permission 和<permission 都是app所声明的权限,若存在权限未标记在此处的,则为未声明权限

    展开全文
  • 背景: aapt 是 Android SDK 自带的工具,即 Android Asset Packaging Tool,是一个管理资源文件的工具 。 前置条件: 已经安装并配置好了Android SDK tools 输入命令: ...安卓安装包apk的信息 ...

    背景: aapt 是 Android SDK 自带的工具,即 Android Asset Packaging Tool,是一个管理资源文件的工具 。

    • 前置条件:已经安装并配置好了Android SDK tools
    查看Apk信息

    输入aapt命令:

     aapt dump badging .apk文件路径
    

    就可以查看Android安装包.apk的信息啦~~
    在这里插入图片描述

    常见问题:

    输入aapt命令后报错:

    ~ % aapt
    zsh:command not found: aapt
    

    原因是:缺少aapt全局变量

    • mac系统下如何配置aapt环境变量,步骤如下:
    1. 终端中输入:
     open .bash_profile
    

    如果没有 .bash_profile 文件会报错如下:

    .bash_profile does not exist.
    
    1. 用户目录下创建一个 .bash_profile文件

    进入当前用户目录

    cd ~   
    

    创建.bash_profile

    touch .bash_profile 
    
    1. 配置aapt环境变量

    编辑.bash_profile文件

    open .bash_profile
    

    在Android SDK的tools目录下,找到aapt工具的安装路径,把该路径粘贴保存到.bash_profile文件里,格式如下:

    export PATH=${PATH}:~/Library/Android/sdk/build-tools/30.0.0/aapt
    
    1. 环境变量生效
    source .bash_profile
    

    配置好全局变量后,就能正常使用aapt命令啦~

    展开全文
  • Android 6.0 内部更新apk 解析出错问题bug定位解决方案综述 问题 Android 6.0 内部更新功能,安装apk时,解析数据出错。 bug定位 1、有可能安装包没有下载成功,或者下载安装包不完整,这个需要自己排查。 2、有...
  • Android sdk(software development kit)是提供给应用开发者调用google提供Api工具集,里面包含了android提供api源码,编译工具等,具体组成可以看 ... 其中最重要文件是android.jar,平时安卓开发中所调用...
  • 获取apk的AndroidManifest的方法

    千次阅读 2018-09-30 11:22:19
    最近发现我修改的包,versioncode versionname解析有问题,查了一下开源方案,一个个过,看看有什么遗漏的,以下是获取apk的AndroidManifest 的方法整理。 1,apkanalyzer [android sdk]/tools [android sdk]/...
  • 但当将bin目录下的HelloGridView.apk拷贝到M8安卓系统后进行安装时,出现了“解析包错误”的提示,在网上搜索答案未果后,经过和以前的例子相对比,发现了我在创建android工程时,由于使用的SDK为2.3.3版本,所以...
  • 配置aapt环境路径:终端中输入:open .bash_profile打开此文件后输入:export PATH=${PATH}:~/Library/Android/sdk/build-tools/25.0.3输入完成后保存,然后回到终端输入:source .bash_profile更新刚才配置环境...
  • 从Android-Apk文件解析,谈用户体验!

    千次阅读 2015-01-14 11:51:43
    于是查资料,看别人是怎么做的,才知道上传apk文件的同时,可以解析apk文件,从apk中可以拿到版本号码,版本名称,包名,权限, 支持的android平台最低版本号,支持的SDK版,建议的SDK版本,应用程序名,程序的
  • 粘出报错信息,如果是这个报错:Error building Player: UnityException: No platforms found就用android的sdk manager更新android的sdk如果是这个报错:Error building Player: UnityException: Couldn't find ...
  • 如果开发应用用户较多,那么必须保证应用在多个版本不同设备上能够正确运行。这就要求对各个版本比较熟悉,知道在什么版本中加入了什么新功能或特性。但是Android版本太多了,是个令人...uses-sdk&g...
  • 比如使用插件化 Android 程序中,比如游戏商店解析上传 APK 等等。最近在项目开发中遇到这个一个问题,需要一个未安装的APK文件中获得它默认启动 Activity 。但是查看了很多 Andorid SDK
  • 编辑器版本:unity 2018.4.27项目管理器:Unity Hub2.4.1,该管理器可以安装如下版本unity(只要空间足够就可以装不同版本unity,互补不足)问题描述:自己安装Android SDK,以及配置路径,但是在打包apk时就...
  • aapt命令行工具介绍aapt.exe(Linux/Ubuntu/imac操作系统下是未带后缀的aapt),是android sdk自带的用于打包apk,解析apk的命令行工具软件。aapt.exe经常被Python调用用于解析App,其全称是:Android Asset Packaging ...
  • apk-parser-2.6.9.jar

    2019-06-27 15:39:08
    app解析 java 解析apk ,获取应用应用名,包名,版本号 minSdkVersion targetSdkVersion apkParser = new ApkParser(new File(apkPath)); String xml = apkParser.getManifestXml(); System.out.println...
  • 1. 下载的APKAPK本身没有问题),保存在应用缓存目录下: /data/user/0/[packagename]/cache 2. 在使用下面代码安装时候提示“解析错误:解析软件包时出现问题”。 Intent intent = new Intent...
  • 是android sdk自带的用于打包apk,解析apk的命令行工具软件。 aapt.exe经常被Python调用用于解析App, 其全称是:Android Asset Packaging Tool, 一般在.\sdk\build-tools\android-***\的路径下。 测试人员...
  • 因工作需要,前一段时间继续又遇到了解析Apk信息工作。由于这次需要读取android资源文件中内容,因此使用了aapt工具,简单记录一下过程如下:     1.使用java.util.zip解包apk,使用AXMLPrinter反编译...
  • 完全使用c++编写,快速解析dex、apk和OAT,odex转dex,OAT转DEX。 4.直接修改DEX文件smali指令,无需反编译。 5.可修改DEX文件中字符串(支持中文) 6.改进优化xml解析器(可解析加壳处理过xml),支持过滤...
  • 最近我们发现很多用户在接入虹软ArcFace人脸识别SDK时,经常会遇到动态库加载失败相关问题。本文详细介绍从编译动态库(.so)到程序调用so整个流程,模拟在加载虹软人脸识别so文件时经常遇到一些问题,帮助...
  •   开发Android应用或者SDK方向小伙伴们,经过多版本迭代,新功能不断增加,依赖多个开源项目,使用第三方SDK,都会导致Apk大小急速膨胀。最终会导致方法超限这一问题,下面让大家了解下什么是MultiDex,讲讲它...
  • 完整手机数据存取功能:铃声模式设置、震动控制、WiFi服务、屏幕旋转、电池计量、温度测量、电信网络信息、SIM卡信息、拨打电话、短信解析、通讯录联系人、电子罗盘、屏幕手写等手机控制功能。 系统服务及研发...

空空如也

空空如也

1 2 3 4 5 6
收藏数 109
精华内容 43
关键字:

解析apk的sdk