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

Commit 9f11cb26 authored by Fabien Sanglard's avatar Fabien Sanglard Committed by Gerrit Code Review
Browse files

Merge "Appinfo: Make adb the app debug source of truth" into main

parents 6c084bf7 85931410
Loading
Loading
Loading
Loading
+18 −0
Original line number Original line Diff line number Diff line
@@ -7236,6 +7236,8 @@ public final class ActivityThread extends ClientTransactionHandler
            }
            }
        }
        }


        VMDebug.setUserId(UserHandle.myUserId());
        VMDebug.addApplication(data.appInfo.packageName);
        // send up app name; do this *before* waiting for debugger
        // send up app name; do this *before* waiting for debugger
        Process.setArgV0(data.processName);
        Process.setArgV0(data.processName);
        android.ddm.DdmHandleAppName.setAppName(data.processName,
        android.ddm.DdmHandleAppName.setAppName(data.processName,
@@ -7758,9 +7760,20 @@ public final class ActivityThread extends ClientTransactionHandler
            file.getParentFile().mkdirs();
            file.getParentFile().mkdirs();
            Debug.startMethodTracing(file.toString(), 8 * 1024 * 1024);
            Debug.startMethodTracing(file.toString(), 8 * 1024 * 1024);
        }
        }

        if (ii.packageName != null) {
            VMDebug.addApplication(ii.packageName);
        }
    }
    }


    private void handleFinishInstrumentationWithoutRestart() {
    private void handleFinishInstrumentationWithoutRestart() {
        LoadedApk loadedApk = getApplication().mLoadedApk;
        // Only remove instrumentation app if this was not a self-testing app.
        if (mInstrumentationPackageName != null && loadedApk != null && !mInstrumentationPackageName
                .equals(loadedApk.mPackageName)) {
            VMDebug.removeApplication(mInstrumentationPackageName);
        }

        mInstrumentation.onDestroy();
        mInstrumentation.onDestroy();
        mInstrumentationPackageName = null;
        mInstrumentationPackageName = null;
        mInstrumentationAppDir = null;
        mInstrumentationAppDir = null;
@@ -8794,6 +8807,11 @@ public final class ActivityThread extends ClientTransactionHandler
        return false;
        return false;
    }
    }


    void addApplication(@NonNull Application app) {
        mAllApplications.add(app);
        VMDebug.addApplication(app.mLoadedApk.mPackageName);
    }

    @Override
    @Override
    public boolean isInDensityCompatMode() {
    public boolean isInDensityCompatMode() {
        return mDensityCompatMode;
        return mDensityCompatMode;
+1 −1
Original line number Original line Diff line number Diff line
@@ -1478,7 +1478,7 @@ public final class LoadedApk {
                        + " package " + mPackageName + ": " + e.toString(), e);
                        + " package " + mPackageName + ": " + e.toString(), e);
                }
                }
            }
            }
            mActivityThread.mAllApplications.add(app);
            mActivityThread.addApplication(app);
            mApplication = app;
            mApplication = app;
            if (!allowDuplicateInstances) {
            if (!allowDuplicateInstances) {
                synchronized (sApplications) {
                synchronized (sApplications) {
+15 −4
Original line number Original line Diff line number Diff line
@@ -114,6 +114,7 @@ public final class Debug
        "opengl-tracing",
        "opengl-tracing",
        "view-hierarchy",
        "view-hierarchy",
        "support_boot_stages",
        "support_boot_stages",
        "app_info",
    };
    };


    /**
    /**
@@ -1016,14 +1017,14 @@ public final class Debug
        // send VM_START.
        // send VM_START.
        System.out.println("Waiting for debugger first packet");
        System.out.println("Waiting for debugger first packet");


        mWaiting = true;
        setWaitingForDebugger(true);
        while (!isDebuggerConnected()) {
        while (!isDebuggerConnected()) {
            try {
            try {
                Thread.sleep(100);
                Thread.sleep(100);
            } catch (InterruptedException ie) {
            } catch (InterruptedException ie) {
            }
            }
        }
        }
        mWaiting = false;
        setWaitingForDebugger(false);


        System.out.println("Debug.suspendAllAndSentVmStart");
        System.out.println("Debug.suspendAllAndSentVmStart");
        VMDebug.suspendAllAndSendVmStart();
        VMDebug.suspendAllAndSendVmStart();
@@ -1049,12 +1050,12 @@ public final class Debug
        Chunk waitChunk = new Chunk(ChunkHandler.type("WAIT"), data, 0, 1);
        Chunk waitChunk = new Chunk(ChunkHandler.type("WAIT"), data, 0, 1);
        DdmServer.sendChunk(waitChunk);
        DdmServer.sendChunk(waitChunk);


        mWaiting = true;
        setWaitingForDebugger(true);
        while (!isDebuggerConnected()) {
        while (!isDebuggerConnected()) {
            try { Thread.sleep(SPIN_DELAY); }
            try { Thread.sleep(SPIN_DELAY); }
            catch (InterruptedException ie) {}
            catch (InterruptedException ie) {}
        }
        }
        mWaiting = false;
        setWaitingForDebugger(false);


        System.out.println("Debugger has connected");
        System.out.println("Debugger has connected");


@@ -1111,6 +1112,16 @@ public final class Debug
        return VMDebug.getVmFeatureList();
        return VMDebug.getVmFeatureList();
    }
    }


    /**
     * Set whether the app is waiting for a debugger to connect
     *
     * @hide
     */
    private static void setWaitingForDebugger(boolean waiting) {
        mWaiting = waiting;
        VMDebug.setWaitingForDebugger(waiting);
    }

    /**
    /**
     * Returns an array of strings that identify Framework features. This is
     * Returns an array of strings that identify Framework features. This is
     * used by DDMS to determine what sorts of operations the Framework can
     * used by DDMS to determine what sorts of operations the Framework can
+2 −0
Original line number Original line Diff line number Diff line
@@ -41,6 +41,7 @@ import com.android.internal.os.SomeArgs;
import com.android.internal.util.Preconditions;
import com.android.internal.util.Preconditions;
import com.android.sdksandbox.flags.Flags;
import com.android.sdksandbox.flags.Flags;


import dalvik.system.VMDebug;
import dalvik.system.VMRuntime;
import dalvik.system.VMRuntime;


import libcore.io.IoUtils;
import libcore.io.IoUtils;
@@ -1411,6 +1412,7 @@ public class Process {
    public static void setArgV0(@NonNull String text) {
    public static void setArgV0(@NonNull String text) {
        sArgV0 = text;
        sArgV0 = text;
        setArgV0Native(text);
        setArgV0Native(text);
        VMDebug.setCurrentProcessName(text);
    }
    }


    private static native void setArgV0Native(String text);
    private static native void setArgV0Native(String text);