2025 年 11 月 10 日
同事掏出一個老舊裝置和一個有 Android 2 時代截圖的說明書,說配對不上了。還說這個
APK 有好幾個版本,都是隨著安卓升級而改上去的,只有最新的一個版本才能安裝上,但是還是會提示此應用專為舊版 Android 打造
。我說這個只是個提示,實際應該沒有相容性問題。我們在公司的智選手機、紅米手機上都試了試,藍芽配對本身就很慢;也沒能讀取出裝置的資料。
2025 年 11 月 11 日
於是我現在要逆向自己公司的 APK。
Android resource compilation failed 是什麼意思?
前端貓不會不知道安卓裡的 /res 吧。
但是,為什麼 res 還要編譯
小毛驢變成二進位制小毛驢
id 變成 int
聽說過 resources.arsc 嗎?
看來前端之貓沒有反編譯過安卓愛啪啪。哎,前端。
(為保護群友隱私,ID 已隱去一個字)
2025 年 11 月 12 日
Leader 再次強調了寫這個程式的人早就離職了,然後第三次向我表明很難找到原始碼或文件了。這讓我想起了《制度性記憶與反向洩密》1中說的:
制度性記憶有兩種形式:人與文件。人記得事物如何工作,以及為什麼能工作。有時候他們會將其寫下來,將資訊儲存於某處。制度性失憶的原理與其類似:人離開了,文件丟失、腐爛或者僅僅被遺忘了。
專案中用的是 Bluetooth Classic SPP(Serial Port Profile)協議。但我在 Windows 上連線裝置時,它居然被識別成 BLE,這樣的話,Windows 就不會為我對映一個串列埠,用來互動。這就導致我用 C# 寫的 AI 生成版本完全連不上。嘗試用 Kotlin 重寫也不一定能解決問題,畢竟協議層的相容性才是關鍵。尤其是這個 APK 還有多個版本,以前的版本更是連安裝都裝不上。
今天晚上待到很晚。Leader 堅持說那個程式是使用介面設計器開發的,因為他清楚地記得,在那之前他們只能用 Eclipse。於是我們終於找到了 layout 目錄下面的 XML。
魚魚給我發了他的高階版永久的MT管理器的帳號和密碼,他說逆向一般都不用電腦上的軟體;但是逆向出來的一般也編譯不成工程,除非是用純 Java 寫的程式。我嘗試的結果是一直會出現資源編譯錯誤和資源連結錯誤。
2025 年 11 月 13 日
讓大語言模型用 Kotlin 重寫了一版,還是 View 的,但是隻包含裝置列表和藍芽連線的部分。但是始終連不上,還閃退了。
再用各種藍芽除錯助手,嘗試和裝置通訊,但是都卡在到藍芽 SPP 建立 socket 連線上。卓易通裡的似乎可能有用,但是我不知道它是不是因為卓易通的 bug。用鴻蒙原生的藍芽除錯助手,有一個甚至都沒辦法正常授予許可權;我用了其中一個,但光 UI 上狀態管理的 bug 就挺多的,這讓我覺得是軟體在藍芽連線結果顯示上有問題。
還有兩臺備用的裝置,這個裝置的名稱會間歇性地從一個比較長的一個長串的代號變成一個簡單的只有兩個字元的,我不知道是什麼時期要連線它,而且它的說明書上說需要
實驗室的落日餘暉照在成排 capsule 狀的裝置上,很好看。
2025 年 11 月 14 日
發現用藍芽除錯助手都沒法正常連線。最後,做硬體的一看發現藍芽的裝置名稱都不是伊以前改過的名字,可能是藍芽模組的主從模式設定錯了;而這是因為伊 assume 以前的裝置都除錯好了,但實際上只在賣出去的時候測試一遍,這個裝置只是留存自用,所以沒有經歷那個步驟。
後首修好了,舊的應用也能用了,就不需要我再處理了。回家看動畫片。
2025 年 11 月 15 日
在電視上看動畫片。
2025 年 11 月 16 日
在鴻蒙電腦上看動畫片。
腳註
---
-
知乎譯文,似乎最開始是在 Rynco 的頻道里看見的。記不起來題目了,我是透過
登月 知乎 工程 資料失傳搜到的。
版權許可
- 本作品 採用 知識共享 署名—相同方式共享 4.0 國際許可協議(CC BY-SA 4.0 International)許可,閣下可自由地共享(複製、發行) 和演繹(修改、轉換或二次創作) 這一作品,唯須遵守許可協議條款。

評論