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

Commit b5f095eb authored by Remi NGUYEN VAN's avatar Remi NGUYEN VAN
Browse files

Replace IS_DEBUGGABLE with isDebuggable module API

Introduce a Build.isDebuggable() getter instead of the IS_DEBUGGABLE
static member.

Also make it module API as APK modules now have access to module APIs in
S, but also TestApi so it can be tested.

Test: m
Fixes: 182345786
Change-Id: I25d0848aee758792bbaba8ab73b5dd997a7250b3
parent 5d7d6554
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -29284,7 +29284,6 @@ package android.os {
    field public static final String HARDWARE;
    field public static final String HOST;
    field public static final String ID;
    field public static final boolean IS_DEBUGGABLE;
    field public static final String MANUFACTURER;
    field public static final String MODEL;
    field @NonNull public static final String ODM_SKU;
+4 −0
Original line number Diff line number Diff line
@@ -121,6 +121,10 @@ package android.os {
    method public final void markVintfStability();
  }

  public class Build {
    method public static boolean isDebuggable();
  }

  public static class Build.VERSION {
    field public static final int FIRST_SDK_INT;
  }
+1 −0
Original line number Diff line number Diff line
@@ -1022,6 +1022,7 @@ package android.os {

  public class Build {
    method public static boolean is64BitAbi(String);
    method public static boolean isDebuggable();
    field public static final boolean IS_EMULATOR;
  }

+15 −0
Original line number Diff line number Diff line
@@ -1309,10 +1309,25 @@ public class Build {
     * Debuggable builds allow users to gain root access via local shell, attach debuggers to any
     * application regardless of whether they have the "debuggable" attribute set, or downgrade
     * selinux into "permissive" mode in particular.
     * @hide
     */
    public static final boolean IS_DEBUGGABLE =
            SystemProperties.getInt("ro.debuggable", 0) == 1;

    /**
     * Returns true if the device is running a debuggable build such as "userdebug" or "eng".
     *
     * Debuggable builds allow users to gain root access via local shell, attach debuggers to any
     * application regardless of whether they have the "debuggable" attribute set, or downgrade
     * selinux into "permissive" mode in particular.
     * @hide
     */
    @TestApi
    @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
    public static boolean isDebuggable() {
        return IS_DEBUGGABLE;
    }

    /** {@hide} */
    public static final boolean IS_ENG = "eng".equals(TYPE);
    /** {@hide} */
+1 −1
Original line number Diff line number Diff line
@@ -7677,7 +7677,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
        }

        void addRequestReassignment(@NonNull final RequestReassignment reassignment) {
            if (Build.IS_DEBUGGABLE) {
            if (Build.isDebuggable()) {
                // The code is never supposed to add two reassignments of the same request. Make
                // sure this stays true, but without imposing this expensive check on all
                // reassignments on all user devices.