diff options
| -rw-r--r-- | AGENTS.md | 2 | ||||
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | TODO.md | 7 | ||||
| -rw-r--r-- | app/lint.xml | 1 | ||||
| -rwxr-xr-x | scripts/setup-environment.sh | 2 | ||||
| -rw-r--r-- | settings.gradle.kts | 1 |
6 files changed, 7 insertions, 7 deletions
@@ -132,7 +132,7 @@ Last full emulator run (2026-11-05, Android 15, minSdk 31 build): clone over SSH passphrase key (wrong, cancel, remembered, kept through a recreation), missing SSH key dialog, git error dialog, snackbars, conflict recovery (abort rebase, push a new branch), overwrite confirmation on move, light, dark and system themes with bar colors, QR scanner opens, decrypt, TOTP and -fingerprint unlock passed. Last Firefox autofill runs, both 2026-11-05: tablet (fill, save, stale +fingerprint unlock passed. Last Firefox autofill runs, both 2026-11-05 and before the minSdk 31 build: tablet (fill, save, stale cached passphrase) and Pixel 6 Pro on Android 17 (fill, save), all passed. ## Verified facts and gotchas @@ -25,6 +25,7 @@ How to install, set up and use the app: <https://danix.xyz/hardenedpass/>. - Decrypt screen no longer reachable by other apps with arbitrary file paths. - No build scans uploaded to third-party services. - No crash reporting (Sentry) and no Google Play Services; a single FOSS build. +- Needs Android 12 or later. - Own application ID (`xyz.danix.hardenedpass`): installs next to upstream instead of over it. ## Building @@ -4,6 +4,7 @@ Open work after 0.2.0. Remove an item in the commit that finishes it. ## Features and UI -- QR scanner: `zxing-android-embedded` is the last thing keeping AppCompat in the APK - (`androidx.biometric` references it only on the fingerprint dialog path, unused at minSdk 31). - Replacing it would let AppCompat go. +- AppCompat out of the APK: `zxing-android-embedded` (`CaptureManager`, `zxing_CaptureTheme`) needs + it at runtime, so the QR scanner must be replaced. That alone is not enough: `androidx.biometric` + depends on it too, for a fingerprint dialog unused at minSdk 31, so it must be excluded or + `BiometricPrompt` used from the platform. diff --git a/app/lint.xml b/app/lint.xml index 44b84e59..42a888eb 100644 --- a/app/lint.xml +++ b/app/lint.xml @@ -18,7 +18,6 @@ </issue> <issue id="UnusedResources"> <ignore path="src/main/res/values/bools.xml" /> - <ignore path="src/main/res/values/colors_material3.xml" /> </issue> <issue id="VectorPath"> <ignore path="src/main/res/drawable/app_settings_alt_24px.xml" /> diff --git a/scripts/setup-environment.sh b/scripts/setup-environment.sh index 3c6c2fd1..1acda93c 100755 --- a/scripts/setup-environment.sh +++ b/scripts/setup-environment.sh @@ -39,4 +39,4 @@ export PATH="${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${PATH}" sdkmanager --install 'build-tools;30.0.3' platform-tools "platforms;android-${API_LEVEL}" sdkmanager --install emulator -sdkmanager --install "system-images;android-${API_LEVEL};google_apis;x86" +sdkmanager --install "system-images;android-${API_LEVEL};google_apis;x86_64" diff --git a/settings.gradle.kts b/settings.gradle.kts index 481b2706..689a6ec3 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -42,7 +42,6 @@ dependencyResolutionManagement { includeGroupByRegex("androidx.*") includeGroupByRegex("com.android.*") includeGroup("com.google.android.gms") - includeModule("com.google.android.material", "material") } } maven("https://androidx.dev/storage/compose-compiler/repository") { |
