3.7 KiB
3.7 KiB
Uji Cepat Brizzi HCE (1x Smoke Test)
Tujuan:
- memastikan APK bisa dipasang,
- service HCE aktif,
- AID terpasang,
- lalu validasi interaksi dasar saat ditempel ke reader Brizzi.
Path AID di app ini:
F00102030405065A000003010000005A00000303000000
0) Setup environment
cd /Users/wirabasalamah/Documents/Codex/brizzi-hce
export ANDROID_SDK_ROOT=/opt/android-sdk
export JAVA_HOME=/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home
1) Build & install ke device
"$JAVA_HOME"/bin/java -version >/dev/null 2>&1
./gradlew clean assembleDebug
adb devices -l
adb install -r app/build/outputs/apk/debug/app-debug.apk
Kalau install gagal karena versi mismatch:
- pastikan package belum terpasang versi lama:
adb uninstall com.korancrew.brizzi - lalu install ulang.
2) Pastikan app dan HCE service terpasang
adb shell pm list packages | rg com.korancrew.brizzi
adb shell dumpsys package com.korancrew.brizzi | rg -n "HostApduService|BrizziHostApduService|permission.BIND_NFC_SERVICE"
Jalankan app sekali untuk inisialisasi:
adb shell am start -n com.korancrew.brizzi/.MainActivity
3) Verifikasi file konfigurasi AID Service
adb shell cat /data/data/com.korancrew.brizzi/files/../shared_prefs/app_preferences.xml
Catatan: isi ini tidak selalu menampilkan XML service AID secara langsung karena AID service ada di manifest/resource.
Verifikasi cepat AID lewat:
adb shell cmd package resolve-activity --brief com.korancrew.brizzi/.MainActivity
4) Siapkan logcat khusus HCE sebelum nempel ke reader
adb logcat -c
adb logcat | rg -n "BrizziHce|HOST_APDU|processCommandApdu|BrizziHostApduService|BrizziSecurityMetrics"
Biarkan logging berjalan.
5) Tes interaksi manual dengan reader Brizzi
- Pastikan Android sudah unlock (karena
requireDeviceUnlock="true"). - Nyalakan NFC.
- Nempelkan device ke reader Brizzi.
- Pantau logcat:
- harus ada response terhadap APDU masuk dari
processCommandApdu. - kamu akan melihat event seperti:
ISO_SELECT_OKSELECT_AID1 / SELECT_AID3AUTH_SUCCESS(kalau workflow auth dipakai)GET_BALANCE,DEBIT_PREPARED,COMMIT_OK, dll.
- harus ada response terhadap APDU masuk dari
Jika perlu lihat ringkasan metrik setelah transaksi:
adb shell am start -n com.korancrew.brizzi/.MainActivity -a com.korancrew.brizzi.ACTION_DUMP_METRICS
6) Skenario “minimal berhasil” yang harus terlihat
Urutan sehat ideal:
- Reader kirim select AID (
AID1/AID3) → app balas sukses (SW9100). - Pada AID3: key request + auth challenge → balasan valid.
GET_BALANCE→ balasan sesuai saldo.- Jika ada debit/credit:
- command transaksi dipersiapkan,
COMMITmenyimpan perubahan.
7) Skenario gagal yang harus muncul (normal saat kondisi salah)
- Reader kirim debit tanpa auth →
CONDITIONS_NOT_SATISFIED(6985). - Perintah salah format / malformed →
COMMAND_REJECTED_INVALID_SIZEdi log. - Akses komando tidak diizinkan tanpa flow yang benar → event
AUTH_DENIED/*_DENIED.
8) Reset metrik cepat (untuk pengujian ulang)
adb shell am start -n com.korancrew.brizzi/.MainActivity -a com.korancrew.brizzi.ACTION_RESET_METRICS
adb shell logcat -c
Penilaian akhir (hasil pass/fail)
Pass jika:
- app bisa install dan service aktif,
- logcat menangkap proses APDU saat reader nempel,
- reader melakukan response sesuai flow AID → auth → command,
- tidak terjadi crash setelah beberapa siklus tap.
Fail jika:
- tidak ada satu pun log
BrizziHcesaat transaksi, - APK tidak menerima command sama sekali saat NFC dipakai,
- response selalu
6FFF/6700secara permanen (kemungkinan AID/routing atau format APDU mismatch).