Skip to content

Releases: dedy45/gososmed-mobile-agent

v1.2.2

Choose a tag to compare

@github-actions github-actions released this 16 Oct 11:48
v1.2.2
cf6dba8

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:

  1. 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).
  2. Interaktivitas Entri Layanan Aksesibilitas (accessibility_service_config.xml):
    • Menambahkan android:settingsActivity="com.gososmed.agent.MainActivity" dan android: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).
  3. Deteksi Multi-Level & Telemetri AppOps:
    • Menggabungkan refleksi checkOpNoThrow(119, ...) dan fallback string app-op android:access_restricted_settings untuk mendeteksi status MODE_ERRORED.
    • Telemetri a11y_blocked dipublikasikan ke healthSnapshot() dan capabilitiesJson().
  4. 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.
  5. 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: testDebugUnitTest 100% lulus. Kompilasi assembleDebug sukses.

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:

  1. 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.
  2. 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.
  3. 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 ⋮)'".
  4. Enhanced AppOps Reflection Check:
    • Menambahkan pemanggilan refleksi checkOpNoThrow(119, ...) (OP 119 di Android 13/14) di samping fallback string op untuk deteksi status MODE_ERRORED yang lebih andal.

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:

  1. [CELAH-1] Interaktivitas Entri Layanan Aksesibilitas (accessibility_service_config.xml, strings.xml):
    • Menambahkan konfigurasi android:settingsActivity="com.gososmed.agent.MainActivity" dan android: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).
  2. [CELAH-2] Deteksi Tiga Keadaan & Panduan Restricted Settings (AgentAccessibilityService, MainActivity):
    • Menambahkan fungsi pembacaan AppOps isRestrictedBlocked(ctx) untuk memeriksa apakah app-op android:access_restricted_settings berada dalam status MODE_ERRORED (Android 13+).
    • Memperbarui kartu Langkah 1 di tab Setup dengan 3 keadaan jujur: AKTIF ✓, DIBLOKIR ANDROID ⚠️, dan BELUM 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_blocked ditambahkan ke snapshot kesehatan (healthSnapshot) dan kapabilitas (capabilitiesJson).
  3. [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.
  4. Status Gate Rilis & Batasan yang Jujur:
    • Verifikasi JVM: testDebugUnitTest (termasuk verifikasi health snapshot a11y_blocked) lulus 100%. Kompilasi assembleDebug sukses.
    • 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.

v1.2.2-dev.2 (dev)

v1.2.2-dev.2 (dev) Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Oct 00:43
v1.2.2-dev.2
5910631

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:

  1. 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.
  2. 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.
  3. 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 ⋮)'".
  4. Enhanced AppOps Reflection Check:
    • Menambahkan pemanggilan refleksi checkOpNoThrow(119, ...) (OP 119 di Android 13/14) di samping fallback string op untuk deteksi status MODE_ERRORED yang lebih andal.

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:

  1. [CELAH-1] Interaktivitas Entri Layanan Aksesibilitas (accessibility_service_config.xml, strings.xml):
    • Menambahkan konfigurasi android:settingsActivity="com.gososmed.agent.MainActivity" dan android: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).
  2. [CELAH-2] Deteksi Tiga Keadaan & Panduan Restricted Settings (AgentAccessibilityService, MainActivity):
    • Menambahkan fungsi pembacaan AppOps isRestrictedBlocked(ctx) untuk memeriksa apakah app-op android:access_restricted_settings berada dalam status MODE_ERRORED (Android 13+).
    • Memperbarui kartu Langkah 1 di tab Setup dengan 3 keadaan jujur: AKTIF ✓, DIBLOKIR ANDROID ⚠️, dan BELUM 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_blocked ditambahkan ke snapshot kesehatan (healthSnapshot) dan kapabilitas (capabilitiesJson).
  3. [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.
  4. Status Gate Rilis & Batasan yang Jujur:
    • Verifikasi JVM: testDebugUnitTest (termasuk verifikasi health snapshot a11y_blocked) lulus 100%. Kompilasi assembleDebug sukses.
    • 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.

v1.2.2-dev.1 (dev)

v1.2.2-dev.1 (dev) Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Oct 00:08
v1.2.2-dev.1
3908ae5

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:

  1. [CELAH-1] Interaktivitas Entri Layanan Aksesibilitas (accessibility_service_config.xml, strings.xml):
    • Menambahkan konfigurasi android:settingsActivity="com.gososmed.agent.MainActivity" dan android: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).
  2. [CELAH-2] Deteksi Tiga Keadaan & Panduan Restricted Settings (AgentAccessibilityService, MainActivity):
    • Menambahkan fungsi pembacaan AppOps isRestrictedBlocked(ctx) untuk memeriksa apakah app-op android:access_restricted_settings berada dalam status MODE_ERRORED (Android 13+).
    • Memperbarui kartu Langkah 1 di tab Setup dengan 3 keadaan jujur: AKTIF ✓, DIBLOKIR ANDROID ⚠️, dan BELUM 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_blocked ditambahkan ke snapshot kesehatan (healthSnapshot) dan kapabilitas (capabilitiesJson).
  3. [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.
  4. Status Gate Rilis & Batasan yang Jujur:
    • Verifikasi JVM: testDebugUnitTest (termasuk verifikasi health snapshot a11y_blocked) lulus 100%. Kompilasi assembleDebug sukses.
    • 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.

v1.2.1

Choose a tag to compare

@github-actions github-actions released this 11 Oct 18:10
5e3109c

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:

  1. Stabilisasi annotatedScreenshot (C1, C2, C3 Resolved):
    • Menangkap dan mengekspos Android errorCode (1–5) pada takeScreenshotBase64 dan takeScreenshotRawBytes via RawScreenshotResult.
    • Mengeliminasi 6 titik kegagalan senyap dan menggantinya dengan pesan diagnostik spesifik serta logging Log.e("GoAgent", ...).
    • Membungkus blok CMD_ANNOTATED_SCREENSHOT dalam try { ... } catch (t: Throwable) { ... } dengan pembersihan root?.recycle() dan bmp?.recycle() di dalam finally.
  2. Optimalisasi Memori (Pemangkasan Alokasi Ganda 12,6 MB):
    • Menerapkan BitmapFactory.Options().apply { inMutable = true } saat dekode byte array gambar, dan deteksi if (bitmap.isMutable) pada AnnotatedScreenshotHelper.
    • Menghilangkan proses kloning bitmap ganda, memangkas beban puncak alokasi memori hingga ~50% dan mencegah risiko OOM di HyperOS/MIUI.
  3. Pengerasan Keamanan Enterprise (Zero-Trust BYOD):
    • App Signature Attestation: Menambahkan SHA-256 fingerprint certificate extractor (getSigningCertificateFingerprint) pada payload register WebSocket untuk validasi integritas build resmi di backend.
    • Strict Modern TLS: OkHttpClient ditegakkan menggunakan ConnectionSpec.MODERN_TLS dan ConnectionSpec.RESTRICTED_TLS (TLS 1.2/1.3 only).
    • Network Security Config Anti-MITM: Membatasi trust-anchors ke <certificates src="system" /> pada domain bamsbung.id untuk menolak sertifikat proxy pihak ketiga (Charles/Burp).
  4. 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

Choose a tag to compare

@github-actions github-actions released this 09 Oct 12:50
40dbabd

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:

  1. 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.
  2. Pencegahan Kebocoran Kredensial (Anti-Keylogger):
    • Seluruh kolom sandi Android (node.isPassword) otomatis diredaksi menjadi [REDACTED] baik pada XML hierarki (HierarchySerializer) maupun metadata visual (AnnotatedScreenshotHelper).
  3. 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.
  4. Region of Interest (ROI) Sub-Region Cropping (AnnotatedScreenshotHelper):
    • Mendukung parameter roi untuk memotong dan memperbesar area detail layar (seperti CAPTCHA/puzzle) dengan efisiensi token vision hingga ~85 token, dengan tetap mempertahankan koordinat fisik layar asli HP.
  5. Smart IME Submit pada Input Teks (replaceText):
    • Menambahkan opsi submit: true untuk mengeksekusi aksi Enter/Search secara otomatis setelah input teks selesai.
  6. Native Scoped Storage Cleanup (MediaStager, cleanupMedia):
    • Pembersihan berkas media sementara secara legal via ContentResolver.delete() dan MediaScannerConnection tanpa menyisakan berkas hantu di galeri.
  7. 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

Choose a tag to compare

@github-actions github-actions released this 07 Oct 23:16
4946f89

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:

  1. Auto-Start on Boot (BootReceiver):

    • Menambahkan receiver android.intent.action.BOOT_COMPLETED dan QUICKBOOT_POWERON yang otomatis menjalankan AgentForegroundService seketika HP dinyalakan/reboot, memulihkan koneksi WebSocket dan ADB nirkabel tanpa sentuhan manual.
  2. Server Mode / OLED Black Screen Saver (MainActivity):

    • Menambahkan toggle "Mode Server (Tetap Menyala & Redup)" dengan FLAG_KEEP_SCREEN_ON dan kecerahan minimum (0.01).
    • Menyediakan overlay hitam pekat OLED dengan jam dan status minimal untuk mencegah lockscreen / FLAG_SECURE Android memblokir otomatisasi Aksesibilitas, menjaga suhu HP tetap dingin dan hemat baterai.
    • Ketuk layar 2× untuk kembali ke antarmuka normal.
  3. 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 via ws?.cancel() dan koneksi ulang dipicu seketika dalam tempo ~3 detik.
  4. 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.
  5. 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.
  6. 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.
  7. 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).
  8. 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 server dan Terkoneksi (ping).

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 08:00
67ccf3f

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:

  1. Active In-Flight Target Cancellation (CommandCancellationRegistry, AgentCommand):

    • Mendukung pembatalan target spesifik via target_request_id pada command cancelAction.
    • 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 memeriksa isCancelled(requestId) pada setiap iterasi dan abort seketika dengan reason code cancelled.
  2. 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.
  3. Password Redaction & Privacy Hardening (ActionableNodeRegistry, WindowRootCollector):

    • Redaksi menyeluruh: node dengan isPassword == true secara konsisten mengubah text dan contentDescription menjadi [REDACTED], baik pada level traversal window, kalkulasi SHA-256 node ID, maupun payload JSON snapshot.
  4. Envelope Validation & Duplicate Protection (ProtocolV2, AgentCommand):

    • Validasi ketat Protocol v2 menolak request_id kosong/blank dengan reason code action_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 overflow Long.MAX_VALUE.
    • Kompatibilitas penuh Protocol v1 dipertahankan untuk backward compatibility dasbor.
  5. Comprehensive Regression Unit Tests (135 Tests / 18 Suites Passing 100%):

    • Menambahkan unit test komprehensif pada ProtocolV2Test, CommandCancellationRegistryTest, SnapshotRegistryTest, MutationGuardTest, DebugFrameEncoderTest, ActionableNodeRegistryTest, dan DeterministicResolverTest.
    • 100% lulus tanpa kegagalan (0 failures, 0 errors, 0 skipped).
  6. 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 ambiguous tanpa 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_package jika foreground package tidak sesuai prakondisi.
    • Vektor 7 (Native Click): Klik native performAction berhasil 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") via ACTION_SET_TEXT terbaca 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 cancelAction dalam 769ms (reason_code: "cancelled").
    • Vektor 13 (Submit Barrier): Replay aksi mutasi dengan operation_id sama tetapi request_id berbeda ditolak dengan submit_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-stop via 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.
  7. 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.

