告别繁琐!用ApkInfoQuick快速提取APK关键信息

news2026/4/28 23:07:25
我开发了一个开源 APK 信息查看工具ApkInfoQuick最近我做了一个小工具名字叫ApkInfoQuick。它是一个面向 Android APK 文件的信息查看与解析工具支持桌面 GUI也支持 CLI 命令行。项目已经准备开源放到 GitHub 上希望能给经常分析 APK、测试包、渠道包、版本包的同学提供一点帮助。为什么要做这个工具平时在 Android 开发、测试、渠道分发、逆向分析或者自动化流水线里经常会遇到这些需求快速看一个 APK 的包名。确认应用名是不是解析正确。查看 versionCode、versionName。查看 minSdkVersion、targetSdkVersion、compileSdkVersion。看 APK 里声明了哪些权限。看支持哪些 ABI。提取应用图标。判断渠道信息有没有写进去。批量解析多个 APK。把解析结果复制成文本或 JSON。这些需求看起来都很简单但真正用起来经常需要在多个工具之间切换。有些老工具界面比较旧有些工具解析图标和应用名不稳定有些只支持 GUI不方便脚本自动化而命令行工具虽然强大但对日常查看又不够直观。所以我做了 ApkInfoQuick目标就是让 APK 信息查看这件事变得更快、更直观也更适合自动化。项目地址GitHub 地址https://github.com/TheDarkXian/ApkInfoQuick.git这里先放一个占位地址等仓库公开后替换成真实链接即可。主要功能ApkInfoQuick 当前支持拖拽 APK 到窗口自动解析。多文件标签页工作区。多 APK 按顺序自动解析。APK 图标预览。图标导出。包名、应用名、版本、SDK 信息展示。权限列表展示。ABI 列表展示。渠道信息展示。签名信息尽力解析。warnings 诊断信息展示。当前标签内容复制为纯文本。当前标签内容复制为 JSON。CLI 命令行解析。批量目录解析。CLI 导出 icon。目前 AAB 文件暂时是占位标签还没有做真实解析。后续计划会补上。桌面端效果桌面端基于 React Material UI Tauri 实现。核心交互很简单打开应用。把 APK 拖进去。自动解析。在标签页里查看结果。需要的话复制文本、复制 JSON 或导出 icon。我比较关注这个工具的信息密度所以界面不是那种展示型大留白 UI而是偏工具型布局。目标是尽量在首屏看到更多有用信息。CLI 用法除了 GUIApkInfoQuick 也提供 CLI。进入后端目录后可以运行cd backend cargo run--parse path\to\app.apk输出的是统一的 JSON Envelope{success:true,data:{packageName:com.example.app,appName:Example,iconUrl:file:///...,minSdkVersion:23,targetSdkVersion:35,compileSdkVersion:35,versionCode:1,versionName:1.0.0,permissions:[],signers:[],abis:[],channel:unknown},errorCode:null,errorMessage:null,warnings:[]}常用命令示例# 紧凑 JSONcargo run--parse path\to\app.apk--compact# 纯文本输出cargo run--parse path\to\app.apk--text# 解析并导出 iconcargo run--parse path\to\app.apk--export-icon.\icons# 递归批量解析目录cargo run--parse.\samples--recursive--out result.json# 检查工具链cargo run--doctorCLI 和 GUI 复用同一套 Rust 解析引擎所以结果是一致的。技术栈项目主要技术栈前端React、TypeScript、Vite、Material UI。桌面壳Tauri 2。后端解析Rust。APK 解析辅助aapt。压缩包读取zip。XML 处理quick-xml。CLI 参数解析clap。序列化serde、serde_json。整体结构大概是. |-- backend/ Rust 解析引擎和 CLI |-- frontend/ React UI 和 Tauri 桌面端 |-- tools/android/ 内置 Android 辅助工具 -- README.mdAPK 解析方案ApkInfoQuick 当前采用的是混合解析策略。第一层优先使用aaptaapt dump badgingaapt dump resourcesaapt dump xmltree这些能力对应用名、图标、资源引用等信息比较稳定。第二层是 Rust 自研兜底解析读取 APK zip。解析 AndroidManifest.xml。解析部分 resources.arsc 场景。扫描 res 下的 icon 资源。推断 ABI。解析渠道信息。尽力解析签名信息。一开始我尝试过只靠 Rust 自研解析但真实 APK 的情况很多特别是图标和应用名解析会遇到不少边界情况。后来又尝试过完全导向 aapt但也发现部分原本 Rust 能命中的 icon 反而丢失。所以最后采用了混合方案aapt 做主解析Rust 做字段级兜底和增强。这个方案目前效果比较稳定尤其是应用图标解析已经覆盖了不少真实 APK 场景。图标解析做了哪些处理APK icon 解析其实比想象中复杂。常见情况包括manifest 里直接写mipmap/ic_launcher。manifest 里写drawable/icon。带包名前缀的资源引用。资源 ID 引用比如0x7f...。roundIcon。adaptive icon XML。foreground / background 分层。png、webp、9.png 等不同格式。不同 density 目录比如 mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi。ApkInfoQuick 目前会综合多个策略选择最合适的图标并在界面里显示图标来源方便排查。比如可能显示aapt badgingaapt xmltreeresources.arsc 反查adaptive xmlheuristic fallback为什么做成开源这个工具本身是为了解决我自己的日常需求但 APK 信息查看其实是很多 Android 开发者、测试同学、工具开发者都会遇到的问题。开源之后希望它可以给需要的人直接使用。给想做 APK 工具的人提供参考。接收更多真实 APK 样本反馈。一起补齐更多边界情况。尤其是 APK 的资源格式、签名格式、渠道信息写法非常多靠一个人很难覆盖全部场景。开源以后如果大家遇到解析失败的 APK也可以提 issue 或 PR。当前状态目前比较稳定的能力APK 基础信息解析。应用名解析。图标解析与导出。权限、ABI、渠道展示。多文件标签页。CLI 单文件和批量解析。JSON / 文本复制。仍然需要继续完善的地方AAB 真实解析。更完整的签名证书解析。更多导出格式。更完善的安装包发布流程。macOS / Linux 的打包验证。本地开发前端开发cd frontend npm install npm run tauri:dev前端测试cd frontend npm run test----run后端测试cd backend cargo test构建桌面安装包cd frontend npm run tauri:build构建 CLIcd backend cargo build--release写在最后ApkInfoQuick 不是一个很复杂的大项目但它解决的是一个非常具体、非常高频的小问题。我一直觉得工具类项目最有意思的地方在于它不一定宏大但只要能让某个重复动作少几步、让某个排查过程快几分钟就已经有价值。如果你经常需要查看 APK 信息、分析测试包、检查渠道包欢迎试试这个工具。如果你有更复杂的 APK 样本也欢迎提 issue一起把它打磨得更好。GitHubhttps://github.com/TheDarkXian/ApkInfoQuick.git

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…