Skip to content

include gservices flags in the OS#346

Open
inthewaves wants to merge 2 commits into
GrapheneOS:17from
inthewaves:gservices-flags-full
Open

include gservices flags in the OS#346
inthewaves wants to merge 2 commits into
GrapheneOS:17from
inthewaves:gservices-flags-full

Conversation

@inthewaves

@inthewaves inthewaves commented Jul 13, 2026

Copy link
Copy Markdown
Member

Closes GrapheneOS/os-issue-tracker#7658

Changelist:

Currently only eUICC-related flags are being consumed. Note that
euicc.experiment.Activation__profile_specific_behavior appears to be region specific (adevtool
doesn't capture this accurately yet) and likely not used by EuiccGoogle.

In July 2026 update (CP2A.260705.006), EuiccSupportPixel added a EsimGcRecoveryService which is
hardcoded to only run on 9th and 10th gen Pixels. Its use is also gated on the gservices flag
euiccpixel.experiment.Ota__should_enable_esim_gc_recovery.

When this flag is disabled or the device is not a 9th or 10th gen Pixel, this is logged:

I EuiccSupportPixel: Checking on slot status changed.
I EuiccSupportPixel: eSIM GC recovery check failed: flag is not enabled or device doesn't support GC recovery.

When this flag is enabled but eSIM GC recovery didn't need to run, this is logged:

I EuiccSupportPixel: Checking on slot status changed.
I EuiccSupportPixel: eSIM is PRESENT but EID is not all zeros.

On some other device generations, there is another eSIM recovery path which is blocked by the
gservices flag euiccpixel.experiment.Ota__support_se_recovery, e.g. cheetah.

When the SERecovery flag is disabled, this is logged:

I EuiccSupportPixel: [SERecovery] SE Recovery is not supported

When this flag is enabled but SERecovery didn't need to run, this is logged:

I EuiccSupportPixel: [SERecovery] Recovery Counter value: 0
I EuiccSupportPixel: [SERecovery] SERecoveryReceiver registered dynamically
  • Test: on tokay, rango, caiman: The "eSIM is PRESENT but EID is not all zeros." log was observed,
    indicating the flag was passed to EuiccSupportPixel correctly
  • Test: on cheetah, the two SERecovery logs "Recovery Counter value: 0" and "SERecoveryReceiver" were
    observed, indicating the flag was passed to EuiccSupportPixel correctly
  • Test: eSIMs were added, calls/SMS/MMS/data were functional, and eSIMs were able to be deleted

@inthewaves inthewaves requested a review from muhomorr July 13, 2026 12:22
Update was done with `adevtool update-gservices-flags`, currently not added to `generate-all`
Currently only eUICC-related flags are being consumed. Note that
euicc.experiment.Activation__profile_specific_behavior appears to be region specific (adevtool
doesn't capture this accurately yet) and likely not used by EuiccGoogle.

In July 2026 update (CP2A.260705.006), EuiccSupportPixel added a EsimGcRecoveryService which is
hardcoded to only run on 9th and 10th gen Pixels. Its use is also gated on the gservices flag
euiccpixel.experiment.Ota__should_enable_esim_gc_recovery.

When this flag is disabled or the device is not a 9th or 10th gen Pixel, this is logged:

    I EuiccSupportPixel: Checking on slot status changed.
    I EuiccSupportPixel: eSIM GC recovery check failed: flag is not enabled or device doesn't
    support GC recovery.

When this flag is enabled but eSIM GC recovery didn't need to run, this is logged:

    I EuiccSupportPixel: Checking on slot status changed.
    I EuiccSupportPixel: eSIM is PRESENT but EID is not all zeros.

On some other device generations, there is another eSIM recovery path which is blocked by the
gservices flag euiccpixel.experiment.Ota__support_se_recovery, e.g. cheetah.

When the SERecovery flag is disabled, this is logged:

    I EuiccSupportPixel: [SERecovery] SE Recovery is not supported

When this flag is enabled but SERecovery didn't need to run, this is logged:

    I EuiccSupportPixel: [SERecovery] Recovery Counter value: 0
    I EuiccSupportPixel: [SERecovery] SERecoveryReceiver registered dynamically

Test: on tokay, rango, caiman: The "eSIM is PRESENT but EID is not all zeros." log was observed,
indicating the flag was passed to EuiccSupportPixel correctly
Test: on cheetah, the two SERecovery logs "Recovery Counter value: 0" and "SERecoveryReceiver" were
observed, indicating the flag was passed to EuiccSupportPixel correctly
Test: eSIMs were added, calls/SMS/MMS/data were functional, and eSIMs were able to be deleted
@inthewaves inthewaves force-pushed the gservices-flags-full branch from 4c2ddbe to 5f8d303 Compare July 13, 2026 12:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

create local gservices flags implementation

1 participant