Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3572c40d authored by Håkan Kvist's avatar Håkan Kvist Committed by David Anderson
Browse files

Add new permission android.permission.READ_UPDATE_ENGINE_LOGS

This permission is used to gain access to update_engine_log
directory.

This is a subset of android.permission.READ_LOGS and is intended
to limit the log access for components that only want to access
update engine logs.

Flag: com.android.update_engine.minor_changes_2025q4
Bug: 397893018
Test: Flash software, check permissions of directory
    Flash software without this patch. Flash software with this
    CL on top. Confirm permission. Confirm log files included in
    bugreport.
Change-Id: I517c8aab3159cdb970c9499d2aad89cc262b68e2
parent e80937fb
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -273,6 +273,7 @@ package android {
    field public static final String READ_SYNC_SETTINGS = "android.permission.READ_SYNC_SETTINGS";
    field public static final String READ_SYNC_STATS = "android.permission.READ_SYNC_STATS";
    field @FlaggedApi("com.android.settingslib.flags.settings_catalyst") public static final String READ_SYSTEM_PREFERENCES = "android.permission.READ_SYSTEM_PREFERENCES";
    field @FlaggedApi("com.android.update_engine.minor_changes_2025q4") public static final String READ_UPDATE_ENGINE_LOGS = "android.permission.READ_UPDATE_ENGINE_LOGS";
    field public static final String READ_VOICEMAIL = "com.android.voicemail.permission.READ_VOICEMAIL";
    field public static final String REBOOT = "android.permission.REBOOT";
    field public static final String RECEIVE_BOOT_COMPLETED = "android.permission.RECEIVE_BOOT_COMPLETED";
+10 −1
Original line number Diff line number Diff line

// Baseline format: 1.0
BroadcastBehavior: android.app.AlarmManager#ACTION_NEXT_ALARM_CLOCK_CHANGED:
    Field 'ACTION_NEXT_ALARM_CLOCK_CHANGED' is missing @BroadcastBehavior
@@ -244,6 +243,8 @@ BroadcastBehavior: android.telephony.TelephonyManager#ACTION_SUBSCRIPTION_SPECIF
    Field 'ACTION_SUBSCRIPTION_SPECIFIC_CARRIER_IDENTITY_CHANGED' is missing @BroadcastBehavior
BroadcastBehavior: android.telephony.euicc.EuiccManager#ACTION_NOTIFY_CARRIER_SETUP_INCOMPLETE:
    Field 'ACTION_NOTIFY_CARRIER_SETUP_INCOMPLETE' is missing @BroadcastBehavior


DeprecationMismatch: android.accounts.AccountManager#newChooseAccountIntent(android.accounts.Account, java.util.ArrayList<android.accounts.Account>, String[], boolean, String, String, String[], android.os.Bundle):
    Method android.accounts.AccountManager.newChooseAccountIntent(android.accounts.Account, java.util.ArrayList<android.accounts.Account>, String[], boolean, String, String, String[], android.os.Bundle): @Deprecated annotation (present) and @deprecated doc tag (not present) do not match
DeprecationMismatch: android.app.Activity#enterPictureInPictureMode():
@@ -380,6 +381,8 @@ DeprecationMismatch: android.webkit.WebViewDatabase#hasFormData():
    Method android.webkit.WebViewDatabase.hasFormData(): @Deprecated annotation (present) and @deprecated doc tag (not present) do not match
DeprecationMismatch: javax.microedition.khronos.egl.EGL10#eglCreatePixmapSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, Object, int[]):
    Method javax.microedition.khronos.egl.EGL10.eglCreatePixmapSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, Object, int[]): @Deprecated annotation (present) and @deprecated doc tag (not present) do not match


FlaggedApiLiteral: android.Manifest.permission#BIND_APP_FUNCTION_SERVICE:
    @FlaggedApi contains a string literal, but should reference the field generated by aconfig (android.app.appfunctions.flags.Flags.FLAG_ENABLE_APP_FUNCTION_MANAGER).
FlaggedApiLiteral: android.Manifest.permission#BIND_TV_AD_SERVICE:
@@ -390,6 +393,8 @@ FlaggedApiLiteral: android.Manifest.permission#QUERY_ADVANCED_PROTECTION_MODE:
    @FlaggedApi contains a string literal, but should reference the field generated by aconfig (android.security.Flags.FLAG_AAPM_API).
FlaggedApiLiteral: android.Manifest.permission#RANGING:
    @FlaggedApi contains a string literal, but should reference the field generated by aconfig (android.permission.flags.Flags.FLAG_RANGING_PERMISSION_ENABLED).
FlaggedApiLiteral: android.Manifest.permission#READ_UPDATE_ENGINE_LOGS:
    @FlaggedApi contains a string literal, but should reference the field generated by aconfig (com.android.update_engine.Flags.FLAG_MINOR_CHANGES_2025Q4, however this flag doesn't seem to exist).
FlaggedApiLiteral: android.Manifest.permission#REQUEST_OBSERVE_DEVICE_UUID_PRESENCE:
    @FlaggedApi contains a string literal, but should reference the field generated by aconfig (android.companion.Flags.FLAG_DEVICE_PRESENCE).
FlaggedApiLiteral: android.R.attr#adServiceTypes:
@@ -1110,10 +1115,14 @@ RequiresPermission: android.webkit.WebSettings#setBlockNetworkLoads(boolean):
    Method 'setBlockNetworkLoads' documentation mentions permissions without declaring @RequiresPermission
RequiresPermission: android.webkit.WebSettings#setGeolocationEnabled(boolean):
    Method 'setGeolocationEnabled' documentation mentions permissions without declaring @RequiresPermission


Todo: android.hardware.camera2.params.StreamConfigurationMap:
    Documentation mentions 'TODO'
Todo: android.provider.ContactsContract.RawContacts#newEntityIterator(android.database.Cursor):
    Documentation mentions 'TODO'


UnflaggedApi: android.R.color#on_surface_disabled_material:
    New API must be flagged with @FlaggedApi: field android.R.color.on_surface_disabled_material
UnflaggedApi: android.R.color#outline_disabled_material:
+1 −0
Original line number Diff line number Diff line
@@ -181,6 +181,7 @@ android_app {
        "ranging_aconfig_flags",
        "aconfig_settingslib_flags",
        "telephony_flags",
        "update_engine_aconfig_declarations",
    ],
}

+7 −0
Original line number Diff line number Diff line
@@ -5180,6 +5180,13 @@
    <permission android:name="android.permission.READ_LOGS"
        android:protectionLevel="signature|privileged|development" />

    <!-- Allows an application to read the update_engine logs
    <p>Not for use by third-party applications.
    @FlaggedApi("com.android.update_engine.minor_changes_2025q4") -->
    <permission android:name="android.permission.READ_UPDATE_ENGINE_LOGS"
        android:protectionLevel="signature|privileged|development"
        android:featureFlag="com.android.update_engine.minor_changes_2025q4" />

    <!-- Configure an application for debugging.
    <p>Not for use by third-party applications. -->
    <permission android:name="android.permission.SET_DEBUG_APP"
+6 −0
Original line number Diff line number Diff line
@@ -62,6 +62,12 @@

    <permission name="android.permission.READ_LOGS" >
        <group gid="log" />
        <group gid="update_engine_log" />
    </permission>

    <permission name="android.permission.READ_UPDATE_ENGINE_LOGS"
                featureFlag="com.android.update_engine.minor_changes_2025q4" >
        <group gid="update_engine_log" />
    </permission>

    <permission name="android.permission.ACCESS_MTP" >