Box —— 我的开发助手

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: Box —— 我的开发助手

项目地址:Box

为什么要做 Box ? 其实源于开发过程中一些很小的需求,也许并不常见,但是每次碰到都要费一些功夫。所以想着写一个小应用,集成一些常用功能,给开发带来一些便利。下面这些小需求,你也遇到过吗?


如何查看当前 Activity ?



看到别人优秀的 UI 界面想借鉴一下如何实现?看到别人的应用实现了自己不知道如何实现的功能?反编译了别人的 apk 却不知道去哪找代码?经常做逆向的同学应该经常碰到这些问题。首先,你肯定得找到当前 Activity 的名称,才能顺路找到相应的代码。那么,如何查看当前 Activity 的名称呢?常见的做法是通过 adb 命令:

adb shell dumpsys activity activities | grep mFocusedActivity
复制代码

执行结果如下:

image.png

无奈记性不好,经常忘记命令,每次都得去搜一下,顺便推荐一个 adb 命令集合。再来看一下 Box 中这一功能是什么效果:

image.png

通过悬浮窗实时显示当前 Activity ,简单便捷。实现原理也很简单,通过 无障碍服务 监听窗口变化并获取当前 Activity 名称。悬浮窗没有自己造轮子了,使用了开源项目 FloatWindow。有段时间没更新了,顺便也改了几个 bug。


如何获取已安装应用的 Apk 文件 ?


某天突然看上了手机里的某个 App,想拖到 jadx 里面看一看,如何快速的获取到安装包文件呢?我们都知道对于已安装的应用,系统都备份了安装包,存储在 /data/app/[packageName] 目录下,一般文件名为 base.apk。如果是具有 root 权限的手机,我们可以直接拿到文件。对于非 root 手机,还是有读权限的,可以通过文件 API 直接读取。Box 中界面如下所示:

image.png

安装包文件会复制到手机根目录 /Box/apk/应用名 文件夹下。


如何快速查看 AndroidManifest.xml 文件 ?


AndroidManifest.xml 包含了应用的基本信息,如何快速的查看应用的清单文件?之前有一个开源工具,AXmlPrinter.jar,可以直接解析安装包中的二进制清单文件。本想直接把 jar 包拿过来用,可是用的不是那么随心应手。加上之前亲手解析过 AndroidManifest.xml 文件,详见 Android逆向(一) —— AndroidManifest.xml 二进制解析。索性就用了自己的代码,顺便也修复了一些解析过程中遇到的 bug。具体效果如下:

image.png

image.png


其他


主要功能都在上面了,另外还加了一块 本机信息,包括内容如下:

  • 品牌、版本号、型号、主板、制造商等
  • 屏幕、RAM、ROM、SDK 版本、Android 版本、ABIS 等
  • IMEI、MEID、SN、MAC 地址等

image.png

image.png

Box 使用 kotlin 开发,简单的使用了 协程 来进行异步任务,如复制 Apk 并更新进度等。界面设计很一般,实在是很为难我这么一个理科生。图片基本上都是 Android Studio 里面自动生成的,logo 暂时还没有,有合适的可以 push 一个。


第一个版本功能比较简单,后面再遇到开发中的痛点需求,还会加进来,持续更新。有 bug 或者好的想法,欢迎 issuepr 砸过来!

项目源码: Box



相关文章
|
19天前
|
数据采集 自然语言处理 安全
控制电脑手机的智能体人人都能造,微软开源OmniParser
微软研究团队推出OmniParser,旨在提升GPT-4V等多模态模型在用户界面操作方面的性能。通过解析用户界面截图为结构化元素,OmniParser显著增强了模型的交互能力,使其在多种基准测试中表现出色。该技术开源,促进了社区合作与技术创新,但同时也面临数据质量、计算资源及安全隐私等挑战。
39 14
|
3月前
|
人工智能 C++
【Azure Developer】上手 The Best AI Code "Cursor" : 仅仅7次对话,制作个人页面原型,效果让人惊叹!
本文介绍了使用 Cursor 这款 AI 辅助编程工具的步骤与体验。通过下载安装 Cursor 并使用 GitHub 账号登录,你可以创建 HTML 文件并借助 AI 自动生成代码。文章详细描述了如何逐步优化生成的内容,包括调整布局、增加样式及响应式设计等。此外,还展示了通过多次迭代改进后的最终效果,并提供了生成的 HTML 模板代码,便于读者直接使用或进一步修改。
199 3
|
5月前
|
人工智能 算法 机器人
如何使用chatgpt-plus.top辅助设计工作
如何使用chatgpt-plus.top辅助设计工作
77 0
|
7月前
|
小程序 JavaScript Java
基于微信小程序的平台健身小助手小程序的设计与实现(源码+lw+部署文档+讲解等)
基于微信小程序的平台健身小助手小程序的设计与实现(源码+lw+部署文档+讲解等)
|
7月前
|
数据采集 数据处理
LabVIEW开发J-TEXT实时控制系统
LabVIEW开发J-TEXT实时控制系统
50 1
|
7月前
|
JavaScript Java 测试技术
基于微信小程序的社团活动助手的设计与实现(源码+lw+部署文档+讲解等)
基于微信小程序的社团活动助手的设计与实现(源码+lw+部署文档+讲解等)
|
7月前
|
人工智能
【强大的cursor_不懂就问AI工具做开发的AI助手技巧分享——一定要去试试!!!】
【强大的cursor_不懂就问AI工具做开发的AI助手技巧分享——一定要去试试!!!】
|
7月前
|
开发者
开放平台搜索错误码BOX优化升级
开放平台搜索错误码BOX优化升级
75 11
|
7月前
【鸿蒙软件开发】文本显示(Text/Span)
【鸿蒙软件开发】文本显示(Text/Span)
926 0
|
SQL 弹性计算 自然语言处理
AIGC-知识库-LLM:在云上从0开始搭建智能问答机器人Streamlit网页版
本文描述在阿里云上从0开始构建个人/企业专属,具备私域知识库+LLM智能问答能力的网页版聊天机器人。网页采用streamlit实现,知识库技术方案使用了Lindorm AI数据服务平台知识库能力,LLM使用了开源ChatGLM2-6B。 Streamlit使用起来非常简便,可以让开发者快速(短则几十分钟即可)搭建一个具备公网访问能力的网页。尤其在人工智能开发上,可使用Streamlit快速搭建应用环境,让开发人员将更多精力集中在人工智能本身,本文从0开始详细讲解整个应用的构建过程,代码实现了一个简洁的具备公网访问能力的网页版聊天机器人。