v0.9.11-dev.1 (dev)

v0.9.11-dev.1 (dev) Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Oct 16:48
c660b54

Lihat CHANGELOG.md untuk v0.9.11-dev.1

v0.9.10

Choose a tag to compare

@github-actions github-actions released this 29 Sep 12:37
31fa556

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:

  1. Auto-Update & GitHub Releases Fetcher Tangguh:

    • MainActivity.checkUpdateNow() kini menyertakan header resmi User-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.compareVersions agar 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).
  2. Stabilisasi Deteksi Langkah 1 (Aksesibilitas):

    • Menambahkan event callback AgentAccessibilityService.onStateChanged pada siklus hidup service (onServiceConnected, onUnbind, onDestroy) dibungkus try-catch sehingga perubahan status langsung terkirim ke MainActivity seketika.
    • Mendaftarkan AccessibilityStateChangeListener di MainActivity agar toggle aktivasi di layar Setelan OS memicu pembaruan UI secara instan saat kembali ke aplikasi.
    • Memperbaiki apiListed: memeriksa info.id (menggunakan parsing ComponentName) selain resolveInfo, serta menambahkan fallback query FEEDBACK_GENERIC jika FEEDBACK_ALL_MASK terhalang filter ROM OEM.
    • Memperbaiki secureListed: parsing token dengan ComponentName.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.
  3. Stabilisasi Deteksi Langkah 2 (Overlay / Pengecualian BAL):

    • AgentOverlay.canDraw() kini memeriksa view != null (langsung lolos bila window aktif terpasang) dan fallback langsung ke AppOpsManager.OPSTR_SYSTEM_ALERT_WINDOW (unsafeCheckOpNoThrow/checkOpNoThrow) untuk mengatasi jeda cache Settings.canDrawOverlays(ctx) pada Android 11+.
    • Menjadwalkan refresh beruntun pasca kembali dari layar izin overlay.
    • Menjadikan AgentOverlay.main lazy (by lazy) untuk mencegah kegagalan JVM unit test terkait unmocked Looper.
  4. Optimasi Kinerja Otomasi & Anti-ANR:

    • Menambahkan kategori ASYNC_BACKGROUND_COMMANDS (startApp, killApp, wake) di AgentCommand: 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 capabilities ke SERVICE_FREE_COMMANDS dengan dukungan snapshot fallback AgentAccessibilityService.capabilitiesSnapshot(), sehingga server preflight tetap mendapatkan status kapabilitas nyata (ADB, baterai, overlay, dsb.) meski service aksesibilitas sedang dalam proses restart oleh sistem.
  5. Perbaikan CI Release Workflow:

    • .github/workflows/release.yml: menghapus action usang android-actions/setup-android@v3 dan menggantinya dengan SDK bawaan ubuntu-latest + penerimaan lisensi via sdkmanager (konsisten dengan perbaikan pada build.yml di commit e511656).
  6. 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) menjadi gradle lokal.

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

Choose a tag to compare

@github-actions github-actions released this 14 Sep 07:04

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:

  1. Overlay pairing DIHAPUS TOTAL

    • Menghilangkan potensi jendela yatim/tidak bisa ditutup di berbagai OEM.
    • Mengikuti pola produksi AppManager: foreground service + notifikasi RemoteInput + mDNS.
  2. mDNS Auto-Port Tangguh

    • Menggunakan NsdManager langsung dengan WifiManager.MulticastLock (izin CHANGE_WIFI_MULTICAST_STATE).
    • Dilengkapi mekanisme retry, penanganan satu resolve aktif, dan probe loopback untuk atribuasi port lokal.
  3. 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.getActivity langsung untuk melewati limitasi BAL.
  4. 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.