Box —— 個人開發助手

項目地址:Boxgit

爲何要作 Box ? 其實源於開發過程當中一些很小的需求,也許並不常見,可是每次碰到都要費一些功夫。因此想着寫一個小應用,集成一些經常使用功能,給開發帶來一些便利。下面這些小需求,你也遇到過嗎?github

如何查看當前 Activity ?

看到別人優秀的 UI 界面想借鑑一下如何實現?看到別人的應用實現了本身不知道如何實現的功能?反編譯了別人的 apk 殊不知道去哪找代碼?常常作逆向的同窗應該常常碰到這些問題。首先,你確定得找到當前 Activity 的名稱,才能順路找到相應的代碼。那麼,如何查看當前 Activity 的名稱呢?常見的作法是經過 adb 命令:shell

adb shell dumpsys activity activities | grep mFocusedActivity
複製代碼

執行結果以下:bash

無奈記性很差,常常忘記命令,每次都得去搜一下,順便推薦一個 adb 命令集合。再來看一下 Box 中這一功能是什麼效果:微信

經過懸浮窗實時顯示當前 Activity ,簡單便捷。實現原理也很簡單,經過 無障礙服務 監聽窗口變化並獲取當前 Activity 名稱。懸浮窗沒有本身造輪子了,使用了開源項目 FloatWindow。有段時間沒更新了,順便也改了幾個 bug。app

如何獲取已安裝應用的 Apk 文件 ?

某天忽然看上了手機裏的某個 App,想拖到 jadx 裏面看一看,如何快速的獲取到安裝包文件呢?咱們都知道對於已安裝的應用,系統都備份了安裝包,存儲在 /data/app/[packageName] 目錄下,通常文件名爲 base.apk。若是是具備 root 權限的手機,咱們能夠直接拿到文件。對於非 root 手機,仍是有讀權限的,能夠經過文件 API 直接讀取。Box 中界面以下所示:異步

安裝包文件會複製到手機根目錄 /Box/apk/應用名 文件夾下。工具

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

AndroidManifest.xml 包含了應用的基本信息,如何快速的查看應用的清單文件?以前有一個開源工具,AXmlPrinter.jar,能夠直接解析安裝包中的二進制清單文件。本想直接把 jar 包拿過來用,但是用的不是那麼隨心應手。加上以前親手解析過 AndroidManifest.xml 文件,詳見 Android逆向(一) —— AndroidManifest.xml 二進制解析。索性就用了本身的代碼,順便也修復了一些解析過程當中遇到的 bug。具體效果以下:post

其餘

主要功能都在上面了,另外還加了一塊 本機信息,包括內容以下:spa

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

Box 使用 kotlin 開發,簡單的使用了 協程 來進行異步任務,如複製 Apk 並更新進度等。界面設計很通常,實在是很爲難我這麼一個理科生。圖片基本上都是 Android Studio 裏面自動生成的,logo 暫時尚未,有合適的能夠 push 一個。

第一個版本功能比較簡單,後面再遇到開發中的痛點需求,還會加進來,持續更新。有 bug 或者好的想法,歡迎 issuepr 砸過來!

項目源碼: Box

文章首發微信公衆號: 秉心說 , 專一 Java 、 Android 原創知識分享,LeetCode 題解,歡迎關注!

相關文章
相關標籤/搜索