├── app
├── .gitignore
├── version.properties
├── src
│ ├── main
│ │ ├── ic_launcher-web.png
│ │ ├── res
│ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_launcher_round.png
│ │ │ │ └── ic_launcher_foreground.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_launcher_round.png
│ │ │ │ └── ic_launcher_foreground.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_launcher_round.png
│ │ │ │ └── ic_launcher_foreground.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_launcher_round.png
│ │ │ │ └── ic_launcher_foreground.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_launcher_round.png
│ │ │ │ └── ic_launcher_foreground.png
│ │ │ ├── values
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ ├── arrays.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ ├── xml
│ │ │ │ └── locales_config.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ ├── drawable
│ │ │ │ ├── ic_delete_white_24dp.xml
│ │ │ │ ├── ic_delete_24dp.xml
│ │ │ │ ├── ic_baseline_arrow_back_24.xml
│ │ │ │ ├── ic_info_white_24dp.xml
│ │ │ │ ├── ic_refresh_white_24dp.xml
│ │ │ │ ├── ic_adb_white_24dp.xml
│ │ │ │ ├── ic_android_24dp.xml
│ │ │ │ └── ic_baseline_language_24.xml
│ │ │ ├── menu
│ │ │ │ ├── logcat_menu.xml
│ │ │ │ └── main_menu.xml
│ │ │ ├── layout
│ │ │ │ ├── activity_logcat.xml
│ │ │ │ ├── activity_main.xml
│ │ │ │ ├── application_rule_header.xml
│ │ │ │ ├── activity_about.xml
│ │ │ │ ├── application_rule_item.xml
│ │ │ │ ├── activity_send_log.xml
│ │ │ │ └── activity_register.xml
│ │ │ ├── values-de
│ │ │ │ └── strings.xml
│ │ │ ├── values-it
│ │ │ │ └── strings.xml
│ │ │ ├── values-fr
│ │ │ │ └── strings.xml
│ │ │ └── values-night
│ │ │ │ └── styles.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── github
│ │ │ │ └── frimtec
│ │ │ │ └── android
│ │ │ │ └── securesmsproxy
│ │ │ │ ├── domain
│ │ │ │ ├── Application.java
│ │ │ │ └── ApplicationRule.java
│ │ │ │ ├── state
│ │ │ │ ├── DbFactory.java
│ │ │ │ └── DbHelper.java
│ │ │ │ ├── ui
│ │ │ │ ├── BaseActivity.java
│ │ │ │ ├── AboutActivity.java
│ │ │ │ ├── SendLogActivity.java
│ │ │ │ ├── LogcatActivity.java
│ │ │ │ ├── ApplicationRuleArrayAdapter.java
│ │ │ │ └── RegisterActivity.java
│ │ │ │ ├── service
│ │ │ │ ├── SmsManagerResolver.java
│ │ │ │ ├── SmsDecoder.java
│ │ │ │ ├── PhoneNumberFormatter.java
│ │ │ │ ├── IsAllowedPhoneNumberContentProvider.java
│ │ │ │ ├── SmsListener.java
│ │ │ │ └── SmsSender.java
│ │ │ │ ├── utility
│ │ │ │ ├── PackageInfoAccessor.java
│ │ │ │ ├── AlertDialogHelper.java
│ │ │ │ └── Permission.java
│ │ │ │ └── SecureSmsProxyApplication.java
│ │ └── AndroidManifest.xml
│ └── test
│ │ └── java
│ │ └── com
│ │ └── github
│ │ └── frimtec
│ │ └── android
│ │ └── securesmsproxy
│ │ ├── state
│ │ └── DbHelperTest.java
│ │ ├── domain
│ │ ├── ApplicationTest.java
│ │ └── ApplicationRuleTest.java
│ │ ├── service
│ │ ├── PhoneNumberFormatterTest.java
│ │ ├── IsAllowedPhoneNumberContentProviderTest.java
│ │ └── SmsDecoderTest.java
│ │ └── utility
│ │ └── PackageInfoAccessorTest.java
├── proguard-rules.pro
└── build.gradle
├── securesmsproxyapi
├── consumer-rules.pro
├── .gitignore
├── src
│ ├── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ │ └── com
│ │ │ └── github
│ │ │ └── frimtec
│ │ │ └── android
│ │ │ └── securesmsproxyapi
│ │ │ ├── utility
│ │ │ ├── AesOperations.java
│ │ │ ├── Random.java
│ │ │ ├── Aes.java
│ │ │ ├── Aes2.java
│ │ │ └── PhoneNumberType.java
│ │ │ ├── IsAllowedPhoneNumberContract.java
│ │ │ └── Sms.java
│ └── test
│ │ └── java
│ │ └── com
│ │ └── github
│ │ └── frimtec
│ │ └── android
│ │ └── securesmsproxyapi
│ │ ├── utility
│ │ ├── AesTest.java
│ │ ├── Aes2Test.java
│ │ └── RandomTest.java
│ │ ├── SecureSmsProxyFacadeTest.java
│ │ └── SmsTest.java
├── proguard-rules.pro
└── build.gradle
├── fastlane
└── metadata
│ └── android
│ ├── en-US
│ ├── title.txt
│ ├── changelogs
│ │ ├── 728754.txt
│ │ ├── 2378536.txt
│ │ ├── 907475.txt
│ │ ├── 2521354.txt
│ │ ├── 1195360.txt
│ │ ├── 906939.txt
│ │ ├── 941956.txt
│ │ ├── 816215.txt
│ │ ├── 722606.txt
│ │ ├── 1567699.txt
│ │ ├── 1419365.txt
│ │ ├── 2023327.txt
│ │ ├── 2317073.txt
│ │ ├── 830624.txt
│ │ ├── 1097353.txt
│ │ ├── 1873545.txt
│ │ ├── 774508.txt
│ │ ├── 1566923.txt
│ │ ├── 905920.txt
│ │ ├── 1983861.txt
│ │ ├── 2519531.txt
│ │ ├── 940497.txt
│ │ ├── 1259952.txt
│ │ ├── 1196330.txt
│ │ ├── 1624213.txt
│ │ ├── 1997119.txt
│ │ ├── 2434922.txt
│ │ ├── 1247099.txt
│ │ ├── 1338879.txt
│ │ ├── 1549366.txt
│ │ ├── 1720561.txt
│ │ ├── 1583663.txt
│ │ ├── 2021393.txt
│ │ ├── 793087.txt
│ │ ├── 1194093.txt
│ │ ├── 1268617.txt
│ │ ├── 1268691.txt
│ │ ├── 1481802.txt
│ │ ├── 2601811.txt
│ │ ├── 1782659.txt
│ │ ├── 2217464.txt
│ │ ├── 760064.txt
│ │ ├── 2158216.txt
│ │ ├── 2360312.txt
│ │ ├── 2432057.txt
│ │ ├── 2099754.txt
│ │ ├── 2501095.txt
│ │ ├── 1965752.txt
│ │ └── 2302205.txt
│ ├── short_description.txt
│ ├── images
│ │ ├── icon.png
│ │ └── phoneScreenshots
│ │ │ ├── S2MSP-01.png
│ │ │ └── S2MSP-02.png
│ └── full_description.txt
│ ├── it
│ ├── short_description.txt
│ └── full_description.txt
│ ├── de
│ ├── short_description.txt
│ └── full_description.txt
│ └── fr
│ ├── short_description.txt
│ └── full_description.txt
├── settings.gradle
├── images
├── lokalise_logo.png
└── restricted-settings.png
├── gradle
├── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
└── libs.versions.toml
├── .idea
├── dictionaries
│ └── frim.xml
├── compiler.xml
├── codeStyles
│ ├── codeStyleConfig.xml
│ └── Project.xml
├── vcs.xml
├── gradle.xml
├── jarRepositories.xml
├── inspectionProfiles
│ └── Project_Default.xml
└── misc.xml
├── .github
├── pr-labeler.yml
├── workflows
│ ├── pr-labeler.yml
│ ├── release-drafter.yaml
│ └── buid.yml
├── dependabot.yml
└── release-drafter.yml
├── .gitignore
├── gradle.properties
└── gradlew.bat
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/securesmsproxyapi/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/securesmsproxyapi/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/title.txt:
--------------------------------------------------------------------------------
1 | S2MSP
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':securesmsproxyapi'
2 |
--------------------------------------------------------------------------------
/securesmsproxyapi/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/version.properties:
--------------------------------------------------------------------------------
1 | VERSION_NAME=$version
2 | VERSION_CODE=$code
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/728754.txt:
--------------------------------------------------------------------------------
1 | * Set metadata for F-Droid with fastlane
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/2378536.txt:
--------------------------------------------------------------------------------
1 | - Migrate to target SDK 36 (Android 16)
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/907475.txt:
--------------------------------------------------------------------------------
1 | - Fix current selection in language list
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/2521354.txt:
--------------------------------------------------------------------------------
1 | - Fix various inspection warnings @frimtec
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1195360.txt:
--------------------------------------------------------------------------------
1 | - Support local numbers provided by carrier or OS
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/906939.txt:
--------------------------------------------------------------------------------
1 | - Add in app language selection for android 13+
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/941956.txt:
--------------------------------------------------------------------------------
1 | - Fix color of toolbar back icon for day theme
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/short_description.txt:
--------------------------------------------------------------------------------
1 | SMS communication for apps restricted on phone numbers
--------------------------------------------------------------------------------
/fastlane/metadata/android/it/short_description.txt:
--------------------------------------------------------------------------------
1 | Comunicazione SMS da app limitata a numeri di telefono
--------------------------------------------------------------------------------
/images/lokalise_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/images/lokalise_logo.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/de/short_description.txt:
--------------------------------------------------------------------------------
1 | SMS-Kommunikation von Apps eingeschränkt auf Telefonnummern
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/816215.txt:
--------------------------------------------------------------------------------
1 | - #146 Fix NPE on delete rule if no item is selected
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/722606.txt:
--------------------------------------------------------------------------------
1 | * Try fix missing icon in F-Droid store
2 | * Update dependencies
--------------------------------------------------------------------------------
/images/restricted-settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/images/restricted-settings.png
--------------------------------------------------------------------------------
/app/src/main/ic_launcher-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/app/src/main/ic_launcher-web.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/short_description.txt:
--------------------------------------------------------------------------------
1 | Communication SMS à partir d'applications limitées aux numéros de téléphone
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1567699.txt:
--------------------------------------------------------------------------------
1 | - Prevent logging errors while receiving SMS from alphanumeric short code
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1419365.txt:
--------------------------------------------------------------------------------
1 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.15 to 8.13.19
2 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/2023327.txt:
--------------------------------------------------------------------------------
1 | - Migrate to material3 and edge-to-edge
2 | - Add note for new sideloading restrictions
3 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/2317073.txt:
--------------------------------------------------------------------------------
1 | - Migrate from OSSRH to Central Portal
2 | - Bump compileSdk of securesmsproxyapi from 34 to 35
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/fastlane/metadata/android/en-US/images/icon.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/830624.txt:
--------------------------------------------------------------------------------
1 | - Bump android target API from 32 to 33 (Android 13-Tiramisu)
2 | - Bump android-junit5 from 1.8.2.0 to 1.8.2.1
3 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1097353.txt:
--------------------------------------------------------------------------------
1 | - Upgrade to android studio electric eel
2 | - Bump gradle from 7.3.0 to 7.3.1
3 | - Bump material from 1.6.1 to 1.7.0
4 |
--------------------------------------------------------------------------------
/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFFFFF
4 |
--------------------------------------------------------------------------------
/.idea/dictionaries/frim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | pikett
5 |
6 |
7 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1873545.txt:
--------------------------------------------------------------------------------
1 | - Bump com.googlecode.libphonenumber:libphonenumber from8.13.35 to 8.13.39
2 | - Bump androidx.appcompat:appcompat from 1.6.1 to 1.7.0
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/774508.txt:
--------------------------------------------------------------------------------
1 | - Bump android target API from 31 to 32 (Android 13)
2 | - Bump gradle from 7.2.0 to 7.2.1
3 | - Bump mockito-core from 4.5.1 to 4.6.0
4 |
--------------------------------------------------------------------------------
/.github/pr-labeler.yml:
--------------------------------------------------------------------------------
1 | new-feature: ['feature/*', 'feat/*']
2 | bugfix: ['bugfix/*', 'bug/*', 'fix/*']
3 | documentation: ['documentation/*', 'doc/*']
4 | dependencies: ['dependencies/*', 'dep/*']
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1566923.txt:
--------------------------------------------------------------------------------
1 | - #282 Add support for alphanumeric short code SMS numbers
2 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.25 to 8.13.26
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/905920.txt:
--------------------------------------------------------------------------------
1 | - Support app language via device settings for android 13+
2 | - Bump gradle from 7.2.1 to 7.2.2
3 | - Bump appcompat from 1.4.2 to 1.5.0
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/S2MSP-01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/S2MSP-01.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/S2MSP-02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frimtec/secure-sms-proxy/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/S2MSP-02.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1983861.txt:
--------------------------------------------------------------------------------
1 | - Support numeric short codes (only for countries ch, de, fr and us)
2 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.44 to 8.13.45
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/2519531.txt:
--------------------------------------------------------------------------------
1 | - Bump down com.google.android.material:material from 1.13.0 to 1.12.0
2 | - Bump com.googlecode.libphonenumber:libphonenumber from 9.0.14 to 9.0.15
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/940497.txt:
--------------------------------------------------------------------------------
1 | - Support day/night themes
2 | - Migrate to android studio dolphin
3 | - Bump appcompat from 1.5.0 to 1.5.1
4 | - Bump json from 20220320 to 20220924
5 |
--------------------------------------------------------------------------------
/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1259952.txt:
--------------------------------------------------------------------------------
1 | - Ask to disable battery optimization on startup (to work reliable on more devices)
2 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.10 to 8.13.11
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1196330.txt:
--------------------------------------------------------------------------------
1 | - Using E164 phone number format internally to work well with international and local numbers provided by some carriers
2 | - Support local numbers provided by carrier
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1624213.txt:
--------------------------------------------------------------------------------
1 | - Extend support for 2024
2 | - Bump com.android.tools.build:gradle from 8.1.4 to 8.2.1
3 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.27 to 8.13.28
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1997119.txt:
--------------------------------------------------------------------------------
1 | - Add additional countries to support short codes
2 | - Bump target sdk from 34 to 35
3 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.45 to 8.13.46
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/2434922.txt:
--------------------------------------------------------------------------------
1 | - Add support for numeric short codes for Australia
2 | - Bump androidx.test:runner from 1.6.2 to 1.7.0
3 | - Bump androidx.test.espresso:espresso-core from 1.6.2 to 1.7.0
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1247099.txt:
--------------------------------------------------------------------------------
1 | - Migrate to android studio flamingo
2 | - Define telephony feature as required and other inspection cleanups
3 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.8 to 8.13.10
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1338879.txt:
--------------------------------------------------------------------------------
1 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.11 to 8.13.15
2 | - Bump org.json:json from 20230227 to 20230618
3 | - Bump com.android.tools.build:gradle from 8.0.1 to 8.0.2
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1549366.txt:
--------------------------------------------------------------------------------
1 | - Bump org.json:json from 20230618 to 20231013
2 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.22 to 8.13.25
3 | - Bump com.android.tools.build:gradle from 8.1.2 to 8.1.4
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1720561.txt:
--------------------------------------------------------------------------------
1 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.28 to 8.13.32
2 | - Bump com.android.tools.build:gradle from 8.2.1 to 8.2.2
3 | - Bump org.json:json from 20231013 to 20240303
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1583663.txt:
--------------------------------------------------------------------------------
1 | - Fix hanging crash report on android 14
2 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.26 to 8.13.27
3 | - Bump com.google.android.material:material from 1.10.0 to 1.11.0
4 |
--------------------------------------------------------------------------------
/.idea/codeStyles/codeStyleConfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/2021393.txt:
--------------------------------------------------------------------------------
1 | - Disable edge-to-edge on android 15 to fix corrupted screen layout
2 | - Bump com.android.tools.build:gradle from 8.6.1 to 8.7.0
3 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.46 to 8.13.47
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/793087.txt:
--------------------------------------------------------------------------------
1 | - Added translations for fr and it
2 | - Fix and optimize string resources and references
3 | - Bump material from 1.6.0 to 1.6.1
4 | - Bump mockito-core from 4.6.0 to 4.6.1
5 | - Bump assertj-core from 3.22.0 to 3.23.1
6 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1194093.txt:
--------------------------------------------------------------------------------
1 | - Improve logger to analyze effective phone numbers from received SMS
2 | - Bump material from 1.7.0 to 1.8.0
3 | - Bump androidx.appcompat:appcompat from 1.6.0 to 1.6.1
4 | - Bump org.json:json from 20220924 to 20230227
5 |
--------------------------------------------------------------------------------
/securesmsproxyapi/src/main/java/com/github/frimtec/android/securesmsproxyapi/utility/AesOperations.java:
--------------------------------------------------------------------------------
1 | package com.github.frimtec.android.securesmsproxyapi.utility;
2 |
3 | public interface AesOperations {
4 | String encrypt(String cleartext);
5 | String decrypt(String encrypted);
6 | }
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1268617.txt:
--------------------------------------------------------------------------------
1 | - Use stronger encryption cipher
2 | - Add API for compatibility check between API version and APP version
3 | - Bump com.android.tools.build:gradle from 8.0.0 to 8.0.1
4 | - Bump com.google.android.material:material from 1.8.0 to 1.9.0
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1268691.txt:
--------------------------------------------------------------------------------
1 | - Use stronger encryption cipher
2 | - Add API for compatibility check between API version and APP version
3 | - Bump com.android.tools.build:gradle from 8.0.0 to 8.0.1
4 | - Bump com.google.android.material:material from 1.8.0 to 1.9.0
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1481802.txt:
--------------------------------------------------------------------------------
1 | - Migrate to android target sdk 34 (Android 14-UpsideDownCake)
2 | - Code cleanups for java 17
3 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.19 to 8.13.22
4 | - Bump com.android.tools.build:gradle from 8.1.0 to 8.1.2
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/2601811.txt:
--------------------------------------------------------------------------------
1 | - Centralize dependency management
2 | - Bump com.android.tools.build:gradle from 8.13.0 to 8.13.1
3 | - Bump com.googlecode.libphonenumber:libphonenumber from 9.0.15 to 9.0.19
4 | - Bump androidx.activity:activity from 1.11.0 to 1.12.0
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1782659.txt:
--------------------------------------------------------------------------------
1 | - Cleanup inspection warnings
2 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.32 to 8.13.35
3 | - Bump com.android.tools.build:gradle from 8.3.1 to 8.3.2
4 | - Bump com.google.android.material:material from 1.11.0 to 1.12.0
5 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sat Oct 17 07:59:36 CEST 2020
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
7 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/2217464.txt:
--------------------------------------------------------------------------------
1 | - Remove disturbing no-data toast
2 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.53 to 8.13.54
3 | - Bump com.android.tools.build:gradle from 8.8.0 to 8.8.1
4 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.54 to 8.13.55
5 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/locales_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/760064.txt:
--------------------------------------------------------------------------------
1 | - Setup release-drafter and pr-labeler
2 | - Migrate to android studio chipmunk
3 | - Generate fastlane changelog from release body
4 | - Bump material from 1.5.0 to 1.6.0
5 | - Bump release-drafter/release-drafter from 5.19.0 to 5.20.0
6 | - Bump constraintlayout from 2.1.3 to 2.1.4
7 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/caches
5 | /.idea/libraries
6 | /.idea/modules.xml
7 | /.idea/workspace.xml
8 | /.idea/navEditor.xml
9 | /.idea/assetWizardSettings.xml
10 | /.idea/deploymentTargetDropDown.xml
11 | /.idea/shelf
12 | .DS_Store
13 | /build
14 | /app/release
15 | /captures
16 | .externalNativeBuild
17 | ringfile
18 | /publish.properties
19 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/2158216.txt:
--------------------------------------------------------------------------------
1 | - Bump com.android.tools.build:gradle from 8.7.3 to 8.8.0
2 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.51 to 8.13.52
3 | - Bump org.json:json from 20240303 to 20241224
4 | - Bump org.json:json from 20241224 to 20250107
5 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.52 to 8.13.53
6 | - Bump androidx.activity:activity from 1.9.3 to 1.10.0
7 |
--------------------------------------------------------------------------------
/.github/workflows/pr-labeler.yml:
--------------------------------------------------------------------------------
1 | name: PR Labeler
2 | on:
3 | pull_request:
4 | types: [opened]
5 |
6 | jobs:
7 | pr-labeler:
8 | permissions:
9 | contents: read
10 | pull-requests: write
11 | runs-on: ubuntu-22.04
12 | steps:
13 | - uses: TimonVS/pr-labeler-action@v5
14 | with:
15 | configuration-path: .github/pr-labeler.yml
16 | env:
17 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_delete_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_delete_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_arrow_back_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_info_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/2360312.txt:
--------------------------------------------------------------------------------
1 | - Bump com.googlecode.libphonenumber:libphonenumber from 9.0.4 to 9.0.5
2 | - Bump com.android.tools.build:gradle from 8.9.2 to 8.10.0
3 | - Bump org.json:json from 20250107 to 20250517
4 | - Bump com.vanniktech.maven.publish from 0.31.0 to 0.32.0
5 | - Bump com.googlecode.libphonenumber:libphonenumber from 9.0.5 to 9.0.6
6 | - Bump com.android.tools.build:gradle from 8.10.0 to 8.10.1
7 | - Bump com.googlecode.libphonenumber:libphonenumber from 9.0.6 to 9.0.7
8 | - Bump androidx.appcompat:appcompat from 1.7.0 to 1.7.1
9 |
--------------------------------------------------------------------------------
/app/src/main/res/values/arrays.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | @string/system_language
5 | @string/english
6 | @string/german
7 | @string/french
8 | @string/italian
9 |
10 |
11 |
12 | en
13 | de
14 | fr
15 | it
16 |
17 |
--------------------------------------------------------------------------------
/securesmsproxyapi/src/test/java/com/github/frimtec/android/securesmsproxyapi/utility/AesTest.java:
--------------------------------------------------------------------------------
1 | package com.github.frimtec.android.securesmsproxyapi.utility;
2 |
3 |
4 | import org.junit.jupiter.api.Test;
5 |
6 | import static org.assertj.core.api.Assertions.assertThat;
7 |
8 |
9 | class AesTest {
10 |
11 | private static final String SECRET = "this-is-a-test-secret-12";
12 |
13 | @Test
14 | void testAes() {
15 | Aes aes = new Aes(SECRET);
16 | String message = aes.decrypt(aes.encrypt("message"));
17 | assertThat(message).isEqualTo("message");
18 | }
19 | }
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_refresh_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/securesmsproxyapi/src/test/java/com/github/frimtec/android/securesmsproxyapi/utility/Aes2Test.java:
--------------------------------------------------------------------------------
1 | package com.github.frimtec.android.securesmsproxyapi.utility;
2 |
3 |
4 | import static org.assertj.core.api.Assertions.assertThat;
5 |
6 | import org.junit.jupiter.api.Test;
7 |
8 |
9 | class Aes2Test {
10 |
11 | private static final String SECRET = "this-is-a-test-secret-12";
12 |
13 | @Test
14 | void testAes() {
15 | Aes2 aes = new Aes2(SECRET);
16 | String message = aes.decrypt(aes.encrypt("message"));
17 | assertThat(message).isEqualTo("message");
18 | }
19 | }
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/2432057.txt:
--------------------------------------------------------------------------------
1 | - Bump com.vanniktech.maven.publish from 0.33.0 to 0.34.0
2 | - Extract JUnit version into constant
3 | - Bump com.vanniktech.maven.publish from 0.32.0 to 0.33.0
4 | - Bump com.googlecode.libphonenumber:libphonenumber from 9.0.7 to 9.0.8
5 | - Bump com.android.tools.build:gradle from 8.10.1 to 8.11.0
6 | - Bump com.googlecode.libphonenumber:libphonenumber from 9.0.8 to 9.0.9
7 | - Bump com.android.tools.build:gradle from 8.11.0 to 8.11.1
8 | - Bump com.googlecode.libphonenumber:libphonenumber from 9.0.9 to 9.0.10
9 | - Bump com.vanniktech.maven.publish from 0.33.0 to 0.34.0
10 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/frimtec/android/securesmsproxy/domain/Application.java:
--------------------------------------------------------------------------------
1 | package com.github.frimtec.android.securesmsproxy.domain;
2 |
3 | import java.util.Objects;
4 |
5 | public record Application(long id, String name, String listener, String secret) {
6 |
7 | @Override
8 | public boolean equals(Object o) {
9 | if (this == o) {
10 | return true;
11 | }
12 | if (o == null || getClass() != o.getClass()) {
13 | return false;
14 | }
15 | Application that = (Application) o;
16 | return id == that.id;
17 | }
18 |
19 | @Override
20 | public int hashCode() {
21 | return Objects.hash(id);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | # To get started with Dependabot version updates, you'll need to specify which
2 | # package ecosystems to update and where the package manifests are located.
3 | # Please see the documentation for all configuration options:
4 | # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5 |
6 | version: 2
7 | updates:
8 | - package-ecosystem: "gradle"
9 | directory: "/"
10 | schedule:
11 | interval: "weekly"
12 |
13 | # Maintain dependencies for GitHub Actions
14 | - package-ecosystem: "github-actions"
15 | directory: "/"
16 | schedule:
17 | interval: "weekly"
18 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/2099754.txt:
--------------------------------------------------------------------------------
1 | - Fixing the loss of release commits
2 | - Bump com.android.tools.build:gradle from 8.7.0 to 8.7.1
3 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.47 to 8.13.48
4 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.48 to 8.13.49
5 | - Bump androidx.constraintlayout:constraintlayout from 2.1.4 to 2.2.0
6 | - Bump com.android.tools.build:gradle from 8.7.1 to 8.7.2
7 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.49 to 8.13.50
8 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.50 to 8.13.51
9 | - Bump com.android.tools.build:gradle from 8.7.2 to 8.7.3
10 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/2501095.txt:
--------------------------------------------------------------------------------
1 | - Bump com.android.tools.build:gradle from 8.11.1 to 8.12.0
2 | - Bump com.googlecode.libphonenumber:libphonenumber from 9.0.10 to 9.0.11
3 | - Bump com.googlecode.libphonenumber:libphonenumber from 9.0.11 to 9.0.12
4 | - Bump com.android.tools.build:gradle from 8.12.0 to 8.12.1
5 | - Bump com.google.android.material:material from 1.12.0 to 1.13.0
6 | - Bump com.googlecode.libphonenumber:libphonenumber from 9.0.12 to 9.0.13
7 | - Bump com.android.tools.build:gradle from 8.12.1 to 8.13.0
8 | - Bump androidx.activity:activity from 1.10.1 to 1.11.0
9 | - Bump com.googlecode.libphonenumber:libphonenumber from 9.0.13 to 9.0.14
10 |
--------------------------------------------------------------------------------
/securesmsproxyapi/src/main/java/com/github/frimtec/android/securesmsproxyapi/IsAllowedPhoneNumberContract.java:
--------------------------------------------------------------------------------
1 | package com.github.frimtec.android.securesmsproxyapi;
2 |
3 | import android.net.Uri;
4 |
5 | public final class IsAllowedPhoneNumberContract {
6 |
7 | private IsAllowedPhoneNumberContract() {
8 | }
9 |
10 | public static final String AUTHORITY = "com.github.frimtec.android.securesmsproxy.provider";
11 | public static final Uri AUTHORITY_URI = Uri.parse("content://" + AUTHORITY);
12 | public static final String ALLOWED_PHONE_NUMBERS_PATH = "allowed_phone_numbers";
13 |
14 | public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, ALLOWED_PHONE_NUMBERS_PATH);
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_adb_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/logcat_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1965752.txt:
--------------------------------------------------------------------------------
1 | - Support reproducible builds
2 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.39 to 8.13.40
3 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.40 to 8.13.41
4 | - Bump com.android.tools.build:gradle from 8.5.0 to 8.5.1
5 | - Bump org.assertj:assertj-core from 3.26.0 to 3.26.3
6 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.41 to 8.13.42
7 | - Bump com.android.tools.build:gradle from 8.5.1 to 8.5.2
8 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.42 to 8.13.43
9 | - Bump org.junit.jupiter:junit-jupiter-params from 5.10.3 to 5.11.0
10 | - Bump de.mannodermaus.gradle.plugins:android-junit5 from 1.10.0.0 to 1.11.0.0
11 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/frimtec/android/securesmsproxy/domain/ApplicationRule.java:
--------------------------------------------------------------------------------
1 | package com.github.frimtec.android.securesmsproxy.domain;
2 |
3 | import java.util.Objects;
4 | import java.util.Set;
5 |
6 | public record ApplicationRule(Application application, Set allowedPhoneNumbers) {
7 |
8 | @Override
9 | public boolean equals(Object o) {
10 | if (this == o) {
11 | return true;
12 | }
13 | if (o == null || getClass() != o.getClass()) {
14 | return false;
15 | }
16 | ApplicationRule that = (ApplicationRule) o;
17 | return application.equals(that.application);
18 | }
19 |
20 | @Override
21 | public int hashCode() {
22 | return Objects.hash(application);
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/2302205.txt:
--------------------------------------------------------------------------------
1 | - Bump com.android.tools.build:gradle from 8.8.1 to 8.8.2
2 | - Bump androidx.constraintlayout:constraintlayout from 2.2.0 to 2.2.1
3 | - Bump com.googlecode.libphonenumber:libphonenumber from 8.13.55 to 9.0.0
4 | - Bump androidx.activity:activity from 1.10.0 to 1.10.1
5 | - Bump com.android.tools.build:gradle from 8.8.2 to 8.9.0
6 | - Bump com.googlecode.libphonenumber:libphonenumber from 9.0.0 to 9.0.1
7 | - Bump com.googlecode.libphonenumber:libphonenumber from 9.0.1 to 9.0.2
8 | - Bump com.android.tools.build:gradle from 8.9.0 to 8.9.1
9 | - Bump com.googlecode.libphonenumber:libphonenumber from 9.0.2 to 9.0.3
10 | - Bump com.googlecode.libphonenumber:libphonenumber from 9.0.3 to 9.0.4
11 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/frimtec/android/securesmsproxy/state/DbFactory.java:
--------------------------------------------------------------------------------
1 | package com.github.frimtec.android.securesmsproxy.state;
2 |
3 | import android.database.sqlite.SQLiteDatabase;
4 |
5 | import com.github.frimtec.android.securesmsproxy.SecureSmsProxyApplication;
6 |
7 | import static com.github.frimtec.android.securesmsproxy.state.DbFactory.Mode.READ_ONLY;
8 |
9 | @FunctionalInterface
10 | public interface DbFactory {
11 |
12 | enum Mode {
13 | READ_ONLY,
14 | WRITABLE
15 | }
16 |
17 | static DbFactory instance() {
18 | return (mode -> mode == READ_ONLY ? SecureSmsProxyApplication.getReadableDatabase() : SecureSmsProxyApplication.getWritableDatabase());
19 | }
20 |
21 | SQLiteDatabase getDatabase(Mode mode);
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_logcat.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
12 |
17 |
18 |
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/securesmsproxyapi/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/main_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
14 |
15 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | android.enableJetifier=true
10 | android.useAndroidX=true
11 | org.gradle.jvmargs=-Xmx1536m
12 | android.defaults.buildfeatures.buildconfig=true
13 | android.nonTransitiveRClass=false
14 | android.nonFinalResIds=false
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
19 |
20 |
21 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/full_description.txt:
--------------------------------------------------------------------------------
1 | As Google strongly restricts the use of SMS permissions for applications in the Play-Store, S2MSP provides an API for third party applications to send and receive SMS to specific phone numbers via a secure SMS proxy.
2 |
3 | S2MSP acts like a local firewall for SMS communication.
4 |
5 | Each application that wants to send/receive SMS to a phone number can register itself on S2MSP. S2MSP asks the user for permission, whether the requesting application is allowed to send/receive SMS from and to the requested phone numbers or not.
6 |
7 | All SMS exchanged with third party applications are strongly encrypted.
8 |
9 | S2SMP itself requires SMS permissions (SEND_SMS and RECEIVE_SMS) from the Android system and will request these permissions upon startup.
10 | S2MSP does not need any other permissions. This ensures the integrity and security of S2MSP.
11 |
12 | The API to integrate a third party application with S2MSP is available in Maven-Central.
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_android_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/it/full_description.txt:
--------------------------------------------------------------------------------
1 | Poiché Google limita fortemente l'uso delle autorizzazioni SMS per le applicazioni nel Play Store, S2MSP fornisce un'API per le app di terze parti per inviare e ricevere SMS a numeri di telefono specifici tramite un proxy SMS sicuro.
2 |
3 | S2MSP agisce come un firewall locale per la comunicazione SMS.
4 |
5 | Qualsiasi app che desideri inviare/ricevere SMS a un numero di telefono può registrarsi con S2MSP. S2MSP chiede all'utente l'autorizzazione indipendentemente dal fatto che l'app richiedente sia autorizzata a inviare/ricevere SMS da e verso i numeri di telefono richiesti.
6 | Tutti gli SMS scambiati con app di terze parti sono fortemente crittografati.
7 |
8 | S2SMP stesso richiede autorizzazioni SMS (SEND_SMS e RECEIVE_SMS) dal sistema Android e richiede queste autorizzazioni all'avvio.
9 | S2MSP non richiede ulteriori autorizzazioni. Ciò garantisce l'integrità e la sicurezza di S2MSP.
10 |
11 | L'API per integrare un'applicazione di terze parti con S2MSP è disponibile in Maven-Central.
--------------------------------------------------------------------------------
/fastlane/metadata/android/de/full_description.txt:
--------------------------------------------------------------------------------
1 | Da Google die Verwendung von SMS-Berechtigungen für Anwendungen im Play-Store stark einschränkt, bietet S2MSP eine API für Apps von Drittanbietern zum Senden und Empfangen von SMS an bestimmte Telefonnummern über einen sicheren SMS-Proxy.
2 |
3 | S2MSP fungiert wie eine lokale Firewall für die SMS-Kommunikation.
4 |
5 | Jede App, die SMS an eine Telefonnummer senden/empfangen möchte, kann sich bei S2MSP registrieren. S2MSP fragt den Benutzer um Erlaubnis, ob die anfragende App SMS von und an die angeforderten Telefonnummern senden/empfangen darf oder nicht.
6 | Alle SMS, die mit Apps von Drittanbietern ausgetauscht werden, sind stark verschlüsselt.
7 |
8 | S2SMP selbst benötigt SMS-Berechtigungen (SEND_SMS und RECEIVE_SMS) vom Android-System und fordert diese Berechtigungen beim Start an.
9 | S2MSP benötigt keine weiteren Berechtigungen. Dies gewährleistet die Integrität und Sicherheit von S2MSP.
10 |
11 | Die API zur Integration einer Drittanbieteranwendung mit S2MSP ist in Maven-Central verfügbar.
--------------------------------------------------------------------------------
/securesmsproxyapi/src/test/java/com/github/frimtec/android/securesmsproxyapi/utility/RandomTest.java:
--------------------------------------------------------------------------------
1 | package com.github.frimtec.android.securesmsproxyapi.utility;
2 |
3 |
4 | import static org.assertj.core.api.Assertions.assertThat;
5 | import static org.junit.jupiter.api.Assertions.assertThrows;
6 |
7 | import org.junit.jupiter.api.Test;
8 |
9 |
10 | class RandomTest {
11 |
12 | @Test
13 | void nextString() {
14 | String random = Random.nextString(10);
15 | assertThat(random.length()).isEqualTo(10);
16 | assertThat(random).isNotEqualTo(Random.nextString(10));
17 | }
18 |
19 | @Test
20 | void nextBytes() {
21 | byte[] random = Random.nextBytes(10);
22 | assertThat(random.length).isEqualTo(10);
23 | assertThat(random).isNotEqualTo(Random.nextBytes(10));
24 | }
25 |
26 | @Test
27 | void nextStringToSmallLength() {
28 | assertThrows(IllegalArgumentException.class, () -> Random.nextString(0));
29 | }
30 |
31 | @Test
32 | void nextBytesToSmallLength() {
33 | assertThrows(IllegalArgumentException.class, () -> Random.nextBytes(0));
34 | }
35 | }
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/full_description.txt:
--------------------------------------------------------------------------------
1 | Étant donné que Google limite considérablement l'utilisation des autorisations SMS pour les applications du Play Store, S2MSP fournit une API permettant aux applications tierces d'envoyer et de recevoir des SMS vers des numéros de téléphone spécifiques via un proxy SMS sécurisé.
2 |
3 | S2MSP agit comme un pare-feu local pour la communication SMS.
4 |
5 | Toute application qui souhaite envoyer/recevoir des SMS vers un numéro de téléphone peut s'inscrire auprès de S2MSP. S2MSP demande à l'utilisateur l'autorisation d'autoriser ou non l'application demandeuse à envoyer/recevoir des SMS depuis et vers les numéros de téléphone demandés.
6 | Tous les SMS échangés avec des applications tierces sont fortement cryptés.
7 |
8 | S2SMP lui-même nécessite des autorisations SMS (SEND_SMS et RECEIVE_SMS) du système Android et demande ces autorisations au démarrage.
9 | S2MSP ne nécessite aucune autre autorisation. Cela garantit l'intégrité et la sécurité de S2MSP.
10 |
11 | L'API pour intégrer une application tierce avec S2MSP est disponible dans Maven-Central.
--------------------------------------------------------------------------------
/securesmsproxyapi/src/main/java/com/github/frimtec/android/securesmsproxyapi/utility/Random.java:
--------------------------------------------------------------------------------
1 | package com.github.frimtec.android.securesmsproxyapi.utility;
2 |
3 | import java.security.SecureRandom;
4 |
5 | public class Random {
6 |
7 | private static final char[] SYMBOLS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".toCharArray();
8 | private static final java.util.Random RANDOM = new SecureRandom();
9 |
10 | /**
11 | * Generates a random string.
12 | */
13 | public static String nextString(int length) {
14 | if (length < 1) {
15 | throw new IllegalArgumentException("Length must be bigger than 0");
16 | }
17 | char[] buffer = new char[length];
18 | for (int i = 0; i < buffer.length; i++) {
19 | buffer[i] = SYMBOLS[RANDOM.nextInt(SYMBOLS.length)];
20 | }
21 | return new String(buffer);
22 | }
23 |
24 | public static byte[] nextBytes(int length) {
25 | if (length < 1) {
26 | throw new IllegalArgumentException("Length must be bigger than 0");
27 | }
28 | byte[] buffer = new byte[length];
29 | RANDOM.nextBytes(buffer);
30 | return buffer;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/frimtec/android/securesmsproxy/ui/BaseActivity.java:
--------------------------------------------------------------------------------
1 | package com.github.frimtec.android.securesmsproxy.ui;
2 |
3 | import android.os.Bundle;
4 |
5 | import androidx.activity.EdgeToEdge;
6 | import androidx.appcompat.app.AppCompatActivity;
7 | import androidx.core.graphics.Insets;
8 | import androidx.core.view.ViewCompat;
9 | import androidx.core.view.WindowInsetsCompat;
10 |
11 | public abstract class BaseActivity extends AppCompatActivity {
12 |
13 | @Override
14 | protected final void onCreate(Bundle savedInstanceState) {
15 | EdgeToEdge.enable(this);
16 | super.onCreate(savedInstanceState);
17 | doOnCreate(savedInstanceState);
18 | ViewCompat.setOnApplyWindowInsetsListener(
19 | findViewById(android.R.id.content),
20 | (view, windowInsets) -> {
21 | Insets insets = windowInsets.getInsets(
22 | WindowInsetsCompat.Type.systemBars() |
23 | WindowInsetsCompat.Type.displayCutout()
24 | );
25 | view.setPadding(insets.left, insets.top, insets.right, insets.bottom);
26 | return WindowInsetsCompat.CONSUMED;
27 | });
28 | }
29 |
30 | abstract void doOnCreate(Bundle savedInstanceState);
31 | }
32 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/application_rule_header.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
18 |
19 |
30 |
31 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_language_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/frimtec/android/securesmsproxy/service/SmsManagerResolver.java:
--------------------------------------------------------------------------------
1 | package com.github.frimtec.android.securesmsproxy.service;
2 |
3 | import android.content.Context;
4 | import android.os.Build;
5 | import android.telephony.SmsManager;
6 |
7 | import androidx.annotation.RequiresApi;
8 |
9 | @FunctionalInterface
10 | interface SmsManagerResolver {
11 |
12 | SmsManager resolve(Context context, Integer subscriptionId);
13 |
14 | static SmsManagerResolver create() {
15 | return Build.VERSION.SDK_INT >= Build.VERSION_CODES.S ?
16 | resolverForAndroidFromS() : resolverForAndroidBeforeS();
17 |
18 | }
19 |
20 | @RequiresApi(api = Build.VERSION_CODES.S)
21 | static SmsManagerResolver resolverForAndroidFromS() {
22 | return (context, subscriptionId) -> {
23 | SmsManager defaultSmSManager = context.getSystemService(SmsManager.class);
24 | return subscriptionId == null ? defaultSmSManager :
25 | defaultSmSManager.createForSubscriptionId(subscriptionId);
26 | };
27 | }
28 |
29 | static SmsManagerResolver resolverForAndroidBeforeS() {
30 | return (context, subscriptionId) ->
31 | subscriptionId == null ? context.getSystemService(SmsManager.class) :
32 | // there is no alternative for this deprecated API before Android S
33 | SmsManager.getSmsManagerForSubscriptionId(subscriptionId);
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/.idea/jarRepositories.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
Eine Dokumentation für die Benutzung von Secure SMS Proxy findest Du hier: Anleitung.
]]>
8 | Haftungsausschluss
Der Autor übernimmt keine Verantwortung, gibt keinerlei Garantie bei der Nutzung der Anwendung.
Die Anwendung ist kostenlos. Der Quellcode steht als Open-Source unter der Apache 2.0 Lizenz zur Verfügung.
]]>
9 | Nein
10 | Ja
11 | Bist Du sicher?
12 | Eintrag wurde gelöscht.
13 | Benötigte Berechtigung:
14 | SMS Senden/Empfangen
15 | Damit S2MSP funktioniert, ist die Berechtigung zum Senden und Empfangen von SMS notwendig.
16 | S2MSP ermöglicht es anderen Applikationen mit SMS zu kommunizieren. Dies nur für vorher berechtigte Telefonnummern.
17 | Der SMS Austausch zwischen S2MSP und berechtigten Applikationen, erfolgt ausschließlich verschlüsselt.
18 | S2MSP verwendet keine weiteren Rechte, um die Sicherheit und Integrität zu gewährleisten.
19 | Aufgrund neuer Sideloading-Einschränkungen auf Android 15 und höher muss \"Eingeschränkte Einstellungen zulassen\" im S2MSP-Dialogfeld \"App-Info\" aktiviert sein, bevor die Berechtigungen erteilt werden können!
20 | Secure SMS Proxy Crash-Report
21 | S2MSP wurde unerwarteterweise beendet. Bitte sende den Crash-Report via E-Mail an den Autor, um die Stabilität von S2MSP zu erhöhen.
22 | Senden
23 | Löschen
24 | Applikation
25 | Erlaubte Nummern
26 | Die genannte Applikation verlangt die Berechtigung SMS via S2MSP zu empfangen und zu senden, eingeschränkt auf folgende Telefonnummern:
27 | Ablehnen
28 | Erlauben
29 | Berechtigung erhalten.
30 | Berechtigung NICHT erhalten!
31 | Applikationslogo
32 | Logo der App, die SMS-Berechtigungen beantragt
33 | S2MSP App-Logo
34 | App-Sprache
35 | Systemstandard
36 | Die Akku-Optimierung ist aktiv!
37 | Um auf allen Geräten zuverlässig zu funktionieren, sollte S2MSP mit ausgeschalteter Akku-Optimierung laufen.
38 |
39 |
--------------------------------------------------------------------------------
/securesmsproxyapi/src/main/java/com/github/frimtec/android/securesmsproxyapi/utility/Aes.java:
--------------------------------------------------------------------------------
1 | package com.github.frimtec.android.securesmsproxyapi.utility;
2 |
3 | import java.nio.charset.StandardCharsets;
4 | import java.security.InvalidAlgorithmParameterException;
5 | import java.security.InvalidKeyException;
6 | import java.security.NoSuchAlgorithmException;
7 |
8 | import javax.crypto.BadPaddingException;
9 | import javax.crypto.Cipher;
10 | import javax.crypto.IllegalBlockSizeException;
11 | import javax.crypto.NoSuchPaddingException;
12 | import javax.crypto.spec.IvParameterSpec;
13 | import javax.crypto.spec.SecretKeySpec;
14 |
15 | public final class Aes implements AesOperations {
16 |
17 | public static final String SEPARATOR = ";";
18 | private static final String ALGORITHM_AES = "AES/CBC/PKCS5Padding";
19 | private static final String HEX = "0123456789ABCDEF";
20 |
21 | private final SecretKeySpec secretKey;
22 |
23 | public Aes(String secret24Bytes) {
24 | try {
25 | byte[] bytes = secret24Bytes.getBytes(StandardCharsets.UTF_8);
26 | this.secretKey = new SecretKeySpec(bytes, "AES");
27 | } catch (Exception e) {
28 | throw new RuntimeException("Cannot create AES key", e);
29 | }
30 | }
31 |
32 | public String encrypt(String cleartext) {
33 | byte[] initVector = Random.nextString(16).getBytes(StandardCharsets.UTF_8);
34 | IvParameterSpec spec = new IvParameterSpec(initVector);
35 | return toHex(encrypt(spec, cleartext.getBytes())) + SEPARATOR + toHex(initVector);
36 | }
37 |
38 | public String decrypt(String encrypted) {
39 | String[] split = encrypted.split(SEPARATOR);
40 | if (split.length != 2) {
41 | throw new RuntimeException("Encrypted value in wrong format");
42 | }
43 | return new String(decrypt(new IvParameterSpec(toByte(split[1])), toByte(split[0])));
44 | }
45 |
46 | private byte[] encrypt(IvParameterSpec spec, byte[] clear) {
47 | try {
48 | Cipher cipher = Cipher.getInstance(ALGORITHM_AES);
49 | cipher.init(Cipher.ENCRYPT_MODE, secretKey, spec);
50 | return cipher.doFinal(clear);
51 | } catch (BadPaddingException | IllegalBlockSizeException | NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | InvalidAlgorithmParameterException e) {
52 | throw new RuntimeException("Cannot create encrypt", e);
53 | }
54 | }
55 |
56 | private byte[] decrypt(IvParameterSpec spec, byte[] encrypted) {
57 | try {
58 | Cipher cipher = Cipher.getInstance(ALGORITHM_AES);
59 | cipher.init(Cipher.DECRYPT_MODE, secretKey, spec);
60 | return cipher.doFinal(encrypted);
61 | } catch (BadPaddingException | IllegalBlockSizeException | NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | InvalidAlgorithmParameterException e) {
62 | throw new RuntimeException("Cannot decrypt", e);
63 | }
64 | }
65 |
66 | private static byte[] toByte(String hexString) {
67 | int len = hexString.length() / 2;
68 | byte[] result = new byte[len];
69 | for (int i = 0; i < len; i++) {
70 | result[i] = Integer.valueOf(hexString.substring(2 * i, 2 * i + 2), 16).byteValue();
71 | }
72 | return result;
73 | }
74 |
75 | private static String toHex(byte[] buf) {
76 | if (buf == null) {
77 | return "";
78 | }
79 | StringBuffer result = new StringBuffer(2 * buf.length);
80 | for (byte b : buf) {
81 | appendHex(result, b);
82 | }
83 | return result.toString();
84 | }
85 |
86 | private static void appendHex(StringBuffer sb, byte b) {
87 | sb.append(HEX.charAt((b >> 4) & 0x0f)).append(HEX.charAt(b & 0x0f));
88 | }
89 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/github/frimtec/android/securesmsproxy/service/IsAllowedPhoneNumberContentProvider.java:
--------------------------------------------------------------------------------
1 | package com.github.frimtec.android.securesmsproxy.service;
2 |
3 | import static com.github.frimtec.android.securesmsproxy.state.DbHelper.TABLE_APPLICATION_COLUMN_NAME;
4 | import static com.github.frimtec.android.securesmsproxy.state.DbHelper.TABLE_RULE_COLUMN_ALLOWED_PHONE_NUMBER;
5 | import static com.github.frimtec.android.securesmsproxyapi.IsAllowedPhoneNumberContract.ALLOWED_PHONE_NUMBERS_PATH;
6 |
7 | import android.content.ContentProvider;
8 | import android.content.ContentValues;
9 | import android.content.Context;
10 | import android.content.UriMatcher;
11 | import android.database.Cursor;
12 | import android.database.sqlite.SQLiteDatabase;
13 | import android.net.Uri;
14 |
15 | import androidx.annotation.NonNull;
16 | import androidx.annotation.Nullable;
17 |
18 | import com.github.frimtec.android.securesmsproxy.state.DbHelper;
19 | import com.github.frimtec.android.securesmsproxyapi.IsAllowedPhoneNumberContract;
20 |
21 | import java.util.function.Function;
22 |
23 | public class IsAllowedPhoneNumberContentProvider extends ContentProvider {
24 |
25 | private static final UriMatcher URI_MATCHER = new UriMatcher(UriMatcher.NO_MATCH);
26 |
27 | static {
28 | URI_MATCHER.addURI(IsAllowedPhoneNumberContract.AUTHORITY, ALLOWED_PHONE_NUMBERS_PATH + "/*", 1);
29 | }
30 |
31 |
32 | private final Function databaseFactory;
33 | private final Function uriMatcher;
34 | private SQLiteDatabase db;
35 |
36 |
37 | public IsAllowedPhoneNumberContentProvider() {
38 | //noinspection resource
39 | this((context) -> new DbHelper(context).getReadableDatabase(), (uri) -> URI_MATCHER.match(uri) == 1);
40 | }
41 |
42 | IsAllowedPhoneNumberContentProvider(Function databaseFactory, Function uriMatcher) {
43 | this.databaseFactory = databaseFactory;
44 | this.uriMatcher = uriMatcher;
45 | }
46 |
47 | @Override
48 | public boolean onCreate() {
49 | return true;
50 | }
51 |
52 | @Nullable
53 | public Cursor query(
54 | @NonNull Uri uri,
55 | String[] projection,
56 | String selection,
57 | String[] selectionArgs,
58 | String sortOrder) {
59 | if (!this.uriMatcher.apply(uri)) {
60 | throw new IllegalArgumentException("Provided uri not supported");
61 | }
62 |
63 | if (this.db == null || !this.db.isOpen()) {
64 | this.db = this.databaseFactory.apply(getContext());
65 | }
66 |
67 | return this.db.query(
68 | DbHelper.VIEW_APPLICATION_RULE,
69 | new String[]{TABLE_RULE_COLUMN_ALLOWED_PHONE_NUMBER},
70 | TABLE_APPLICATION_COLUMN_NAME + "=?",
71 | new String[]{uri.getLastPathSegment()},
72 | null, null, null
73 | );
74 | }
75 |
76 | @Nullable
77 | @Override
78 | public String getType(@NonNull Uri uri) {
79 | return "vnd.android.cursor.dir/vnd.com.github.frimtec.android.securesmsproxy.provider.allowed_phone_numbers";
80 | }
81 |
82 | @Nullable
83 | @Override
84 | public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
85 | throw new UnsupportedOperationException("Not supported");
86 | }
87 |
88 | @Override
89 | public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
90 | throw new UnsupportedOperationException("Not supported");
91 | }
92 |
93 | @Override
94 | public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) {
95 | throw new UnsupportedOperationException("Not supported");
96 | }
97 | }
98 |
--------------------------------------------------------------------------------
/app/src/main/res/values-it/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Altro
4 | Altro
5 | Ricaricare
6 | Chiaro
7 | Documentazione
Un manuale per l\'uso di Secure SMS Proxy è disponibile qui: Manuale.
]]>
8 | Disclaimer
L\'autore non si assume alcuna responsabilità, non fornisce alcuna garanzia durante l\'utilizzo dell\'applicazione.
L\'applicazione è gratuita. Il codice sorgente è disponibile come open source sotto la licenza Apache 2.0.
]]>
9 | No
10 | Si
11 | Sei sicuro?
12 | La voce è stata cancellata.
13 | Permesso richiesto:
14 | Invio/ricezione SMS
15 | S2MSP funziona solo con le autorizzazioni per inviare e ricevere SMS.
16 | S2MSP fornisce la comunicazione SMS ad altre applicazioni per numeri di telefono precedentemente autorizzati.
17 | Lo scambio di SMS tra S2MSP e le applicazioni autorizzate è sempre crittografato.
18 | S2MSP non utilizza altre autorizzazioni per garantire la sicurezza e l\'integrità.
19 | A causa delle nuove restrizioni sul sideload su Android 15 e versioni successive, è necessario abilitare \"Consenti impostazioni con limitatzioni\" nella finestra di dialogo \"Informazioni app\" di S2MSP prima che le autorizzazioni possano essere concesse!
20 | Rapporto di arresto anomalo del proxy SMS sicuro
21 | S2MSP è stato arrestato in modo imprevisto. Per migliorare la stabilità di S2MSP, inviare il rapporto di arresto anomalo all\'autore via email.
22 | Inviare
23 | Elimina
24 | Applicazione
25 | Numeri consentiti
26 | L\'applicazione indicata richiede le autorizzazioni per inviare e ricevere SMS tramite S2MSP limitate ai seguenti numeri di telefono:
27 | Rifiutare
28 | Permettere
29 | L\'autorizzazione è stata accettata.
30 | L\'autorizzazione è stata rifiutata!
31 | Logo dell\'applicazione
32 | Logo dell\'app che richiede autorizzazioni SMS
33 | Logo dell\'app S2MSP
34 | Lingua delle app
35 | Predefinita di sistema
36 | L\'ottimizzazione della batteria è attiva!
37 | Per funzionare in modo affidabile su tutti i dispositivi, S2MSP dovrebbe essere eseguito con l\'ottimizzazione della batteria disattivata.
38 |
39 |
--------------------------------------------------------------------------------
/app/src/main/res/values-fr/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | À propos
4 | À propos
5 | Rafraîchir
6 | Dégager
7 | Documentation
Les instructions d\'utilisation de Secure SMS Proxy sont disponibles ici: Manuel.
]]>
8 | Clause de non-responsabilité
L\'auteur n\'assume aucune responsabilité, ne donne aucune garantie lors de l\'utilisation de l\'application.
L\'application est gratuite. Le code source est disponible en open source sous la licence Apache 2.0.
]]>
9 | Non
10 | Oui
11 | Êtes-vous sûr?
12 | L\'entrée a été supprimée.
13 | Autorisation requise:
14 | Envoi/réception de SMS
15 | S2MSP ne fonctionne qu\'avec les autorisations d\'envoi et de réception de SMS.
16 | S2MSP fournit une communication SMS à d\'autres applications pour les numéros de téléphone préalablement autorisés.
17 | L\'échange de SMS entre S2MSP et les applications autorisées est toujours crypté.
18 | S2MSP n\'utilise aucune autre autorisation pour assurer la sécurité et l\'intégrité.
19 | En raison des nouvelles restrictions de chargement latéral sur Android 15 et versions ultérieures, \"Autoriser les paramètres restreints\" doit être activé dans la boîte de dialogue S2MSP \"Infos sur l\'appli\" avant que les autorisations puissent être accordées!
20 | Rapport d\'incident du proxy SMS sécurisé
21 | S2MSP a planté de manière inattendue. Pour améliorer la stabilité de S2MSP, veuillez envoyer le rapport d\'incident à l\'auteur par message électronique.
22 | Envoyer
23 | Effacer
24 | Application
25 | Numéros autorisés
26 | L\'application indiquée demande des autorisations pour envoyer et recevoir des SMS via S2MSP limités aux numéros de téléphone suivants:
27 | Rejeter
28 | Permettre
29 | L\'autorisation a été acceptée.
30 | L\'autorisation a été refusée!
31 | Logo de l\'application
32 | Logo de l\'application qui demande les autorisations SMS
33 | Logo de l\'application S2MSP
34 | Langue de l\'appli
35 | Défaut du système
36 | L\'optimisation de la batterie est activée!
37 | Pour fonctionner de manière fiable sur tous les appareils, S2MSP doit fonctionner avec l\'optimisation de la batterie désactivée.
38 |
39 |
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | About
4 | Logcat
5 | About
6 | Logcat
7 | Refresh
8 | Clear
9 | Documentation
A manual for the use of Secure SMS Proxy can be found here: Manual.
]]>
10 | Disclaimer
The author assumes no responsibility, gives no guarantee when using the application.
The application is free. The source code is available as open source under the Apache 2.0 license.