89d677e07d
OpenEuiccService: Don't ignore the only removable eUICC ( #358 )
...
Build Debug APKs / build-debug (push) Successful in 6m58s
`shouldIgnoreSlot()` returns **true for slots to ignore**. On devices without an internal eUICC, its own comment says it should *expose* the first removable eUICC to the system:
```kotlin
// Otherwise, we can report at least one removable eUICC to the system without confusing it too much.
telephonyManager.uiccCardsInfoCompat.firstOrNull { it.isEuicc }?.physicalSlotIndex == physicalSlotId
```
The comparison is inverted, so exactly that slot is ignored. Every `EuiccService` call on it (`onGetEid`, `onGetDownloadableSubscriptionMetadata`, `onDownloadSubscription`, `onSwitchToSubscription…`) returns `RESULT_FIRST_USER` within a few milliseconds.
**How it showed up:** on a Samsung Galaxy S21 (SM-G991B, LineageOS 23.2, OpenEUICC as system LPA), the Samsung RIL reports the built-in eUICC as *removable* (`isRemovable=true`), so `hasInternalEuicc` is false. `EuiccManager` downloads from carrier apps failed immediately. The log showed `OpenEuiccService: onGetDownloadableSubscriptionMetadata slotId=1 portIndex=0 ...`, and 11 ms later the call returned an error to EuiccController without a single APDU being sent (the app showed its generic install error). Meanwhile the same eUICC worked fine inside the OpenEUICC UI, which doesn't go through `shouldIgnoreSlot()`.
**Fix:** `==` → `!=`.
**Testing:** with the fix, the platform download flow reaches the eUICC (metadata → carrier-privilege check → download). On 2026-09-27 a travel-eSIM provider's app installed its profile end to end through `EuiccManager` on that phone (the app-side changes are in a separate PR).
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Reviewed-on: #358
Co-authored-by: Macktherealonereally <macdev@mackthessd.org>
Co-committed-by: Macktherealonereally <macdev@mackthessd.org>
2026-09-28 15:43:01 +02:00
7c05c06d14
feat: Make default ES10x MSS overlayable ( #357 )
...
Build Debug APKs / build-debug (push) Successful in 7m11s
Expose config_es10x_mss_default so device trees can raise MSS where small LoadBPP STORE DATA chains fail.
Change-Id: I924e21a3509212b2c41393c57c9ba4bb2366f193
Co-authored-by: Josip Kelecic <kelecicj@gmail.com>
Reviewed-on: #357
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-09-27 15:26:21 +02:00
49e498d4cb
chore: Also upgrade setup-android@v4
Build Debug APKs / build-debug (push) Successful in 6m55s
2026-09-19 08:30:23 -04:00
424639039c
chore: Upgrade to setup-java@v4
Build Debug APKs / build-debug (push) Failing after 53s
2026-09-19 08:26:48 -04:00
28aad57904
chore: update submodules ( #356 )
...
Build Debug APKs / build-debug (push) Failing after 1m3s
thank @adaasch (https://github.com/estkme-group/lpac/pull/457 )
Reviewed-on: #356
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-09-17 14:33:14 +02:00
9a537a2516
Set up tests for download wizard and fix another backChannel-related regression ( #355 )
...
Build Release / release (push) Successful in 7m6s
Build Debug APKs / build-debug (push) Failing after 52s
It is time we set up tests. At least dumb things like this should not happen again while we refactor for more features in the future. Currently this is limited to the download wizard, but as we address e.g. #347 more should be coming.
Also note that these tests are not e2e and are limited to everything _above_ `lpac-jni`. True e2e tests are much more expensive to set up, unfortunately, and cannot be run easily on CI due to needing a real eSIM chip.
Assisted-By: deepseek-v4-flash (llama.cpp)
Reviewed-on: #355
2026-09-02 02:40:53 +02:00
c1ec8264c3
fix: Download fragment should always communicate a true to the back channel
...
Build Debug APKs / build-debug (push) Successful in 6m55s
Build Release / release (push) Successful in 7m41s
duh....
Fixes #351
2026-08-24 22:57:45 -04:00
6c983d356c
Handle invalid OMAPI channel during profile switch ( #350 )
...
Build Debug APKs / build-debug (push) Successful in 3m59s
## Summary
Handle Samsung’s `IllegalArgumentException` when an OMAPI logical channel has already been invalidated during eSIM profile switching.
## Problem
On Samsung devices with removable eSIM adapters, switching profiles can invalidate the OMAPI logical channel. During reconnect, OpenEUICC attempts to close that channel again, causing:
```text
java.lang.IllegalArgumentException:
iccCloseLogicalChannel: invalid argument
```
This aborts the reconnect task and leaves the app stuck on the loading screen.
Relevant stack trace:
```text
at android.se.omapi.Channel.close(...)
at im.angry.openeuicc.core.OmapiApduInterface.logicalChannelClose(...)
at net.typeblog.lpac_jni.LpacJni.euiccFini(Native Method)
at im.angry.openeuicc.core.LocalProfileAssistantImpl.close(...)
at im.angry.openeuicc.core.EuiccChannelImpl.close(...)
at im.angry.openeuicc.core.DefaultEuiccChannelManager.waitForReconnect(...)
```
## Changes
- Catch `IllegalArgumentException` from `Channel.close()`.
- Always remove the channel handle in a `finally` block.
- Allow the reconnect flow to continue when Samsung has already closed the channel.
## Testing
- `:app-unpriv:assembleDebug` builds successfully.
- Hardware validation was performed using verbose logs from a Samsung SM-S908E running Android 16/API 36.
- I cannot test the locally signed APK directly with the adapter because the adapter authorizes only the official signing certificate. A maintainer-signed test APK is therefore needed for final hardware verification.
Related issue: #349
Co-authored-by: gekjunxu <E1122727@u.nus.edu>
Reviewed-on: #350
Reviewed-by: septs <github@septs.pw>
Co-authored-by: gekjunxu <gek.junxu@gmail.com>
Co-committed-by: gekjunxu <gek.junxu@gmail.com>
2026-08-22 22:41:38 +02:00
62c27cf1d8
Switch back to v2 after upgrading forgejo runner
Build Release / release (push) Successful in 4m19s
Build Debug APKs / build-debug (push) Successful in 4m0s
2026-08-16 12:26:37 -04:00
abdc233899
Try adding "TBD" to title..
Build Debug APKs / build-debug (push) Has been cancelled
Build Release / release (push) Failing after 4m34s
2026-08-16 12:16:46 -04:00
0aaf515195
Ok, now we go back to v1 with the title set... hopefully this works
Build Debug APKs / build-debug (push) Has been cancelled
Build Release / release (push) Failing after 4m15s
2026-08-16 12:07:14 -04:00
f2a0c96e23
use the github context?
Build Debug APKs / build-debug (push) Successful in 4m45s
Build Release / release (push) Failing after 4m55s
2026-08-16 12:01:22 -04:00
d3287b75f3
well I guess we need forgejo-release v2...
Build Debug APKs / build-debug (push) Has been cancelled
Build Release / release (push) Has been cancelled
2026-08-16 11:56:56 -04:00
62762f51ef
chore: Revert to forgejo-release v1 for now and just set title
Build Debug APKs / build-debug (push) Has been cancelled
Build Release / release (push) Failing after 4m10s
2026-08-16 11:49:45 -04:00
ab45ecffca
chore: Uprev forgejo-release to v2
Build Debug APKs / build-debug (push) Successful in 4m42s
Build Release / release (push) Failing after 4m55s
2026-08-16 11:39:43 -04:00
8bfff10fc6
refactor: Merge back-communication channels with foreground task subscribers
...
Build Debug APKs / build-debug (push) Successful in 5m40s
Build Release / release (push) Failing after 5m46s
...and make them ForegroundTaskHandles
2026-08-03 21:24:47 -04:00
2f05d4e9a7
fix: androidx.datastore is now part of AOSP prebuilts
Build Debug APKs / build-debug (push) Successful in 6m37s
2026-08-03 18:38:55 -04:00
8ae30397d0
app-deps: Fix Android.bp
Build Debug APKs / build-debug (push) Successful in 6m25s
2026-08-03 18:29:17 -04:00
95acc56c58
chore: Bump dependency versions
Build Debug APKs / build-debug (push) Successful in 6m16s
2026-08-03 18:17:43 -04:00
d452fc03bb
chore: Bump dependency versions
...
Either matching AOSP 17 or slightly lower due to AOSP 17 including alpha
releases.
2026-08-03 18:04:07 -04:00
4794df9d7b
chore: Update SDK to 37 and AGP to 9.3.0
Build Debug APKs / build-debug (push) Successful in 4m9s
2026-08-03 17:54:09 -04:00
2a85b8dad6
lpac-jni: Fix Android build
...
Build Debug APKs / build-debug (push) Successful in 8m31s
Android.bp did not include androidx kotlin components
2026-07-19 21:18:26 -04:00
d9c89d311f
download_guard -> deep_link_confirmation, and i18n updates
Build Debug APKs / build-debug (push) Successful in 4m18s
2026-07-04 20:55:17 -04:00
f99bed4327
feat: priv official website preference
Build Debug APKs / build-debug (push) Successful in 4m18s
2026-07-04 16:58:35 -04:00
69f4b32568
i18n: Update new strings
Build Debug APKs / build-debug (push) Successful in 4m16s
2026-07-04 16:29:12 -04:00
34f91ad1ac
docs: add deep link ( #344 )
...
Build Debug APKs / build-debug (push) Successful in 4m29s
Reviewed-on: #344
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-07-04 20:55:12 +02:00
c1e5603aed
feat: improve deep link ( #345 )
...
Build Debug APKs / build-debug (push) Has been cancelled
Reviewed-on: #345
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-07-04 20:54:44 +02:00
1501e9dfd2
feat: http proxy ( #337 )
...
Build Debug APKs / build-debug (push) Has been cancelled
Reviewed-on: #337
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-07-04 20:53:55 +02:00
891fa72e6a
feat: locale display ( #340 )
...
Build Debug APKs / build-debug (push) Has been cancelled
Reviewed-on: #340
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-07-04 20:50:59 +02:00
9089f249e0
feat: low power warning on download wizard ( #336 )
...
Build Debug APKs / build-debug (push) Has been cancelled
Reviewed-on: #336
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-07-04 20:50:44 +02:00
b30b5292a9
chore: expose force use telephony manager api as advanced options ( #326 )
...
Build Debug APKs / build-debug (push) Has been cancelled
Reviewed-on: #326
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-07-04 20:49:48 +02:00
6571108be6
fix: typo ( #338 )
...
Build Debug APKs / build-debug (push) Successful in 4m15s
Reviewed-on: #338
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-06-04 23:53:29 +02:00
2cd034b7aa
fix: confirmation code hint, floating and input hint inconsistent ( #335 )
...
Build Debug APKs / build-debug (push) Successful in 4m42s
Reviewed-on: #335
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-05-03 13:56:16 +02:00
da34c32187
fix: resolve #329 ( #330 )
...
Build Debug APKs / build-debug (push) Successful in 4m24s
Reviewed-on: #330
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-04-17 14:35:08 +02:00
f704e39136
fix: chinese typo ( #327 )
...
Build Debug APKs / build-debug (push) Successful in 4m25s
必需 -> 必须
Reviewed-on: #327
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-04-08 00:27:31 +02:00
1c70ca7a70
TPDU support, take 2 ( #324 )
...
Build Debug APKs / build-debug (push) Successful in 5m49s
Build Release / release (push) Successful in 5m50s
We now know that some readers won't actually work with TPDU even if they advertise it. So, reintroduce the changes but now we only enable if the reader is a known one that requires TPDU or if the user enables it via a setting.
Co-authored-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-on: #324
2026-03-25 22:44:39 +01:00
720cb7e707
chore: unified alert dialog style ( #322 )
...
Build Debug APKs / build-debug (push) Successful in 4m29s
Reviewed-on: #322
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-03-24 01:54:04 +01:00
e1d61b3c2a
feat: tolerant parsing of LPA string ( #320 )
...
Build Debug APKs / build-debug (push) Successful in 4m21s
Reviewed-on: #320
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-03-22 17:10:24 +01:00
9143d33716
Keep Android Open
Build Debug APKs / build-debug (push) Successful in 4m34s
2026-03-19 22:53:38 -04:00
6dc9cea15f
Revert "Support TPDU-based CCID readers ( #295 )"
...
Build Release / release (push) Successful in 4m21s
Build Debug APKs / build-debug (push) Failing after 15s
This reverts commit 2cf2d9490a .
Temporary revert due to known regressions. Will re-introduce later with
investigation.
2026-03-17 21:44:42 -04:00
3926108ea6
i18n: More fixes
Build Debug APKs / build-debug (push) Successful in 5m47s
Build Release / release (push) Successful in 5m53s
2026-03-15 11:42:27 -04:00
aeb837b50c
i18n: Update STK menu shortcut translation
Build Debug APKs / build-debug (push) Successful in 4m20s
2026-03-15 11:34:03 -04:00
297880fa53
feat: Optional confirmation signal for profileDownloadTask
...
Build Debug APKs / build-debug (push) Successful in 4m38s
This is to prepare for confirmation UI and EuiccService preview impl.
2026-03-14 21:00:21 -04:00
0f369b3b12
fix: Pass logicalSlotId to DownloadWizardActivity, not slotId
...
Build Debug APKs / build-debug (push) Successful in 4m28s
This is confusing and we should probably fix this eventually.
2026-03-14 14:48:46 -04:00
ba45a7eb7f
refactor: Pass RemoteProfileInfo into ProfileDownloadState
...
Build Debug APKs / build-debug (push) Successful in 4m26s
...instead of using a different callback. This will help us hook this up
into EuiccService properly later (we still need a way for EuiccService
to send events back to EuiccChannelManagerService)
2026-03-14 14:38:12 -04:00
6837aba211
feat: language switcher with platform signed on privileged
Build Debug APKs / build-debug (push) Successful in 4m59s
2026-03-09 20:43:51 -04:00
eec2a105ff
Trigger new actions run
Build Debug APKs / build-debug (push) Successful in 7m33s
2026-03-09 09:47:49 -04:00
d4855f130c
lpac-jni: Export profile metadata during download and allow cancellation at that point
...
Build Debug APKs / build-debug (push) Successful in 9m15s
(Shoutout to Mark Gallagher <mark@fts.scot> who in #313 introduced
a similar feature. Note that we still have not exposed profile
installation result here, but what's really useful would only be the
sequence number for us)
This leaves a TODO to actually hook up the UI to allow cancellation
after metadata is displayed. But most of this is intended to support
EuiccService APIs to allow apps to download profiles directly, which
requires the use of profilePolicyRules (not done yet; lpac pending) in
the preview metadata.
2026-03-08 19:31:39 -04:00
2108696646
lpac-jni: Upgrade lpac ( #315 )
...
Build Debug APKs / build-debug (push) Successful in 6m58s
Upstream no longer bundles cjson so we pull it in ourselves. Android.bp is also updated for AOSP builds.
Reviewed-on: #315
2026-03-08 22:20:34 +01:00
6210c81201
ui: Switch to MODE_SCROLLABLE when tab width is about to overflow
...
Build Debug APKs / build-debug (push) Successful in 5m30s
...to prevent tabs from inserting line breaks.
2026-03-01 22:29:26 -05:00
0a353a3df6
fix: version name suffix in debug ( #290 )
...
Build Debug APKs / build-debug (push) Successful in 6m24s
Reviewed-on: #290
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-02-28 23:52:27 +01:00
713ffec26d
feat: multi-SE support for USB channels ( #309 )
...
Build Debug APKs / build-debug (push) Successful in 6m6s
All channels now support multi-SE. UsbCcidReaderFragment now no longer wraps inner EuiccManagementFragment's but instead calls MainActivity to instantiate tabs for USB channels. Also, we now no longer use the USB product name as channel titles but instead use "USB Reader" and "USB Reader, SE x" for all of them.
Reviewed-on: #309
Reviewed-by: septs <github@septs.pw>
2026-02-28 23:43:03 +01:00
c676c27338
fix: channel title ( #292 )
...
Build Debug APKs / build-debug (push) Successful in 9m26s
Reviewed-on: #292
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-02-28 22:35:39 +01:00
81810b22fb
Revert "Switch to gradle daemon mode"
...
Build Debug APKs / build-debug (push) Successful in 5m50s
This reverts commit fdde41329b .
2026-02-27 20:44:12 -05:00
fdde41329b
Switch to gradle daemon mode
Build Debug APKs / build-debug (push) Failing after 1m3s
2026-02-27 18:48:52 -05:00
2cf2d9490a
Support TPDU-based CCID readers ( #295 )
...
Build Debug APKs / build-debug (push) Successful in 5m33s
resolves #37
For TPDU based readers like USB 2.0-CRW 2 additional commands are needed in initialisation. Add them
Reviewed-on: #295
Reviewed-by: septs <github@septs.pw>
Co-authored-by: Vladimir Serbinenko <phcoder@gmail.com>
Co-committed-by: Vladimir Serbinenko <phcoder@gmail.com>
2026-02-26 02:22:11 +01:00
b9863e2e54
refactor: profile download callback ( #284 )
...
Build Debug APKs / build-debug (push) Has been cancelled
Reviewed-on: #284
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-02-26 02:20:04 +01:00
56fbd34616
feat: paste lpa string into smdp address input box ( #291 )
...
Build Debug APKs / build-debug (push) Has been cancelled
Reviewed-on: #291
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-02-26 02:19:42 +01:00
419db21b12
refactor: simplify sim toolkit design ( #296 )
...
Build Debug APKs / build-debug (push) Successful in 6m24s
Reviewed-on: #296
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-02-24 00:26:20 +01:00
9496370135
fix: improve language settings ( #300 )
...
Build Debug APKs / build-debug (push) Has been cancelled
resolves #299 (may be)
Reviewed-on: #300
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-02-24 00:23:53 +01:00
84f57a4ef7
feat: detect network lock in quick compatibility ( #303 )
...
Build Debug APKs / build-debug (push) Has been cancelled
Reviewed-on: #303
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-02-24 00:22:50 +01:00
a75478dd31
feat: assets statements ( #304 )
...
Build Debug APKs / build-debug (push) Has been cancelled
see https://developer.chrome.com/docs/capabilities/get-installed-related-apps?hl=en
Reviewed-on: #304
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2026-02-24 00:22:23 +01:00
f17e171372
feat: make debug and release version name different ( #288 )
...
Build Debug APKs / build-debug (push) Successful in 5m25s
Reviewed-on: #288
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-12-22 00:55:49 +01:00
e60f98fdef
fix: Don't even try to open channels on multiple SEs unless vendor implementation exists
Build Release / release (push) Successful in 8m39s
Build Debug APKs / build-debug (push) Successful in 8m52s
2025-12-18 21:50:20 -05:00
31991c909d
Update README.md with new copyright date and (upcoming) website for
...
Build Debug APKs / build-debug (push) Successful in 5m52s
Build Release / release (push) Successful in 5m34s
EasyEUICC
2025-12-15 20:55:32 -05:00
392a2927cb
Fix AOSP build by importing im.angry.openeuicc.util as wildcard
...
Build Debug APKs / build-debug (push) Successful in 9m16s
This is REQUIRED for AOSP build to work.
2025-12-14 20:13:49 -05:00
f3dbba0229
core: Disable multi-SE support over USB for now
...
Build Debug APKs / build-debug (push) Successful in 10m10s
I would like to release the next version before I actually receive a
sample w/ multi-SE and fix up the USB side properly.
2025-12-14 19:17:39 -05:00
0c305ff6ff
ui: Fix multi-SE channel title in the rest of activities
...
Build Debug APKs / build-debug (push) Has been cancelled
Of course all of this needs to be refactored including adding support
for multi-SE chips over USB readers, but that will be a task for the
next release cycle.
2025-12-14 19:11:28 -05:00
e5568e2164
feat: hide fab on scroll profile list ( #281 )
...
Build Debug APKs / build-debug (push) Successful in 6m26s
Reviewed-on: #281
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-12-13 21:02:10 +01:00
639c1d0ea6
feat: official website url ( #286 )
...
Build Debug APKs / build-debug (push) Has been cancelled
Reviewed-on: #286
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-12-13 21:01:39 +01:00
d7fb53ce5c
fix: download a esim on multi-se ( #282 )
...
Build Debug APKs / build-debug (push) Has been cancelled
Reviewed-on: #282
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-12-13 20:58:29 +01:00
d40b839911
feat: add linksfield aid ( #275 )
...
Build Debug APKs / build-debug (push) Has been cancelled
Reviewed-on: #275
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-12-13 20:56:43 +01:00
76ef63efdf
refactor: Only handle window inset events in the main view hierarchy
...
Build Debug APKs / build-debug (push) Successful in 6m15s
...so that this isn't completely broken by some versions of Android with
the broken dispatch behavior.
2025-12-09 21:05:12 -05:00
b7fc164a3f
ui: Set window inset listener only once
...
Build Debug APKs / build-debug (push) Successful in 5m45s
On API 29 and lower seems like Android has a bug where it does not
dispatch window insets properly to sibling views:
https://github.com/streetcomplete/StreetComplete/issues/6030
The fix here is to... not set window inset handler on multiple views
simultaneously. Hopefully this fixes it.
2025-12-07 20:37:20 -05:00
19b127df3f
Revert "ui: Improve window inset calculation"
...
This reverts commit aca541593c .
2025-12-07 20:29:20 -05:00
aca541593c
ui: Improve window inset calculation
...
Build Debug APKs / build-debug (push) Successful in 5m28s
We don't care if system bars are hidden or not: we should always apply
the full inset.
2025-12-07 20:01:17 -05:00
fd79236591
Remove unneeded seId default values
Build Debug APKs / build-debug (push) Successful in 6m1s
2025-12-07 19:26:24 -05:00
f498c22ad8
refactor: Pass multi-SE metadata inside EuiccChannel so it can be shown in MainActivity
Build Debug APKs / build-debug (push) Successful in 5m35s
2025-12-07 19:19:43 -05:00
c23ad21421
refactor: Deal with multi-SE chips better with waitForReconnect
...
Build Debug APKs / build-debug (push) Successful in 4m55s
We should close all channels and reopen all when waiting for reconnect.
This applies on open as well -- if any channel from a slot is invalid,
we should close them all.
2025-12-07 19:02:15 -05:00
65a4c887f1
refactor: tryOpenEuiccChannel should always return all SEs for a port
Build Debug APKs / build-debug (push) Successful in 4m38s
2025-12-07 17:48:28 -05:00
2bb10c72f6
fix: build warnings ( #272 )
...
Build Debug APKs / build-debug (push) Successful in 5m7s
/workspace/PeterCxy/OpenEUICC/app-unpriv/src/main/res/values/strings.xml:2:4: Multiple substitutions specified in non-positional format of string resource string/channel_name_format_se. Did you mean to add the formatted="false" attribute?
Reviewed-on: #272
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-12-03 23:57:58 +01:00
7ca832f68e
fix: build failed ( #271 )
...
Build Debug APKs / build-debug (push) Successful in 5m49s
Reviewed-on: #271
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-12-02 04:35:02 +01:00
7e1c4907bb
style: reformat all files ( #268 )
...
Build Debug APKs / build-debug (push) Failing after 6m22s
Reviewed-on: #268
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-12-02 04:13:18 +01:00
22a7a5145c
fix: notification handling in multiple se ( #269 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #269
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-12-02 04:13:07 +01:00
6e5bbc4085
fix: privileged channel manager, close all channels ( #270 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #270
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-12-02 04:12:22 +01:00
709a962314
fix: Set seId when calling tryOpenEuiccChannel
/ build-debug (push) Successful in 5m49s
2025-11-30 22:04:32 -05:00
755499e878
refactor: remove euicc memory reset preference ( #266 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #266
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-12-01 04:00:05 +01:00
6b0e058d5c
refactor: remove low nvram warnings ( #263 )
...
/ build-debug (push) Has been cancelled
It did not work as expected and may require an external, continuously updated profile size database as a statistical reference.
Reviewed-on: #263
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-12-01 03:59:52 +01:00
1938a4ff5a
fix: typo ( #267 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #267
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-12-01 03:59:42 +01:00
f2c7e79bee
refactor: app shortcuts ( #261 )
...
/ build-debug (push) Successful in 4m36s
Reviewed-on: #261
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-11-30 21:53:48 +01:00
552aba87c0
i18n: Update and correct translation strings
...
/ build-debug (push) Has been cancelled
- The "Erase" in "Erase eSIM" should not translated as 消去 directly IMHO
since we are not erasing the eSIM chip itself, we are erasing the _data_
on the eSIM chip. The English expression "erase the eSIM chip" implies
erasing the data, but 消去 does not.
- Initial translation of added strings and rewrote some new strings for
better English grammar.
2025-11-30 15:51:18 -05:00
cd34597362
chore: unifi nouns ( #265 )
...
/ build-debug (push) Successful in 4m46s
batch replace eUICC strings to eSIM
Reviewed-on: #265
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-11-30 21:38:58 +01:00
c396223a02
feat: Support for removable eSIM with multiple SEs ( #239 )
...
/ build-debug (push) Has been cancelled
Closes #232
Reviewed-on: #239
2025-11-30 21:34:33 +01:00
69fe2764c9
feat: app shortcuts ( #259 )
...
/ build-debug (push) Successful in 4m30s
Reviewed-on: #259
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-11-22 16:25:14 +01:00
8ec0757e28
refactor: simplify notification permission checks ( #260 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #260
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-11-22 16:24:52 +01:00
55e7731197
fix: profile state italic cutoff ( #258 )
...
/ build-debug (push) Successful in 4m38s

Reviewed-on: #258
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-11-17 14:06:32 +01:00
938e298ca3
fix: ensure logical channel is closed on select DF failure ( #257 )
...
/ build-debug (push) Successful in 4m48s
Reviewed-on: #257
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-11-16 16:00:13 +01:00
8f51abe1af
refactor: include enabled profiles in operational list filter ( #255 )
...
/ build-debug (push) Successful in 5m55s
Reviewed-on: #255
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-11-16 04:58:44 +01:00
5e7dfd36ab
feat: limits cross profile class enable profile ( #253 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #253
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-11-16 04:58:30 +01:00
4d43ab4824
refactor: simplify atr check ( #252 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #252
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-11-16 04:57:27 +01:00
4e873f4e88
fix: correct typo in free nvram hint string ( #251 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #251
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-11-16 04:56:51 +01:00
ebdffc5032
refactor: simplify estkme firmware version ( #250 )
...
/ build-debug (push) Has been cancelled
Similar to the display format of the FW field on an ESTKme card.

Reviewed-on: #250
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-11-16 04:56:27 +01:00
cc9f99a2a9
refactor: display customized ISD-R AID in EuiccInfoActivity ( #246 )
...
/ build-debug (push) Successful in 4m52s
Reviewed-on: #246
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-11-10 14:19:17 +01:00
3821cb7de0
fix: typo ( #249 )
...
/ build-debug (push) Successful in 6m13s
Reviewed-on: #249
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-11-04 02:04:58 +01:00
1933cffd82
chore: update profile delete confirmation text ( #244 )
...
/ build-debug (push) Successful in 6m25s
Reviewed-on: #244
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-11-03 05:00:34 +01:00
987eb4f71b
refactor: improve read vendors ( #247 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #247
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-11-03 05:00:15 +01:00
418010ba69
refactor: simplify euicc info activity ( #245 )
...
/ build-debug (push) Successful in 6m9s
Reviewed-on: #245
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-10-31 21:58:54 +01:00
f3f97cc942
Improve zh-TW localization ( #243 )
...
/ build-debug (push) Successful in 5m17s
Polish Traditional Chinese (zh-TW) phrasing
Reviewed-on: #243
Co-authored-by: smanlin <smanlin@noreply.gitea.angry.im>
Co-committed-by: smanlin <smanlin@noreply.gitea.angry.im>
2025-10-27 23:06:38 +01:00
af6270add2
fix: simplified error messages ( #238 )
...
/ build-debug (push) Successful in 5m38s
Reviewed-on: #238
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-10-25 21:55:47 +02:00
d0bd5e7dfb
Update Japanese & Fix ( #237 )
...
/ build-debug (push) Has been cancelled
変更されたStringsに合わせて翻訳を調整と些細な修正。
Reviewed-on: #237
Co-authored-by: reindex <reindex@noreply.gitea.angry.im>
Co-committed-by: reindex <reindex@noreply.gitea.angry.im>
2025-10-25 21:54:16 +02:00
3b0e25b8ab
chore: allow tag trigger debug build ( #240 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #240
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-10-25 21:53:50 +02:00
c74c1f309c
docs: enhance README formatting and clarity ( #235 )
...
/ build-debug (push) Successful in 5m11s
Reviewed-on: #235
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-10-02 14:25:45 +02:00
b245a9c893
fix magisk module bug ( #234 )
...
/ build-debug (push) Has been cancelled
部分设备magisk模块安装出现失败情况,对此进行修复
如图为在magisk27.1中无法安装
Reviewed-on: #234
Co-authored-by: MasterOfStar <hzh4363703@live.com>
Co-committed-by: MasterOfStar <hzh4363703@live.com>
2025-10-02 14:24:51 +02:00
351567a972
chore: improve variant compare ( #230 )
...
/ build-debug (push) Successful in 6m18s
Reviewed-on: #230
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-09-22 00:50:30 +02:00
0096b9005f
chore: update ES10x MSS preference labels for clarity ( #231 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #231
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-09-22 00:50:16 +02:00
525212c1b8
Update Japanese Language ( #229 )
...
/ build-debug (push) Has been cancelled
日本語を更新しといたよ。
間違ったところも修正済み。
Reviewed-on: #229
Co-authored-by: reindex <reindex@noreply.gitea.angry.im>
Co-committed-by: reindex <reindex@noreply.gitea.angry.im>
2025-09-22 00:49:57 +02:00
bf30f1478c
Update README.md
/ build-debug (push) Successful in 6m30s
/ release (push) Successful in 5m44s
2025-09-14 14:48:32 -04:00
2cda633fd0
lpac-jni: Convert all @Synchronized usage to a ReentrantLock
/ build-debug (push) Successful in 4m56s
2025-09-08 21:58:53 -04:00
7db1c1ea9d
lpac-jni: Add missing synchronized annotation
/ build-debug (push) Successful in 4m54s
2025-09-08 21:48:41 -04:00
d46461bd2d
lpac-jni: Prevent potential C-side memory leak
/ build-debug (push) Has been cancelled
2025-09-08 21:47:13 -04:00
472f9d05ac
chore: simplify progress item initialization and error message handling ( #226 )
...
/ build-debug (push) Successful in 4m39s
Reviewed-on: #226
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-09-08 15:12:26 +02:00
0c98121c2a
chore: ignore new file in dot-idea directory ( #227 )
...
/ build-debug (push) Has been cancelled

Reviewed-on: #227
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-09-08 15:11:40 +02:00
acfeda8dc9
i18n: Translate new strings added recently
/ build-debug (push) Successful in 4m53s
2025-09-07 17:45:18 -04:00
7bae82daf9
chore: add nvram hint ( #223 )
...
/ build-debug (push) Successful in 4m40s
Reviewed-on: #223
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-09-07 21:28:05 +02:00
cce247e747
feat: Display simplified error messages when profile downloading fails
...
/ build-debug (push) Successful in 5m39s
i18n pending
Co-Authored-By: septs <github@septs.pw>
2025-09-07 14:56:49 -04:00
915a05634b
Add updateJson to Magisk module props
/ build-debug (push) Successful in 5m27s
2025-08-17 09:42:09 -04:00
9e40232ed0
feat: es10x mss as preference ( #213 )
...
/ build-debug (push) Successful in 5m0s
Reviewed-on: #213
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-08-17 02:45:48 +02:00
27b7e50b97
refactor: simplify developer options click handling and toast messages ( #221 )
...
/ build-debug (push) Successful in 5m0s
Reviewed-on: #221
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-08-17 02:37:16 +02:00
7e7f5c2b05
feat: Magisk module builds on CI
...
/ build-debug (push) Successful in 5m47s
Much of this is taken from AndroPlus's Magisk module repo, thanks!
There's still no release builds for privileged OpenEUICC and the Magisk
module; this is still intentional (for now). However, it is possible to
produce a release Magisk zip locally via the
`:app:assembleReleaseMagiskModule` task.
2025-08-15 21:06:23 -04:00
4d8b8e8fb5
fix: update .gitignore to ignore all deployment target files ( #222 )
...
/ build-debug (push) Successful in 4m51s
Reviewed-on: #222
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-08-15 00:18:41 +02:00
a8b7482afb
feat: version name suffix ( #215 )
...
/ build-debug (push) Successful in 5m32s
see https://developer.android.com/build/build-variants
Reviewed-on: #215
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-08-10 22:08:31 +02:00
3fed4b2bd6
fix: aid list ( #217 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #217
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-08-10 22:07:25 +02:00
deb0a372b1
feat: allow copy app version and source code url ( #216 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #216
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-08-10 22:07:10 +02:00
72ec20f824
feat: 16k page sizes ( #211 )
...
/ build-debug (push) Has been cancelled
see https://developer.android.com/guide/practices/page-sizes
Reviewed-on: #211
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-08-10 22:03:25 +02:00
7c2157daa4
chore: cleanup short string ids ( #207 )
...
/ build-debug (push) Successful in 5m18s
Reviewed-on: #207
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-07-28 02:35:56 +02:00
e604f39e0d
fix: use customizableTextProvider in getCompatibilityCheckResult ( #203 )
...
/ build-debug (push) Successful in 4m52s
Reviewed-on: #203
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-07-23 13:34:04 +02:00
797f3dc722
chore: unified profile string ids style ( #205 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #205
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-07-23 13:33:36 +02:00
1be6c25cb6
fix: lpac submodule ( #206 )
...
/ build-debug (push) Has been cancelled
```
Fetching submodule libs/lpac-jni/src/main/jni/lpac
remote: Repository not found.
fatal: repository 'https://github.com/estkme/lpac/ ' not found
Errors during submodule fetch:
libs/lpac-jni/src/main/jni/lpac
```
Reviewed-on: #206
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-07-23 13:33:05 +02:00
c0cd7a25cf
Fix text for ISD-R compatibility check
/ build-debug (push) Successful in 5m38s
2025-07-21 07:37:45 -04:00
dfdd8948c5
i18n: Fix string formatting
/ build-debug (push) Has been cancelled
2025-07-21 07:36:25 -04:00
1fd13634fc
i18n: Update new strings
/ build-debug (push) Successful in 5m26s
2025-07-20 14:19:51 -04:00
29b2cba673
Use OMAPI access instead of ISD-R access to determine compatibility
...
/ build-debug (push) Successful in 4m27s
...but still show ISD-R check results
2025-07-20 13:47:39 -04:00
8c982ae890
More quick availability -> quick compatibility
/ build-debug (push) Successful in 4m46s
2025-07-20 11:14:46 -04:00
eb006b8f19
i18n: Update translations
/ build-debug (push) Has been cancelled
2025-07-20 11:13:26 -04:00
0506475a85
More quick availability -> quick compatibility
/ build-debug (push) Successful in 4m46s
2025-07-20 10:56:33 -04:00
0b4d065d4b
Adjust layout margin
/ build-debug (push) Has been cancelled
2025-07-20 10:54:09 -04:00
52cf68d43d
Show a different note when incompatible
/ build-debug (push) Has been cancelled
2025-07-20 10:51:06 -04:00
4c221f74ff
Don't do compatibility check in the main thread
/ build-debug (push) Successful in 4m32s
2025-07-20 10:43:49 -04:00
4991f2580e
Add a different note for the incompatible result
/ build-debug (push) Has been cancelled
2025-07-20 10:43:21 -04:00
65775c1d06
Delete old (and useless) compatibility checks
/ build-debug (push) Failing after 4m46s
2025-07-20 10:37:30 -04:00
cbe3d1fd50
Use quick compatibility check as the main method of compatibility checks
...
/ build-debug (push) Has been cancelled
The old one doesn't really add much for the purpose, fwiw
2025-07-20 10:33:16 -04:00
677b69cedf
feat: quick compatibility check
...
/ build-debug (push) Has been cancelled
Co-authored-by: septs <github@septs.pw>
2025-07-20 10:29:27 -04:00
6d43a9207c
chore: simplify pretty print json string ( #201 )
...
/ build-debug (push) Successful in 5m7s
https://developer.android.com/reference/org/json/JSONObject
Reviewed-on: #201
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-07-16 14:24:05 +02:00
f056e2d313
Merge pull request 'feat: profile sequence number' ( #197 ) from septs/OpenEUICC:profile-sequence-number into master
...
/ build-debug (push) Successful in 5m11s
Reviewed-on: #197
2025-07-10 02:54:40 +02:00
4ac0820bbf
fix: improve deep-link compatibility ( #198 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #198
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-07-10 02:54:25 +02:00
c0dc8ac19d
feat: profile sequence number
2025-07-08 15:51:36 +08:00
21c04ed179
Allow Actions to build from any branch
/ build-debug (push) Successful in 5m45s
2025-06-17 07:57:19 -04:00
db4645b17f
feat: sas accreditation number format check ( #193 )
...
/ build-debug (push) Successful in 5m58s
Reviewed-on: #193
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-06-16 03:54:32 +02:00
149a19ca1c
fix: build warning ( #194 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #194
Co-authored-by: xqdoo00o <xqdoo00o@gmail.com>
Co-committed-by: xqdoo00o <xqdoo00o@gmail.com>
2025-06-16 03:54:02 +02:00
eaef00b88a
Fixup README
/ build-debug (push) Successful in 4m55s
2025-05-18 11:17:43 -04:00
023f6ded28
Update README.md to add a comparison matrix for Easy/OpenEUICC
/ build-debug (push) Successful in 6m25s
/ release (push) Successful in 6m28s
2025-05-04 21:10:57 -04:00
a601ab7d72
fix: send euicc memory reset notification ( #189 )
...
/ build-debug (push) Successful in 6m18s
```console
$ ./lpac profile list | jq
{
"type": "lpa",
"payload": {
"code": 0,
"message": "success",
"data": [
{
"iccid": "8944476500001320600",
"isdpAid": "a0000005591010ffffffff8900001100",
"profileState": "enabled",
"profileNickname": null,
"serviceProviderName": "BetterRoaming",
"profileName": "BetterRoaming",
"iconType": null,
"icon": null,
"profileClass": "operational"
},
{
"iccid": "89861234567891232113",
"isdpAid": "a0000005591010ffffffff8900001200",
"profileState": "disabled",
"profileNickname": null,
"serviceProviderName": "rspmanager_tester2",
"profileName": "20230625_yysx",
"iconType": null,
"icon": null,
"profileClass": "operational"
}
]
}
}
$ ./lpac notification list | jq
{
"type": "lpa",
"payload": {
"code": 0,
"message": "success",
"data": [
{
"seqNumber": 48,
"profileManagementOperation": "install",
"notificationAddress": "smdp.io",
"iccid": "8944476500001320600"
},
{
"seqNumber": 49,
"profileManagementOperation": "enable",
"notificationAddress": "rsp.truphone.com",
"iccid": "8944476500001320600"
},
{
"seqNumber": 50,
"profileManagementOperation": "install",
"notificationAddress": "secsmsminiapp.eastcompeace.com",
"iccid": "89861234567891232113"
},
{
"seqNumber": 51,
"profileManagementOperation": "install",
"notificationAddress": "secsmsminiapp.eastcompeace.com",
"iccid": "89861234567891232113"
}
]
}
}
$ ./lpac chip purge yes
{"type":"lpa","payload":{"code":0,"message":"success","data":null}}
$ ./lpac notification list | jq
{
"type": "lpa",
"payload": {
"code": 0,
"message": "success",
"data": [
{
"seqNumber": 48,
"profileManagementOperation": "install",
"notificationAddress": "smdp.io",
"iccid": "8944476500001320600"
},
{
"seqNumber": 49,
"profileManagementOperation": "enable",
"notificationAddress": "rsp.truphone.com",
"iccid": "8944476500001320600"
},
{
"seqNumber": 50,
"profileManagementOperation": "install",
"notificationAddress": "secsmsminiapp.eastcompeace.com",
"iccid": "89861234567891232113"
},
{
"seqNumber": 51,
"profileManagementOperation": "install",
"notificationAddress": "secsmsminiapp.eastcompeace.com",
"iccid": "89861234567891232113"
},
{
"seqNumber": 52,
"profileManagementOperation": "delete",
"notificationAddress": "rsp.truphone.com",
"iccid": "8944476500001320600"
},
{
"seqNumber": 53,
"profileManagementOperation": "delete",
"notificationAddress": "secsmsminiapp.eastcompeace.com",
"iccid": "89861234567891232113"
}
]
}
}
```
Reviewed-on: #189
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-04-14 03:36:38 +02:00
756c621d5e
fix: stricted sm-dp+ address checking ( #190 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #190
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-04-14 03:36:14 +02:00
68114fa863
Expose the current ISD-R AID in use
/ build-debug (push) Successful in 6m17s
2025-04-05 20:50:10 -04:00
1fda120459
Avoid reconnecting to USB iface repeatedly while trying different AIDs
/ build-debug (push) Failing after 23s
2025-04-05 20:44:15 -04:00
994324acb6
Fix up back button for IsdrAidListActivity
/ build-debug (push) Successful in 5m9s
2025-04-05 17:58:56 -04:00
6c774450ec
fix: usb isd-r aid fallback ( #188 )
...
/ build-debug (push) Successful in 4m48s
Reviewed-on: #188
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-04-01 23:13:57 +02:00
00ddf09287
fix: improve lpa string parsing ( #181 )
...
/ build-debug (push) Successful in 5m59s
Reviewed-on: #181
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-04-01 03:19:21 +02:00
3662f93760
fix: send terminal capabilities ( #187 )
...
/ build-debug (push) Has been cancelled
fix 9eSIM v1 (G+D) on USB
Reviewed-on: #187
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-04-01 03:18:45 +02:00
05abed117a
fix: click sn copy ( #186 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #186
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-04-01 03:18:22 +02:00
92fbfc5229
chore: add more isd-r aids ( #184 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #184
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-04-01 03:18:02 +02:00
d7bfd84de9
CompatibilityCheck: use the shared default AID constant
/ build-debug (push) Successful in 7m45s
2025-03-23 11:00:28 -04:00
c6963feb17
feat: Customizable ISD-R AID list
...
/ build-debug (push) Successful in 7m57s
This is stored base64-encoded in shared preferences (to avoid XML
encoding issues).
By default we have the standard AID plus the 5ber one. We may add more
going forward.
2025-03-23 10:35:07 -04:00
dc6b3a4810
feat: support disabling refresh after switch in settings
...
/ build-debug (push) Successful in 5m25s
peter: Reworked strings and i18 translations. Also removed the ad-hoc
function in favor of a lambda.
2025-03-16 21:04:28 -04:00
e08f8beb45
feat: add iQOO stk launch support ( #179 )
...
/ build-debug (push) Successful in 4m48s

Reviewed-on: #179
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-03-17 00:01:22 +01:00
6b169c505d
fix: crash (priv) ( #177 )
...
/ build-debug (push) Has been cancelled
resolves #178
```
1741836445.585 10331 13748 13748 E AndroidRuntime: FATAL EXCEPTION: main
1741836445.585 10331 13748 13748 E AndroidRuntime: Process: im.angry.openeuicc, PID: 13748
1741836445.585 10331 13748 13748 E AndroidRuntime: java.lang.RuntimeException: PrivilegedEuiccContextMarker shall only be used on Fragments or UI types that derive from Context
1741836445.585 10331 13748 13748 E AndroidRuntime: at im.angry.openeuicc.util.PrivilegedEuiccContextMarker$DefaultImpls.getPrivilegedEuiccMarkerContext(PrivilegedUtils.kt:18)
```
Reviewed-on: #177
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-03-17 00:01:06 +01:00
33d383a3ce
ui: wizard: Keep screen on during the download process
/ build-debug (push) Successful in 5m25s
2025-03-16 17:54:54 -04:00
291869207a
We don't need a public wake lock
/ build-debug (push) Successful in 5m6s
2025-03-16 17:35:46 -04:00
a6286ed097
feat: Acquire partial wake lock for all foreground tasks
...
/ build-debug (push) Has been cancelled
All of our foreground tasks require the CPU to be at least awake to make
any progress. We could keep the screen on but we really only need the
partial wake lock to make sure progress is made.
2025-03-16 17:32:09 -04:00
360760b78f
chore: Upgrade Android Studio and Gradle
/ build-debug (push) Successful in 4m57s
2025-03-15 15:39:04 -04:00
b9849afe18
fix: Address multiple substitutions in string format error ( #175 )
...
/ build-debug (push) Successful in 4m57s
Reviewed-on: #175
Co-authored-by: LuK1337 <priv.luk@gmail.com>
Co-committed-by: LuK1337 <priv.luk@gmail.com>
2025-03-12 01:00:10 +01:00
88eb1ce0e2
feat: update TelephonyManager preference key and implement context marker interface ( #167 )
...
/ build-debug (push) Successful in 4m38s
Reviewed-on: #167
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-03-09 22:47:02 +01:00
74cc08ce8e
chore: remove visibility attribute from euicc memory reset preference ( #166 )
...
/ build-debug (push) Successful in 5m22s
Reviewed-on: #166
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-03-09 04:22:07 +01:00
f6c50490b8
fix: No USB_HOST feature requirement for eUICC erasure
/ build-debug (push) Successful in 5m15s
2025-03-08 20:35:00 -05:00
c2659ddb69
fix: Don't use beginTrackedOperation for erasure. It's wrong.
/ build-debug (push) Successful in 5m15s
2025-03-08 20:28:19 -05:00
5dd9eed4fe
feat: euicc memory reset
...
/ build-debug (push) Has been cancelled
peter: Adjusted strings and i18n translation. Also removed the arbitrary
limit on USB channels -- this is a developer option anyway.
2025-03-08 20:26:30 -05:00
17102be7cb
feat: Allow forcing the use of TelephonyManager everywhere
...
/ build-debug (push) Successful in 4m39s
Manual merge of #139 , but removed all reference to "TMAPI" because such
a term does not exist.
Also reworked PreferenceRepository to allow extensibility from the
privileged app.
2025-03-08 17:25:26 -05:00
ece231f17b
lpac-jni: Run euicc_http_cleanup() on success
/ build-debug (push) Successful in 4m41s
2025-03-08 17:05:52 -05:00
db8063cd5f
wizard: Reduce nested closures
/ build-debug (push) Successful in 4m41s
2025-03-08 16:42:48 -05:00
d3df70501a
wizard: Make sure bitmaps are recycled properly
...
/ build-debug (push) Successful in 4m28s
Co-authored-by: septs <github@septs.pw>
2025-03-08 16:27:36 -05:00
53f9459aed
i18n: Update missing translations
/ build-debug (push) Successful in 4m26s
2025-03-08 16:14:37 -05:00
6557ce45a7
i18n: Update alert for low NVRAM
/ build-debug (push) Has been cancelled
2025-03-08 16:09:47 -05:00
2b86d719dd
ActivationCode -> LPAString
...
/ build-debug (push) Has been cancelled
Un-confuse myself.... The term "ActivationCode" is too overloaded even
within OpenEUICC itself.
2025-03-08 16:07:41 -05:00
7edde1ffa4
wizard: Rework handling for confirmation code from LPA strings
...
/ build-debug (push) Has been cancelled
There are more than one way to acquire an LPA string here. Let's just
store whether we need confirmation code as a boolean in state and then
use that to decide whether it is actually required in the step for
inputting details.
2025-03-08 16:05:00 -05:00
e5753ec2d9
ActivationCode::fromString -> ActivationCode::parse
...
/ build-debug (push) Successful in 4m34s
Un-confusion :D
2025-03-08 15:45:58 -05:00
c528962f29
wizard: Accept deep-links with the LPA: schema
...
/ build-debug (push) Successful in 4m37s
Co-authored-by: septs <github@septs.pw>
2025-03-08 15:40:30 -05:00
889b08767c
Move eUICC vendor handling to an interface in util
...
/ build-debug (push) Successful in 4m27s
...instead of ad-hoc functions
2025-03-08 11:34:26 -05:00
8243914588
feat: recent url sharing ( #160 )
...
/ build-debug (push) Successful in 4m51s

see https://developer.android.com/guide/components/activities/recents#url-sharing
Reviewed-on: #160
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-03-08 16:54:53 +01:00
2eabf719d0
refactor: EuiccChannelFragmentUtils ( #164 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #164
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-03-08 16:52:19 +01:00
d068261ff9
improve stk menu handling ( #162 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #162
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-03-08 16:48:32 +01:00
6a5d4b9288
Update Japanese ( #159 )
...
/ build-debug (push) Has been cancelled
Crowdinで英語のXMLを同期、Stringsを比較しやすいように再成形済み。
Reviewed-on: #159
Co-authored-by: reindex <reindex@noreply.gitea.angry.im>
Co-committed-by: reindex <reindex@noreply.gitea.angry.im>
2025-03-08 16:47:43 +01:00
1313bfd24e
fix: iccCloseLogicalChannelByPort method signature ( #157 )
...
/ build-debug (push) Has been cancelled
fixes #154
Reviewed-on: #157
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-03-08 16:46:46 +01:00
99d9200c28
fix: omapi apdu interface ( #152 )
...
/ build-debug (push) Successful in 5m9s
Reviewed-on: #152
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-03-05 14:19:16 +01:00
65c7f8de83
feat: prompt to enable disabled sim toolkit app ( #153 )
...
/ build-debug (push) Has been cancelled
<video src="/attachments/fb9f210c-5960-4889-ba6a-dba4aa085a12" title="screen-20250305-130942.mp4" controls></video>
Reviewed-on: #153
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-03-05 14:18:56 +01:00
6c9063a761
chore: add zh-TW to locale-config ( #155 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #155
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-03-05 14:18:03 +01:00
d5aefcaec7
refactor: usb ccid driver ( #149 )
...
/ build-debug (push) Successful in 5m21s
Reviewed-on: #149
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-03-04 03:14:01 +01:00
ef295c9d12
Add Traditional Chinese (zh-TW) translation ( #142 )
...
/ build-debug (push) Has been cancelled
Converted from Simplified Chinese
Co-authored-by: h0353914 <45159732+h0353914@users.noreply.github.com>
Reviewed-on: #142
Co-authored-by: h0353914 <h0353914@gmail.com>
Co-committed-by: h0353914 <h0353914@gmail.com>
2025-03-04 03:13:39 +01:00
1d67fa5cfa
feat: detect used product ( #147 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #147
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-03-04 03:12:40 +01:00
c8ecdee095
feat: supports for multi logical channel ( #148 )
...
/ build-debug (push) Successful in 4m42s
Reviewed-on: #148
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2025-02-26 14:33:18 +01:00
03bfdf373c
lpac-jni: Expose customizable ISDR AIDs from lpac
...
/ build-debug (push) Successful in 4m40s
...so that we could expose an option to the user going forward.
2025-02-17 17:07:11 -05:00
9517f53712
chore: Update lpac dependency
/ build-debug (push) Successful in 5m3s
2025-02-15 14:26:45 -05:00
f5074acae2
feat: alert when confirmation code is required by QR code
...
/ build-debug (push) Successful in 5m29s
Closes #136
Co-authored-by: septs <github@septs.pw>
2025-02-04 22:06:58 -05:00
bcd1295a18
ui: Disable language picker for privileged OpenEUICC (for now)
...
/ build-debug (push) Successful in 4m52s
/ release (push) Has been cancelled
...because AOSP is stupid and doesn't allow apps signed with the
platform key to use language settings.
2024-12-21 15:01:07 -05:00
50ba81f131
i18n: Update translations of all new strings
/ build-debug (push) Successful in 5m33s
2024-12-21 14:31:14 -05:00
d0b3d54c66
ui: Allow multi-line strings in EuiccInfoActivity
/ build-debug (push) Successful in 5m13s
2024-12-20 19:33:43 -05:00
3a860601a3
ui: Optimize ATR strings
2024-12-20 19:32:58 -05:00
6b4723daee
refactor: ATR should not be the concern of lpac-jni
...
/ build-debug (push) Has been cancelled
...instead, use a separate interface to represent channel types that do
support reading ATR.
2024-12-20 19:30:33 -05:00
3ef78a23db
feat: atr in euiccinfo activity
...
commit 0fbec512ab
Author: septs <github@septs.pw>
Date: Wed Dec 18 21:27:53 2024 +0800
feat: atr in euiccinfo activity
2024-12-20 19:06:23 -05:00
31d595a6b1
ui: Don't reset profile name while resuming the rename fragment
/ build-debug (push) Successful in 5m57s
2024-12-20 19:04:31 -05:00
e7ef370e46
feat: sgp.22 version in euicc info activity ( #130 )
...
/ build-debug (push) Successful in 4m41s
Co-authored-by: Peter Cai <peter@typeblog.net>
Reviewed-on: #130
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-20 22:56:31 +01:00
653a7b32ee
ui: wizard: Prevent clicking next multiple times
/ build-debug (push) Successful in 5m18s
2024-12-18 21:13:08 -05:00
0f8749ee04
ui: wizard: Verify the EuiccChannel is still valid every time next is pressed
/ build-debug (push) Has been cancelled
2024-12-18 21:11:15 -05:00
c0a6917645
Remove unused isForegroundTaskRunning
...
/ build-debug (push) Successful in 5m43s
idk what this was used for
2024-12-18 20:57:37 -05:00
6e3176668a
core: Reconnect to USB readers after switching profiles as well
...
/ build-debug (push) Successful in 5m30s
Apparently some reader + card combination results in the need to
re-establish the ISD-R even though this is not a modem.
It doesn't hurt to run waitForReconnect() anyway :)
2024-12-18 20:44:08 -05:00
66bee041a0
ui: wizard: IMEI input type should be numberPassword
/ build-debug (push) Successful in 5m14s
2024-12-18 20:05:27 -05:00
43f247a71b
fix: share file name display ( #122 )
...
/ build-debug (push) Successful in 5m30s
Co-authored-by: Peter Cai <peter@typeblog.net>
Reviewed-on: #122
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-19 00:19:34 +01:00
960f8855ad
refactor: simplify profile operation ( #129 )
...
/ build-debug (push) Has been cancelled
Co-authored-by: Peter Cai <peter@typeblog.net>
Reviewed-on: #129
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-19 00:18:59 +01:00
de3ae19a10
ui: wizard: Resize activity root view with IME
...
/ build-debug (push) Has been cancelled
...and hide the IME whenever we switch between the fragments.
2024-12-18 18:16:33 -05:00
75d3894462
ui: wizard: Save input state on pause
...
/ build-debug (push) Successful in 5m27s
Fixes #131 and supersedes #132 .
2024-12-18 18:02:24 -05:00
895899d03a
i18n: Optimize strings and update translations
/ build-debug (push) Successful in 5m16s
2024-12-17 22:34:06 -05:00
a87f154653
EuiccChannelManagerService: Stop throwing exceptions for USB channels when switching
/ build-debug (push) Successful in 5m31s
2024-12-17 22:02:37 -05:00
b88345057c
feat: add header to saved log file ( #123 )
...
/ build-debug (push) Successful in 5m24s
Co-authored-by: Peter Cai <peter@typeblog.net>
Reviewed-on: #123
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-18 01:28:24 +01:00
9596b8632c
refactor: strong preference key constraint ( #128 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #128
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-18 01:26:06 +01:00
087c760010
fix: password mask toggle in profile download wizard ( #125 )
...
/ build-debug (push) Successful in 6m21s

Reviewed-on: #125
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-17 04:17:47 +01:00
24076e8fb4
ui: Remove old toast for profile name length
...
/ build-debug (push) Successful in 5m33s
We'll add back i18n later.
2024-12-15 22:51:36 -05:00
f135a0da60
ui: Fixup rename error toasts
/ build-debug (push) Has been cancelled
2024-12-15 22:49:02 -05:00
3b7bd8b31e
fix: Validate nickname and convert to proper UTF-8 before passing to JNI
...
/ build-debug (push) Successful in 4m48s
The JNI "modified" UTF-8 isn't what SGP.22 mandates. Let's encode
properly, validate the length, and pass the string as a C
null-terminated string directly over JNI.
This also introduces new exceptions that are exposed via UI as Toasts.
2024-12-15 16:02:27 -05:00
74e946cc8f
i18n: Update message for LPA string parsing failure
/ build-debug (push) Successful in 4m45s
2024-12-15 14:42:12 -05:00
3430406603
ui: wizard: Add toast for when clipboard is empty
2024-12-15 14:40:59 -05:00
24f04f54e4
Add icon for loading from clipboard
2024-12-15 14:37:30 -05:00
0fbda7dd78
feat: load lpa string from clipboard
2024-12-15 14:34:00 -05:00
905d0c897e
ui: wizard: Save activity before showing nvram warning dialog
/ build-debug (push) Successful in 4m59s
2024-12-15 13:19:23 -05:00
f395cee2e0
chore: cleanup unused resource from 343dfb43f8 ( #119 )
...
/ build-debug (push) Successful in 4m52s
Reviewed-on: #119
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-15 18:47:57 +01:00
456754db5d
fix: move language switcher component name in advanced category ( #118 )
...
/ build-debug (push) Successful in 4m50s
Co-authored-by: Peter Cai <peter@typeblog.net>
Reviewed-on: #118
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-15 16:46:06 +01:00
7d1c7663bc
fix: format channel name ( #117 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #117
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-15 16:42:59 +01:00
9d18253e44
ui: Cancel download from the low nvram warning dialog
/ build-debug (push) Successful in 6m13s
2024-12-14 22:47:00 -05:00
6039679693
refactor: Remove the need for specifying preference keys when binding
...
/ build-debug (push) Successful in 6m29s
Co-authored-by: septs <github@septs.pw>
2024-12-14 20:59:15 -05:00
5a8d92c3df
feat: hide copied toast in android 13 or higher ( #114 )
...
/ build-debug (push) Failing after 13m17s
see https://developer.android.com/develop/ui/views/touch-and-input/copy-paste#duplicate-notifications
Co-authored-by: Peter Cai <peter@typeblog.net>
Reviewed-on: #114
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-15 02:44:44 +01:00
55c99831f3
ui: Copyable eid string
...
/ build-debug (push) Has been cancelled
peter: redid parts of EuiccInfoViewHolder to remove the need for root
context (we can get it from activity directly).
Co-Authored-By: septs <github@septs.pw>
commit 2a6eb746bf
Author: septs <github@septs.pw>
Date: Sat Dec 14 11:26:42 2024 +0800
feat: hide copied toast in android 13 or higher
commit d5bfd090b7
Merge: 0b2a498 aed2479
Author: septs <github@septs.pw>
Date: Sat Dec 14 03:58:59 2024 +0800
Merge branch 'master' into copyable-eid-string
commit 0b2a4988f2
Author: septs <github@septs.pw>
Date: Fri Dec 13 12:35:27 2024 +0800
refactor: eid copied toast
commit ce854575aa
Author: septs <github@septs.pw>
Date: Fri Dec 13 12:27:18 2024 +0800
revert: EuiccManagementFragment
commit 41229cac57
Author: septs <github@septs.pw>
Date: Fri Dec 13 12:27:10 2024 +0800
revert: EuiccManagementFragment
commit 1f2b2d73dd
Author: septs <github@septs.pw>
Date: Fri Dec 13 12:25:01 2024 +0800
feat: add euiccinfo activity specific strings
commit ca76ac841e
Merge: 110d490 55d96c6
Author: septs <github@septs.pw>
Date: Fri Dec 13 12:23:34 2024 +0800
Merge branch 'master' into copyable-eid-string
commit 110d49005a
Author: septs <github@septs.pw>
Date: Fri Dec 13 12:23:21 2024 +0800
revert: common strings
commit dc12e8d410
Author: septs <github@septs.pw>
Date: Fri Dec 13 12:22:47 2024 +0800
revert: unpriv strings
commit ccba9be141
Merge: 34c5e41 0687354
Author: septs <github@septs.pw>
Date: Fri Dec 13 12:15:42 2024 +0800
Merge branch 'master' of ssh://gitea-ssh.angry.im:2222/PeterCxy/OpenEUICC into copyable-eid-string
commit 34c5e41dde
Author: septs <github@septs.pw>
Date: Thu Dec 12 11:45:59 2024 +0800
chore: simplify clickable
commit 4f1ed329f1
Author: septs <github@septs.pw>
Date: Thu Dec 12 11:37:15 2024 +0800
feat: copyable eid string
2024-12-14 20:38:24 -05:00
343dfb43f8
Remove unused SlotSelectFragment
/ build-debug (push) Successful in 5m34s
2024-12-14 16:13:47 -05:00
815d4d4324
Expose USB device name as intrinsic name for use with download wizard
/ build-debug (push) Has started running
2024-12-14 16:11:49 -05:00
ec334d104a
ui: Implement log content sharing
/ build-debug (push) Failing after 14m12s
2024-12-14 15:18:47 -05:00
70f1e00eb4
refactor: Extract shared log-saving behavior
...
/ build-debug (push) Successful in 5m12s
...so that we implement log-sharing once and apply it to both spots.
2024-12-14 14:55:27 -05:00
bc238c45cd
ui: Add switching timeout message to the new DI text provider
/ build-debug (push) Failing after 14m45s
2024-12-14 14:38:09 -05:00
14ea84c36e
ui: Add placeholder text for when no eUICC is found to TextProvider
/ build-debug (push) Successful in 6m5s
2024-12-14 14:21:05 -05:00
aefa79b18b
refactor: Channel format should use DI instead of resource overriding
...
/ build-debug (push) Successful in 5m34s
i18n makes resource overriding unreliable.
2024-12-14 13:47:23 -05:00
aed2479044
ui: wizard: Prevent de-selecting checkboxes
/ build-debug (push) Successful in 5m32s
2024-12-13 08:34:21 -05:00
f294fb5e17
ui: wizard: Reintroduce support for downloading to USB readers
...
/ build-debug (push) Has been cancelled
...and fixup our API which caused this problem in the first place.
2024-12-13 08:33:02 -05:00
55d96c6732
feat: if profile delete confirm text is mismatched then show toast ( #110 )
...
/ build-debug (push) Successful in 5m34s
Reviewed-on: #110
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-13 05:15:08 +01:00
06873545e2
refactor: certificate issuer detecting ( #108 )
...
/ build-debug (push) Failing after 12m3s
Reviewed-on: #108
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-13 04:41:03 +01:00
6d962a12b5
fix: euiccinfo activity channel title ( #103 )
...
/ build-debug (push) Successful in 5m47s
Co-authored-by: Peter Cai <peter@typeblog.net>
Reviewed-on: #103
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-12 02:09:01 +01:00
8f9c7137f6
feat: show incorrect lpa string alert dialog ( #101 )
...
/ build-debug (push) Has started running
Reviewed-on: #101
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-12 01:59:06 +01:00
125f1da6af
i18n: Add Simplified Chinese (zh-CN) translation
...
/ build-debug (push) Successful in 4m57s
Also fix up some untranslatable strings and translation mistakes in
ja while we are at it.
Co-authored-by: sekaiacg <sekaiacg@gmail.com>
2024-12-08 19:57:16 -05:00
4a482b9c73
Implement a generic preference overlay mechanism
...
/ build-debug (push) Successful in 4m16s
We'll need this as we'll probably soon have more priv/unpriv-specific
preferences. For example, exposing removable eSIMs to the system.
2024-12-08 17:22:46 -05:00
ca46b578f7
ui: Display ARA-M SHA-1 under info
/ build-debug (push) Successful in 4m39s
2024-12-08 17:15:36 -05:00
23022b14be
feat: copy ara-m sha-1 in settings
2024-12-08 17:12:51 -05:00
2d66c1f334
ui: Switch completely to the new download flow
...
/ build-debug (push) Successful in 4m36s
...and delete the old ProfileDownloadFragment
2024-12-08 16:26:36 -05:00
09b98b37ab
Export DownloadWizardActivity
/ build-debug (push) Successful in 4m25s
2024-12-08 16:19:14 -05:00
fdbf9b3252
ui: wizard: Reimplement low nvram warning
/ build-debug (push) Has been cancelled
2024-12-08 16:17:50 -05:00
84f47cb0f0
ui: wizard: Use dp instead of sp in margins
/ build-debug (push) Successful in 4m38s
2024-12-08 16:09:39 -05:00
0229ef41df
ui: wizard: Allow saving diagnostics text
/ build-debug (push) Has been cancelled
2024-12-08 16:07:23 -05:00
15d3b701a5
Switch LuiActivity to the new wizard
...
/ build-debug (push) Successful in 4m43s
...and rename / alias the old DirectProfileDownloadActivity to the new
DownloadWizardActivity
2024-12-08 15:42:24 -05:00
700578a369
ui: wizard: Handle download success
...
/ build-debug (push) Successful in 4m51s
Turns out when you test only errors you forget things can actually
succeed...
2024-12-08 15:34:38 -05:00
eab60bf3d3
ui: priv: Set isMEP and isRemovable when creating footer views
...
/ build-debug (push) Successful in 4m30s
Else, footer views may be created before we actually intialize that
info.
2024-12-08 13:44:02 -05:00
5b80afd5fe
ui: Expose download error reason in diagnostics
/ build-debug (push) Successful in 4m32s
2024-12-08 13:39:15 -05:00
400c2ff9f9
ProfileDeleteFragment: Stop using non-local returns for no reason
/ build-debug (push) Successful in 4m13s
2024-12-08 12:59:27 -05:00
b4f562f90b
Make MainActivity permission checks clearer
/ build-debug (push) Has been cancelled
2024-12-08 12:58:24 -05:00
5a000278d3
Revert meaningless PermissionUtils
/ build-debug (push) Has been cancelled
2024-12-08 12:55:42 -05:00
38d38523f9
Revert MainActivity changes
/ build-debug (push) Has been cancelled
2024-12-08 12:54:33 -05:00
022ca1da9d
chore: improve readability ( #95 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #95
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-08 18:51:48 +01:00
1140ddb249
lpac-jni: IgnoreTLSCertificate -> AllowAllTrustManager
/ build-debug (push) Successful in 4m14s
2024-12-08 11:15:11 -05:00
9be1ae7cd1
lpac-jni: Expose error reason enum as string
/ build-debug (push) Has been cancelled
2024-12-08 11:14:10 -05:00
a7e97378fc
Rework EuiccInfoActivity formatting
/ build-debug (push) Successful in 4m18s
2024-12-08 10:51:14 -05:00
790cbb5a58
i18n: Update ja translations
/ build-debug (push) Successful in 4m14s
2024-12-08 10:42:32 -05:00
2247749b37
ui: Set layout_constrainedWidth for profile title
/ build-debug (push) Successful in 4m26s
2024-12-08 10:35:03 -05:00
249aea482b
refactor: euicc info activity ( #98 )
...
/ build-debug (push) Successful in 4m14s
improve maintainability
Co-authored-by: Peter Cai <peter@typeblog.net>
Reviewed-on: #98
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-08 16:31:39 +01:00
dc0489a693
chore: simplify source code intent ( #97 )
...
/ build-debug (push) Has been cancelled
Co-authored-by: Peter Cai <peter@typeblog.net>
Reviewed-on: #97
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-08 16:30:00 +01:00
d3e54ece58
chore: improve compatibility check ( #96 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #96
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-08 16:29:05 +01:00
4e5bb5b11e
retire Android.mk to prevent AOSP from complaining
...
/ build-debug (push) Successful in 5m7s
we don't use Android.mk for AOSP, but we do for the NDK JNI build. Let's
rename it so that the latest AOSP 15 QPR 1 stops complaining.
2024-12-07 21:25:10 -05:00
68cc6adc9b
chore: reduce translatable strings ( #93 )
...
/ build-debug (push) Successful in 5m56s
Co-authored-by: Peter Cai <peter@typeblog.net>
Reviewed-on: #93
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-08 03:11:44 +01:00
9e637f766d
fix: profile class always display ( #92 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #92
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-08 03:10:53 +01:00
acce39fd3b
chore: flatten install packages ( #85 )
...
/ build-debug (push) Successful in 4m21s
Co-authored-by: Peter Cai <peter@typeblog.net>
Reviewed-on: #85
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-07 15:58:56 +01:00
fb8b6de350
chore: cleanup ( #81 )
...
/ build-debug (push) Has been cancelled
Co-authored-by: Peter Cai <peter@typeblog.net>
Reviewed-on: #81
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-07 15:57:14 +01:00
75221fcf79
fix: build failed (ES10c.EuiccMemoryReset) ( #90 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #90
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-07 15:56:24 +01:00
4ae19aea3b
feat: expose ES10c.EuiccMemoryReset ( #88 )
...
/ build-debug (push) Failing after 5m37s
Co-authored-by: Peter Cai <peter@typeblog.net>
Reviewed-on: #88
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-07 04:43:31 +01:00
ff6bd45ac6
feat: show profile class with unfiltered profile list ( #86 )
...
/ build-debug (push) Has started running
Co-authored-by: Peter Cai <peter@typeblog.net>
Reviewed-on: #86
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-07 04:41:49 +01:00
858b6d55d6
feat: show notification sequence number in upper right ( #84 )
...
/ build-debug (push) Has been cancelled

Reviewed-on: #84
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-07 04:39:44 +01:00
78bf3612ee
lpac-jni: Expose error reason as return value
/ build-debug (push) Successful in 5m28s
2024-12-01 18:47:58 -05:00
afeb5c5282
i18n: Fixup Japanese translation for notification types
...
/ build-debug (push) Successful in 5m41s
~ing in the en text means the action itself, not the process.
2024-12-01 17:22:58 -05:00
f74145d0b7
i18n: Update new strings
/ build-debug (push) Successful in 5m13s
2024-12-01 17:15:51 -05:00
c6de599db0
lpac-jni: Cancel es9p/10b sessions on download failure
/ build-debug (push) Successful in 4m47s
2024-12-01 17:08:09 -05:00
0a78daee8b
feat: language preferences ( #76 )
...
/ build-debug (push) Successful in 4m31s
see https://developer.android.com/guide/topics/resources/app-languages
Reviewed-on: #76
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-01 20:26:14 +01:00
e7f58bbaaf
chore: simplify settings intent ( #77 )
...
/ build-debug (push) Failing after 10m34s
Reviewed-on: #77
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-01 14:57:30 +01:00
562e5922be
chore: suppress gradle warning ( #75 )
...
/ build-debug (push) Has started running
We recommend using a newer Android Gradle plugin to use `compileSdk = 35`
This Android Gradle plugin (8.1.2) was tested up to `compileSdk = 34`.
You are strongly encouraged to update your project to use a newer
Android Gradle plugin that has been tested with `compileSdk = 35`.
If you are already using the latest version of the Android Gradle plugin,
you may need to wait until a newer version with support for `compileSdk = 35` is available.
To suppress this warning, add/update
```
android.suppressUnsupportedCompileSdk=35
```
to this project's gradle.properties.
Reviewed-on: #75
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-12-01 14:46:42 +01:00
50c77ea467
refactor: preference repository ( #74 )
...
/ build-debug (push) Successful in 4m9s
reduce template code
Reviewed-on: #74
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-11-30 16:05:44 +01:00
6bb1a16aee
feat: show unfiltered profile list in developer options ( #73 )
...
/ build-debug (push) Successful in 4m9s
resolves #40 #30
Reviewed-on: #73
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-11-30 15:47:54 +01:00
92daa56f1a
Add Japanese translate ( #71 )
...
/ build-debug (push) Successful in 4m9s
Reviewed-on: #71
Co-authored-by: reindex <reindex@noreply.gitea.angry.im>
Co-committed-by: reindex <reindex@noreply.gitea.angry.im>
2024-11-30 15:29:09 +01:00
90878438f9
refactor: gitignore ( #69 )
...
Rebuild root dot-gitignore file
Update subdirectory dot-gitignore file
Reviewed-on: #69
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-11-27 15:06:32 +01:00
96bc9865ff
lpac_jni: Clear exceptions before setting response
/ build-debug (push) Successful in 5m29s
2024-11-24 19:50:27 -05:00
dcae65011e
lpac_jni: Move HTTP diagnostics to LPA
2024-11-24 19:49:47 -05:00
1c4263a47a
ui: wizard: Make clear what HTTP and APDU mean
2024-11-24 19:45:45 -05:00
d7214141e6
ui: wizard: Only show full APDU response when it is a failure
/ build-debug (push) Successful in 5m12s
2024-11-24 19:45:05 -05:00
326b39ed05
ui: wizard: Add APDU errors to diagnostics
2024-11-24 19:43:42 -05:00
26d037048d
ui: wizard: Show HTTP exception in diagnostics
/ build-debug (push) Successful in 6m24s
2024-11-24 19:26:47 -05:00
5476e335b1
Move ProfileDownloadException to LPA
/ build-debug (push) Successful in 5m33s
2024-11-24 19:20:47 -05:00
426e5c0197
util: Ignore spaces in JSON string
/ build-debug (push) Successful in 5m0s
2024-11-24 17:45:11 -05:00
74d7da35dc
ui: wizard: Quick and dirty JSON pretty-printer
/ build-debug (push) Successful in 5m26s
2024-11-24 17:29:51 -05:00
07072667db
ui: wizard: Add error diagnostics
...
/ build-debug (push) Successful in 4m28s
We finally have it!!!
2024-11-24 17:10:46 -05:00
895cbdd53d
lpa: Track last HTTP response on failure
...
/ build-debug (push) Failing after 4m2s
We'll have a "error diagnosis" page for the new download wizard.
We'll probably want to do this for APDU too.
2024-11-24 15:56:44 -05:00
1a3fd621d9
EuiccChannelManagerService: move applyCompletionTransform() to companion object
/ build-debug (push) Successful in 4m20s
2024-11-24 15:34:36 -05:00
74489a9ae0
EuiccChannelManagerservice: Fix completion event in returned flows
/ build-debug (push) Successful in 4m14s
2024-11-24 13:25:11 -05:00
d68a7172de
EuiccChannelManagerService: Fix support for multiple subscribers
...
/ build-debug (push) Successful in 4m27s
We have to use another SharedFlow here. Otherwise, the flow transforms
break our ability to subscribe to it more than once, which is needed for
UI state to preserve across recreate events.
2024-11-24 13:14:16 -05:00
5b079c95ac
ui: wizard: Implement the download process
/ build-debug (push) Successful in 4m14s
2024-11-24 11:23:27 -05:00
f2c233fe1c
EuiccChannelManagerService: Introduce IDs for tasks
/ build-debug (push) Successful in 4m25s
2024-11-24 10:42:02 -05:00
3507c17834
EuiccChannalManagerService: manually buffer the returned flow
2024-11-24 10:18:54 -05:00
b2abe5ee84
ui: wizard: Make download details nullable
/ build-debug (push) Successful in 5m11s
2024-11-20 21:03:42 -05:00
67c9612627
ui: wizard: Restrict inputs to single lines
2024-11-20 21:00:50 -05:00
39b40f9b0d
ui: wizard: Lay out the download progress UI
/ build-debug (push) Successful in 5m0s
2024-11-20 20:57:35 -05:00
f236b40cd4
lpac-jni: Add lookup from progress to state
/ build-debug (push) Successful in 5m15s
2024-11-19 20:49:34 -05:00
e7a0482281
ui: wizard: Save current state to bundle
/ build-debug (push) Successful in 4m48s
2024-11-19 20:40:53 -05:00
81f34f9b1c
ui: wizard: Sort by slot ID
2024-11-19 20:14:30 -05:00
8c73615fbb
ui: wizard: Implement input by scanning / gallery
/ build-debug (push) Successful in 5m4s
2024-11-19 20:11:37 -05:00
9cf95ad47c
ui: Add a input details fragment for download wizard
/ build-debug (push) Successful in 5m7s
2024-11-19 18:38:59 -05:00
723ec70730
ui: Use prev button action for back pressed
/ build-debug (push) Successful in 4m45s
2024-11-18 21:06:46 -05:00
dbdadd33b3
ui: Add slide-in and slide-out animation for wizard steps
/ build-debug (push) Has been cancelled
2024-11-18 21:02:12 -05:00
92b7b46598
ui: Lay out the method select fragment for wizard
/ build-debug (push) Successful in 5m55s
2024-11-18 20:54:42 -05:00
0c519af376
ui: Update slot select prompt text
2024-11-18 20:19:28 -05:00
aaca9e807a
ui: Show free space when selecting slot
/ build-debug (push) Successful in 4m59s
2024-11-18 20:01:43 -05:00
98e16ee5aa
ui: Hook up prev / next buttons for new download wizard
/ build-debug (push) Has been cancelled
2024-11-18 19:57:01 -05:00
b9d5c1c5bb
chore: simplify dot-idea gitignore ( #68 )
...
/ build-debug (push) Successful in 5m10s
Reviewed-on: #68
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-11-18 23:39:09 +01:00
c4b513fc0a
ui: Save selected slot as state in DownloadWizardActivity
/ build-debug (push) Successful in 5m5s
2024-11-17 22:00:03 -05:00
6458f54db2
ui: Ensure EuiccChannelManager is available in slot select fragment
2024-11-17 21:42:41 -05:00
87f36f4166
ui: Expose more info in slot select fragment
2024-11-17 21:41:40 -05:00
4fb59a4b01
ui: Fixup strings for eSIM slot selection
/ build-debug (push) Successful in 5m4s
2024-11-17 19:17:29 -05:00
16636988b0
ui: Fixup loaded state
2024-11-17 19:15:42 -05:00
93e7297caa
ui: Implement single selection for new wizard
2024-11-17 19:14:00 -05:00
1087a676d4
ui: Fix slot item alignment in new wizard
2024-11-17 19:04:41 -05:00
375d13b7c4
ui: Start designing UI for selectiing slot in the new download flow
...
/ build-debug (push) Successful in 6m3s
incomplete
2024-11-17 17:32:42 -05:00
a3d59a0761
feat: ignore tls certificate ( #66 )
...
/ build-debug (push) Successful in 5m14s
Reviewed-on: #66
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-11-17 03:43:38 +01:00
5f0dbe3098
ui: Hide developer settings behind 7 clicks
/ build-debug (push) Successful in 5m9s
2024-11-16 20:59:36 -05:00
efa9b8bfa4
ui: Set up progress bar for the new wizard
2024-11-16 20:37:43 -05:00
47d5c3881c
ui: Add skeleton of an experimental new download flow
...
/ build-debug (push) Successful in 5m1s
This doesn't work yet at all, and is hidden behind an experimental
settings switch.
2024-11-16 18:34:45 -05:00
e9f4d3d1f9
fix: unified alert dialog style ( #65 )
...
/ build-debug (push) Successful in 4m44s
see https://gitea.angry.im/PeterCxy/OpenEUICC/search/branch/master?q=.app.AlertDialog
Reviewed-on: #65
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-11-14 14:59:13 +01:00
506b0e530a
feat: low nvram alert ( #62 )
...
/ build-debug (push) Successful in 4m6s
If free nvram available is less 30 kib, then alert dialog
Reviewed-on: #62
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-11-14 14:02:27 +01:00
e8db3d1206
chore: simplify CompatibilityCheckActivity logical ( #61 )
...
/ build-debug (push) Successful in 5m27s
Reviewed-on: #61
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-11-13 22:47:35 +01:00
071304349a
fix: crash with disable com.android.stk app ( #60 )
...
/ build-debug (push) Successful in 5m40s
```console
pm disable-user com.android.stk
```
after running this command, the app will crash when launched
Reviewed-on: #60
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-11-12 02:42:25 +01:00
6f8aef8ea8
EuiccChannelManager: Remove last trace of blocking methods
/ build-debug (push) Successful in 5m0s
2024-11-10 20:56:56 -05:00
8e806c3ae5
EuiccChannelManager: slot -> logicalSlot
/ build-debug (push) Has been cancelled
2024-11-10 20:55:12 -05:00
42c870192c
Remove last trace of findEuiccChannelBySlotBlocking() public usage
/ build-debug (push) Has been cancelled
2024-11-10 20:53:35 -05:00
9201ee416e
OpenEuiccService: Remove more useless stuff
/ build-debug (push) Successful in 5m16s
2024-11-10 20:45:48 -05:00
7105c43ae4
EuiccChannelManager: Remove findEuiccChannelByPort() as public method
/ build-debug (push) Has been cancelled
2024-11-10 20:42:21 -05:00
d846f0cdc4
LPAUtils: Remove usage of findEuiccChannelByPort()
/ build-debug (push) Has been cancelled
2024-11-10 20:40:05 -05:00
5dacb75717
EuiccChannelManager: Remove some unused methods
/ build-debug (push) Successful in 4m46s
2024-11-10 20:35:01 -05:00
f28867ef2e
OpenEuiccService: Remove traces of EuiccChannel usage
2024-11-10 20:31:09 -05:00
7215a2351b
OpenEuiccService: Switch onSwitchToSubscriptionWithPort() to use the new service
/ build-debug (push) Successful in 4m56s
2024-11-10 20:29:25 -05:00
837c34ba70
Add convience "Done" subscriber method for Flow<ForegroundTaskState>
/ build-debug (push) Successful in 5m12s
2024-11-10 17:11:55 -05:00
fe6d4264e3
OpenEuiccService: switch onDeleteSubscription to use
...
/ build-debug (push) Successful in 4m51s
EuiccChannelManagerService
2024-11-10 17:00:41 -05:00
13085ec202
Add findAvailablePorts() to EuiccChannelManager
...
/ build-debug (push) Successful in 4m41s
For use with OpenEuiccService
2024-11-10 15:57:32 -05:00
9d8e58a95d
refactor: open sim toolkit logical ( #58 )
...
/ build-debug (push) Successful in 5m1s
Reviewed-on: #58
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-11-09 01:10:55 +01:00
22ec3e3baf
OpenEuiccService: Start migrating to withEuiccChannel()
/ build-debug (push) Successful in 6m30s
2024-11-03 10:53:24 -05:00
32f5e3f71a
PrivilegedTelephonyUtils: Nuke direct EuiccChannel usage
/ build-debug (push) Successful in 4m38s
2024-11-02 21:36:08 -04:00
04debd62d5
MainActivity: Fixup ViewPager update
/ build-debug (push) Successful in 4m52s
2024-11-02 20:58:56 -04:00
0ef435956c
EuiccChannelManager: retire enumerateEuiccChannels()
/ build-debug (push) Successful in 4m54s
2024-11-02 19:09:57 -04:00
573dce56a6
EuiccChannelManager: Stop emitting real EuiccChannel for USB
/ build-debug (push) Has been cancelled
2024-11-02 19:06:31 -04:00
272ab953e0
PrivilegedTelephonyUtils: Switch to flowEuiccPorts()
/ build-debug (push) Successful in 5m6s
2024-11-02 18:09:12 -04:00
6257a03058
DirectProfileDownloadActivity: use flowEuiccPorts()
/ build-debug (push) Successful in 4m29s
2024-11-02 17:16:43 -04:00
5e5210ae2d
MainActivity: switch to flowEuiccPorts()
/ build-debug (push) Successful in 4m26s
2024-11-02 16:54:30 -04:00
87eb497f40
feat: open stk from menu ( #57 )
...
/ build-debug (push) Successful in 4m22s
Reviewed-on: #57
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-11-02 19:29:37 +01:00
1dc5004681
feat: enhanced visual hints for available slots ( #54 )
...
/ build-debug (push) Has been cancelled
Reviewed-on: #54
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-11-02 19:27:42 +01:00
2ece6af174
Add EuiccChannelManager.flowEuiccPorts()
...
/ build-debug (push) Successful in 4m56s
This is to prepare for refactoring EuiccChannel usage out everywhere
2024-10-29 20:18:23 -04:00
59b4b9e4ab
Fix EuiccInfoActivity crash
/ build-debug (push) Successful in 4m45s
2024-10-28 21:10:01 -04:00
826c120ca5
EuiccInfoActivity: support back button
/ build-debug (push) Successful in 4m33s
2024-10-27 15:58:33 -04:00
5cefbc24f5
OpenEuiccService: fixup
2024-10-27 15:57:46 -04:00
f285eacd55
Show channel access mode and removable status
/ build-debug (push) Failing after 4m13s
2024-10-27 15:17:00 -04:00
481b9ce196
Show slot ID in EuiccInfoActivity
/ build-debug (push) Successful in 5m17s
2024-10-27 11:24:22 -04:00
ce7fb29c14
Display supported certificates (GSMA Test or Prod) in EuiccInfoActivity
2024-10-27 11:22:10 -04:00
c2cc8ceb2a
feat: EuiccInfoActivity
/ build-debug (push) Successful in 4m32s
2024-10-27 11:04:45 -04:00
3d4704e77b
Remove more EuiccChannel usage in PrivilegedEuiccManagementFragment
/ build-debug (push) Successful in 5m46s
2024-10-26 22:15:02 -04:00
6a2d4d66dd
Move EuiccChannelManagerService to withEuiccChannel()
/ build-debug (push) Successful in 4m32s
2024-10-26 21:52:33 -04:00
8ac46bd778
Move findEuiccChannelBySlot to non-blocking
2024-10-26 21:46:13 -04:00
0961ef70f4
New withEuiccChannel() variant with logical slot ID
2024-10-26 21:45:14 -04:00
3b868e4f9a
Move some fragments to withEuiccChannel()
/ build-debug (push) Successful in 4m26s
2024-10-26 21:41:56 -04:00
95b24e6151
Add withEuiccChannel helper for EuiccChannelFragment
2024-10-26 21:29:09 -04:00
ef62274057
Wrappers shouldn't hold references indefinitely
/ build-debug (push) Successful in 4m4s
2024-10-26 15:49:38 -04:00
76e8fbd56b
Use wrappers to enforce that withEuiccChannel can't leak references
2024-10-26 15:46:43 -04:00
d54fcf2589
refactor: Make EuiccChannel abstract
...
/ build-debug (push) Successful in 4m13s
This allows wrapping to control reference lifetime outside of
EuiccChannelManager.
2024-10-26 15:32:31 -04:00
7cb872a664
Add new withEuiccChannel() method to EuiccChannelManager
2024-10-26 15:32:31 -04:00
65c9a7dc39
fix: refer url ( #53 )
...
/ build-debug (push) Successful in 4m22s
Reviewed-on: #53
Co-authored-by: septs <github@septs.pw>
Co-committed-by: septs <github@septs.pw>
2024-10-23 04:17:48 +02:00
d26a8ddc78
EuiccChannelManagerService: stop using blocking variants unnecessarily
/ build-debug (push) Successful in 4m19s
2024-10-20 20:37:44 -04:00
aac457f4b5
Don't dismiss DialogFragment's when in background
...
/ build-debug (push) Successful in 5m43s
They shall be dismissed automatically. Doing it here may cause
IllegalStateException.
Note that even if they are dismissed, the corresponding tasks will
continue to be executed by EuiccChannelManagerService and will not be
cancelled.
2024-10-20 11:47:27 -04:00
2337ad035d
Post a notification to signify task failure from service
2024-10-20 11:44:20 -04:00
7197501cca
ProfileDownloadFragment: Stop catching all exceptions
...
/ build-debug (push) Failing after 37s
..instead, use the error value returned in the foreground task result.
Catching all exceptions will result in cancellation being ignored when
the fragment is destroyed.
2024-10-19 21:13:07 -04:00
4709b6994f
Don't call stopSelf() if the coroutine is cancelled
2024-10-19 19:14:14 -04:00
349c8179b0
Force foreground tasks to always complete (i.e. not cancelled)
2024-10-19 19:09:35 -04:00
16b6aceedf
ui: Remove more blocking operations in NotificationsActivity
/ build-debug (push) Successful in 5m4s
2024-10-12 11:09:16 -04:00
eab96dde05
ui: Reduce blocking operations on transition
2024-10-12 10:49:47 -04:00
84dd16c169
Enable predicative back gestures
/ build-debug (push) Successful in 4m50s
2024-10-12 10:39:48 -04:00
d3a04b94a9
Set MSS on es10x commands to 60 for OMAPI channels
...
/ build-debug (push) Successful in 4m59s
This seems to help a LOT with 6601 checksum errors on phones like Pixel
7 Pro. I am seeing virtually none with MSS = 60.
2024-10-10 22:08:32 -04:00
19dc215b3f
lpac-jni: Update lpac
2024-10-10 21:52:57 -04:00
ddc421dae7
omapi: Retry on 0x6601 checksum errors
...
/ build-debug (push) Successful in 8m18s
Some removable eUICCs don't play nicely with some modems. When they emit
0x6601 checksum errors, retry at least a few times before giving up.
This fixes support for eSTK.me / JMP eSIM Adapters on Pixel 7 Pro.
2024-10-09 22:45:09 -04:00
69e63b0a8b
Stop using runBlocking inside suspend funs
/ build-debug (push) Successful in 5m16s
2024-10-09 21:46:49 -04:00
290bdca75a
feat: Introduce option for global verbose logging
/ build-debug (push) Successful in 4m34s
2024-10-09 20:20:32 -04:00
5c8bbeb217
Fix removable eSIM safeguards description again
/ build-debug (push) Successful in 5m11s
2024-10-09 18:14:54 -04:00
ff266a4a9b
Un-confusing-ify the "safeguards" description
/ build-debug (push) Has been cancelled
2024-10-09 18:13:51 -04:00
6b71a746a4
Add monochrome icons for v31+
/ build-debug (push) Has been cancelled
2024-10-09 18:10:14 -04:00
165f685abb
Remove unused beginTrackedOperation in UI
2024-09-30 19:53:25 -04:00
42942c2816
ui: Handle navbar insets properly
/ build-debug (push) Successful in 4m55s
2024-09-30 19:49:24 -04:00
54b4f61fd7
Improve notification channel creation
/ build-debug (push) Successful in 5m22s
2024-09-29 21:50:47 -04:00
7661b4b84f
Output any foreground task error to Log
2024-09-29 21:45:55 -04:00
479e0ff34a
Move profile switching to use the new foreground task flow
/ build-debug (push) Successful in 4m50s
2024-09-29 21:44:32 -04:00
79f43e2fda
Set notification to alert only once
/ build-debug (push) Successful in 4m2s
2024-09-29 17:40:58 -04:00
8573834a03
Improve download progress bar UI
/ build-debug (push) Has been cancelled
2024-09-29 17:39:32 -04:00
2721f91277
Make foreground notifications much more reliable
/ build-debug (push) Has been cancelled
2024-09-29 17:36:58 -04:00
653123939c
Set notifications to ongoing
2024-09-29 17:07:15 -04:00
48b5f8ce06
Impose timeout on waiting for foreground start
2024-09-29 16:54:49 -04:00
31c06470c6
Move profile deletion to new flow
2024-09-29 16:49:21 -04:00
cf5704be42
Move profile download to the new foreground flow
...
/ build-debug (push) Successful in 4m7s
...and fix race condition introduced by the new flow
2024-09-29 16:32:58 -04:00
f71da0e4ff
Update documentation
/ build-debug (push) Successful in 4m29s
2024-09-29 15:32:46 -04:00
fe1319537a
Make foreground tasks block UI reloads
2024-09-29 15:30:49 -04:00
8de0d86895
ProfileDownloadFragment: Wait for euiccChannelManager to load
/ build-debug (push) Successful in 4m10s
2024-09-29 15:14:43 -04:00
64a350d271
lpac-jni: Force reduce connect/read timeout for notification requests
2024-09-29 15:12:18 -04:00
9a77824f79
Enforce updateForegroundNotification to run in the main thread
/ build-debug (push) Successful in 4m21s
2024-09-29 14:40:15 -04:00
3add3ffa90
refactor: Launch profile download task inside EuiccChannelManagerService
...
/ build-debug (push) Successful in 4m39s
This task is too long to run directly inside the fragment lifecycle.
Instead, let's launch it inside the service lifecycle scope and use a
MutableStateFlow to notify the UI of progress.
This interface is designed to be extensible to other use cases.
2024-09-29 14:09:17 -04:00
324dcdc563
EuiccManagementFragment: prevent crashes on configuration change
...
/ build-debug (push) Successful in 4m0s
This is... not supposed to happen. We made too many assumptions about
the Fragment lifecycle.
2024-09-28 16:15:17 -04:00
b94eedac0a
All LPA methods should be synchronized
...
/ build-debug (push) Successful in 4m57s
Calling them from multiple threads is undefined
2024-09-28 11:15:51 -04:00
a6777d1d17
Apply layout insets to more activities
/ build-debug (push) Successful in 5m28s
2024-09-28 11:05:18 -04:00
dc70f7ca46
Fix toolbar id in app-unpriv
2024-09-28 10:58:46 -04:00
77d95e4d02
Remove unused log
2024-09-28 10:44:29 -04:00
4a32f53c06
Commonize activity toolbar layouts
/ build-debug (push) Failing after 4m4s
2024-09-28 10:28:24 -04:00
97bc0a0827
chore: uprev to targetSDK 35 and basic edge2edge inset fixes
/ build-debug (push) Successful in 4m38s
2024-09-24 22:22:18 -04:00
68f1e370fc
lpac-jni: Make sure to free EuiccInfo2
/ build-debug (push) Successful in 4m16s
2024-09-07 20:35:13 -04:00
bf36188219
refactor: lpac-jni: Move EuiccInfo2 handling to Kotlin too
/ build-debug (push) Has been cancelled
2024-09-07 20:32:27 -04:00
a43ceea39f
lpac-jni: linked list free -> struct free
/ build-debug (push) Successful in 4m32s
2024-09-07 16:26:33 -04:00
c681e99e47
refactor: lpac-jni: Move profiles linked list to Kotlin handling too
/ build-debug (push) Successful in 4m17s
2024-09-07 16:02:28 -04:00
0afbece3b5
.idea: Whatever updates Android Studio wants
2024-09-07 15:53:11 -04:00
b101b01228
chore: Bump all subproject compileSdks
...
...yes, we'll probably need to bump these again very soon.
2024-09-07 15:51:37 -04:00
5ab07d6262
README: Mention more clearly it's GNU GPL v3
/ build-debug (push) Successful in 4m44s
2024-09-03 21:45:50 -04:00
394cad2eac
refactor: lpac-jni: Use C macros to generate struct-exposing functions
2024-09-03 21:35:41 -04:00
7f67000074
refactor: lpac-jni: Handle notification struct / linked list in Kotlin
...
/ build-debug (push) Successful in 5m3s
JNI does not seem to like a ton of local references very much on armv7
(32-bit), even if env->EnsureLocalCapacity is called. Let's just avoid
doing this by moving most of this logic to Kotlin.
This also needs to be done for LocalProfileInfo.
2024-09-02 17:03:20 -04:00
7c07db0aab
README: Warn about non-standard external eSIMs
/ build-debug (push) Successful in 5m44s
2024-08-17 20:57:25 -04:00
f073261b60
unpriv: Add Huawei and Honor into the blocklist
2024-08-17 20:55:03 -04:00
87ea017b36
OmapiApduInterface: Log all APDU exchanges
/ build-debug (push) Successful in 5m17s
2024-08-14 20:43:54 -04:00
44b85ffdea
lpac-jni: Log load bpp error reason
/ build-debug (push) Successful in 4m42s
2024-08-14 20:15:47 -04:00
01fc07fd78
EuiccManagementFragment: Add nonnull assertion for platform types
...
/ build-debug (push) Successful in 5m14s
Fixes build within AOSP 14 source tree.
2024-08-11 20:50:57 -04:00
b55df25650
NotificationsActivity: display channel name in toolbar
/ build-debug (push) Successful in 4m29s
/ release (push) Successful in 4m37s
2024-07-21 08:38:31 -04:00
c84b114de0
README: Update for USB readers
/ build-debug (push) Successful in 4m42s
2024-07-20 16:02:43 -04:00
47c6bbb864
feat: Copy ICCID to clipboard on long click
/ build-debug (push) Successful in 4m50s
2024-07-20 15:41:08 -04:00
27627fdf15
ui: Minor XML fixes
...
/ build-debug (push) Successful in 5m23s
`tools:context` is unused; fix RTL
2024-07-14 22:03:03 -04:00
7b605fd44a
Remove unnecessary var
/ build-debug (push) Failing after 10m30s
2024-07-14 21:20:11 -04:00
323c6a5bc0
Update wording to include USB readers when no card found
2024-07-14 21:19:27 -04:00
e1877f5d3a
Update wording to stress "standard CCID readers"
2024-07-14 21:18:00 -04:00
154ac77203
ui: Fix USB hotplug not getting picked up when no SIM is found
/ build-debug (push) Has been cancelled
2024-07-14 21:16:42 -04:00
5300178a0e
lpac-jni: Kill profiles cache, and stop crashing when null
...
/ build-debug (push) Successful in 5m11s
This is no longer needed because we are using euiccInfo2 to check
validity
2024-07-14 20:45:46 -04:00
26abb5cc43
Add USB compatibility check
/ build-debug (push) Successful in 4m59s
2024-07-14 17:11:43 -04:00
67927cf7ef
fix: Do not look for channel in the process of switching profiles
...
/ build-debug (push) Successful in 5m13s
Fixes #36
2024-07-12 17:17:32 -04:00
829f019aa2
ui: Add footer view when no profiles are found
/ build-debug (push) Successful in 5m11s
2024-07-07 20:59:55 -04:00
f84baa02f0
ui: Prevent refresh from being launched multiple times
...
/ build-debug (push) Successful in 4m31s
Fixes #35 .
2024-07-07 10:16:33 -04:00
eac33575ce
app-deps: Update Android.bp dependencies
/ build-debug (push) Successful in 4m14s
2024-07-07 10:08:45 -04:00
0ecf4e9776
ui: Better wording
/ build-debug (push) Successful in 4m7s
2024-07-07 09:58:12 -04:00
b16a72f43a
ui: Add option to skip safeguard for removable eSIMs
/ build-debug (push) Has been cancelled
2024-07-07 09:56:06 -04:00
293266bb6e
ui: Allow disabling the only remaining profile through USB readers
/ build-debug (push) Successful in 6m11s
2024-07-06 20:46:52 -04:00
b2fb3d23cb
ui: Usb should use its own refresh progress bar
/ build-debug (push) Successful in 4m44s
2024-07-06 18:36:58 -04:00
388f15a531
ui: Scroll to USB fragment when inserted while app is active
2024-07-06 18:29:01 -04:00
3ffd847af7
ui: refactor: Use ViewPager2 instead of an ad-hoc spinner for slot selection
/ build-debug (push) Successful in 4m32s
2024-07-06 18:12:33 -04:00
d78985bd72
Revert "UsbCcidTransceiver: Stop spamming logs"
...
/ build-debug (push) Successful in 5m29s
This reverts commit c7afeea845 .
2024-07-02 21:23:32 -04:00
9c7cf2c797
ui: Fix frame drops by calling isMEP in the IO context
...
/ build-debug (push) Successful in 4m10s
For whatever reason, UiccCardInfo.isMultipleEnabledProfilesSupported()
can be slow only on some SIM slots.
2024-07-01 20:08:05 -04:00
960fa6743a
UsbApduInterface: Implement validity check
/ build-debug (push) Successful in 4m13s
2024-07-01 19:59:23 -04:00
09a8db330b
preference: Remove unused keys
/ build-debug (push) Has been cancelled
2024-07-01 19:55:13 -04:00
3f0e789997
feat: Unified notification type for enabling / disabling
/ build-debug (push) Has been cancelled
2024-07-01 19:54:44 -04:00
c7afeea845
UsbCcidTransceiver: Stop spamming logs
/ build-debug (push) Successful in 4m8s
2024-07-01 19:48:40 -04:00
083ee03f8e
OpenEuiccService: Fix ServiceConnection leakage
/ build-debug (push) Successful in 4m9s
2024-07-01 18:26:10 -04:00
1a1364f788
MainActivity: Reload when USB devices are attached / detached
/ build-debug (push) Successful in 3m49s
2024-07-01 16:12:02 -04:00
8210f06098
ui: Add option to reload all slots
/ build-debug (push) Successful in 3m55s
2024-07-01 15:53:26 -04:00
102902386c
lpac-jni: euiccInfo2 needs to be bang'd
/ build-debug (push) Successful in 4m24s
2024-07-01 15:25:10 -04:00
576ede455d
UsbCcidReaderFragment: Fix unregistering receivers
/ build-debug (push) Successful in 4m12s
2024-07-01 15:04:32 -04:00
fc9f962061
UsbApduInterface: cleanup
2024-07-01 14:59:56 -04:00
41f16e03cf
lpac-jni: Test using euiccInfo2 instead of profiles to check validity
/ build-debug (push) Successful in 4m2s
2024-07-01 14:38:25 -04:00
ec5e5d0416
usb: Cleanup
/ build-debug (push) Successful in 3m52s
2024-07-01 14:16:03 -04:00
2bd5f007d9
README: Fix logo sizing
/ build-debug (push) Successful in 3m54s
2024-07-01 13:44:15 -04:00
17aebc2c73
README: Use HTML and SVG to size the logo properly
/ build-debug (push) Has been cancelled
2024-07-01 13:43:13 -04:00
9f6df17a1d
README: Use 768 variant instead
/ build-debug (push) Successful in 3m59s
2024-07-01 13:34:25 -04:00
c32ae6946d
README: use 512x variant of the logo
/ build-debug (push) Has been cancelled
2024-07-01 13:31:20 -04:00
bc238cc680
Add VTuber-style logo courtesy of Aikoyori
/ build-debug (push) Has been cancelled
2024-07-01 13:28:20 -04:00
d1d85161cc
fix: USB CCID channels do not need reconnects on switch
/ build-debug (push) Failing after 10m30s
2024-06-30 21:10:41 -04:00
0a971b68b2
ProfileDownloadFragment: Do not crash for USB channels
/ build-debug (push) Waiting to run
2024-06-30 21:01:18 -04:00
b67791412a
ui: Decouple USB-specific logic from MainActivity into a dedicated fragment
2024-06-30 21:00:30 -04:00
3960a2d9d8
ui: Add progress spinner when MainActivity is loading
2024-06-30 20:20:32 -04:00
70f20f9de8
OpenEUICC is now GPLv3 only
...
/ build-debug (push) Successful in 5m0s
We have included code originating from OpenKeychains. Our current
downstreams should all be okay with GPLv3. If not, contact me and we
might be able to figure something out (e.g. isolating GPLv3 code)
2024-06-30 20:08:01 -04:00
ccf21675d6
[3/n] Handle USB permission responses properly
/ build-debug (push) Failing after 14m40s
2024-06-30 17:06:58 -04:00
87fc1cd2f8
NotificationsActivity: Prevent simulatenous handleNotification + refresh
2024-06-30 16:55:55 -04:00
3667f578d7
[2/n] USB CCID Reader support
...
*cough* copied CCID driver from OpenKeychains
2024-06-30 16:53:00 -04:00
803b88f74e
feat: USB CCID reader support [1/n]
2024-06-29 20:02:48 -04:00
6396f17012
Retry profile switching with refresh = false if refresh = true failed
/ build-debug (push) Failing after 13m17s
2024-06-27 20:01:44 -04:00
4790f87b65
ui: Prevent users from doing multiple things at once
/ build-debug (push) Successful in 5m7s
2024-06-26 21:23:10 -04:00
a29b068035
ui: Prevent crash after a profile switch that timed out
...
...and improve the prompt when this happens.
2024-06-26 21:20:53 -04:00
f3391bb8ee
lpac-jni: Bump
/ build-debug (push) Successful in 4m43s
2024-06-24 21:07:50 -04:00
4914a35c3d
fix: EuiccService should ignore negative slot IDs
/ build-debug (push) Successful in 5m4s
2024-06-24 21:02:13 -04:00
113cc1b4cf
revert back to calling enableProfile directly
...
/ build-debug (push) Has been cancelled
Disabling without refreshing causes issues on eSTK.me
2024-06-24 20:59:18 -04:00
c8d2269efb
fix: beginTrackedOperation() should work with channels that get invalidated
/ build-debug (push) Failing after 12m35s
2024-06-23 21:40:14 -04:00
790a5cf778
OpenEuiccService: handle errors in disabling active profiles
/ build-debug (push) Successful in 5m6s
2024-06-16 20:58:07 -04:00
261ad6dbeb
OpenEuiccService: track LPA actions for notifications
2024-06-16 20:53:25 -04:00
f73af48b59
refactor: beginTrackedOperation should be a LPA extension
2024-06-16 20:25:25 -04:00
df9cece94b
refactor: Commonize logic for disabling the active profile
/ build-debug (push) Successful in 4m16s
2024-06-16 17:53:26 -04:00
0e86a922d1
fix: do not refresh eUICC when switching port mapping
...
/ build-debug (push) Successful in 4m25s
This is entirely unnecessary and only causes problems
2024-06-16 17:45:30 -04:00
2b3f042e39
Move some functions to LPAUtils
2024-06-16 17:42:21 -04:00
ff427759d7
fix: Try to disable the current profile before switching
/ build-debug (push) Successful in 4m15s
2024-06-16 17:27:00 -04:00
20cdb99a7b
lpac-jni: Expose refresh flag to Kotlin
/ build-debug (push) Successful in 5m1s
2024-06-16 17:09:19 -04:00
01e1b2b9a4
fix: Show toasts from main thread
/ build-debug (push) Successful in 6m50s
2024-06-13 20:24:42 -04:00
1536343b3f
fix: Add connection timeouts for notification handling
...
/ build-debug (push) Successful in 5m22s
...and do not fail operations if notification handling fails --
notifications are best-effort.
2024-06-04 22:05:29 -04:00
051bb9f1e3
ui: Fix download errors, again
...
/ build-debug (push) Successful in 5m5s
Also improve comments so I don't keep forgetting what I did
2024-06-02 20:24:31 -04:00
5498186cf1
ui: Stop refreshing profiles on every UI event
/ build-debug (push) Successful in 5m6s
2024-06-02 20:12:28 -04:00
2d312f2216
lpac-jni: Avoid reloading profiles from card every time
...
/ build-debug (push) Successful in 5m57s
Some cards may run at a low baud rate which causes issues
2024-06-02 17:44:10 -04:00
3869374140
ProfileDownloadFragment: make OK always appear as action
/ build-debug (push) Successful in 5m19s
2024-05-20 18:09:49 -04:00
fc4e5739de
feat: Scan QR code from gallery
...
Close #6 .
2024-05-20 18:09:00 -04:00
8eb36c77a8
workflows: Fix path
...
/ build-debug (push) Successful in 5m25s
/ release (push) Successful in 4m56s
This is not JMP SIM Manager :)
2024-05-20 10:10:55 -04:00
1a22854d05
refactor: Remove all usage of knownChannels
...
/ build-debug (push) Has been cancelled
/ release (push) Failing after 5m29s
enumerateEuiccChannels() should return all discovered channels on its
own. Outside classes should never access the cached open channels
directly.
2024-05-09 16:08:00 -04:00
5785fe2e7c
EuiccChannelManager: Check for channel validity before returning
...
/ build-debug (push) Successful in 4m32s
Related to #26 . Sometimes we could open a channel but it somehow ends up
being invalid, for example for a slot that's not actually an eUICC
(???). This should be a bug somewhere else, but we should nevertheless
prevent OpenEUICC from crashing.
2024-05-07 10:06:08 -04:00
043dff0f0a
lpac: bump upstream
/ build-debug (push) Successful in 6m10s
2024-05-04 22:02:11 -04:00
59f3597874
refactor: Wrap EuiccChannelManager in an Android Service instance
...
/ build-debug (push) Successful in 4m54s
This allows MUCH better lifecycle control over EuiccChannelManager. We
no longer have to keep all opened APDU channels open until the
application is destroyed. Instead, they can be closed as long as no
component is bound to this Service instance.
A catch is that other long-running services must bind to this service
as-needed, otherwise a binding is going to keep the service always
alive. This only affects the EuiccService implementation, and a
suspending/blocking helper function is added to deal with this case.
2024-05-04 17:29:10 -04:00
0f655f1f1f
workflows: Save debug symbols for releases
/ build-debug (push) Successful in 5m0s
2024-04-29 19:22:30 -04:00
1f6bad4222
app-unpriv: Set ndkVersion as well for stripping
...
Otherwise, the stripping step always fails in CI builds. This breaks
reproducibility as debug info contains path to NDK.
2024-04-29 19:22:19 -04:00
03e6380570
Ditch REPRODUCIBLE_BUILD flag and set all prefix maps unconditionally
2024-04-29 19:22:12 -04:00
bf121e07a4
workflows: Correct build reproducibility
...
- REPRODUCIBLE_BUILD needs to be a string
- Fetch all history to generate versionCode correctly
2024-04-29 19:22:04 -04:00
8b38a5a58d
OpenEuiccService: prevent crashing when AOSP queries an unmapped slot
...
/ build-debug (push) Successful in 5m53s
To properly fix this we need to temporarily enable disabled slots when
they are requested by AOSP. For now let's just stop OpenEUICC from
crashing.
2024-04-21 22:31:03 -04:00
6e590cfd48
OpenEuiccService: stop confusing AOSP with multiple eUICCs
...
/ build-debug (push) Successful in 4m12s
Unfortunately, AOSP is not really good at handling more than one eUICC
chips per device, even though the EuiccService interface should
technically allow for such a situation.
Let's do the next best thing -- only ever report one eUICC chip to AOSP.
If the device has an internal one, then only report that one; otherwise,
select the first available eUICC chip to report to the system.
We might make this more configurable in the future, but for now I think
this should work for most of the situations.
Note that this does NOT affect how the rest of OpenEUICC behaves. This
does mean however OpenEUICC will keep hold of some APDU channels that it
will never access via OpenEuiccService. A mitigation is to make
EuiccChannelManager close unused channels automatically after some
timeout.
2024-04-03 20:53:48 -04:00
35e543ff70
unpriv: Use "SIM <id>" instead of "Logical Slot <id>"
...
/ build-debug (push) Successful in 4m9s
It does not make sense to refer to logical slot in an unprivileged
context.
2024-03-30 18:55:14 -04:00
f046d40f2c
privileged: Disable slot mapping support for pre-T
...
/ build-debug (push) Successful in 4m22s
Fixes #15 .
2024-03-30 15:36:30 -04:00
80adac68c8
ui: Use KiB instead of KB for free space
...
/ build-debug (push) Successful in 4m27s
Fixes #19 .
2024-03-30 15:30:40 -04:00
1ed5a4de38
chore: Uprev lpac
...
/ build-debug (push) Successful in 3m55s
Fixes #20
2024-03-29 17:31:06 -04:00
4b842c4afe
feat: Add an "verdict" to compatibility checks
/ build-debug (push) Successful in 3m42s
2024-03-23 20:56:42 -04:00
2517fc817e
ComaptibilityCheck: Clarify "Known Broken"
/ build-debug (push) Successful in 3m54s
2024-03-23 11:17:10 -04:00
e48f9aa828
refactor: Channel validity, and reconnection
...
/ build-debug (push) Successful in 4m51s
* ApduInterfaces also need a concept of validity based on the underlying
APDU channel. For example, OMAPI depends on SEService being still
connected.
* We then rely on this validity to wait for reconnection; we do not need
to manually remove all channels under a slot because the rest will be
invalid anyway, and the next attempt at connection will lazily
recreate the channel.
* We had to manage channels manually before during reconnect because
`valid` may result in SIGSEGV's when the underlying APDU channel has
become invalid. This is avoided by the validity concept added to APDU
channels.
2024-03-22 21:08:59 -04:00
1ac683f9ab
refactor: Reconnecting channels is a EuiccChannelManager responsibility
...
/ build-debug (push) Successful in 4m13s
Reconnecting did not work properly for OMAPI, because in that case we
have to reconnect SEService as well.
2024-03-21 22:21:24 -04:00
7834e0348a
refactor: Move notification tracking logic to EuiccChannelFragmentUtils
2024-03-21 21:29:20 -04:00
92d8f9079f
EuiccManagementFragment: Show alert dialog if timed out waiting for SIM
/ build-debug (push) Successful in 4m17s
2024-03-21 21:16:14 -04:00
d9d0cf2e75
CompatibilityCheck: Show unknown status if OMAPI feature flag is not found
/ build-debug (push) Successful in 3m49s
2024-03-20 20:03:45 -04:00
999462c294
ui: Hide spinner when no eSIM is found
/ build-debug (push) Successful in 4m42s
2024-03-17 14:19:07 -04:00
2061e6fea3
ui: Better placeholder for the no-eSIM case
2024-03-17 14:02:38 -04:00
6977a32e80
refactor: EuiccChannel is not abstract
/ build-debug (push) Successful in 4m19s
2024-03-17 11:19:37 -04:00
3a0d805eb2
treewide: Nullability fixes for AOSP 14 r29
...
/ build-debug (push) Successful in 4m48s
Mainly a treewide `findViewById` -> `requireViewById`, with
miscellaneous fixes.
2024-03-11 18:55:32 -04:00
348395c48d
chore: Bump lpac
/ build-debug (push) Successful in 4m21s
/ release (push) Successful in 4m26s
2024-03-05 20:14:21 -05:00
124d1690ab
fix: Clear status icon when compat check items are recycled
2024-03-05 20:12:19 -05:00
8ee3c53492
buildSrc: Use HEAD rev count as version code
...
In Actions, we do not always have a checkout of the master branch.
This only applies to release builds anyway. For debug builds, we always
use the timestamp.
2024-03-05 20:07:49 -05:00
ca0085e147
fix: Do not crash if a certificate key ID is not known
...
/ build-debug (push) Successful in 3m25s
/ release (push) Failing after 2m2s
Fixes #17 .
2024-03-04 20:07:43 -05:00
09e19412e3
fix: Show less logs in UI than what we will save
...
/ build-debug (push) Successful in 3m21s
...to avoid the UI getting stuck due to the sheer amount of lines.
2024-03-04 19:59:10 -05:00
6c2b1675bd
fixup: Infinite loop in PreferenceUtils after adopting DI
/ build-debug (push) Successful in 3m48s
2024-03-04 19:35:17 -05:00
1a69c5294b
refactor: Use DI techniques for EuiccChannel's as well
2024-03-04 19:30:04 -05:00
7c6b4ebee5
refactor: IEuiccChannelManager -> EuiccChannelManager
/ build-debug (push) Successful in 3m27s
2024-03-04 19:06:05 -05:00
4dd14d23f2
refactor: Add UiComponentFactory to manual DI
/ build-debug (push) Successful in 4m3s
2024-03-04 18:51:10 -05:00
6356601467
CompatibilityCheck: Make connectivity fail a "Unknown" failure
/ build-debug (push) Successful in 3m36s
2024-03-04 18:43:37 -05:00
aef399dad0
CompatibilityCheck: Explain that the user might want to contact the ROM developer
/ build-debug (push) Successful in 3m33s
2024-03-04 18:39:40 -05:00
a101ae6805
CompatibilityCheck: Improve OMAPI connectivity check
...
/ build-debug (push) Has been cancelled
Stop failing the test if only some slots can be seen. Display a text
warning users of that, but don't appear as a failure.
2024-03-04 18:38:15 -05:00
49af0ffee9
CompatibilityCheck: Return FAILURE_UNKNOWN when no SIM readers are found
2024-03-04 18:23:53 -05:00
2d1c96023a
refactor: Condense dependency management to a rudimentary dependency injection subpackage
/ build-debug (push) Successful in 4m16s
2024-03-04 17:17:20 -05:00
770083523d
refactor: Extract an interface from EuiccChannelManager
...
/ build-debug (push) Successful in 4m45s
Eventually, we would like EuiccChannelManager to become a Service
instead of just any random class.
2024-03-03 20:29:18 -05:00
e48a919335
feat: Allow exporting logs as txt
/ build-debug (push) Successful in 4m2s
2024-03-03 13:22:46 -05:00
c0d1c29b7f
feat: Show error logs on crash when unprivileged
...
/ build-debug (push) Successful in 3m45s
...however, don't do this in privileged mode because OpenEuiccService is
supposed to be background, and we don't want to just randomly show up
when things go wrong.
2024-03-03 10:55:35 -05:00
62e3e41c52
lpac-jni: Mark network-related LPA methods as synchronized
...
/ build-debug (push) Successful in 4m3s
These methods rely on non-thread-safe internal states within lpac's
context.
2024-02-28 19:57:47 -05:00
a1b2643625
lpac-jni: Always add GSMA ROOT CI1
/ build-debug (push) Successful in 3m48s
2024-02-27 20:06:08 -05:00
6d200d14ac
nuke asn1c in Android.bp and Android.mk
/ build-debug (push) Successful in 3m54s
2024-02-27 19:50:29 -05:00
12d02ee76c
lpac-jni: malloc -> calloc
/ build-debug (push) Successful in 3m45s
2024-02-25 15:00:24 -05:00
412fd31477
lpac-jni: Uprev lpac libeuicc
...
* use `-z muldefs` temporarily to work around upstream bug.
2024-02-25 14:57:52 -05:00
19c63113a1
ProfileDeleteFragment: Require confirmation via inputting profile name
/ build-debug (push) Successful in 4m4s
2024-02-25 13:28:59 -05:00
2a8fb99ed0
lpac-jni: Assert jlong is enough to hold a platform sized pointer
/ build-debug (push) Successful in 3m48s
2024-02-24 16:18:15 -05:00
18cd9acdb8
lpac-jni: Call es9p_ctx_free
/ build-debug (push) Successful in 4m5s
2024-02-24 16:10:55 -05:00
4ded234ed2
lpac-jni: Reformat JNI C code
/ build-debug (push) Has been cancelled
2024-02-24 16:09:57 -05:00
5aed27513f
lpac-jni: Uprev lpac
/ build-debug (push) Successful in 3m56s
2024-02-24 15:53:58 -05:00
2b972badaa
lpac-jni: Add Entrust CI to known list
/ build-debug (push) Successful in 3m52s
2024-02-21 21:28:54 -05:00
ab76ae66e2
lpac-jni: Do not crash on unknown CIs
/ build-debug (push) Has been cancelled
2024-02-21 21:26:45 -05:00
c033ef5ba9
refactor: Trust SM-DP+ TLS certs based on euiccCiPKIdListForVerification
...
/ build-debug (push) Successful in 4m39s
Unfortunately, because there is no way to access the certificate itself
from the eUICC, we have to hard-code known & supported certificates
still.
However, this approach makes sure that only those certificates listed by
the eUICC are trusted during their SM-DP+ sessions. Were these added
directly as part of the Android security config, then all certificates
would be blindly trusted for all SM-DP+ sessions (and even normal TLS
connections if the app were to make them).
As a result we can now trust more known certificates, including GSMA
Test CIs. These are hard-coded as a hash map.
2024-02-21 21:09:20 -05:00
252000660a
CompatibilityCheck: show unknown status when "secure element is not present"
...
/ build-debug (push) Successful in 4m3s
Some devices "optimize" their OMAPI by reporting this status when both
slots are empty. Even just inserting one SIM would fix this error for
both slots.
In this case, we should not imply that the device is incompatible.
2024-02-19 17:04:03 -05:00
048764d305
refactor: Comaptibility checks should return the success / failure state directly
2024-02-19 16:42:39 -05:00
1c0ddefad9
lpac-jni: Introduce convenience macros for linked lists
/ build-debug (push) Successful in 4m41s
2024-02-18 21:08:37 -05:00
1c7dc67803
chore: Synchronize with upstream lpac changes
2024-02-18 20:56:20 -05:00
9f3977dc5e
README: Fix fragments
/ build-debug (push) Successful in 3m49s
2024-02-18 14:09:06 -05:00
77fcc14dca
Rewrite parts of README
/ build-debug (push) Has been cancelled
2024-02-18 14:08:21 -05:00
f90f44ee53
Relicense lpac-jni to LGPLv2 to match lpac
2024-02-18 13:52:48 -05:00
e587af9714
workflows: Run only on runners with android app keystore
/ build-debug (push) Successful in 3m45s
2024-02-15 19:07:30 -05:00
a18867cbaa
feat: Add Forgejo Actions workflow
...
/ build-debug (push) Successful in 4m32s
* Build debug artifacts for both EasyEUICC and OpenEUICC at every commit
on master.
* Release EasyEUICC apk when a tag is created. No OpenEUICC release will
be uploaded.
2024-02-11 21:20:00 -05:00
22eff6e92a
feat: View logs in-app
...
Linked to inside Settings.
2024-02-07 20:59:39 -05:00
5517b7dcd1
fix: Name clash with OpenEuiccContextMarker::context
2024-02-04 20:43:59 -05:00
dedf633ce4
refactor: Rename EuiccFragmentMarker
2024-02-04 20:42:19 -05:00
5514171070
refactor: do not use extension functions for OpenEuiccContextMarker
...
we can just define them internally
2024-02-04 20:32:17 -05:00
1c8918e7f0
Make OpenEuiccUIContextMarker usable for services as well
2024-02-04 20:29:57 -05:00
632b6b4931
refactor: Create OpenEuiccUIContextMarker to facilitate easy access to application-global singletons
...
yes yes yes we should be using dependency injection but let's keep it
simple with AOSP building...
2024-02-04 20:26:54 -05:00
7c0be54fd7
cleanup: Move connectSEService to Utils instead of TelephonyCompat
2024-02-04 16:13:14 -05:00
64c1fa93d3
DirectProfileDownloadActivity: Handle more potential cases
...
e.g. we can skip the slot selection dialog if there is only one chip in
the device.
2024-02-04 16:12:06 -05:00
efeaea2567
ProfileDownloadFragment: support finishing activity when done
2024-02-01 22:02:35 -05:00
fd332bcabe
SlotSelectFragment: do not use constructor parameters
2024-02-01 21:57:14 -05:00
a55fbd2767
ui: Fi styling for all DialogFragments
2024-02-01 21:54:49 -05:00
c807588521
feat: Direct profile download interface with slot selection
...
This can be used by both the system LuiActivity and potentially in the
unprivileged version as a carrier interface as well.
2024-02-01 21:43:31 -05:00
163ee27918
LuiActivity: implement a simple UI
...
This is needed to unblock SetupWizard.
2024-01-31 21:07:37 -05:00
7a0a593035
CompatibilityCheck: use different failure description if no SIM readers are found
2024-01-28 21:06:23 -05:00
4c5ecabfd5
CompatibilityCheck: also perform check for ISD-R channel access directly
2024-01-28 21:03:00 -05:00
5926a6601d
Refactor OMAPI SEService creation
2024-01-28 17:23:32 -05:00
1e2e3f044c
Move COPYING to README.md and change owners to "OpenEUICC contributors"
2024-01-28 10:44:17 -05:00
4a8648dada
feat: Initial implementation: Compatibility Check
2024-01-28 10:21:20 -05:00
6dcaba1f11
Supress NAME_SHADOWING warning
2024-01-27 13:46:32 -05:00
396647919f
.gitignore: Add .idea/deploymentTargetDropDown.xml
2024-01-27 10:59:01 -05:00
277d3bdc76
chore: Cleanup
2024-01-27 10:58:38 -05:00
a53ff97ecc
Android.bp: Fix building on AOSP 14 (finally)
2024-01-21 16:51:18 -05:00
06fe15bb11
app-deps: Exclude jetbrains kotlin stdlib
2024-01-20 16:44:59 -05:00
b580193624
Generate Android.bp and dependencies with LineageOS's GenerateBp plugin
...
...extract all common dependencies to a new module, app-deps, and then
run LineageOS's GenerateBp plugin based on that. The resulting
Android.bp file is a java_defaults that can be used from the main
Android.bp.
Note that the prebuilt binaries are placed in app-deps/libs by
GenerateBp. This directory is explicitly excluded by .gitignore. These
binaries should be copied to another repository
(android_prebuilts_openeuicc-deps) manually.
2024-01-20 16:36:23 -05:00
70c29c195b
convert settings.gradle to kts
2024-01-20 15:28:27 -05:00
0b66a64fdb
app-unpriv: Downgrade minSDK to 28 (P)
...
This is probably the lowest version we can reasonably support with
OMAPI.
2024-01-20 12:59:34 -05:00
41a53816f8
PrivilegedTelephonyUtils: do not disable profiles on external eUICCs
2024-01-20 11:20:56 -05:00
2a6002d053
EuiccManagementFragment: hide the "disable" option for removable eSIMs
2024-01-20 11:16:01 -05:00
5eda8c63bb
lpac-jni: Use APP_LDFLAGS instead of cFlags in build.gradle
2024-01-12 21:29:35 -05:00
58227b0b79
lpac-jni: Try to disable build-ids for NDK libraries
2024-01-12 21:23:45 -05:00
17ff506d88
lpac-jni: Reimplement deterministic __FILE__ prefix using gradle
2024-01-12 21:06:50 -05:00
a923b0995c
lpac-jni: Remap __FILE__ macro usage for reproducibility
2024-01-12 21:01:28 -05:00
6d4d4f9041
lpac-jni: Hard-code a single NDK version
2024-01-12 20:47:00 -05:00
0208cabfa2
lpac-jni: Make build more reproducible
...
When REPRODICBLE_BUILD is set to true, disable multi-threaded
compilation.
2024-01-12 20:38:37 -05:00
50c7b4a3be
refactor: Migrate to build.gradle.kts
...
...and rework the original "helper.gradle" into proper plugins. This
also allows the signing configuration code to be shared, and now
keystore.properties is no longer mandatory.
2024-01-09 21:01:20 -05:00
d66ed125fe
MainActivity: fix crash caused by fragment menus
2024-01-03 21:36:52 -05:00
c65fd5564b
Fix color tinting of ic_help
2024-01-03 21:16:25 -05:00
df034fc03a
Use colorSurfaceVariant for toolbars
2024-01-03 21:10:03 -05:00
761718d0fe
Fix MD3 theming for custom dialog fragments
2024-01-03 20:49:42 -05:00
19837494bb
Remove unused input styles
2024-01-03 20:40:24 -05:00
b606df5e44
More MD3 theming rework
2024-01-03 20:01:14 -05:00
8334394121
fixup! Rework theme to better fit with Material 3 design
...
DynamicColors do not need to be applied again in the privileged version.
2024-01-03 16:11:20 -05:00
8e31594eb7
Rework theme to better fit with Material 3 design
...
Change-Id: I93f6bab814d15a3d08f2ef48fe10031aecfb0a3b
2024-01-03 16:05:22 -05:00
ca08043931
Add kotlinx_coroutines to static_libraries for lpac_jni
...
Change-Id: I90048f865edb699f172b2a9ffdc0ccff33805a8f
2024-01-02 21:50:48 -05:00
ee5ca2d056
Fix string errors when compiling in AOSP
...
When you have multiple placeholders in a string you should use
positional arguments.
Change-Id: Ie1197735b44e1b702418caeaebac0191de18d1e9
2024-01-02 21:50:48 -05:00
f7edd83c63
fixup! Update Android.bp
...
error: packages/apps/OpenEUICC/Android.bp:30:9: expected "]", found String
Change-Id: I6a35b444617628da85235d047340a1205b4cc45c
2024-01-02 21:50:48 -05:00
c5a5701c03
lpac-jni: Fixup channel validity detection
2024-01-01 20:47:52 -05:00
f9e7d0ed8d
lpac-jni: Validate reconnected APDU channel
2024-01-01 20:40:12 -05:00
451b17d0a5
refactor: Stop exitting the application when enabling/disabling profiles
...
..instead, attempt to reconnect the LPA. This is needed to properly
send notifications after the operation.
2024-01-01 20:03:44 -05:00
6784eae43b
Refactor automatic notification handling
...
Sometimes there could be more than one notification queued for each
operation.
2024-01-01 18:17:20 -05:00
74f6313e52
Update Android.bp
...
AOSP build is still broken because of missing datastore libraries. Fix
later.
preference-ktx is replaced with plain preference for AOSP compatibility.
2023-12-31 20:54:19 -05:00
d3db8c6df5
fixup: Profile notifications need to be run in the I/O context
...
...and add some logs
2023-12-31 20:36:51 -05:00
3357a90f91
feat: Notification handling [2/2]
2023-12-31 20:17:17 -05:00
2fc84146da
EuiccChannelManager: Allow attempting OMAPI for non-zero port IDs
...
If the OMAPI eSE API is implemented based on **logical slots**, this
**could** work, however there is no guarantee.
2023-12-31 14:39:16 -05:00
6a6af15896
lpac-jni: Fix test profile type
2023-12-31 13:45:42 -05:00
515d6aea72
lpac-jni: Return empty string for null C strings
2023-12-31 13:31:58 -05:00
608dadd65d
feat: Notification handling [1/2]
2023-12-31 08:53:37 -05:00
a4aaa9bb1a
README: explain sync-s
2023-12-30 11:33:58 -05:00
9cdec0ee67
README: Clarify what we support for Android.bp builds
2023-12-30 11:32:03 -05:00
9330265490
feat: Add a basic settings activity
2023-12-30 11:28:35 -05:00
c370811fc0
lpac-jni: Code cleanup
2023-12-30 10:16:04 -05:00
21b9eeb2ad
chore: uprev lpac & lpac-jni w/ breaking changes
2023-12-30 10:00:18 -05:00
8dc8e60619
README.md: typo
2023-12-28 22:08:37 -05:00