Repair & Test an existing NFC mobile app in Android (APK file format)

Job ID: 39302069

Budget: $30 – $250 USD

Fix NFC Functionality in Android Mobile App
Project Description:
I need an experienced Android developer to debug, repair, and fully implement the NFC read/write functionality in an existing app (Complex Password Keeper). The app uses NFC tags to store encrypted passwords, but the current implementation fails to reliably detect tags or write data.

Key Requirements:
Debug & Fix NFC Issues:

Diagnose why NFC tag detection/writing fails on app level. The app has bugs and has errors in codings.

Ensure compatibility with NTAG215 tags (ISO 14443-3/4 standards).

Resolve PendingIntent or ForegroundDispatch issues (if any).

Implement Reliable NFC Workflow:

Write Phase:

Encrypt user passwords (AES-128) and write to NFC Tag 1 (Black).

Lock the tag with a PIN-derived password to prevent unauthorized access.

Read Phase:

Detect NFC Tag 2 (Silver) to launch the app and prompt for a PIN.

Read encrypted data from NFC Tag 1 (Black) and decrypt it.

Security Enhancements:

Add tag authentication (e.g., SHA-256 hash of PIN + salt) to prevent cloning.

Handle edge cases (e.g., tag removal during write, low NFC signal).

Testing:

Verify functionality on Android 10+ (Samsung, Google, Xiaomi devices).

Ensure the app works offline (no cloud dependency).

Technical Stack:
Language: Kotlin (primary) / Java

Libraries:

android.nfc (core NFC API)

androidx.security.crypto (EncryptedSharedPreferences)

javax.crypto (AES-256-GCM encryption)

Tags: NTAG215 (must support password protection).

Deliverables:
Fixed NFC module with 100% reliable read/write operations.

Updated documentation for NFC setup and error handling.

Test reports on 3+ Android devices.

Preferred Qualifications:
Prior experience with NFC-enabled apps (e.g., loyalty cards, access control).

Knowledge of Android Keystore and hardware-backed encryption.

Portfolio of apps with NFC functionality (share links).

Budget & Timeline: total budget : USD 100.-, timeline: 5 days