Panduan Teknis

Manajemen State Aplikasi

Panduan pencadangan dan pemulihan state data aplikasi secara native di mode Recovery.

Panduan Backup & Restore State Data Aplikasi

Dokumen ini menjelaskan secara mendalam fitur pencadangan dan pemulihan (backup & restore) state sesi aplikasi secara native di mode Recovery menggunakan KuyFox.


🏗️ Mengapa Backup di Mode Recovery?

Melakukan backup data aplikasi di mode recovery memiliki keunggulan mutlak dibanding aplikasi backup online:

  1. Zero Locking (Integritas Database 100%): Karena sistem Android sedang mati (offline), database SQLite dan file sesi (shared_prefs, keva, dsb.) tidak sedang digunakan atau dikunci oleh proses aplikasi di latar belakang. Tidak ada risiko database korup.
  2. Tidak Perlu Daemon Online / Root Runtime: Seluruh proses dijalankan langsung oleh shell Linux Recovery.
  3. Penyimpanan Sangat Ringan: File arsip dikompresi langsung ke /sdcard/KuyFox/databackup/.

⚙️ Inovasi Teknis Engine KuyFox

1. Arsitektur Bind-Mount Recovery (Mencegah Shadowed Files)

Pada custom recovery (OrangeFox/TWRP), folder /data/user/0 sering kali merupakan mountpoint atau symlink yang terpisah dari /data/data. Jika backup diekstrak sembarangan di recovery, file seringkali masuk ke folder bayangan (shadow mount) dan hilang saat booting ke sistem Android.

KuyFox memecahkan masalah ini dengan secara otomatis melakukan bind-mount:

Terminal
mount -o bind /data/data /data/user/0

Ekstraksi ke salah satu path akan langsung mendarat di penyimpanan fisik yang sebenarnya, sehingga data aplikasi 100% langsung terbaca saat HP menyala.

2. Penanganan Konteks Keamanan SELinux MLS Deterministik

Setiap aplikasi di Android memiliki label keamanan SELinux tersendiri dengan kategori MLS unik, contohnya: u:object_r:app_data_file:s0:c123,c456

Jika data aplikasi diekstrak tanpa label SELinux yang tepat, Android di mode Enforcing akan menolak akses (Permission Denied) dan aplikasi akan langsung force close. KuyFox secara otomatis membaca UID aplikasi dari packages.xml, menghitung kategori MLS yang tepat, dan menerapkan chcon secara presisi.

KuyFox memeriksa direktori instalasi APK asli dan membuat ulang symlink /data/data/<pkg>/lib yang mengarah ke library arsitektur hardware perangkat (misal /data/app/.../lib/arm64).


📝 Konfigurasi Aturan & Alias (backup_config.cfg)

File konfigurasi backup_config.cfg memungkinkan Anda mengatur aplikasi apa saja yang tampil di menu, nama panggilannya (alias), serta folder apa yang ingin disertakan atau dibuang.

Format Konfigurasi:

backup_config.cfg
# ALIAS / APP NAME | PACKAGE_NAME | MODE | PATHS
Test App Suite Alpha | com.example.testapp.alpha | INCLUDE | databases, shared_prefs, files/session*
Benchmark QA Client  | com.benchmark.qaclient   | INCLUDE | databases, shared_prefs
Enterprise Demo App  | com.enterprise.demomobile| DEFAULT
Core Auth Client     | com.example.authclient   | EXCLUDE | files/cache, files/temp

Penjelasan Mode:

  1. Mode INCLUDE (Sangat Disarankan untuk Aplikasi Pengujian Berat):
    • Hanya mencadangkan folder atau pola file state yang esensial (contoh: hanya databases, shared_prefs, dan files/session*).
    • Hasil: Aplikasi dengan cache besar yang biasanya berukuran 200 MB - 1 GB dapat dipangkas menjadi hanya ~300 KB file state murni!
    • Backup & restore berjalan secepat kilat (< 1 detik) dan mencegah memory error BusyBox tar Out-Of-Memory (OOM) pada recovery.
  2. Mode EXCLUDE:
    • Mencadangkan semua file data aplikasi, namun mengabaikan folder cache sementara yang ditentukan di kolom paths.
  3. Mode DEFAULT:
    • Pencadangan standar yang otomatis membuang folder sampah global (cache, code_cache, lib, .msm_cache).

