aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-11-02 19:31:24 +0100
committerDanilo M. <danix@danix.xyz>2026-11-02 19:31:24 +0100
commit29d6a9205b15ec56387a35caa58894459e37bb24 (patch)
tree9457eb70688cf045aa989b2d613210863bee29a9
parentc33afe9d099a3cc59d02cef5729b29e4c8270bc4 (diff)
downloadHardenedPass-29d6a9205b15ec56387a35caa58894459e37bb24.tar.gz
HardenedPass-29d6a9205b15ec56387a35caa58894459e37bb24.zip
refactor(autofill): remove the fill-OTP-from-SMS paths
Filling OTPs from SMS used Play Services' SMS User Consent API, removed with the nonFree flavor; since then AutofillSmsActivity was a stub that never offered the dataset. Delete it, its manifest entry, the dataset builders in both response builders, its drawable and string. AutofillAction.FillOtpFromSms stays in autofill-parser: it is public, metalava-checked API and harmless for a client that never fills it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
-rw-r--r--app/src/main/AndroidManifest.xml6
-rw-r--r--app/src/main/java/app/passwordstore/util/autofill/Api26AutofillResponseBuilder.kt13
-rw-r--r--app/src/main/java/app/passwordstore/util/autofill/Api30AutofillResponseBuilder.kt22
-rw-r--r--app/src/main/java/app/passwordstore/util/autofill/AutofillViewUtils.kt7
-rw-r--r--app/src/main/res/values-de/strings.xml1
-rw-r--r--app/src/main/res/values-fr/strings.xml1
-rw-r--r--app/src/main/res/values-gl/strings.xml1
-rw-r--r--app/src/main/res/values-it/strings.xml1
-rw-r--r--app/src/main/res/values-ko-rKR/strings.xml1
-rw-r--r--app/src/main/res/values-pl-rPL/strings.xml1
-rw-r--r--app/src/main/res/values-pt-rBR/strings.xml1
-rw-r--r--app/src/main/res/values-ru/strings.xml1
-rw-r--r--app/src/main/res/values-zh-rCN/strings.xml1
-rw-r--r--app/src/main/res/values/strings.xml1
14 files changed, 0 insertions, 58 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 407697cf..1cbe76a9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -152,12 +152,6 @@
android:exported="false"
android:theme="@style/NoBackgroundThemeM3" />
<activity
- android:name=".autofill.oreo.ui.AutofillSmsActivity"
- android:configChanges="orientation"
- android:exported="false"
- android:theme="@style/DialogLikeThemeM3"
- android:windowSoftInputMode="adjustNothing" />
- <activity
android:name=".ui.autofill.AutofillPublisherChangedActivity"
android:configChanges="orientation|keyboardHidden"
android:exported="false"
diff --git a/app/src/main/java/app/passwordstore/util/autofill/Api26AutofillResponseBuilder.kt b/app/src/main/java/app/passwordstore/util/autofill/Api26AutofillResponseBuilder.kt
index 08db33d9..f38011a7 100644
--- a/app/src/main/java/app/passwordstore/util/autofill/Api26AutofillResponseBuilder.kt
+++ b/app/src/main/java/app/passwordstore/util/autofill/Api26AutofillResponseBuilder.kt
@@ -12,7 +12,6 @@ import android.service.autofill.FillCallback
import android.service.autofill.FillRequest
import android.service.autofill.FillResponse
import android.service.autofill.SaveInfo
-import app.passwordstore.autofill.oreo.ui.AutofillSmsActivity
import app.passwordstore.ui.autofill.AutofillDecryptActivity
import app.passwordstore.ui.autofill.AutofillFilterView
import app.passwordstore.ui.autofill.AutofillPublisherChangedActivity
@@ -79,14 +78,6 @@ class Api26AutofillResponseBuilder private constructor(form: FillableForm) :
return makeIntentDataset(context, AutofillAction.Generate, intentSender, metadata)
}
- private fun makeFillOtpFromSmsDataset(context: Context): Dataset? {
- if (!scenario.hasFieldsToFillOn(AutofillAction.FillOtpFromSms)) return null
- if (!AutofillSmsActivity.shouldOfferFillFromSms(context)) return null
- val metadata = makeFillOtpFromSmsMetadata(context)
- val intentSender = AutofillSmsActivity.makeFillOtpFromSmsIntentSender(context)
- return makeIntentDataset(context, AutofillAction.FillOtpFromSms, intentSender, metadata)
- }
-
private fun makePublisherChangedDataset(
context: Context,
publisherChangedException: AutofillPublisherChangedException,
@@ -148,10 +139,6 @@ class Api26AutofillResponseBuilder private constructor(form: FillableForm) :
datasetCount++
addDataset(it)
}
- makeFillOtpFromSmsDataset(context)?.let {
- datasetCount++
- addDataset(it)
- }
makeSearchDataset(context)?.let {
datasetCount++
addDataset(it)
diff --git a/app/src/main/java/app/passwordstore/util/autofill/Api30AutofillResponseBuilder.kt b/app/src/main/java/app/passwordstore/util/autofill/Api30AutofillResponseBuilder.kt
index c64b789f..55679b21 100644
--- a/app/src/main/java/app/passwordstore/util/autofill/Api30AutofillResponseBuilder.kt
+++ b/app/src/main/java/app/passwordstore/util/autofill/Api30AutofillResponseBuilder.kt
@@ -17,7 +17,6 @@ import android.service.autofill.SaveInfo
import android.view.inputmethod.InlineSuggestionsRequest
import android.widget.inline.InlinePresentationSpec
import androidx.annotation.RequiresApi
-import app.passwordstore.autofill.oreo.ui.AutofillSmsActivity
import app.passwordstore.ui.autofill.AutofillDecryptActivity
import app.passwordstore.ui.autofill.AutofillFilterView
import app.passwordstore.ui.autofill.AutofillPublisherChangedActivity
@@ -146,23 +145,6 @@ class Api30AutofillResponseBuilder private constructor(form: FillableForm) :
return makeIntentDataset(context, AutofillAction.Generate, intentSender, metadata, imeSpec)
}
- private fun makeFillOtpFromSmsDataset(
- context: Context,
- imeSpec: InlinePresentationSpec?,
- ): Dataset? {
- if (!scenario.hasFieldsToFillOn(AutofillAction.FillOtpFromSms)) return null
- if (!AutofillSmsActivity.shouldOfferFillFromSms(context)) return null
- val metadata = makeFillOtpFromSmsMetadata(context)
- val intentSender = AutofillSmsActivity.makeFillOtpFromSmsIntentSender(context)
- return makeIntentDataset(
- context,
- AutofillAction.FillOtpFromSms,
- intentSender,
- metadata,
- imeSpec,
- )
- }
-
private fun makePublisherChangedDataset(
context: Context,
publisherChangedException: AutofillPublisherChangedException,
@@ -214,10 +196,6 @@ class Api30AutofillResponseBuilder private constructor(form: FillableForm) :
datasetCount++
addDataset(it)
}
- makeFillOtpFromSmsDataset(context, imeSpecs.getOrNull(datasetCount))?.let {
- datasetCount++
- addDataset(it)
- }
makeSearchDataset(context, imeSpecs.getOrNull(datasetCount))?.let {
datasetCount++
addDataset(it)
diff --git a/app/src/main/java/app/passwordstore/util/autofill/AutofillViewUtils.kt b/app/src/main/java/app/passwordstore/util/autofill/AutofillViewUtils.kt
index 6349acd8..ebe4bc7d 100644
--- a/app/src/main/java/app/passwordstore/util/autofill/AutofillViewUtils.kt
+++ b/app/src/main/java/app/passwordstore/util/autofill/AutofillViewUtils.kt
@@ -101,13 +101,6 @@ fun makeGenerateAndFillMetadata(context: Context) =
R.drawable.ic_autofill_new_password,
)
-fun makeFillOtpFromSmsMetadata(context: Context) =
- DatasetMetadata(
- context.getString(R.string.oreo_autofill_fill_otp_from_sms),
- null,
- R.drawable.ic_autofill_sms,
- )
-
fun makeEmptyMetadata() = DatasetMetadata("PLACEHOLDER", "PLACEHOLDER", R.mipmap.ic_launcher)
fun makeWarningMetadata(context: Context) =
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index e569d6d2..1ca0e3a3 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -190,7 +190,6 @@
<string name="oreo_autofill_save_app_not_supported">Diese App wird derzeit nicht unterstützt.</string>
<string name="oreo_autofill_save_passwords_dont_match">Die Passwörter stimmen nicht überein.</string>
<string name="oreo_autofill_generate_password">Passwort erstellen…</string>
- <string name="oreo_autofill_fill_otp_from_sms">Code aus SMS extrahieren…</string>
<string name="oreo_autofill_max_matches_reached">Maximale Anzahl an Übereinstimmungen (%1$d) erreicht; lösche Übereinstimmungen, bevor neue hinzugefügt werden.</string>
<string name="oreo_autofill_warning_publisher_header">Der Hersteller dieser App hat sich geändert, seit Sie einen Eintrag zum Passwort-Speicher mit ihr verknüpft haben:</string>
<string name="oreo_autofill_warning_publisher_footer"><b>Die derzeit installierte App versucht, Ihre Anmeldeinformationen zu stehlen, indem sie vorgibt, eine vertrauenswürdige App zu sein.</b>\n\nVersuchen Sie, die App zu deinstallieren und installieren Sie sie erneut aus einer vertrauenswürdigen Quelle wie dem Play Store, Amazon Appstore, F-Droid oder dem Shop Ihres Telefonherstellers.</string>
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 98b2a2ca..044be8c9 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -178,7 +178,6 @@
<string name="oreo_autofill_save_app_not_supported">Cette application n\'est actuellement pas prise en charge</string>
<string name="oreo_autofill_save_passwords_dont_match">Les mots de passe ne coïncident pas</string>
<string name="oreo_autofill_generate_password">Créer une entrée</string>
- <string name="oreo_autofill_fill_otp_from_sms">Extraire le code depuis un SMS</string>
<string name="oreo_autofill_max_matches_reached">Nombre maximum de correspondances (%1$d) atteint; effacer les correspondances avant d\'en ajouter de nouvelles.</string>
<string name="oreo_autofill_warning_publisher_header">L\'éditeur de cette application a changé depuis que vous avez appairé un mot de passe avec celle-ci:</string>
<string name="oreo_autofill_warning_publisher_footer"><b>L\'application actuellement installée peut essayer de voler vos identifiants en faisant semblant d\'être une application de confiance.</b>\n\nEssayez de désinstaller et de réinstaller l\'application à partir d\'une source fiable, comme le Play Store, l\'AppStore d\'Amazon, le F-Droid ou la boutique du fabricant de votre téléphone.</string>
diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml
index b8f04378..4ca39712 100644
--- a/app/src/main/res/values-gl/strings.xml
+++ b/app/src/main/res/values-gl/strings.xml
@@ -191,7 +191,6 @@
<string name="oreo_autofill_save_app_not_supported">Esta app non está soportada actualmente</string>
<string name="oreo_autofill_save_passwords_dont_match">Non concordan os contrasinais</string>
<string name="oreo_autofill_generate_password">Crear elemento</string>
- <string name="oreo_autofill_fill_otp_from_sms">Extraer código do SMS</string>
<string name="oreo_autofill_max_matches_reached">Acadouse o máximo número de coincidencias (%1$d); eliminar as coincidencias antes de engadir máis.</string>
<string name="oreo_autofill_warning_publisher_header">A autoría desta app cambiou desde que rexistraches a entrada Password Store con ela:</string>
<string name="oreo_autofill_warning_publisher_footer"><b>A aplicación actualmente instalada podería intentar roubar as túas credenciais pretendendo ser unha app de confianza.</b>\n\nIntenta desinstalar e reinstalar
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index d8c2bbef..f2dfc2b2 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -173,7 +173,6 @@
<string name="oreo_autofill_save_app_not_supported">Quest\'app non è attualmente supportata</string>
<string name="oreo_autofill_save_passwords_dont_match">Le password non corrispondono</string>
<string name="oreo_autofill_generate_password">Crea voce</string>
- <string name="oreo_autofill_fill_otp_from_sms">Estrai codice da SMS</string>
<string name="oreo_autofill_max_matches_reached">Numero massimo di abbinamenti (%1$d) raggiunto; cancella le corrispondenze prima di aggiungerne di nuove.</string>
<string name="oreo_autofill_warning_publisher_header">L\'editore di quest\'app è cambiato da quando hai associato per la prima volta una voce di Password Store con essa:</string>
<string name="oreo_autofill_warning_publisher_footer"><b>L\'app correntemente installata potrebbe provare a rubare le tue credenziali pretendendo di essere un\'app affidabile.</b>\n\nProva a disinstallare e reinstallare l\'app da una fonte affidabile, come Play Store, Amazon, Appstore, F-Droid, o il negozio del produttore del tuo telefono.</string>
diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml
index 3cef75d5..432b6fbe 100644
--- a/app/src/main/res/values-ko-rKR/strings.xml
+++ b/app/src/main/res/values-ko-rKR/strings.xml
@@ -186,7 +186,6 @@
<string name="oreo_autofill_save_app_not_supported">이 앱은 현재 지원하지 않습니다</string>
<string name="oreo_autofill_save_passwords_dont_match">암호가 일치하지 않습니다</string>
<string name="oreo_autofill_generate_password">항목 생성</string>
- <string name="oreo_autofill_fill_otp_from_sms">SMS에서 코드 추출</string>
<string name="oreo_autofill_max_matches_reached">최대 일치 수(%1$d) 에 도달했습니다. 새 일치 항목을 추가하기 전에 일치 항목을 지웁니다.</string>
<string name="oreo_autofill_warning_publisher_header">비밀번호 저장소 항목을 처음 연결한 이후 이 앱의 게시자가 변경되었습니다:</string>
<string name="oreo_autofill_warning_publisher_footer"><b>현재 설치된 앱이 신뢰할 수 있는 앱인 것처럼 가장하여 자격 증명을 도용하려고 시도하고 있을 수 있습니다.</b>\n\n앱을 삭제한 후 Play 스토어, Amazon 앱스토어, F-Droid 또는 휴대폰 제조업체 스토어와 같은 신뢰할 수 있는 출처에서 다시 설치해 보시기 바랍니다.</string>
diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml
index d1dd766a..8dc1cc14 100644
--- a/app/src/main/res/values-pl-rPL/strings.xml
+++ b/app/src/main/res/values-pl-rPL/strings.xml
@@ -185,7 +185,6 @@
<string name="oreo_autofill_save_app_not_supported">Ta aplikacja nie jest obecnie obsługiwana</string>
<string name="oreo_autofill_save_passwords_dont_match">Hasła się nie zgadzają</string>
<string name="oreo_autofill_generate_password">Utwórz wpis</string>
- <string name="oreo_autofill_fill_otp_from_sms">Pobierz kod z wiadomości SMS</string>
<string name="oreo_autofill_max_matches_reached">Osiągnięto maksymalną liczbę dopasowań (%1$d); wyczyść dopasowania przed dodaniem nowych.</string>
<string name="oreo_autofill_warning_publisher_header">Wydawca tej aplikacji zmienił się od momentu wprowadzenia pierwszego wpisu z hasłem:</string>
<string name="oreo_autofill_warning_publisher_footer"><b>Obecnie zainstalowana aplikacja może próbować ukraść twoje dane do logowania, udając, że jest zaufaną aplikacją.</b>\n\nSpróbuj odinstalować i ponownie zainstalować aplikację z zaufanego źródła, takiego jak sklep Play Store, Amazon Appstore, F-Droid lub sklep producenta telefonu.</string>
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 40067ad1..c89e9a17 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -190,7 +190,6 @@
<string name="oreo_autofill_save_app_not_supported">Este app não é suportado no momento</string>
<string name="oreo_autofill_save_passwords_dont_match">As senhas não coincidem</string>
<string name="oreo_autofill_generate_password">Gerar senha…</string>
- <string name="oreo_autofill_fill_otp_from_sms">Extrair código do SMS…</string>
<string name="oreo_autofill_max_matches_reached">Número máximo de correspondências (%1$d) atingidas; limpar correspondências antes de adicionar novas.</string>
<string name="oreo_autofill_warning_publisher_header">O editor deste aplicativo mudou desde a primeira vez que você associou uma entrada no Password Store:</string>
<string name="oreo_autofill_warning_publisher_footer"><b>O aplicativo atualmente instalado pode estar tentando roubar suas credenciais fingindo ser um aplicativo confiável.</b>\n\nTente desinstalar e reinstalar o aplicativo de uma fonte confiável, como a Play Store, Amazon Appstore, F-Droid ou a loja do fabricante do seu telefone.</string>
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 223abe2c..c10bdcd8 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -183,7 +183,6 @@
<string name="oreo_autofill_save_app_not_supported">Это приложение в настоящее время не поддерживается</string>
<string name="oreo_autofill_save_passwords_dont_match">Пароли не совпадают</string>
<string name="oreo_autofill_generate_password">Сгенерировать пароль</string>
- <string name="oreo_autofill_fill_otp_from_sms">Извлечение кодов из SMS…</string>
<string name="oreo_autofill_max_matches_reached">Достигнуто максимальное количество совпадений (%1$d); очистите совпадения перед тем как добавите новые.</string>
<string name="oreo_autofill_warning_publisher_header">Издатель приложения изменился с тех пор как вы первый раз связали с ним запись хранилища паролей:</string>
<string name="oreo_autofill_warning_publisher_footer"><b>Установленное приложение может попытаться украсть ваши учетные данные, выдавая себя за доверенное приложение</b>\n\nПопробуйте удалить или переустановить  приложение из доверенного источника, такого как Play Store, Amazon Appstore, F-Droid или магазин приложений производителя вашего смартфона.</string>
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index d2f3ac6c..1ea847f3 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -191,7 +191,6 @@
<string name="oreo_autofill_save_app_not_supported">目前不支持此应用</string>
<string name="oreo_autofill_save_passwords_dont_match">密码不匹配</string>
<string name="oreo_autofill_generate_password">生成密码…</string>
- <string name="oreo_autofill_fill_otp_from_sms">从短信中提取代码…</string>
<string name="oreo_autofill_max_matches_reached">已达到最大匹配数(%1$d) 在添加新匹配之前清除匹配</string>
<string name="oreo_autofill_warning_publisher_header">自从您首次将密码存储条目与其关联后,此应用的发布者已更改:</string>
<string name="oreo_autofill_warning_publisher_footer"><b>当前安装的应用程序可能试图通过伪装成受信任的应用程序来窃取您的凭据</b>\"
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 61596e58..45afc227 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -219,7 +219,6 @@
<string name="oreo_autofill_save_app_not_supported">This app is currently not supported</string>
<string name="oreo_autofill_save_passwords_dont_match">Passwords don\'t match</string>
<string name="oreo_autofill_generate_password">Create entry</string>
- <string name="oreo_autofill_fill_otp_from_sms">Extract code from SMS</string>
<string name="oreo_autofill_max_matches_reached">Maximum number of matches (%1$d) reached; clear matches before adding new ones.</string>
<string name="oreo_autofill_warning_publisher_header">This app\'s publisher has changed since you first associated a Password Store entry with it:</string>
<string name="oreo_autofill_warning_publisher_footer"><b>The currently installed app may be trying to steal your credentials by pretending to be a trusted app.</b>\n\nTry to uninstall and reinstall the app from a trusted source, such as the Play Store, Amazon Appstore, F-Droid, or your phone manufacturer\'s store.</string>