Repository navigation
Releases: dedy45/gososmed-mobile-agent
Release list
v1.2.2
Fixed & Enhanced — Onboarding Permission Unblocking, Dual-Action Buttons, SettingsActivity, Bottom/Menu ⋮ Variant & OEM Guides
Rilis STABIL v1.2.2 (versionCode 36) menuntaskan penyempurnaan menyeluruh pada alur perizinan awal dan onboarding perangkat BYOD Android 13/14:
- Dual-Action Buttons & Panduan Visual Terbuka di Langkah 1:
- Menghadirkan tombol langsung "Buka Info App (Menu ⋮)" berdampingan dengan "Buka Aksesibilitas" saat layanan belum aktif pada Android 13+.
- Menambahkan kotak panduan visual di dalam kartu yang memandu 4 tahapan membuka blokir Setelan Dibatasi (Restricted Settings).
- Menyertakan panduan varian lokasi tombol unblock: baik melalui menu titik tiga (⋮) di atas maupun gulir ke paling bawah layar Info Aplikasi (Restricted settings / default disable).
- Interaktivitas Entri Layanan Aksesibilitas (
accessibility_service_config.xml):- Menambahkan
android:settingsActivity="com.gososmed.agent.MainActivity"danandroid:summary="@string/accessibility_service_summary". - Entri "Agent GoSosmed" di menu Pengaturan Aksesibilitas Android kini dapat diketuk langsung untuk membuka aplikasi (
singleTask). - Melengkapi string lokalisasi bahasa Indonesia (
values/strings.xml) dan bahasa Inggris (values-en/strings.xml).
- Menambahkan
- Deteksi Multi-Level & Telemetri AppOps:
- Menggabungkan refleksi
checkOpNoThrow(119, ...)dan fallback string app-opandroid:access_restricted_settingsuntuk mendeteksi statusMODE_ERRORED. - Telemetri
a11y_blockeddipublikasikan kehealthSnapshot()dancapabilitiesJson().
- Menggabungkan refleksi
- Panduan Opsi Pengembang & Debug Nirkabel Multi-OEM (
docs/SETUP-3-LANGKAH.md):- Panduan terperinci aktivasi Opsi Pengembang (ketuk 7×) dan letak menu sistem untuk Xiaomi/HyperOS, Samsung One UI, OPPO/Realme ColorOS, Vivo Funtouch OS, dan Google Pixel/AOSP.
- Verifikasi Perangkat Nyata (Gate Rilis §2 LULUS):
- Uji Perangkat Fisik: Terverifikasi sukses pada perangkat fisik Android 13/14 oleh pengguna ("ok sudah saya tes dan berfungsi"). Alur pembukaan blokir Setelan Dibatasi via Info Aplikasi berhasil tembus dan Aksesibilitas aktif normal.
- Uji Unit JVM:
testDebugUnitTest100% lulus. KompilasiassembleDebugsukses.
Enhanced — Dual-Action Onboarding UX, Direct "Buka Info App (Menu ⋮)" Button, Toast Reminder & Reflection AppOps
Rilis DEV v1.2.2-dev.2 (versionCode 35) merombak alur UI Setup Langkah 1 agar ramah pengguna (user-friendly) dan tidak lagi bergantung pada deteksi vendor yang kerap ambigu:
- Dual-Action Buttons di Langkah 1:
- Menampilkan tombol langsung "Buka Info App (Menu ⋮)" berdampingan dengan "Buka Aksesibilitas" pada Android 13+ saat Aksesibilitas belum aktif.
- Pengguna tidak lagi terjebak hanya memiliki tombol "Aktifkan" yang langsung terbentur dialog Restricted Settings di sistem.
- Notice Box Panduan Visual Terbuka:
- Menyematkan kotak panduan visual di dalam kartu Langkah 1 yang menguraikan 4 tahapan membuka kunci Restricted Settings sebelum pengguna menekan tombol apa pun.
- Toast Reminder Sebelum Pindah Layar:
- Menampilkan Toast pengingat saat pengguna mengetuk "Buka Aksesibilitas" di Android 13+: "Bila sakelar abu-abu, kembali dan ketuk tombol 'Buka Info App (Menu ⋮)'".
- Enhanced AppOps Reflection Check:
- Menambahkan pemanggilan refleksi
checkOpNoThrow(119, ...)(OP 119 di Android 13/14) di samping fallback string op untuk deteksi statusMODE_ERROREDyang lebih andal.
- Menambahkan pemanggilan refleksi
Fixed & Enhanced — Onboarding Permission Unblocking, Restricted Settings Detection, SettingsActivity & Multi-OEM Developer Guides
Rilis DEV v1.2.2-dev.1 (versionCode 34) mengatasi kendala pengguna saat mengaktifkan izin pada Android 13/14 dan mempermudah onboarding perangkat BYOD:
- [CELAH-1] Interaktivitas Entri Layanan Aksesibilitas (
accessibility_service_config.xml,strings.xml):- Menambahkan konfigurasi
android:settingsActivity="com.gososmed.agent.MainActivity"danandroid:summary="@string/accessibility_service_summary". - Entri "Agent GoSosmed" pada daftar Aksesibilitas sistem kini dapat diketuk untuk membuka langsung aplikasi tanpa kebingungan.
- Melengkapi string lokalisasi bahasa Indonesia (
values/strings.xml) dan bahasa Inggris (values-en/strings.xml).
- Menambahkan konfigurasi
- [CELAH-2] Deteksi Tiga Keadaan & Panduan Restricted Settings (
AgentAccessibilityService,MainActivity):- Menambahkan fungsi pembacaan AppOps
isRestrictedBlocked(ctx)untuk memeriksa apakah app-opandroid:access_restricted_settingsberada dalam statusMODE_ERRORED(Android 13+). - Memperbarui kartu Langkah 1 di tab Setup dengan 3 keadaan jujur:
AKTIF ✓,DIBLOKIR ANDROID ⚠️, danBELUM AKTIF. - Saat terblokir, tombol menampilkan "Cara Mengizinkan" yang membuka dialog panduan terperinci, lalu mengarahkan langsung (deep-link) ke
Settings.ACTION_APPLICATION_DETAILS_SETTINGS(package:$packageName). - Panduan UI memberikan peringatan keras bahwa menu titik tiga (⋮) di Info Aplikasi hanya dapat dibuka satu kali oleh sistem sebelum hilang permanen.
- Telemetri
a11y_blockedditambahkan ke snapshot kesehatan (healthSnapshot) dan kapabilitas (capabilitiesJson).
- Menambahkan fungsi pembacaan AppOps
- [CELAH-3] Panduan Komprehensif Opsi Pengembang & Debug Nirkabel per OEM (
docs/SETUP-3-LANGKAH.md):- Menambahkan panduan spesifik ketuk 7× Nomor Build dan lokasi menu Opsi Pengembang untuk Xiaomi/HyperOS, Samsung One UI, OPPO/Realme ColorOS, Vivo Funtouch OS, dan Google Pixel/AOSP.
- Menambahkan sub-bagian panduan pembebasan Setelan Dibatasi (Restricted Settings) dan penambahan solusi pada tabel kendala.
- Status Gate Rilis & Batasan yang Jujur:
- Verifikasi JVM:
testDebugUnitTest(termasuk verifikasi health snapshota11y_blocked) lulus 100%. KompilasiassembleDebugsukses. - Kanal Rilis: Ditetapkan sebagai kanal DEV (
v1.2.2-dev.1) sesuai §2 Gate Rilis karena belum tersambung ke perangkat fisik nyata di sesi pengujian ini. Verifikasi alur di HP nyata dijadwalkan sebelum promosi rilis stabil.
- Verifikasi JVM:
v1.2.2-dev.2 (dev)
Enhanced — Dual-Action Onboarding UX, Direct "Buka Info App (Menu ⋮)" Button, Toast Reminder & Reflection AppOps
Rilis DEV v1.2.2-dev.2 (versionCode 35) merombak alur UI Setup Langkah 1 agar ramah pengguna (user-friendly) dan tidak lagi bergantung pada deteksi vendor yang kerap ambigu:
- Dual-Action Buttons di Langkah 1:
- Menampilkan tombol langsung "Buka Info App (Menu ⋮)" berdampingan dengan "Buka Aksesibilitas" pada Android 13+ saat Aksesibilitas belum aktif.
- Pengguna tidak lagi terjebak hanya memiliki tombol "Aktifkan" yang langsung terbentur dialog Restricted Settings di sistem.
- Notice Box Panduan Visual Terbuka:
- Menyematkan kotak panduan visual di dalam kartu Langkah 1 yang menguraikan 4 tahapan membuka kunci Restricted Settings sebelum pengguna menekan tombol apa pun.
- Toast Reminder Sebelum Pindah Layar:
- Menampilkan Toast pengingat saat pengguna mengetuk "Buka Aksesibilitas" di Android 13+: "Bila sakelar abu-abu, kembali dan ketuk tombol 'Buka Info App (Menu ⋮)'".
- Enhanced AppOps Reflection Check:
- Menambahkan pemanggilan refleksi
checkOpNoThrow(119, ...)(OP 119 di Android 13/14) di samping fallback string op untuk deteksi statusMODE_ERROREDyang lebih andal.
- Menambahkan pemanggilan refleksi
Fixed & Enhanced — Onboarding Permission Unblocking, Restricted Settings Detection, SettingsActivity & Multi-OEM Developer Guides
Rilis DEV v1.2.2-dev.1 (versionCode 34) mengatasi kendala pengguna saat mengaktifkan izin pada Android 13/14 dan mempermudah onboarding perangkat BYOD:
- [CELAH-1] Interaktivitas Entri Layanan Aksesibilitas (
accessibility_service_config.xml,strings.xml):- Menambahkan konfigurasi
android:settingsActivity="com.gososmed.agent.MainActivity"danandroid:summary="@string/accessibility_service_summary". - Entri "Agent GoSosmed" pada daftar Aksesibilitas sistem kini dapat diketuk untuk membuka langsung aplikasi tanpa kebingungan.
- Melengkapi string lokalisasi bahasa Indonesia (
values/strings.xml) dan bahasa Inggris (values-en/strings.xml).
- Menambahkan konfigurasi
- [CELAH-2] Deteksi Tiga Keadaan & Panduan Restricted Settings (
AgentAccessibilityService,MainActivity):- Menambahkan fungsi pembacaan AppOps
isRestrictedBlocked(ctx)untuk memeriksa apakah app-opandroid:access_restricted_settingsberada dalam statusMODE_ERRORED(Android 13+). - Memperbarui kartu Langkah 1 di tab Setup dengan 3 keadaan jujur:
AKTIF ✓,DIBLOKIR ANDROID ⚠️, danBELUM AKTIF. - Saat terblokir, tombol menampilkan "Cara Mengizinkan" yang membuka dialog panduan terperinci, lalu mengarahkan langsung (deep-link) ke
Settings.ACTION_APPLICATION_DETAILS_SETTINGS(package:$packageName). - Panduan UI memberikan peringatan keras bahwa menu titik tiga (⋮) di Info Aplikasi hanya dapat dibuka satu kali oleh sistem sebelum hilang permanen.
- Telemetri
a11y_blockedditambahkan ke snapshot kesehatan (healthSnapshot) dan kapabilitas (capabilitiesJson).
- Menambahkan fungsi pembacaan AppOps
- [CELAH-3] Panduan Komprehensif Opsi Pengembang & Debug Nirkabel per OEM (
docs/SETUP-3-LANGKAH.md):- Menambahkan panduan spesifik ketuk 7× Nomor Build dan lokasi menu Opsi Pengembang untuk Xiaomi/HyperOS, Samsung One UI, OPPO/Realme ColorOS, Vivo Funtouch OS, dan Google Pixel/AOSP.
- Menambahkan sub-bagian panduan pembebasan Setelan Dibatasi (Restricted Settings) dan penambahan solusi pada tabel kendala.
- Status Gate Rilis & Batasan yang Jujur:
- Verifikasi JVM:
testDebugUnitTest(termasuk verifikasi health snapshota11y_blocked) lulus 100%. KompilasiassembleDebugsukses. - Kanal Rilis: Ditetapkan sebagai kanal DEV (
v1.2.2-dev.1) sesuai §2 Gate Rilis karena belum tersambung ke perangkat fisik nyata di sesi pengujian ini. Verifikasi alur di HP nyata dijadwalkan sebelum promosi rilis stabil.
- Verifikasi JVM:
v1.2.2-dev.1 (dev)
Fixed & Enhanced — Onboarding Permission Unblocking, Restricted Settings Detection, SettingsActivity & Multi-OEM Developer Guides
Rilis DEV v1.2.2-dev.1 (versionCode 34) mengatasi kendala pengguna saat mengaktifkan izin pada Android 13/14 dan mempermudah onboarding perangkat BYOD:
- [CELAH-1] Interaktivitas Entri Layanan Aksesibilitas (
accessibility_service_config.xml,strings.xml):- Menambahkan konfigurasi
android:settingsActivity="com.gososmed.agent.MainActivity"danandroid:summary="@string/accessibility_service_summary". - Entri "Agent GoSosmed" pada daftar Aksesibilitas sistem kini dapat diketuk untuk membuka langsung aplikasi tanpa kebingungan.
- Melengkapi string lokalisasi bahasa Indonesia (
values/strings.xml) dan bahasa Inggris (values-en/strings.xml).
- Menambahkan konfigurasi
- [CELAH-2] Deteksi Tiga Keadaan & Panduan Restricted Settings (
AgentAccessibilityService,MainActivity):- Menambahkan fungsi pembacaan AppOps
isRestrictedBlocked(ctx)untuk memeriksa apakah app-opandroid:access_restricted_settingsberada dalam statusMODE_ERRORED(Android 13+). - Memperbarui kartu Langkah 1 di tab Setup dengan 3 keadaan jujur:
AKTIF ✓,DIBLOKIR ANDROID ⚠️, danBELUM AKTIF. - Saat terblokir, tombol menampilkan "Cara Mengizinkan" yang membuka dialog panduan terperinci, lalu mengarahkan langsung (deep-link) ke
Settings.ACTION_APPLICATION_DETAILS_SETTINGS(package:$packageName). - Panduan UI memberikan peringatan keras bahwa menu titik tiga (⋮) di Info Aplikasi hanya dapat dibuka satu kali oleh sistem sebelum hilang permanen.
- Telemetri
a11y_blockedditambahkan ke snapshot kesehatan (healthSnapshot) dan kapabilitas (capabilitiesJson).
- Menambahkan fungsi pembacaan AppOps
- [CELAH-3] Panduan Komprehensif Opsi Pengembang & Debug Nirkabel per OEM (
docs/SETUP-3-LANGKAH.md):- Menambahkan panduan spesifik ketuk 7× Nomor Build dan lokasi menu Opsi Pengembang untuk Xiaomi/HyperOS, Samsung One UI, OPPO/Realme ColorOS, Vivo Funtouch OS, dan Google Pixel/AOSP.
- Menambahkan sub-bagian panduan pembebasan Setelan Dibatasi (Restricted Settings) dan penambahan solusi pada tabel kendala.
- Status Gate Rilis & Batasan yang Jujur:
- Verifikasi JVM:
testDebugUnitTest(termasuk verifikasi health snapshota11y_blocked) lulus 100%. KompilasiassembleDebugsukses. - Kanal Rilis: Ditetapkan sebagai kanal DEV (
v1.2.2-dev.1) sesuai §2 Gate Rilis karena belum tersambung ke perangkat fisik nyata di sesi pengujian ini. Verifikasi alur di HP nyata dijadwalkan sebelum promosi rilis stabil.
- Verifikasi JVM:
v1.2.1
Fixed & Hardened — annotatedScreenshot Stabilization, Zero-Leak Mutable Decoding, Strict TLS & App Signature Attestation
Rilis STABIL v1.2.1 (versionCode 33) menuntaskan stabilisasi visual Set-of-Marks dan pengerasan keamanan enterprise:
- Stabilisasi
annotatedScreenshot(C1, C2, C3 Resolved):- Menangkap dan mengekspos Android
errorCode(1–5) padatakeScreenshotBase64dantakeScreenshotRawBytesviaRawScreenshotResult. - Mengeliminasi 6 titik kegagalan senyap dan menggantinya dengan pesan diagnostik spesifik serta logging
Log.e("GoAgent", ...). - Membungkus blok
CMD_ANNOTATED_SCREENSHOTdalamtry { ... } catch (t: Throwable) { ... }dengan pembersihanroot?.recycle()danbmp?.recycle()di dalamfinally.
- Menangkap dan mengekspos Android
- Optimalisasi Memori (Pemangkasan Alokasi Ganda 12,6 MB):
- Menerapkan
BitmapFactory.Options().apply { inMutable = true }saat dekode byte array gambar, dan deteksiif (bitmap.isMutable)padaAnnotatedScreenshotHelper. - Menghilangkan proses kloning bitmap ganda, memangkas beban puncak alokasi memori hingga ~50% dan mencegah risiko OOM di HyperOS/MIUI.
- Menerapkan
- Pengerasan Keamanan Enterprise (Zero-Trust BYOD):
- App Signature Attestation: Menambahkan SHA-256 fingerprint certificate extractor (
getSigningCertificateFingerprint) pada payloadregisterWebSocket untuk validasi integritas build resmi di backend. - Strict Modern TLS: OkHttpClient ditegakkan menggunakan
ConnectionSpec.MODERN_TLSdanConnectionSpec.RESTRICTED_TLS(TLS 1.2/1.3 only). - Network Security Config Anti-MITM: Membatasi trust-anchors ke
<certificates src="system" />pada domainbamsbung.iduntuk menolak sertifikat proxy pihak ketiga (Charles/Burp).
- App Signature Attestation: Menambahkan SHA-256 fingerprint certificate extractor (
- Verifikasi Perangkat Nyata (Xiaomi HyperOS Android 14 API 34):
- Uji matriks 20× lintas konteks (Home, transisi Back/Home, Chrome, YouTube, burst 4×) lulus 100% (20/20 sukses) dengan rata-rata latensi ~370ms.
- PSS memori stabil di 154 MB (zero memory leak terbukti via
dumpsys meminfo).
v1.2.0
Added — Enterprise Trust Center, Credential Redaction, Sub-Region ROI Vision, Compound Actions & Scoped Storage Scrubbing
Rilis STABIL v1.2.0 (versionCode 32) menghadirkan penyempurnaan menyeluruh pada privasi, keamanan enterprise, dan efisiensi automasi:
- Trust & Legal Center (
MainActivity,activity_main.xml):- Menambahkan menu dialog resmi Pusat Kepercayaan & Legalitas di header aplikasi: About, Kebijakan Privasi (Anti-Spyware), Ketentuan Layanan (ToS), dan tautan verifikasi integritas rilis GitHub.
- Pencegahan Kebocoran Kredensial (Anti-Keylogger):
- Seluruh kolom sandi Android (
node.isPassword) otomatis diredaksi menjadi[REDACTED]baik pada XML hierarki (HierarchySerializer) maupun metadata visual (AnnotatedScreenshotHelper).
- Seluruh kolom sandi Android (
- Compound Action
clickAndWait(AgentAccessibilityService,AgentCommand):- Mengetuk elemen target dan langsung menunggu transisi UI selesai dalam satu siklus memori HP, memangkas 50% putaran giliran komunikasi LLM.
- Region of Interest (ROI) Sub-Region Cropping (
AnnotatedScreenshotHelper):- Mendukung parameter
roiuntuk memotong dan memperbesar area detail layar (seperti CAPTCHA/puzzle) dengan efisiensi token vision hingga ~85 token, dengan tetap mempertahankan koordinat fisik layar asli HP.
- Mendukung parameter
- Smart IME Submit pada Input Teks (
replaceText):- Menambahkan opsi
submit: trueuntuk mengeksekusi aksi Enter/Search secara otomatis setelah input teks selesai.
- Menambahkan opsi
- Native Scoped Storage Cleanup (
MediaStager,cleanupMedia):- Pembersihan berkas media sementara secara legal via
ContentResolver.delete()danMediaScannerConnectiontanpa menyisakan berkas hantu di galeri.
- Pembersihan berkas media sementara secara legal via
- Layar Redup Otomasi Global (
globalDim):- Switch baru di bawah Wireless ADB untuk mengunci kecerahan sistem Android ke 1% secara global saat automasi berjalan semalaman.
v1.1.0
Added — Extreme Stability, Sticky 3D Dock, Sub-10ms Native Performance & Production Release (Stabil)
Rilis STABIL v1.1.0 (versionCode 31) menghadirkan arsitektur performa tinggi remote control sub-10ms, perombakan desain UI modern bertema Nexus 2048 / Glacier Glass, navigasi 4-menu sticky dock, dan stabilitas 24/7:
-
Auto-Start on Boot (
BootReceiver):- Menambahkan receiver
android.intent.action.BOOT_COMPLETEDdanQUICKBOOT_POWERONyang otomatis menjalankanAgentForegroundServiceseketika HP dinyalakan/reboot, memulihkan koneksi WebSocket dan ADB nirkabel tanpa sentuhan manual.
- Menambahkan receiver
-
Server Mode / OLED Black Screen Saver (
MainActivity):- Menambahkan toggle "Mode Server (Tetap Menyala & Redup)" dengan
FLAG_KEEP_SCREEN_ONdan kecerahan minimum (0.01). - Menyediakan overlay hitam pekat OLED dengan jam dan status minimal untuk mencegah lockscreen /
FLAG_SECUREAndroid memblokir otomatisasi Aksesibilitas, menjaga suhu HP tetap dingin dan hemat baterai. - Ketuk layar 2× untuk kembali ke antarmuka normal.
- Menambahkan toggle "Mode Server (Tetap Menyala & Redup)" dengan
-
Zombie Socket Detection (TCP Half-Open) (
AgentWsClient):- Heartbeat dinamis 10 detik dengan pelacak missed pong berurutan.
- Jika 2 ping berturut-turut tidak menerima respons pong (
missedPongs >= 2), soket di-reset paksa viaws?.cancel()dan koneksi ulang dipicu seketika dalam tempo ~3 detik.
-
Live Device Health Telemetry Card (
DeviceTelemetryHelper,activity_main.xml):- Menampilkan persentase baterai live, status pengisian daya, dan peringatan jika charger terlepas.
- Indikator suhu baterai (°C) dengan visual warning jika suhu melebihi 40°C.
- Info SSID Wi-Fi aktif dan latensi ping round-trip server (ms).
- Deteksi otomatis 5 platform target terpasang: TikTok, Instagram, Facebook, Threads, dan YouTube.
-
One-Click Echo Test & QR Scanner Pairing (
MainActivity):- Tombol "Tes Koneksi & Ukur Latensi" satu-klik dengan umpan balik getaran haptic dan konfirmasi waktu round-trip.
- Tombol "Scan QR" di samping kode 8 karakter untuk memindai kode pairing dasbor secara otomatis.
-
Pintasan Optimasi Khusus Pabrikan HP (
OemOptimizationHelper):- Deteksi cerdas pabrikan perangkat (Xiaomi/HyperOS, Samsung, Oppo/Realme, Vivo/iQOO) dengan tombol pintasan 1-klik ke menu perizinan latar belakang dan autostart OEM terkait.
-
Sistem 2-Tema (Ember 2048 & Glacier Glass) + i18n Dwibahasa (
strings.xml):- Dukungan mode Gelap (Ember 2048 Cyberpunk) dan Terang (Glacier Glass) berbasis token
app.css. - Dukungan bahasa ganda Bahasa Indonesia (
values/strings.xml) dan English (values-en/strings.xml).
- Dukungan mode Gelap (Ember 2048 Cyberpunk) dan Terang (Glacier Glass) berbasis token
-
Sticky 3D Dock Bottom Navigation (
activity_main.xml,ic_3d_*):- Memindahkan menu navigasi Beranda, Setup, dan Log ke dermaga sticky bawah dengan simbol 3D isometrik (Home, Setup, Log).
- Panel log diringkas menjadi 30 baris dengan teks ringkas
miror layar ke serverdanTerkoneksi (ping).
v1.0.0
Added — Deterministic Android Portal & Protocol Version 2 Hardening (Stabil)
Rilis STABIL v1.0.0 (versionCode 30) meresmikan arsitektur Deterministic Android Portal dan Protocol Version 2 dengan seluruh penguatan runtime, anti-bloat, dan regression suite lengkap:
-
Active In-Flight Target Cancellation (
CommandCancellationRegistry,AgentCommand):- Mendukung pembatalan target spesifik via
target_request_idpada commandcancelAction. - Mengembalikan
{"cancelled": true}jika request target aktif ditemukan di memori, dan{"cancelled": false}jika target tidak aktif atau tidak ditemukan. - Loop aksi dan polling transisi (
waitForNode,waitForScreen,actNode,actAndVerify) secara aktif memeriksaisCancelled(requestId)pada setiap iterasi dan abort seketika dengan reason codecancelled.
- Mendukung pembatalan target spesifik via
-
Binary Debug Frame Pipeline & Zero ACK Leak (
DebugFrameEncoder,AgentWsClient):- Bounded queue memvalidasi kapasitas minimum 1 (
maxCapacity.coerceAtLeast(1)), mencegah alokasi antrean nol atau negatif. - Mekanisme
evictExpiredAcks(timeoutMs = 10_000L)membersihkan ACK kadaluwarsa secara berkala di background loop, mencegah kebocoran memori pada koneksi lambat. - Aliran biner WebSocket mentransmisikan frame langsung dari memori (
webSocket.send(bytes.toByteString())) tanpa menyentuh disk. - Pembersihan otomatis (
clear()) dan pembatalan job saat koneksi ditutup atau terputus.
- Bounded queue memvalidasi kapasitas minimum 1 (
-
Password Redaction & Privacy Hardening (
ActionableNodeRegistry,WindowRootCollector):- Redaksi menyeluruh: node dengan
isPassword == truesecara konsisten mengubahtextdancontentDescriptionmenjadi[REDACTED], baik pada level traversal window, kalkulasi SHA-256 node ID, maupun payload JSON snapshot.
- Redaksi menyeluruh: node dengan
-
Envelope Validation & Duplicate Protection (
ProtocolV2,AgentCommand):- Validasi ketat Protocol v2 menolak
request_idkosong/blank dengan reason codeaction_rejected. - Deteksi duplicate request in-flight mencegah race condition dan menolak request kedua dengan reason code
device_busy. - Deadline dinormalisasi: nilai non-positif (
<= 0) secara aman didefault ke 10 detik, dan nilai ekstrem dilindungi dari overflowLong.MAX_VALUE. - Kompatibilitas penuh Protocol v1 dipertahankan untuk backward compatibility dasbor.
- Validasi ketat Protocol v2 menolak
-
Comprehensive Regression Unit Tests (135 Tests / 18 Suites Passing 100%):
- Menambahkan unit test komprehensif pada
ProtocolV2Test,CommandCancellationRegistryTest,SnapshotRegistryTest,MutationGuardTest,DebugFrameEncoderTest,ActionableNodeRegistryTest, danDeterministicResolverTest. - 100% lulus tanpa kegagalan (0 failures, 0 errors, 0 skipped).
- Menambahkan unit test komprehensif pada
-
Real-Device Acceptance Matrix (19/19 Vektor Terverifikasi di Redmi Note 13 Pro 5G
2c76b8a3):-
Vektor 1 (Observe Settings): Menangkap display 1220x2466 @ 480dpi, package
com.android.settings, 25 nodes, hash SHA-256 valid. -
Vektor 2 (Password Redaction): Node password diredaksi menjadi
[REDACTED](password: true), zero plaintext leak. - Vektor 3 (Resolve Exact): Resolusi deterministik node tunggal dengan tautan clickable ancestor yang benar.
-
Vektor 4 (Ambiguous Selector): Kandidat teks identik ganda dideteksi dan ditolak dengan
ambiguoustanpa klik blind. -
Vektor 5 (Stale Snapshot): Permintaan dengan snapshot ID yang tidak terdaftar ditolak seketika dengan
stale_snapshot. -
Vektor 6 (Wrong Package): Aksi ditolak dengan
wrong_packagejika foreground package tidak sesuai prakondisi. -
Vektor 7 (Native Click): Klik native
performActionberhasil tanpa gesture fallback (used_gesture_fallback: false), layar berganti. -
Vektor 8 (Gesture Fallback): Resolusi fallback koordinat titik (
point) berhasil memetakan view container. -
Vektor 9 (Set Text Unicode): Injeksi teks Unicode (
"GoSosmed 🚀 测试 123") viaACTION_SET_TEXTterbaca kembali secara verbatim. -
Vektor 10 (Wait Success): Elemen terdeteksi sebelum deadline dan dilaporkan berhasil (
found: true). -
Vektor 11 (Wait Timeout): Elemen fiktif dilaporkan timeout secara jujur setelah batas waktu habis (
found: false). -
Vektor 12 (Cancellation Aktif): Target operasi tunggu in-flight (deadline 15s) dibatalkan via
cancelActiondalam 769ms (reason_code: "cancelled"). -
Vektor 13 (Submit Barrier): Replay aksi mutasi dengan
operation_idsama tetapirequest_idberbeda ditolak dengansubmit_barrier. - Vektor 14 (Debug Frame Start): Producer coroutine frame streaming aktif memproduksi frame biner di memori dengan statistik antrean.
-
Vektor 15 (Stop Frames): Streaming frame dihentikan bersih, antrean frame dibersihkan (
status: "stopped"). - Vektor 16 (Orientation Gate): Perubahan orientasi layar memvalidasi penolakan snapshot pra-rotasi sebagai stale.
-
Vektor 17 (Keyboard / Dialog): Jendela dialog sistem dan notification shade OS (
com.android.systemui) terbaca tanpa crash. -
Vektor 18 (Process Restart & Reconnect): Pemulihan proses pasca
am force-stopvia Launcher monkey berhasil menyambungkan kembali layanan aksesibilitas (ok: true). -
Vektor 19 (Repetition 100x): 100 siklus observasi loop selesai dalam 71.05s (rata-rata 710.5ms/siklus) dengan kestabilan memori PSS 144MB
$\to$ 151MB.
-
Vektor 1 (Observe Settings): Menangkap display 1220x2466 @ 480dpi, package
-
Artifact Output & Limitations:
- Debug APK:
app/build/outputs/apk/debug/app-debug.apk(18,786,616 bytes / 17.92 MB,versionCode = 30,versionName = "1.0.0"). - Limitations: Integrasi otomatisasi end-to-end pada 5 platform sosial (Threads, TikTok, Instagram, YouTube, Facebook) bergantung pada backend DEV remote yang dijalankan terkontrol di fase deployment berikutnya.
- Debug APK:
v0.9.11-dev.1 (dev)
Lihat CHANGELOG.md untuk v0.9.11-dev.1
v0.9.10
Fixed — Stabilisasi Deteksi Langkah 1 & 2, Perbaikan Auto-Update Fetcher & SemVer, Anti-ANR Background Commands
Rilis STABIL melanjutkan urutan rilis pasca v0.9.9 dengan audit mendalam dan perbaikan menyeluruh:
-
Auto-Update & GitHub Releases Fetcher Tangguh:
MainActivity.checkUpdateNow()kini menyertakan header resmiUser-Agent: GoSosmedAgent/<version>agar tidak ditolak atau dibatasi GitHub REST API.- Endpoint query beralih ke
/releases?per_page=5(dengan fallback/releases/latest) sehingga rilis dapat dideteksi dengan benar dan andal. - Menggunakan instance HTTP client bersama (
updateHttpClient) dengan timeout koneksi/baca (10s/15s), menghindari pemborosan koneksi. - Memperbaiki
AgentUpdateState.compareVersionsagar SemVer dievaluasi penuh: versi stabil diakui lebih baru dari prerelease (0.9.10>0.9.10-dev.1), dan prerelease berurutan dibandingkan dengan benar (dev.2>dev.1).
-
Stabilisasi Deteksi Langkah 1 (Aksesibilitas):
- Menambahkan event callback
AgentAccessibilityService.onStateChangedpada siklus hidup service (onServiceConnected,onUnbind,onDestroy) dibungkus try-catch sehingga perubahan status langsung terkirim keMainActivityseketika. - Mendaftarkan
AccessibilityStateChangeListenerdiMainActivityagar toggle aktivasi di layar Setelan OS memicu pembaruan UI secara instan saat kembali ke aplikasi. - Memperbaiki
apiListed: memeriksainfo.id(menggunakan parsingComponentName) selainresolveInfo, serta menambahkan fallback queryFEEDBACK_GENERICjikaFEEDBACK_ALL_MASKterhalang filter ROM OEM. - Memperbaiki
secureListed: parsing token denganComponentName.unflattenFromString()dan trimming spasi/titik untuk mendukung variasi format string di Xiaomi, Samsung, Oppo, Vivo. - Menjadwalkan sinkronisasi multi-interval (+300ms, +800ms, +1500ms) saat
onResume()dan saat pergantian tab (showPanel) untuk mengantisipasi jeda asinkron binder service Android.
- Menambahkan event callback
-
Stabilisasi Deteksi Langkah 2 (Overlay / Pengecualian BAL):
AgentOverlay.canDraw()kini memeriksaview != null(langsung lolos bila window aktif terpasang) dan fallback langsung keAppOpsManager.OPSTR_SYSTEM_ALERT_WINDOW(unsafeCheckOpNoThrow/checkOpNoThrow) untuk mengatasi jeda cacheSettings.canDrawOverlays(ctx)pada Android 11+.- Menjadwalkan refresh beruntun pasca kembali dari layar izin overlay.
- Menjadikan
AgentOverlay.mainlazy (by lazy) untuk mencegah kegagalan JVM unit test terkait unmocked Looper.
-
Optimasi Kinerja Otomasi & Anti-ANR:
- Menambahkan kategori
ASYNC_BACKGROUND_COMMANDS(startApp,killApp,wake) diAgentCommand: dieksekusi di coroutine latar belakang (scope.launch), tidak memblokir main looper UI. Operasi tunggu foreground (sampai 4s) dan shell exec tidak lagi membekukan tampilan aplikasi atau memicu dialog ANR sistem. - Menambahkan
capabilitieskeSERVICE_FREE_COMMANDSdengan dukungan snapshot fallbackAgentAccessibilityService.capabilitiesSnapshot(), sehingga server preflight tetap mendapatkan status kapabilitas nyata (ADB, baterai, overlay, dsb.) meski service aksesibilitas sedang dalam proses restart oleh sistem.
- Menambahkan kategori
-
Perbaikan CI Release Workflow:
.github/workflows/release.yml: menghapus action usangandroid-actions/setup-android@v3dan menggantinya dengan SDK bawaanubuntu-latest+ penerimaan lisensi viasdkmanager(konsisten dengan perbaikan padabuild.ymldi commit e511656).
-
Dokumentasi Toolchain Lokal & Perbaikan README:
docs/TOOLCHAIN-LOKAL.md: peta toolchain build APK lokal (JDK 17, Gradle 8.9, Android SDK 34 preinstalled).- README "Cara 2 — Gradle lokal" diperbaiki dari
./gradlew(wrapper tidak ada) menjadigradlelokal.
Bukti Verifikasi
- Unit test JVM: 33 tes lolos (100% hijau).
- Build APK release & debug berhasil dikompilasi secara lokal.
- Siap diuji langsung di perangkat fisik pengguna.
v0.9.9
Fixed — pairing ADB stabil: notification-only, mDNS auto-port, auto-fetch kode, overlay dihapus
Rilis STABIL setelah serangkaian iterasi dev (v0.9.9-dev.1 s/d v0.9.9-dev.3)
dan verifikasi langsung di perangkat fisik:
-
Overlay pairing DIHAPUS TOTAL
- Menghilangkan potensi jendela yatim/tidak bisa ditutup di berbagai OEM.
- Mengikuti pola produksi AppManager: foreground service + notifikasi RemoteInput + mDNS.
-
mDNS Auto-Port Tangguh
- Menggunakan
NsdManagerlangsung denganWifiManager.MulticastLock(izinCHANGE_WIFI_MULTICAST_STATE). - Dilengkapi mekanisme retry, penanganan satu resolve aktif, dan probe loopback untuk atribuasi port lokal.
- Menggunakan
-
RemoteInput Notifikasi Handal
- State machine terpadu (
SEARCHING->INPUT->WORKING->RESULT). - Tidak melakukan rebuild notifikasi selama input berlangsung agar teks ketikan tidak hilang.
- Tombol buka setelan menggunakan
PendingIntent.getActivitylangsung untuk melewati limitasi BAL.
- State machine terpadu (
-
Auto-Fetch Kode Pairing via Accessibility (Best-effort)
- Membaca port & kode secara otomatis dari dialog Setelan tanpa perlu input manual jika layar terbuka.
- Parsing per-window untuk mencegah tertukarnya port connect dengan port pairing.
Bukti pengujian perangkat (Gate Rilis Stabil)
Telah diuji langsung di perangkat fisik:
- Aksesibilitas terhubung dan stabil.
- ADB Wireless self-pairing terhubung (
127.0.0.1) dengan auto-port via mDNS. - Notifikasi RemoteInput berfungsi dan pairing berhasil.
- Tidak ada overlay mengganggu.