aboutsummaryrefslogtreecommitdiffstats
path: root/app/src
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-11-02 13:31:30 +0100
committerDanilo M. <danix@danix.xyz>2026-11-02 13:31:30 +0100
commitf78754e26c6274f997bbfe0798f47aa86f8f8133 (patch)
treeb232000eafbb4b143a63b66e2930a1064b59a494 /app/src
parent5972d8bb6ab2369e298be0e6641d92ab8f1b2f7a (diff)
downloadHardenedPass-f78754e26c6274f997bbfe0798f47aa86f8f8133.tar.gz
HardenedPass-f78754e26c6274f997bbfe0798f47aa86f8f8133.zip
build: drop the nonFree flavor, Sentry and Play Services
The fork targets GrapheneOS and ships only FOSS builds. The nonFree flavor added Sentry crash reporting, wired to upstream's Sentry project, and Play Services SMS one-time-code autofill, which needs Google's servers. Neither is wanted, so remove the flavor dimension entirely: - Delete app/src/nonFree, the SentryPlugin, the sentry-stub module, the Sentry and Play Services catalog entries, and the Sentry scope setup in Application. - Move the free AutofillSmsActivity stub into main; it keeps the SMS OTP feature off exactly as the free build did. A ponytail note marks the FillOtpFromSms paths for later removal. - SlimTests no longer needs to skip a nonFree variant. - Workflows and docs use :app:assembleDebug / :app:assembleRelease. A bare assembleRelease would also verify library modules in release mode, where ui:compose fails on a pre-existing AppCompat attribute reference the old flavored task never touched. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/java/app/passwordstore/Application.kt11
-rw-r--r--app/src/main/java/app/passwordstore/autofill/oreo/ui/AutofillSmsActivity.kt (renamed from app/src/free/java/app/passwordstore/autofill/oreo/ui/AutofillSmsActivity.kt)2
-rw-r--r--app/src/nonFree/AndroidManifest.xml12
-rw-r--r--app/src/nonFree/java/app/passwordstore/autofill/oreo/ui/AutofillSmsActivity.kt171
-rw-r--r--app/src/nonFree/res/layout/activity_oreo_autofill_sms.xml61
-rw-r--r--app/src/nonFree/res/values-ar-rSA/strings.xml8
-rw-r--r--app/src/nonFree/res/values-ar/strings.xml8
-rw-r--r--app/src/nonFree/res/values-de/strings.xml8
-rw-r--r--app/src/nonFree/res/values-es-rES/strings.xml8
-rw-r--r--app/src/nonFree/res/values-es/strings.xml8
-rw-r--r--app/src/nonFree/res/values-fi-rFI/strings.xml8
-rw-r--r--app/src/nonFree/res/values-fi/strings.xml8
-rw-r--r--app/src/nonFree/res/values-gl-rES/strings.xml8
-rw-r--r--app/src/nonFree/res/values-gl/strings.xml8
-rw-r--r--app/src/nonFree/res/values-hu-rHU/strings.xml8
-rw-r--r--app/src/nonFree/res/values-hu/strings.xml8
-rw-r--r--app/src/nonFree/res/values-it/strings.xml8
-rw-r--r--app/src/nonFree/res/values-ko-rKR/strings.xml8
-rw-r--r--app/src/nonFree/res/values-ko/strings.xml8
-rw-r--r--app/src/nonFree/res/values-pl-rPL/strings.xml8
-rw-r--r--app/src/nonFree/res/values-pl/strings.xml8
-rw-r--r--app/src/nonFree/res/values-pt-rBR/strings.xml8
-rw-r--r--app/src/nonFree/res/values-ru/strings.xml8
-rw-r--r--app/src/nonFree/res/values-uk-rUA/strings.xml8
-rw-r--r--app/src/nonFree/res/values-uk/strings.xml8
-rw-r--r--app/src/nonFree/res/values/strings.xml9
26 files changed, 2 insertions, 424 deletions
diff --git a/app/src/main/java/app/passwordstore/Application.kt b/app/src/main/java/app/passwordstore/Application.kt
index 9bc4c83e..8eb421f4 100644
--- a/app/src/main/java/app/passwordstore/Application.kt
+++ b/app/src/main/java/app/passwordstore/Application.kt
@@ -17,7 +17,6 @@ import app.passwordstore.injection.context.FilesDirPath
import app.passwordstore.injection.prefs.SettingsPreferences
import app.passwordstore.util.coroutines.DispatcherProvider
import app.passwordstore.util.extensions.getString
-import app.passwordstore.util.features.Feature
import app.passwordstore.util.features.Features
import app.passwordstore.util.git.sshj.setUpBouncyCastleForSshj
import app.passwordstore.util.proxy.ProxyUtils
@@ -26,8 +25,6 @@ import app.passwordstore.util.settings.PreferenceKeys
import app.passwordstore.util.settings.runMigrations
import com.google.android.material.color.DynamicColors
import dagger.hilt.android.HiltAndroidApp
-import io.sentry.Sentry
-import io.sentry.protocol.User
import java.util.concurrent.Executors
import javax.inject.Inject
import logcat.AndroidLogcatLogger
@@ -67,14 +64,6 @@ class Application : android.app.Application(), SharedPreferences.OnSharedPrefere
runMigrations(filesDirPath, prefs, gitSettings)
proxyUtils.setDefaultProxy()
DynamicColors.applyToActivitiesIfAvailable(this)
- Sentry.configureScope { scope ->
- val user = User()
- user.data =
- Feature.entries.associate { feature ->
- "features.${feature.configKey}" to features.isEnabled(feature).toString()
- }
- scope.user = user
- }
setupScreenOffHandler()
}
diff --git a/app/src/free/java/app/passwordstore/autofill/oreo/ui/AutofillSmsActivity.kt b/app/src/main/java/app/passwordstore/autofill/oreo/ui/AutofillSmsActivity.kt
index 83d1fdae..7acc72f9 100644
--- a/app/src/free/java/app/passwordstore/autofill/oreo/ui/AutofillSmsActivity.kt
+++ b/app/src/main/java/app/passwordstore/autofill/oreo/ui/AutofillSmsActivity.kt
@@ -8,6 +8,8 @@ import android.content.Context
import android.content.IntentSender
import androidx.appcompat.app.AppCompatActivity
+// ponytail: filling OTPs from SMS needed Play Services (removed with the nonFree flavor), so
+// this stub keeps the feature off. Delete it together with the FillOtpFromSms autofill paths.
@Suppress("UNUSED_PARAMETER")
class AutofillSmsActivity : AppCompatActivity() {
diff --git a/app/src/nonFree/AndroidManifest.xml b/app/src/nonFree/AndroidManifest.xml
deleted file mode 100644
index 8a03b626..00000000
--- a/app/src/nonFree/AndroidManifest.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?><!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android">
- <application>
- <meta-data android:name="io.sentry.dsn" android:value="${sentryDsn}" />
- <meta-data android:name="io.sentry.traces.sample-rate" android:value="1.0" />
- <meta-data android:name="io.sentry.traces.profiling.sample-rate" android:value="1.0" />
- </application>
-</manifest>
diff --git a/app/src/nonFree/java/app/passwordstore/autofill/oreo/ui/AutofillSmsActivity.kt b/app/src/nonFree/java/app/passwordstore/autofill/oreo/ui/AutofillSmsActivity.kt
deleted file mode 100644
index 1f627c06..00000000
--- a/app/src/nonFree/java/app/passwordstore/autofill/oreo/ui/AutofillSmsActivity.kt
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved.
- * SPDX-License-Identifier: GPL-3.0-only
- */
-package app.passwordstore.autofill.oreo.ui
-
-import android.app.Activity
-import android.app.PendingIntent
-import android.content.BroadcastReceiver
-import android.content.Context
-import android.content.Intent
-import android.content.IntentFilter
-import android.content.IntentSender
-import android.os.Build
-import android.os.Bundle
-import android.view.autofill.AutofillManager
-import androidx.appcompat.app.AppCompatActivity
-import androidx.core.content.ContextCompat
-import androidx.lifecycle.lifecycleScope
-import app.passwordstore.databinding.ActivityOreoAutofillSmsBinding
-import app.passwordstore.util.autofill.AutofillResponseBuilder
-import app.passwordstore.util.coroutines.DispatcherProvider
-import app.passwordstore.util.extensions.viewBinding
-import com.github.androidpasswordstore.autofillparser.AutofillAction
-import com.github.androidpasswordstore.autofillparser.Credentials
-import com.github.michaelbull.result.onFailure
-import com.github.michaelbull.result.runCatching
-import com.google.android.gms.auth.api.phone.SmsCodeRetriever
-import com.google.android.gms.auth.api.phone.SmsRetriever
-import com.google.android.gms.common.ConnectionResult
-import com.google.android.gms.common.GoogleApiAvailability
-import com.google.android.gms.common.api.ResolvableApiException
-import com.google.android.gms.tasks.Task
-import dagger.hilt.android.AndroidEntryPoint
-import java.util.concurrent.ExecutionException
-import javax.inject.Inject
-import kotlin.coroutines.resume
-import kotlin.coroutines.resumeWithException
-import kotlin.coroutines.suspendCoroutine
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.withContext
-import logcat.LogPriority.ERROR
-import logcat.LogPriority.WARN
-import logcat.asLog
-import logcat.logcat
-
-suspend fun <T> Task<T>.suspendableAwait() =
- suspendCoroutine<T> { cont ->
- addOnSuccessListener { result: T -> cont.resume(result) }
- addOnFailureListener { e ->
- // Unwrap specific exceptions (e.g. ResolvableApiException) from ExecutionException.
- val cause = (e as? ExecutionException)?.cause ?: e
- cont.resumeWithException(cause)
- }
- }
-
-@AndroidEntryPoint
-class AutofillSmsActivity : AppCompatActivity() {
-
- @Inject lateinit var dispatcherProvider: DispatcherProvider
-
- companion object {
-
- private var fillOtpFromSmsRequestCode = 1
-
- fun shouldOfferFillFromSms(context: Context): Boolean {
- if (Build.VERSION.SDK_INT < 28) return false
- val googleApiAvailabilityInstance = GoogleApiAvailability.getInstance()
- val googleApiStatus = googleApiAvailabilityInstance.isGooglePlayServicesAvailable(context)
- if (googleApiStatus != ConnectionResult.SUCCESS) {
- logcat(WARN) {
- "Google Play Services unavailable or not updated: ${googleApiAvailabilityInstance.getErrorString(googleApiStatus)}"
- }
- return false
- }
- // https://developer.android.com/guide/topics/text/autofill-services#sms-autofill
- if (googleApiAvailabilityInstance.getApkVersion(context) < 190056000) {
- logcat(WARN) { "Google Play Service 19.0.56 or higher required for SMS OTP Autofill" }
- return false
- }
- return true
- }
-
- fun makeFillOtpFromSmsIntentSender(context: Context): IntentSender {
- val intent = Intent(context, AutofillSmsActivity::class.java)
- return PendingIntent.getActivity(
- context,
- fillOtpFromSmsRequestCode++,
- intent,
- PendingIntent.FLAG_CANCEL_CURRENT or PendingIntent.FLAG_IMMUTABLE,
- )
- .intentSender
- }
- }
-
- private val binding by viewBinding(ActivityOreoAutofillSmsBinding::inflate)
-
- private lateinit var clientState: Bundle
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(binding.root)
- setResult(RESULT_CANCELED)
- binding.cancelButton.setOnClickListener { finish() }
- }
-
- override fun onStart() {
- super.onStart()
- clientState =
- intent?.getBundleExtra(AutofillManager.EXTRA_CLIENT_STATE)
- ?: run {
- logcat(WARN) { "AutofillSmsActivity started without EXTRA_CLIENT_STATE" }
- finish()
- return
- }
-
- ContextCompat.registerReceiver(
- this,
- smsCodeRetrievedReceiver,
- IntentFilter(SmsCodeRetriever.SMS_CODE_RETRIEVED_ACTION),
- SmsRetriever.SEND_PERMISSION,
- null,
- ContextCompat.RECEIVER_EXPORTED,
- )
- lifecycleScope.launch { waitForSms() }
- }
-
- // Retry starting the SMS code retriever after a permission request.
- @Deprecated("Deprecated in Java")
- override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
- super.onActivityResult(requestCode, resultCode, data)
- if (resultCode != Activity.RESULT_OK) return
- lifecycleScope.launch { waitForSms() }
- }
-
- private suspend fun waitForSms() {
- val smsClient = SmsCodeRetriever.getAutofillClient(this@AutofillSmsActivity)
- runCatching {
- withContext(dispatcherProvider.io()) {
- smsClient.startSmsCodeRetriever().suspendableAwait()
- }
- }
- .onFailure { e ->
- if (e is ResolvableApiException) {
- e.startResolutionForResult(this@AutofillSmsActivity, 1)
- } else {
- logcat(ERROR) { e.asLog() }
- withContext(dispatcherProvider.main()) { finish() }
- }
- }
- }
-
- private val smsCodeRetrievedReceiver =
- object : BroadcastReceiver() {
- override fun onReceive(context: Context, intent: Intent) {
- val smsCode = intent.getStringExtra(SmsCodeRetriever.EXTRA_SMS_CODE)
- val fillInDataset =
- AutofillResponseBuilder.makeFillInDataset(
- this@AutofillSmsActivity,
- Credentials(null, null, smsCode),
- clientState,
- AutofillAction.FillOtpFromSms,
- )
- setResult(
- RESULT_OK,
- Intent().apply { putExtra(AutofillManager.EXTRA_AUTHENTICATION_RESULT, fillInDataset) },
- )
- finish()
- }
- }
-}
diff --git a/app/src/nonFree/res/layout/activity_oreo_autofill_sms.xml b/app/src/nonFree/res/layout/activity_oreo_autofill_sms.xml
deleted file mode 100644
index aa921185..00000000
--- a/app/src/nonFree/res/layout/activity_oreo_autofill_sms.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?><!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:paddingHorizontal="10dp"
- tools:context="app.passwordstore.AutofillFilterView">
-
- <ImageView
- android:id="@+id/cover"
- android:layout_width="0dp"
- android:layout_height="50dp"
- android:layout_margin="10dp"
- android:contentDescription="@string/app_name"
- android:src="@drawable/ic_launcher_foreground"
- app:layout_constraintBottom_toTopOf="@id/text"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintVertical_bias="0.0" />
-
- <TextView
- android:id="@+id/text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_margin="10dp"
- android:text="@string/oreo_autofill_waiting_for_sms"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@id/cover" />
-
- <ProgressBar
- android:id="@+id/progress"
- style="@style/Widget.MaterialComponents.CircularProgressIndicator"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_margin="10dp"
- app:layout_constraintBottom_toTopOf="@id/cancelButton"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@id/text" />
-
- <Button
- android:id="@+id/cancelButton"
- style="@style/Widget.MaterialComponents.Button.TextButton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_margin="10dp"
- android:text="@string/dialog_cancel"
- android:textColor="?attr/colorSecondary"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@id/progress" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/app/src/nonFree/res/values-ar-rSA/strings.xml b/app/src/nonFree/res/values-ar-rSA/strings.xml
deleted file mode 100644
index 7a6a3cb6..00000000
--- a/app/src/nonFree/res/values-ar-rSA/strings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-<resources>
- <string name="oreo_autofill_waiting_for_sms">في انتظار الرسائل القصيرة…</string>
-</resources>
diff --git a/app/src/nonFree/res/values-ar/strings.xml b/app/src/nonFree/res/values-ar/strings.xml
deleted file mode 100644
index 7a6a3cb6..00000000
--- a/app/src/nonFree/res/values-ar/strings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-<resources>
- <string name="oreo_autofill_waiting_for_sms">في انتظار الرسائل القصيرة…</string>
-</resources>
diff --git a/app/src/nonFree/res/values-de/strings.xml b/app/src/nonFree/res/values-de/strings.xml
deleted file mode 100644
index 1e615e43..00000000
--- a/app/src/nonFree/res/values-de/strings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-<resources>
- <string name="oreo_autofill_waiting_for_sms">Warte auf SMS…</string>
-</resources>
diff --git a/app/src/nonFree/res/values-es-rES/strings.xml b/app/src/nonFree/res/values-es-rES/strings.xml
deleted file mode 100644
index a80f9454..00000000
--- a/app/src/nonFree/res/values-es-rES/strings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-<resources>
- <string name="oreo_autofill_waiting_for_sms">Esperando por SMS…</string>
-</resources>
diff --git a/app/src/nonFree/res/values-es/strings.xml b/app/src/nonFree/res/values-es/strings.xml
deleted file mode 100644
index a80f9454..00000000
--- a/app/src/nonFree/res/values-es/strings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-<resources>
- <string name="oreo_autofill_waiting_for_sms">Esperando por SMS…</string>
-</resources>
diff --git a/app/src/nonFree/res/values-fi-rFI/strings.xml b/app/src/nonFree/res/values-fi-rFI/strings.xml
deleted file mode 100644
index a57feb73..00000000
--- a/app/src/nonFree/res/values-fi-rFI/strings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-<resources>
- <string name="oreo_autofill_waiting_for_sms">Odotetaan SMS-viestiä…</string>
-</resources>
diff --git a/app/src/nonFree/res/values-fi/strings.xml b/app/src/nonFree/res/values-fi/strings.xml
deleted file mode 100644
index a57feb73..00000000
--- a/app/src/nonFree/res/values-fi/strings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-<resources>
- <string name="oreo_autofill_waiting_for_sms">Odotetaan SMS-viestiä…</string>
-</resources>
diff --git a/app/src/nonFree/res/values-gl-rES/strings.xml b/app/src/nonFree/res/values-gl-rES/strings.xml
deleted file mode 100644
index b68283db..00000000
--- a/app/src/nonFree/res/values-gl-rES/strings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-<resources>
- <string name="oreo_autofill_waiting_for_sms">Agardando polo SMS…</string>
-</resources>
diff --git a/app/src/nonFree/res/values-gl/strings.xml b/app/src/nonFree/res/values-gl/strings.xml
deleted file mode 100644
index b68283db..00000000
--- a/app/src/nonFree/res/values-gl/strings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-<resources>
- <string name="oreo_autofill_waiting_for_sms">Agardando polo SMS…</string>
-</resources>
diff --git a/app/src/nonFree/res/values-hu-rHU/strings.xml b/app/src/nonFree/res/values-hu-rHU/strings.xml
deleted file mode 100644
index 6ebce291..00000000
--- a/app/src/nonFree/res/values-hu-rHU/strings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-<resources>
- <string name="oreo_autofill_waiting_for_sms">SMS-re várakozás…</string>
-</resources>
diff --git a/app/src/nonFree/res/values-hu/strings.xml b/app/src/nonFree/res/values-hu/strings.xml
deleted file mode 100644
index 6ebce291..00000000
--- a/app/src/nonFree/res/values-hu/strings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-<resources>
- <string name="oreo_autofill_waiting_for_sms">SMS-re várakozás…</string>
-</resources>
diff --git a/app/src/nonFree/res/values-it/strings.xml b/app/src/nonFree/res/values-it/strings.xml
deleted file mode 100644
index dcd1264d..00000000
--- a/app/src/nonFree/res/values-it/strings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-<resources>
- <string name="oreo_autofill_waiting_for_sms">In attesa del SMS…</string>
-</resources>
diff --git a/app/src/nonFree/res/values-ko-rKR/strings.xml b/app/src/nonFree/res/values-ko-rKR/strings.xml
deleted file mode 100644
index d98dca63..00000000
--- a/app/src/nonFree/res/values-ko-rKR/strings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-<resources>
- <string name="oreo_autofill_waiting_for_sms">SMS를 기다리는 중입니다…</string>
-</resources>
diff --git a/app/src/nonFree/res/values-ko/strings.xml b/app/src/nonFree/res/values-ko/strings.xml
deleted file mode 100644
index d98dca63..00000000
--- a/app/src/nonFree/res/values-ko/strings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-<resources>
- <string name="oreo_autofill_waiting_for_sms">SMS를 기다리는 중입니다…</string>
-</resources>
diff --git a/app/src/nonFree/res/values-pl-rPL/strings.xml b/app/src/nonFree/res/values-pl-rPL/strings.xml
deleted file mode 100644
index ba2f05ed..00000000
--- a/app/src/nonFree/res/values-pl-rPL/strings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-<resources>
- <string name="oreo_autofill_waiting_for_sms">Oczekiwanie na SMS…</string>
-</resources>
diff --git a/app/src/nonFree/res/values-pl/strings.xml b/app/src/nonFree/res/values-pl/strings.xml
deleted file mode 100644
index ba2f05ed..00000000
--- a/app/src/nonFree/res/values-pl/strings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-<resources>
- <string name="oreo_autofill_waiting_for_sms">Oczekiwanie na SMS…</string>
-</resources>
diff --git a/app/src/nonFree/res/values-pt-rBR/strings.xml b/app/src/nonFree/res/values-pt-rBR/strings.xml
deleted file mode 100644
index 0f4b8ed5..00000000
--- a/app/src/nonFree/res/values-pt-rBR/strings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-<resources>
- <string name="oreo_autofill_waiting_for_sms">Esperando pelo SMS…</string>
-</resources>
diff --git a/app/src/nonFree/res/values-ru/strings.xml b/app/src/nonFree/res/values-ru/strings.xml
deleted file mode 100644
index 5f214d53..00000000
--- a/app/src/nonFree/res/values-ru/strings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-<resources>
- <string name="oreo_autofill_waiting_for_sms">Ожидание SMS…</string>
-</resources>
diff --git a/app/src/nonFree/res/values-uk-rUA/strings.xml b/app/src/nonFree/res/values-uk-rUA/strings.xml
deleted file mode 100644
index 86d935ee..00000000
--- a/app/src/nonFree/res/values-uk-rUA/strings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-<resources>
- <string name="oreo_autofill_waiting_for_sms">Очікування SMS…</string>
-</resources>
diff --git a/app/src/nonFree/res/values-uk/strings.xml b/app/src/nonFree/res/values-uk/strings.xml
deleted file mode 100644
index 86d935ee..00000000
--- a/app/src/nonFree/res/values-uk/strings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-<resources>
- <string name="oreo_autofill_waiting_for_sms">Очікування SMS…</string>
-</resources>
diff --git a/app/src/nonFree/res/values/strings.xml b/app/src/nonFree/res/values/strings.xml
deleted file mode 100644
index 7d9570b6..00000000
--- a/app/src/nonFree/res/values/strings.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?><!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-
-<resources>
-
- <string name="oreo_autofill_waiting_for_sms">Waiting for SMS…</string>
-</resources>