📂 Manajemen Slot Standar (001 - 999)

Data hasil pencadangan disimpan di direktori: /sdcard/KuyFox/databackup/<package_name>/

Struktur folder tiap slot:

/sdcard/KuyFox/databackup/com.example.testapp.alpha/
├── 001/
│   ├── data.tar.gz          # Arsip data aplikasi terkompresi
│   ├── profile.env          # Snapshot profil perangkat saat backup dibuat
│   ├── ssaid.txt            # SSAID unik aplikasi saat backup dibuat
│   └── note.txt             # Catatan sesi pengujian (misal: "Sesi Uji Baseline")
├── 002/
└── 003/

Fitur Pengelolaan Slot:

  • Penomoran Otomatis: Setiap backup baru otomatis mengisi slot berikutnya (001, 002, 003, dst.).
  • Tampilan Paginasi: Jika Anda memiliki puluhan slot pengujian, daftar akan dibagi per halaman dengan tombol navigasi [N] Next dan [P] Prev.
  • Sync / Re-Order Slot: Jika Anda menghapus slot di tengah (misal slot 002 dihapus), opsi sync akan merapikan urutan folder kembali menjadi kontigu (001, 002).

🔄 Pemulihan Pintar (Smart Dual-Source Restore)

Saat Anda memilih untuk merestore data:

  1. Backup Buatan KuyFox (profile.env Ada):
    • KuyFox akan mendeteksi informasi perangkat dan SSAID saat backup dibuat.
    • Anda akan ditanya apakah ingin merestore profil perangkat & SSAID sekaligus.
    • Ini sangat berguna untuk uji regresi (regression testing) agar state sesi pengujian dan parameter otentikasi uji dapat dipulihkan secara deterministik tanpa merusak integritas lingkungan uji.
  2. Backup dari Tool Luar (Data Murni):
    • Jika profile.env tidak ada, KuyFox otomatis mendeteksi ini sebagai backup data murni.
    • KuyFox akan langsung mengekstrak data aplikasi dan mengatur hak akses SELinux tanpa menampilkan pertanyaan yang tidak perlu.

🚀 Panduan Penggunaan Langkah demi Langkah

Cara Melakukan Backup Data State:

  1. Masuk ke menu utama KuyFox (kuyfox), pilih [1] Backup & Restore App Data.
  2. Pilih [1] Backup App Data.
  3. Pilih aplikasi sasaran dari daftar yang telah dikonfigurasi (atau ketik [A] untuk memindai seluruh aplikasi yang terpasang di HP Anda).
  4. Beri catatan pengingat sesi (opsional, misal: Sesi Pengujian Login Valid).
  5. Proses backup selesai dalam sekejap!

Cara Melakukan Restore Data State:

  1. Masuk ke menu [1] Backup & Restore App Data.
  2. Pilih [2] Restore App Data.
  3. Pilih aplikasi yang ingin direstore (terlihat jumlah slot backup yang tersedia).
  4. Pilih nomor slot yang diinginkan (misal 1 untuk slot 001).
  5. Konfirmasi restore data. Selesai!

💻 Penggunaan via Perintah Cepat CLI

Untuk proses otomasi atau script ADB pengujian:

Terminal
# Backup data state aplikasi dengan catatan sesi
kuyfox -ba com.example.testapp.alpha "Sesi_Uji_01"

# Restore slot tertentu (contoh slot 001)
kuyfox -ra com.example.testapp.alpha 001

# Restore slot 001 beserta profil identitas perangkatnya
kuyfox -ra com.example.testapp.alpha 001 --props

# Menampilkan seluruh daftar backup state yang ada di HP
kuyfox -la
Copyright © 2026