SemcCameraUI 是 LineageOS Sony 設備的相機應用模組化專案,涵蓋:
- Java 應用層:相機主程式與功能模組
- Native SO 模組:圖像處理、Cacao 服務
- Smali 反編譯:現有應用的修改與逆向分析
本專案需要 Java、C/C++(Native)、Smali(字節碼)等多語言協作開發。
不同模組的詳細規範請參考:
- 所有回覆、註解與文件使用繁體中文(台灣)
- 所有暫存檔案與 log 必須放在:
SemcCameraUI/.tmp/ - 嚴禁使用
/tmp或系統暫存目錄
範例:
# 正確
log_path = "SemcCameraUI/.tmp/camera.log"
# 禁止
log_path = "/tmp/camera.log"
SemcCameraUI/
├─ .tmp/ # 所有 log 與暫存檔
├─ tools_Common/
│ └─ adb.py # ADB 封裝
├─ test_camera/
│ └─ test_camera.py # 測試腳本
├─ tools_Libcacao/
│ ├─ build_push_libcacao.py # Libcacao編譯腳本
│ └─ refs/ # 原版so
├─ App_java/ # Java 應用層
├─ App_smali/ # Smali 反編譯應用
└─ Libcacao/ # Native SO 模組
- 優先使用
SemcCameraUI/tools_Common/adb.py提供的Adb類別 - 所有指令必須使用
/mnt/f/Android/platform-tools/adb.exe的 adb - 避免直接用系統其他 adb 或 subprocess 呼叫
- 程式編譯成功
- 執行 test_camera.py -c 進行功能測試
- 若測試通過 → 進入下一步
- 必須遵守本文件所有規則
- 不得使用
/tmp - 所有修改,依照原始實作
- 所有邏輯都100%符合原版
- 不得添加原版沒有的函數(空判斷、回退等),除非是相容 Android 14 的措施
- 開發期間可暫時加入註解與 debug log,但最終提交前必須清理;最後保留的 log 只能是原始版本既有的輸出