Repository navigation
Disable unprivileged hardware keepalives - #1368
Open
bugsoverloaded wants to merge 941 commits into
Open
bugsoverloaded wants to merge 941 commits into
bugsoverloaded wants to merge 941 commits into
Conversation
Previously the flashlight strength was only applied when toggling it from the QS tile, now it works from other SystemUI components as well. Signed-off-by: Abhay Singh Gill <abhaygill017@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Would be useful for adjusting flashlight strength when the tile is small/ icon only. Signed-off-by: Abhay Singh Gill <abhaygill017@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Single tap - on/off Long tap - flashlight strength dialog Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Change-Id: I9227b6b5512d813eb7b2ceab5dee7e54e6b95f92 Signed-off-by: Ghosuto <clash.raja10@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Keep the discrete steps but hide the visual tick marks for a more cleaner look. Change-Id: I3585f62d0126afb00223104192a4cedfcdf13cbe Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Allow the dynamic bar flashlight slider to include 0 so users can turn the torch off without dismissing the controls. While the torch is off from the slider, keep the torch event visible at 0% so sliding upward can re-enable the light. Dismiss and stop actions now clear the retained event and only toggle the torch when it is actually on, so pressing stop at 0% does not turn it back on. When re-enabling from 0%, only call setEnabled(true) for the remembered-level no-op case; otherwise let setLevel() or setTemporaryLevel() turn the torch on at the requested strength to avoid racing back to the default level. Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Change-Id: Iaf3d512bfcb5f4a9010b0b65f49597aba2266b76 Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Reverse-engineered from CP2A SystemUIGoogle - Shows recognized song titles and artist names on lockscreen and AOD - Tap Now Playing area to reveal album artwork & quick actions - Adds an on-demand song recognition lockscreen shortcut AI Tools used: - Antigravity CLI (Gemini 3.7 Flash, High Effort) - Claude (Sonnet 5, High Effort) Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
start() constructed a new AmbientIndicationService on every call and checked mStarted on that fresh instance, which is never true for a newly constructed object. The guard could not prevent a second registration if start() ran more than once, since each call created its own throwaway service and re-registered the broadcast receiver and KeyguardUpdateMonitor callback. Cache the service in a field and check for its presence before constructing or registering anything, so a second start() call is a no-op. Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Chromium declares NativeOnlySandboxedProcessService* with android:nativeService="true" and no Java class, for use under the native app zygote prototype. With that prototype disabled, instantiating the service throws ClassNotFoundException and the sandboxed renderer crash-loops, hanging Chrome and WebView. Substitute the equivalent SandboxedProcessService*, which the browser already handles as a fallback, so the sandboxed process starts normally. Signed-off-by: Quince <quinceroms@gmail.com> Signed-off-by: HDzungx <hdzungx@gmail.com>
vold holds its global lock for the entire duration of a fixupAppDir
call, and its monitor() probe - the storage health check used by the
system_server watchdog - queues behind the same lock. A batch of app
updates fires one prepareAppDataAfterInstall() per app+user, each of
which restorecons the app's OBB dir; arriving concurrently, they keep
the vold lock busy long enough that the probe stalls past the 60s
watchdog limit and system_server is killed ("Blocked in monitor
com.android.server.StorageManagerService on monitor thread
(watchdog.monitor)").
Serialize the AppDataHelper-side fixups on a dedicated lock so the
probe only ever queues behind a single fixup instead of the whole
batch. Does not help a single pathological >60s fixup, which is out
of scope here.
Signed-off-by: Quince <quinceroms@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
With no gameprops JSON configured, loadConfig() returned without setting mConfigLoaded, so getInstance() re-fetched the config over Binder and logged a warning on every application process start - two warnings and two binder RPCs per process, indefinitely. An empty config is terminal for the process just like a successful load (nothing ever re-triggers loadConfig()), so mark it loaded and downgrade the message to debug. Signed-off-by: Quince <quinceroms@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
DisplayManagerService is the only sender of this @hide action and it is delivered to runtime receivers only. Leaving it unprotected lets any app spoof display-state transitions to other apps' exported receivers and trips BroadcastController's 'Sending non-protected broadcast' wtf whenever an app registers an unprotected listener. Signed-off-by: Quince <quinceroms@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Use the AtomicFile base path after finishWrite instead of the object string when applying file permissions. Change-Id: I54c68ff03124f841dd6224ce2bbb43d5a3f8a436 Signed-off-by: Quince <quinceroms@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Allows using the VPN's DNS instead of the set private DNS Automatically restores the previous set mode Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
* Settings->System->Gestures->Prevent ringing core: Remove `@SystemApi` annotation for VOLUME_HUSH_CYCLE. This addition should not be annotated with `@SystemApi` because it creates an addition that fails the API test in user builds Signed-off-by: rituj <ritujbeniwal@gmail.com> Co-authored-by: Evan Anderson <evananderson@aospa.co> Change-Id: I334bd165e970665ac5300d387a0ea6745748d3ad Signed-off-by: aswin7469 <aswinas@pixysos.com>
Can be useful in some cases. Change-Id: I999337cc55e9675cedde35191a6438d90744e5aa Signed-off-by: LibXZR <i@xzr.moe> Adapt to Android 13 Signed-off-by: someone5678 <nemui3353@gmail.com>
Change-Id: Iac9f0958676c02c49252e5a0e1a88383a7294d00 Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
…t call and reset only in unregisterDefaultQRCodeScannerObserver so it is in sync with isActivityCallable Change-Id: If4fc2c541d0cee90b49b5769d34adc9d7bffbb02 Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
If the cellular network is in service, and the data network name is not available for some reason, rather than falling back to the default network name of "No service", use the carrier name. Issue: calyxos#2256 Change-Id: Ibf02f67b70cfc5d4804e9d6a3f53a9d112811d1d Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
When the user cycles fast between modes the last toast will show so late it'll be irrelevant Change-Id: I0f8f442ea10d670663fdd298f2198f6e8baa7a36 Signed-off-by: Dmitrii <bankersenator@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Avoid it getting cut off at bottom on devices with low udfps, where the bottom margin is lesser. Change-Id: I2ce00abeba353fff4cb4aa8a58257ef54bf4cca9 Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
onUserStopped() method name was misleading, it's called from onUserStopping(), while the user is still running. Initial research was done by maade93791 <70593890+maade69@users.noreply.github.com> Co-authored-by: maade93791 <70593890+maade69@users.noreply.github.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
summary:(Animator$AnimatorCaller$$ExternalSyntheticLambda1.call)java.lang.NullPointerException--Attempt to invoke interface method 'void android.animation.Animator$AnimatorListener.onAnimationEnd(android.animation.Animator, boolean)' on a null object reference det:versionName:20240724.0, versionCode:202407240 java.lang.NullPointerException: Attempt to invoke interface method 'void android.animation.Animator$AnimatorListener.onAnimationEnd(android.animation.Animator, boolean)' on a null object reference at android.animation.Animator$AnimatorCaller$$ExternalSyntheticLambda1.call(D8$$SyntheticClass:0) at android.animation.Animator.callOnList(Animator.java:666) at android.animation.Animator.notifyListeners(Animator.java:609) at android.animation.Animator.notifyEndListeners(Animator.java:634) at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1306) at android.animation.ValueAnimator.doAnimationFrame(ValueAnimator.java:1566) at android.animation.AnimationHandler.doAnimationFrame(AnimationHandler.java:344) at android.animation.AnimationHandler.-$$Nest$mdoAnimationFrame(Unknown Source:0) at android.animation.AnimationHandler$1.doFrame(AnimationHandler.java:87) at android.view.Choreographer$CallbackRecord.ru Test:UAT Change-Id: I135eac97787a6d3b820a2336908bf1412d2ed218 Signed-off-by: xiangshuangxi <xiangshuangxi@xiaomi.com>
* Space is too small. It often overlaps with face unlock image. * Tweak space above clock and above notifications. Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
… main thread time During the notification bar case fluency test in the system core UI scene, the SystemUIUi main thread experienced severe frame drops due to frequent execution of the following DateTimeView logic while updating the status bar time once a minute: android.view.ViewRootImpl$ViewRootHandler: android.widget.DateTimeView$ReceiverInfo$$ExternalSyntheticLambda0 Signed-off-by: Shuangxi Xiang <xiangshuangxi@xiaomi.corp-partner.google.com> Change-Id: I888218897555d596b46b78f23a63d1df1750b3ca
…ed font Font overlays only override config_headlineFontFamily and config_bodyFontFamily (and their Medium variants). Since Android 16 QPR1, most system text is styled with the Material 3 Expressive variable-* families instead: SettingsLib expressive text (Settings titles, for example), notifications and SettingsLib Spa all name them directly. So a font picked in ThemePicker only showed up on text that still goes through the config strings, like the launcher and preference summaries, and with the default font that text didn't match the rest of the system either. Point the variable-* families of system apps at the selected font: display, headline and title at the headline family, body and label at the body family, keeping the weight each variable family defines. ActivityThread passes the families from the app's resources, where the font overlay applies, at bind time and after every application info change. Third-party apps keep the variable-* families as defined. Signed-off-by: sidharthify <wednisegit@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
FontController already passes variable-* families through untouched when Google Sans Flex is the active font, so optical sizing and ROND axis values from fonts_customization.xml are preserved. The variable family remap in Typeface.getSystemDefaultTypeface() sits behind that pass-through, so system apps would still have variable-* replaced by the config headline/body family at the variable family's weight, undoing what the pass-through preserves. Skip the remap in ActivityThread.updateVariableFontFamilies() when the body family is the default font, using a new FontController.isDefaultFont() helper. FontController's own pass-through check now uses the same helper, so the default font is detected in one place. handleApplicationInfoChanged() passed getApplication() straight into updateVariableFontFamilies(), which dereferences the context. An app info change delivered before the application is created would hit a null there. Only update the families once the application exists. Bug: System apps on the default font had variable-* remapped to the config families, dropping optical sizing and ROND axis values. Bug: handleApplicationInfoChanged() could throw a NullPointerException if it ran before the application was created. Test: Default font: Settings titles, notification text and SystemUI keep the Google Sans Flex variable styling. Test: Pick a custom font in ThemePicker: variable-* text in Settings, SystemUI and notifications follows the selected font. Assisted-by: Claude/sonnet-5 Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Typeface.changeFont() replaces Typeface.DEFAULT with the typeface of the selected font. FontController still treats a lookup that returns Typeface.DEFAULT as a missing family, so resolveDefaultTypeface() and resolveNamedVariant() now throw away the selected font itself. The base typeface then falls back to google-sans-flex, and variable-* families at weight 400 and below, such as variable-body-medium, are built from it instead of the selected font. Add Typeface.getSystemTypeface(), which returns null for an unknown family instead of Typeface.DEFAULT, and use it in both lookups. Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
The font updater treated a shipping API below Android 11 as missing fs-verity, which blocked custom fonts on kernels that actually support it. Signed-off-by: NurKeinNeid <nurkeinneid@derpfest.org> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
handleApplicationInfoChanged() read getApplication() twice to compare the app's ResourcesImpl before and after applying the pending app info updates, and only checked it for null before updating the variable font families. A null application would have thrown at the first of those reads, so the later check could never be reached. Read the application once, treat a null application as having no ResourcesImpl, and skip the asset change logging when either ResourcesImpl is missing. The pending app info updates are still applied in that case. TextView.onConfigurationChanged() passed mFontFamily straight into Typeface.getOverrideTypeface() whenever the system font name changed. mFontFamily is null for views without a fontFamily attribute, which resolves to Typeface.DEFAULT, so setTypeface() replaced any typeface those views had set in code. Only reapply the override when mFontFamily is set; mLastResolvedSystemFont is still updated. Assisted-by: Claude/sonnet-5 Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Apps like Play Store ship their own Google Sans in res/font or fetch it from the GMS font provider. These paths all end in Typeface.CustomFallbackBuilder.build() and never reach the name-based override, so the provider fetch replaced the selected font a second or two after launch. * Redirect bundled/downloaded UI fonts to selected fonts. * Publish "user-custom-font" marker family when using custom fonts. * Drop SYS_OVERRIDE_FONTS and SYS_OVERRIDE_APPS. * Re-apply the font on ApplicationInfo changes and add null guard. * Account for the custom font in the prioritized fallback family cap. Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
* StatusBarHeaderMachine: run provider work on a background thread, re-register settings observer on reattach (was lost after detach), scope update broadcast to SystemUI (not exported), reload on user switch * DaylightHeaderProvider: fix infinite parser loop on random packs with day/hour entries, reset header index on pack load (OOB on smaller pack), sort hour headers before matching, tolerate malformed attributes * StaticHeaderProvider: cache drawable to avoid reloading and self crossfade on every screen-on, release it when disabled * FileHeaderProvider: downsample to display size instead of decoding full-res images, copy atomically, track source URI so a URI written before provider switch isn't missed, store per user * NotificationPanelViewController: apply shadow changes immediately, release header drawable and stop animation on disable Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
createScaledAshmemBitmap draws the source bitmap onto a software, ashmem-backed Canvas. A Config.HARDWARE source cannot be drawn on a software canvas, so MediaMetadata.Builder.build() throws IllegalArgumentException "Software rendering doesn't support hardware bitmaps" whenever an app hands MediaSession an oversized hardware album-art bitmap, crashing the app on every track selection. The general createBitmap(src, x, y, w, h, m, filter) path already guards this by copying a hardware source to a software config before drawing, then restoring the hardware config on the result. The ashmem fast-path added with the scale_bitmap_directly_to_ashmem flag omitted the same guard. Mirror it: copy a HARDWARE source with nativeCopyPreserveInternalConfig before scaling. The result stays an immutable ashmem bitmap ready for parceling, and the non-hardware path is unchanged. Fixes: crdroidandroid/issue_tracker#1205 Change-Id: I98427ec99de2317c24bf511c3d1a9ebd44316c34 Signed-off-by: Quince <quinceroms@gmail.com> Signed-off-by: HDzungx <hdzungx@gmail.com> Signed-off-by: Jis G Jacob <studiokeys@blissroms.org> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Compute the shade panel and notification scrim colors in HCT space, using the wallpaper's neutral or accent hue. The selected style applies to both the blur and no-blur paths. * Add a shade_color_style setting: 0 = AOSP (default), 1 = Glass, 2 = Tinted. * Glass: a near-neutral, low-alpha panel, so the blurred wallpaper carries the color. * Tinted: an accent-colored panel that looks the same with or without blur. * Raise panel alpha when needed to keep text contrast at 4.5:1 or above over bright or dark wallpapers. * Keep notification cards a fixed tone step from the panel, so the two layers stay distinct without blur. * Add glassEdge(), a 1dp edge highlight color for panel and tile backgrounds. * AOSP fallback: use Material surface containers instead of fixed fallback colors, so it follows the system contrast setting. * Bouncer: use the shade panel color with and without blur. Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
* Harden keybox validation, parsing, and refresh handling. * Improve certificate generation and legacy Keymaster compatibility. * Fix Keystore certificate consistency and import handling. * Prevent redundant certificate signing and improve error recovery. Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
The leaf-hack path rebuilt RootOfTrust from AttestationUtils fallbacks (prop -> keybox-derived -> random) instead of the boot key/hash the TEE actually measured and placed in the original leaf. On a device with working verified boot these are authoritative and self-consistent with ro.boot.vbmeta.public_key_digest; substituting our own values is both less correct and a fingerprint. Lift verifiedBootKey (index 0) and verifiedBootHash (index 3) from the original leaf's RootOfTrust via a new rootOfTrustOctet() helper, falling back to AttestationUtils only when the original carries no usable value (older 3-element Keymaster RoT). Software-only generation is unaffected. Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
…tion fails generateKeyPair() chose GENERATE vs HACK up front from a cached global isTeeBroken() flag. On a HACK key, if the hardware generateKey() threw or returned a null-certificate entry (transient RKP exhaustion, provisioning hiccup), the whole request failed with a ProviderException and the key was deleted -- a hard attestation failure where recovery was possible. Keep isTeeBroken() as the fast-path hint but let the actual hardware result decide: on a needHack key with no usable attested cert, drop the stub entry and build a software keybox-signed key instead. Extract the software path into buildSoftwareAttestedKey(). StrongBox requests (needHack always false) keep their exact prior behavior. Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
* getActualUriFromSettingsUri()/getCacheUriFromSettingsUri() ignored DEFAULT_RINGTONE2_URI and resolved it via the phone-account path, which ends up on Settings.System.RINGTONE (and RINGTONE_CACHE). MediaPlayer uses these for every settings:// ringtone uri, so any playback of DEFAULT_RINGTONE2_URI played the SIM1 ringtone. * getRingtoneUriForPhoneAccountHandle() fell back to RINGTONE for every account; fall back to the ringtone of the account's SIM slot instead. * openDefaultRingtoneUri() picked the slot from the default voice SIM instead of the uri being opened. * ensureDefaultRingtones(): set RINGTONE explicitly for slot 0, track RINGTONE2 with its own "ringtone2_set" flag so it is initialized once and a user picked "None" is not overwritten; stop re-writing notification/alarm defaults while RINGTONE2 is empty. * SettingsHelper: restore RINGTONE/RINGTONE2 into their own slot. * SettingsProvider: ringtone2_cache_* must map to RINGTONE2. Fixes: crdroidandroid/issue_tracker#1204 Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
The expanded keyguard media panel filled its container and gave the album art a weighted slot it was forced to fill. The panel ran under the status bar, and the width-bound square art left a large gap above and below it. Clean up formatting while at it. Fixes: crdroidandroid/issue_tracker#1195 Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
* Stop adding fontWeightAdjustment in the named-family override, since TextView and Compose already apply it. * Harden static default retarget. * Remove redundant null checks. Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
SystemUI used to restart itself from its main thread. After an overlay change such as a font switch, that thread is usually busy re-inflating views for the change, so the kill waited behind work that was about to be thrown away. Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Title, text, subText and shortCriticalText extras are CharSequences and
are often posted as SpannableString. Bundle.getString() fails the cast,
logs a ClassCastException warning and returns null. As a result, styled
titles, caller names and timer/alarm labels were lost in the island.
Add a Bundle.getText() helper backed by getCharSequence() and use it
for all notification text extras.
Log:
10-29 21:53:52.356 W/Bundle (8508): Key android.title expected String but value was a android.text.SpannableString. The default value <null> was returned.
10-29 21:53:52.356 W/Bundle (8508): Attempt to cast generated internal exception:
10-29 21:53:52.356 W/Bundle (8508): java.lang.ClassCastException: android.text.SpannableString cannot be cast to java.lang.String
10-29 21:53:52.356 W/Bundle (8508): at android.os.BaseBundle.getString(BaseBundle.java:1463)
10-29 21:53:52.356 W/Bundle (8508): at com.android.systemui.axdynamicbar.data.source.NotificationIslandManager$scrimListener$1.onNotificationPosted(go/retraceme e32f49c0ed1c88711eb1b8cb07e963b7a8e801b42ca9da59874fd38e06ffb9bc:2336)
10-29 21:53:52.356 W/Bundle (8508): at com.android.systemui.util.ScrimUtils$$ExternalSyntheticLambda7.invoke(go/retraceme e32f49c0ed1c88711eb1b8cb07e963b7a8e801b42ca9da59874fd38e06ffb9bc:29)
10-29 21:53:52.356 W/Bundle (8508): at com.android.systemui.util.WeakListenerManager$notify$1.run(go/retraceme e32f49c0ed1c88711eb1b8cb07e963b7a8e801b42ca9da59874fd38e06ffb9bc:77)
10-29 21:53:52.356 W/Bundle (8508): at android.os.Handler.handleCallback(Handler.java:1095)
10-29 21:53:52.356 W/Bundle (8508): at android.os.Handler.dispatchMessageImpl(Handler.java:135)
10-29 21:53:52.356 W/Bundle (8508): at android.os.Handler.dispatchMessage(Handler.java:125)
10-29 21:53:52.356 W/Bundle (8508): at android.os.Looper.loopOnce(Looper.java:296)
10-29 21:53:52.356 W/Bundle (8508): at android.os.Looper.loop(Looper.java:397)
10-29 21:53:52.356 W/Bundle (8508): at android.app.ActivityThread.main(ActivityThread.java:9623)
10-29 21:53:52.356 W/Bundle (8508): at java.lang.reflect.Method.invoke(Native Method)
10-29 21:53:52.356 W/Bundle (8508): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
10-29 21:53:52.356 W/Bundle (8508): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:939)
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Some vendor composers crash on a frame that holds only the DISPLAY_DECORATION mask layer. A SystemUI restart produces one: the keyguard fallback hides all app windows, and ScreenDecorHwcOverlay is the first window the new SystemUI draws. The composer aborts, SurfaceFlinger dies with it, and the device soft-reboots. The bug is inside the closed vendor library like libsdmextension.so, so it can’t be fixed directly. Add config_disableHwcScreenDecoration (default false). When a device overlay sets it to true, ScreenDecorations treats the display as having no HWC decoration support and draws rounded corners and cutout protection in software. Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
…d screen * Happens when card is expanded since media notif has separate view id here. Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
* Compute SHA-256 digest from Keystore supplementary module data * Include tag 724 in software-enforced attestation * Preserve existing module hashes and legacy compatibility * Fixes following warning in detector app: "Module hash: MODULE_HASH omitted from attestation. getSupplementaryAttestationInfo(MODULE_HASH) returned 1292 DER bytes. kind=MISSING_ATTESTATION_MODULE_HASH expected=842d96362a913db2" Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
neobuddy89
force-pushed
the
17.0
branch
3 times, most recently
from
November 6, 2026 15:06
9857970 to
7a924ff
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.