DivestOS/Patches/LineageOS-16.0/android_frameworks_base/0010-Exec_Based_Spawning-1.patch

165 lines
6.7 KiB
Diff
Raw Permalink Normal View History

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
Fix/Add exec based spawning patchsets from GrapheneOS 11 https://github.com/GrapheneOS/platform_frameworks_base/commit/14c3c1d4cd2df5dde69274e76a91b42fa383e577 https://github.com/GrapheneOS/platform_frameworks_base/commit/ac1943345ec96411ecbac3ce9b15cb371cc03551 https://github.com/GrapheneOS/platform_frameworks_base/commit/1abb8050413dae6ac6c1a082a38fb555c88534b9 https://github.com/GrapheneOS/platform_frameworks_base/commit/2e07ab8c242551e6847bffef84546ed5eaf345cf https://github.com/GrapheneOS/platform_frameworks_base/commit/0044836677b9be153e04a91dddddcb74d9585643 https://github.com/GrapheneOS/platform_frameworks_base/commit/c561811fad950dce791ef9941753ef95076da4c0 https://github.com/GrapheneOS/platform_frameworks_base/commit/7a848373efa0bd5b948af7ade19927a8706f9ea2 https://github.com/GrapheneOS/platform_frameworks_base/commit/89646bdeb19463424158544c6942224320e9e180 https://github.com/GrapheneOS/platform_frameworks_base/commit/2a70bbac4a8342175971498084494845b4f24546 https://github.com/GrapheneOS/platform_frameworks_base/commit/d414dcaa351e7a890d31c1da949421fb435ff168 https://github.com/GrapheneOS/platform_frameworks_base/commit/b4cd877e3a0c2384b8939d5d1e2b6b734bbd13b2 https://github.com/GrapheneOS/platform_frameworks_base/commit/98634286bbdffe967a9a03442e5aa324ec26986a 11 https://github.com/GrapheneOS/platform_libcore/commit/4c2635390c10512b0c79ee1f3658a25d6b671ca0 11 https://github.com/GrapheneOS/platform_libcore/commit/add34a4bc6aa69f21f012d62215b5af500bea551 11 https://github.com/GrapheneOS/platform_build/commit/a2b51906dece2ea351b5aa4b66fa8cdefbf37ff6 10 https://github.com/GrapheneOS/platform_frameworks_base/commit/527787f3c82d385c98c2e954bbbf092937100085 https://github.com/GrapheneOS/platform_frameworks_base/commit/ffde474ad7e72c72367f16a231bc30ea8ee3311b https://github.com/GrapheneOS/platform_frameworks_base/commit/aa87e487c42e3f23b42ac151fc6a37f5cb4751e7 https://github.com/GrapheneOS/platform_frameworks_base/commit/c906fe97221c7f48d5e8a6be508fb85f8df113b1 https://github.com/GrapheneOS/platform_frameworks_base/commit/c69c3eecd4f34a932760303e10e3a47798335f7e https://github.com/GrapheneOS/platform_frameworks_base/commit/b2303adccc82b89f19a6f4af8834443fa7e01b67 https://github.com/GrapheneOS/platform_frameworks_base/commit/5bb05db6f73992cc345d3662652bea024f3ace3b https://github.com/GrapheneOS/platform_frameworks_base/commit/536b4976880224d8518e9208f4e3caacf79e64c9 https://github.com/GrapheneOS/platform_frameworks_base/commit/24802a832b514452df5cea11759be8d33a7b8bc0 https://github.com/GrapheneOS/platform_frameworks_base/commit/ce6dcc2368fbf817c1c7ae2595b0367750b741dc https://github.com/GrapheneOS/platform_frameworks_base/commit/3d3d5c4d38a1614ba6e9c8baa517516bdb647223 https://github.com/GrapheneOS/platform_frameworks_base/commit/2eda592b79edd89907769fbc9e8ad175523bff0b 10 https://github.com/GrapheneOS/platform_libcore/commit/29f28b53c0cc85612e66485bc250fc57d82bc622 10 https://github.com/GrapheneOS/platform_libcore/commit/13a992c716f9b39920a7b37af2f447ced8e45c15 9 https://github.com/GrapheneOS/platform_frameworks_base/commit/750efbf6bce8bbe850679eb6a90b00108314226c https://github.com/GrapheneOS/platform_frameworks_base/commit/ed563b6f26452581f9dba1c1ef245e893f5045ca https://github.com/GrapheneOS/platform_frameworks_base/commit/aad3c7d750f9814344514cb187112e50574bb382 https://github.com/GrapheneOS/platform_frameworks_base/commit/da3180f9a8e75b10826ce2faf046c0f3912dfd59 https://github.com/GrapheneOS/platform_frameworks_base/commit/68773a29b77d6e87201b3af1b0b21e9385a1bdb0 https://github.com/GrapheneOS/platform_frameworks_base/commit/283b3fa09c002861fa5525a2be8071953e05e794 https://github.com/GrapheneOS/platform_frameworks_base/commit/f133136b65841735895ec15acdd2c60ecd45e72d https://github.com/GrapheneOS/platform_frameworks_base/commit/01a01ce5f6570f31232bc488da5683481ca32388 https://github.com/GrapheneOS/platform_frameworks_base/commit/17c309c0988ccea718ee0779d23387d6af40a80d https://github.com/GrapheneOS/platform_frameworks_base/commit/8806ec3ef166fe1fd1eeb690ace6dd5a7682195c Signed-off-by: Tad <tad@spotco.us>
2022-03-15 19:41:05 +00:00
From: Daniel Micay <danielmicay@gmail.com>
Date: Sat, 14 Mar 2015 18:10:20 -0400
Subject: [PATCH] add exec-based spawning support
---
.../com/android/internal/os/ExecInit.java | 115 ++++++++++++++++++
.../com/android/internal/os/WrapperInit.java | 2 +-
.../android/internal/os/ZygoteConnection.java | 7 ++
3 files changed, 123 insertions(+), 1 deletion(-)
create mode 100644 core/java/com/android/internal/os/ExecInit.java
diff --git a/core/java/com/android/internal/os/ExecInit.java b/core/java/com/android/internal/os/ExecInit.java
new file mode 100644
index 000000000000..10edd64e0f95
--- /dev/null
+++ b/core/java/com/android/internal/os/ExecInit.java
@@ -0,0 +1,115 @@
+package com.android.internal.os;
+
+import android.os.Trace;
+import android.system.ErrnoException;
+import android.system.Os;
+import android.util.Slog;
+import android.util.TimingsTraceLog;
+import dalvik.system.VMRuntime;
+
+/**
+ * Startup class for the process.
+ * @hide
+ */
+public class ExecInit {
+ /**
+ * Class not instantiable.
+ */
+ private ExecInit() {
+ }
+
+ /**
+ * The main function called when starting a runtime application.
+ *
+ * The first argument is the target SDK version for the app.
+ *
+ * The remaining arguments are passed to the runtime.
+ *
+ * @param args The command-line arguments.
+ */
+ public static void main(String[] args) {
+ // Parse our mandatory argument.
+ int targetSdkVersion = Integer.parseInt(args[0], 10);
+
+ // Mimic system Zygote preloading.
+ ZygoteInit.preload(new TimingsTraceLog("ExecInitTiming",
+ Trace.TRACE_TAG_DALVIK));
+
+ // Launch the application.
+ String[] runtimeArgs = new String[args.length - 1];
+ System.arraycopy(args, 1, runtimeArgs, 0, runtimeArgs.length);
+ Runnable r = execInit(targetSdkVersion, runtimeArgs);
+
+ r.run();
+ }
+
+ /**
+ * Executes a runtime application with exec-based spawning.
+ * This method never returns.
+ *
+ * @param niceName The nice name for the application, or null if none.
+ * @param targetSdkVersion The target SDK version for the app.
+ * @param args Arguments for {@link RuntimeInit#main}.
+ */
+ public static void execApplication(String niceName, int targetSdkVersion,
+ String instructionSet, String[] args) {
+ int niceArgs = niceName == null ? 0 : 1;
+ int baseArgs = 5 + niceArgs;
+ String[] argv = new String[baseArgs + args.length];
+ if (VMRuntime.is64BitInstructionSet(instructionSet)) {
+ argv[0] = "/system/bin/app_process64";
+ } else {
+ argv[0] = "/system/bin/app_process32";
+ }
+ argv[1] = "/system/bin";
+ argv[2] = "--application";
+ if (niceName != null) {
+ argv[3] = "--nice-name=" + niceName;
+ }
+ argv[3 + niceArgs] = "com.android.internal.os.ExecInit";
+ argv[4 + niceArgs] = Integer.toString(targetSdkVersion);
+ System.arraycopy(args, 0, argv, baseArgs, args.length);
+
+ WrapperInit.preserveCapabilities();
+ try {
+ Os.execv(argv[0], argv);
+ } catch (ErrnoException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /**
+ * The main function called when an application is started with exec-based spawning.
+ *
+ * When the app starts, the runtime starts {@link RuntimeInit#main}
+ * which calls {@link main} which then calls this method.
+ * So we don't need to call commonInit() here.
+ *
+ * @param targetSdkVersion target SDK version
+ * @param argv arg strings
+ */
+ private static Runnable execInit(int targetSdkVersion, String[] argv) {
+ if (RuntimeInit.DEBUG) {
+ Slog.d(RuntimeInit.TAG, "RuntimeInit: Starting application from exec");
+ }
+
+ // Check whether the first argument is a "-cp" in argv, and assume the next argument is the
+ // classpath. If found, create a PathClassLoader and use it for applicationInit.
+ ClassLoader classLoader = null;
+ if (argv != null && argv.length > 2 && argv[0].equals("-cp")) {
+ classLoader = ZygoteInit.createPathClassLoader(argv[1], targetSdkVersion);
+
+ // Install this classloader as the context classloader, too.
+ Thread.currentThread().setContextClassLoader(classLoader);
+
+ // Remove the classpath from the arguments.
+ String removedArgs[] = new String[argv.length - 2];
+ System.arraycopy(argv, 2, removedArgs, 0, argv.length - 2);
+ argv = removedArgs;
+ }
+
+ // Perform the same initialization that would happen after the Zygote forks.
+ Zygote.nativePreApplicationInit();
+ return RuntimeInit.applicationInit(targetSdkVersion, argv, classLoader);
+ }
+}
diff --git a/core/java/com/android/internal/os/WrapperInit.java b/core/java/com/android/internal/os/WrapperInit.java
index f0e779694c90..9f41a4136db9 100644
--- a/core/java/com/android/internal/os/WrapperInit.java
+++ b/core/java/com/android/internal/os/WrapperInit.java
@@ -183,7 +183,7 @@ public class WrapperInit {
Fix/Add exec based spawning patchsets from GrapheneOS 11 https://github.com/GrapheneOS/platform_frameworks_base/commit/14c3c1d4cd2df5dde69274e76a91b42fa383e577 https://github.com/GrapheneOS/platform_frameworks_base/commit/ac1943345ec96411ecbac3ce9b15cb371cc03551 https://github.com/GrapheneOS/platform_frameworks_base/commit/1abb8050413dae6ac6c1a082a38fb555c88534b9 https://github.com/GrapheneOS/platform_frameworks_base/commit/2e07ab8c242551e6847bffef84546ed5eaf345cf https://github.com/GrapheneOS/platform_frameworks_base/commit/0044836677b9be153e04a91dddddcb74d9585643 https://github.com/GrapheneOS/platform_frameworks_base/commit/c561811fad950dce791ef9941753ef95076da4c0 https://github.com/GrapheneOS/platform_frameworks_base/commit/7a848373efa0bd5b948af7ade19927a8706f9ea2 https://github.com/GrapheneOS/platform_frameworks_base/commit/89646bdeb19463424158544c6942224320e9e180 https://github.com/GrapheneOS/platform_frameworks_base/commit/2a70bbac4a8342175971498084494845b4f24546 https://github.com/GrapheneOS/platform_frameworks_base/commit/d414dcaa351e7a890d31c1da949421fb435ff168 https://github.com/GrapheneOS/platform_frameworks_base/commit/b4cd877e3a0c2384b8939d5d1e2b6b734bbd13b2 https://github.com/GrapheneOS/platform_frameworks_base/commit/98634286bbdffe967a9a03442e5aa324ec26986a 11 https://github.com/GrapheneOS/platform_libcore/commit/4c2635390c10512b0c79ee1f3658a25d6b671ca0 11 https://github.com/GrapheneOS/platform_libcore/commit/add34a4bc6aa69f21f012d62215b5af500bea551 11 https://github.com/GrapheneOS/platform_build/commit/a2b51906dece2ea351b5aa4b66fa8cdefbf37ff6 10 https://github.com/GrapheneOS/platform_frameworks_base/commit/527787f3c82d385c98c2e954bbbf092937100085 https://github.com/GrapheneOS/platform_frameworks_base/commit/ffde474ad7e72c72367f16a231bc30ea8ee3311b https://github.com/GrapheneOS/platform_frameworks_base/commit/aa87e487c42e3f23b42ac151fc6a37f5cb4751e7 https://github.com/GrapheneOS/platform_frameworks_base/commit/c906fe97221c7f48d5e8a6be508fb85f8df113b1 https://github.com/GrapheneOS/platform_frameworks_base/commit/c69c3eecd4f34a932760303e10e3a47798335f7e https://github.com/GrapheneOS/platform_frameworks_base/commit/b2303adccc82b89f19a6f4af8834443fa7e01b67 https://github.com/GrapheneOS/platform_frameworks_base/commit/5bb05db6f73992cc345d3662652bea024f3ace3b https://github.com/GrapheneOS/platform_frameworks_base/commit/536b4976880224d8518e9208f4e3caacf79e64c9 https://github.com/GrapheneOS/platform_frameworks_base/commit/24802a832b514452df5cea11759be8d33a7b8bc0 https://github.com/GrapheneOS/platform_frameworks_base/commit/ce6dcc2368fbf817c1c7ae2595b0367750b741dc https://github.com/GrapheneOS/platform_frameworks_base/commit/3d3d5c4d38a1614ba6e9c8baa517516bdb647223 https://github.com/GrapheneOS/platform_frameworks_base/commit/2eda592b79edd89907769fbc9e8ad175523bff0b 10 https://github.com/GrapheneOS/platform_libcore/commit/29f28b53c0cc85612e66485bc250fc57d82bc622 10 https://github.com/GrapheneOS/platform_libcore/commit/13a992c716f9b39920a7b37af2f447ced8e45c15 9 https://github.com/GrapheneOS/platform_frameworks_base/commit/750efbf6bce8bbe850679eb6a90b00108314226c https://github.com/GrapheneOS/platform_frameworks_base/commit/ed563b6f26452581f9dba1c1ef245e893f5045ca https://github.com/GrapheneOS/platform_frameworks_base/commit/aad3c7d750f9814344514cb187112e50574bb382 https://github.com/GrapheneOS/platform_frameworks_base/commit/da3180f9a8e75b10826ce2faf046c0f3912dfd59 https://github.com/GrapheneOS/platform_frameworks_base/commit/68773a29b77d6e87201b3af1b0b21e9385a1bdb0 https://github.com/GrapheneOS/platform_frameworks_base/commit/283b3fa09c002861fa5525a2be8071953e05e794 https://github.com/GrapheneOS/platform_frameworks_base/commit/f133136b65841735895ec15acdd2c60ecd45e72d https://github.com/GrapheneOS/platform_frameworks_base/commit/01a01ce5f6570f31232bc488da5683481ca32388 https://github.com/GrapheneOS/platform_frameworks_base/commit/17c309c0988ccea718ee0779d23387d6af40a80d https://github.com/GrapheneOS/platform_frameworks_base/commit/8806ec3ef166fe1fd1eeb690ace6dd5a7682195c Signed-off-by: Tad <tad@spotco.us>
2022-03-15 19:41:05 +00:00
* This is acceptable here as failure will leave the wrapped app with strictly less
* capabilities, which may make it crash, but not exceed its allowances.
*/
- private static void preserveCapabilities() {
+ public static void preserveCapabilities() {
StructCapUserHeader header = new StructCapUserHeader(
OsConstants._LINUX_CAPABILITY_VERSION_3, 0);
StructCapUserData[] data;
diff --git a/core/java/com/android/internal/os/ZygoteConnection.java b/core/java/com/android/internal/os/ZygoteConnection.java
index f537e3e2897b..84a3731576a2 100644
Fix/Add exec based spawning patchsets from GrapheneOS 11 https://github.com/GrapheneOS/platform_frameworks_base/commit/14c3c1d4cd2df5dde69274e76a91b42fa383e577 https://github.com/GrapheneOS/platform_frameworks_base/commit/ac1943345ec96411ecbac3ce9b15cb371cc03551 https://github.com/GrapheneOS/platform_frameworks_base/commit/1abb8050413dae6ac6c1a082a38fb555c88534b9 https://github.com/GrapheneOS/platform_frameworks_base/commit/2e07ab8c242551e6847bffef84546ed5eaf345cf https://github.com/GrapheneOS/platform_frameworks_base/commit/0044836677b9be153e04a91dddddcb74d9585643 https://github.com/GrapheneOS/platform_frameworks_base/commit/c561811fad950dce791ef9941753ef95076da4c0 https://github.com/GrapheneOS/platform_frameworks_base/commit/7a848373efa0bd5b948af7ade19927a8706f9ea2 https://github.com/GrapheneOS/platform_frameworks_base/commit/89646bdeb19463424158544c6942224320e9e180 https://github.com/GrapheneOS/platform_frameworks_base/commit/2a70bbac4a8342175971498084494845b4f24546 https://github.com/GrapheneOS/platform_frameworks_base/commit/d414dcaa351e7a890d31c1da949421fb435ff168 https://github.com/GrapheneOS/platform_frameworks_base/commit/b4cd877e3a0c2384b8939d5d1e2b6b734bbd13b2 https://github.com/GrapheneOS/platform_frameworks_base/commit/98634286bbdffe967a9a03442e5aa324ec26986a 11 https://github.com/GrapheneOS/platform_libcore/commit/4c2635390c10512b0c79ee1f3658a25d6b671ca0 11 https://github.com/GrapheneOS/platform_libcore/commit/add34a4bc6aa69f21f012d62215b5af500bea551 11 https://github.com/GrapheneOS/platform_build/commit/a2b51906dece2ea351b5aa4b66fa8cdefbf37ff6 10 https://github.com/GrapheneOS/platform_frameworks_base/commit/527787f3c82d385c98c2e954bbbf092937100085 https://github.com/GrapheneOS/platform_frameworks_base/commit/ffde474ad7e72c72367f16a231bc30ea8ee3311b https://github.com/GrapheneOS/platform_frameworks_base/commit/aa87e487c42e3f23b42ac151fc6a37f5cb4751e7 https://github.com/GrapheneOS/platform_frameworks_base/commit/c906fe97221c7f48d5e8a6be508fb85f8df113b1 https://github.com/GrapheneOS/platform_frameworks_base/commit/c69c3eecd4f34a932760303e10e3a47798335f7e https://github.com/GrapheneOS/platform_frameworks_base/commit/b2303adccc82b89f19a6f4af8834443fa7e01b67 https://github.com/GrapheneOS/platform_frameworks_base/commit/5bb05db6f73992cc345d3662652bea024f3ace3b https://github.com/GrapheneOS/platform_frameworks_base/commit/536b4976880224d8518e9208f4e3caacf79e64c9 https://github.com/GrapheneOS/platform_frameworks_base/commit/24802a832b514452df5cea11759be8d33a7b8bc0 https://github.com/GrapheneOS/platform_frameworks_base/commit/ce6dcc2368fbf817c1c7ae2595b0367750b741dc https://github.com/GrapheneOS/platform_frameworks_base/commit/3d3d5c4d38a1614ba6e9c8baa517516bdb647223 https://github.com/GrapheneOS/platform_frameworks_base/commit/2eda592b79edd89907769fbc9e8ad175523bff0b 10 https://github.com/GrapheneOS/platform_libcore/commit/29f28b53c0cc85612e66485bc250fc57d82bc622 10 https://github.com/GrapheneOS/platform_libcore/commit/13a992c716f9b39920a7b37af2f447ced8e45c15 9 https://github.com/GrapheneOS/platform_frameworks_base/commit/750efbf6bce8bbe850679eb6a90b00108314226c https://github.com/GrapheneOS/platform_frameworks_base/commit/ed563b6f26452581f9dba1c1ef245e893f5045ca https://github.com/GrapheneOS/platform_frameworks_base/commit/aad3c7d750f9814344514cb187112e50574bb382 https://github.com/GrapheneOS/platform_frameworks_base/commit/da3180f9a8e75b10826ce2faf046c0f3912dfd59 https://github.com/GrapheneOS/platform_frameworks_base/commit/68773a29b77d6e87201b3af1b0b21e9385a1bdb0 https://github.com/GrapheneOS/platform_frameworks_base/commit/283b3fa09c002861fa5525a2be8071953e05e794 https://github.com/GrapheneOS/platform_frameworks_base/commit/f133136b65841735895ec15acdd2c60ecd45e72d https://github.com/GrapheneOS/platform_frameworks_base/commit/01a01ce5f6570f31232bc488da5683481ca32388 https://github.com/GrapheneOS/platform_frameworks_base/commit/17c309c0988ccea718ee0779d23387d6af40a80d https://github.com/GrapheneOS/platform_frameworks_base/commit/8806ec3ef166fe1fd1eeb690ace6dd5a7682195c Signed-off-by: Tad <tad@spotco.us>
2022-03-15 19:41:05 +00:00
--- a/core/java/com/android/internal/os/ZygoteConnection.java
+++ b/core/java/com/android/internal/os/ZygoteConnection.java
@@ -880,6 +880,13 @@ class ZygoteConnection {
Fix/Add exec based spawning patchsets from GrapheneOS 11 https://github.com/GrapheneOS/platform_frameworks_base/commit/14c3c1d4cd2df5dde69274e76a91b42fa383e577 https://github.com/GrapheneOS/platform_frameworks_base/commit/ac1943345ec96411ecbac3ce9b15cb371cc03551 https://github.com/GrapheneOS/platform_frameworks_base/commit/1abb8050413dae6ac6c1a082a38fb555c88534b9 https://github.com/GrapheneOS/platform_frameworks_base/commit/2e07ab8c242551e6847bffef84546ed5eaf345cf https://github.com/GrapheneOS/platform_frameworks_base/commit/0044836677b9be153e04a91dddddcb74d9585643 https://github.com/GrapheneOS/platform_frameworks_base/commit/c561811fad950dce791ef9941753ef95076da4c0 https://github.com/GrapheneOS/platform_frameworks_base/commit/7a848373efa0bd5b948af7ade19927a8706f9ea2 https://github.com/GrapheneOS/platform_frameworks_base/commit/89646bdeb19463424158544c6942224320e9e180 https://github.com/GrapheneOS/platform_frameworks_base/commit/2a70bbac4a8342175971498084494845b4f24546 https://github.com/GrapheneOS/platform_frameworks_base/commit/d414dcaa351e7a890d31c1da949421fb435ff168 https://github.com/GrapheneOS/platform_frameworks_base/commit/b4cd877e3a0c2384b8939d5d1e2b6b734bbd13b2 https://github.com/GrapheneOS/platform_frameworks_base/commit/98634286bbdffe967a9a03442e5aa324ec26986a 11 https://github.com/GrapheneOS/platform_libcore/commit/4c2635390c10512b0c79ee1f3658a25d6b671ca0 11 https://github.com/GrapheneOS/platform_libcore/commit/add34a4bc6aa69f21f012d62215b5af500bea551 11 https://github.com/GrapheneOS/platform_build/commit/a2b51906dece2ea351b5aa4b66fa8cdefbf37ff6 10 https://github.com/GrapheneOS/platform_frameworks_base/commit/527787f3c82d385c98c2e954bbbf092937100085 https://github.com/GrapheneOS/platform_frameworks_base/commit/ffde474ad7e72c72367f16a231bc30ea8ee3311b https://github.com/GrapheneOS/platform_frameworks_base/commit/aa87e487c42e3f23b42ac151fc6a37f5cb4751e7 https://github.com/GrapheneOS/platform_frameworks_base/commit/c906fe97221c7f48d5e8a6be508fb85f8df113b1 https://github.com/GrapheneOS/platform_frameworks_base/commit/c69c3eecd4f34a932760303e10e3a47798335f7e https://github.com/GrapheneOS/platform_frameworks_base/commit/b2303adccc82b89f19a6f4af8834443fa7e01b67 https://github.com/GrapheneOS/platform_frameworks_base/commit/5bb05db6f73992cc345d3662652bea024f3ace3b https://github.com/GrapheneOS/platform_frameworks_base/commit/536b4976880224d8518e9208f4e3caacf79e64c9 https://github.com/GrapheneOS/platform_frameworks_base/commit/24802a832b514452df5cea11759be8d33a7b8bc0 https://github.com/GrapheneOS/platform_frameworks_base/commit/ce6dcc2368fbf817c1c7ae2595b0367750b741dc https://github.com/GrapheneOS/platform_frameworks_base/commit/3d3d5c4d38a1614ba6e9c8baa517516bdb647223 https://github.com/GrapheneOS/platform_frameworks_base/commit/2eda592b79edd89907769fbc9e8ad175523bff0b 10 https://github.com/GrapheneOS/platform_libcore/commit/29f28b53c0cc85612e66485bc250fc57d82bc622 10 https://github.com/GrapheneOS/platform_libcore/commit/13a992c716f9b39920a7b37af2f447ced8e45c15 9 https://github.com/GrapheneOS/platform_frameworks_base/commit/750efbf6bce8bbe850679eb6a90b00108314226c https://github.com/GrapheneOS/platform_frameworks_base/commit/ed563b6f26452581f9dba1c1ef245e893f5045ca https://github.com/GrapheneOS/platform_frameworks_base/commit/aad3c7d750f9814344514cb187112e50574bb382 https://github.com/GrapheneOS/platform_frameworks_base/commit/da3180f9a8e75b10826ce2faf046c0f3912dfd59 https://github.com/GrapheneOS/platform_frameworks_base/commit/68773a29b77d6e87201b3af1b0b21e9385a1bdb0 https://github.com/GrapheneOS/platform_frameworks_base/commit/283b3fa09c002861fa5525a2be8071953e05e794 https://github.com/GrapheneOS/platform_frameworks_base/commit/f133136b65841735895ec15acdd2c60ecd45e72d https://github.com/GrapheneOS/platform_frameworks_base/commit/01a01ce5f6570f31232bc488da5683481ca32388 https://github.com/GrapheneOS/platform_frameworks_base/commit/17c309c0988ccea718ee0779d23387d6af40a80d https://github.com/GrapheneOS/platform_frameworks_base/commit/8806ec3ef166fe1fd1eeb690ace6dd5a7682195c Signed-off-by: Tad <tad@spotco.us>
2022-03-15 19:41:05 +00:00
throw new IllegalStateException("WrapperInit.execApplication unexpectedly returned");
} else {
if (!isZygote) {
+ if (SystemProperties.getBoolean("sys.spawn.exec", false)) {
Fix/Add exec based spawning patchsets from GrapheneOS 11 https://github.com/GrapheneOS/platform_frameworks_base/commit/14c3c1d4cd2df5dde69274e76a91b42fa383e577 https://github.com/GrapheneOS/platform_frameworks_base/commit/ac1943345ec96411ecbac3ce9b15cb371cc03551 https://github.com/GrapheneOS/platform_frameworks_base/commit/1abb8050413dae6ac6c1a082a38fb555c88534b9 https://github.com/GrapheneOS/platform_frameworks_base/commit/2e07ab8c242551e6847bffef84546ed5eaf345cf https://github.com/GrapheneOS/platform_frameworks_base/commit/0044836677b9be153e04a91dddddcb74d9585643 https://github.com/GrapheneOS/platform_frameworks_base/commit/c561811fad950dce791ef9941753ef95076da4c0 https://github.com/GrapheneOS/platform_frameworks_base/commit/7a848373efa0bd5b948af7ade19927a8706f9ea2 https://github.com/GrapheneOS/platform_frameworks_base/commit/89646bdeb19463424158544c6942224320e9e180 https://github.com/GrapheneOS/platform_frameworks_base/commit/2a70bbac4a8342175971498084494845b4f24546 https://github.com/GrapheneOS/platform_frameworks_base/commit/d414dcaa351e7a890d31c1da949421fb435ff168 https://github.com/GrapheneOS/platform_frameworks_base/commit/b4cd877e3a0c2384b8939d5d1e2b6b734bbd13b2 https://github.com/GrapheneOS/platform_frameworks_base/commit/98634286bbdffe967a9a03442e5aa324ec26986a 11 https://github.com/GrapheneOS/platform_libcore/commit/4c2635390c10512b0c79ee1f3658a25d6b671ca0 11 https://github.com/GrapheneOS/platform_libcore/commit/add34a4bc6aa69f21f012d62215b5af500bea551 11 https://github.com/GrapheneOS/platform_build/commit/a2b51906dece2ea351b5aa4b66fa8cdefbf37ff6 10 https://github.com/GrapheneOS/platform_frameworks_base/commit/527787f3c82d385c98c2e954bbbf092937100085 https://github.com/GrapheneOS/platform_frameworks_base/commit/ffde474ad7e72c72367f16a231bc30ea8ee3311b https://github.com/GrapheneOS/platform_frameworks_base/commit/aa87e487c42e3f23b42ac151fc6a37f5cb4751e7 https://github.com/GrapheneOS/platform_frameworks_base/commit/c906fe97221c7f48d5e8a6be508fb85f8df113b1 https://github.com/GrapheneOS/platform_frameworks_base/commit/c69c3eecd4f34a932760303e10e3a47798335f7e https://github.com/GrapheneOS/platform_frameworks_base/commit/b2303adccc82b89f19a6f4af8834443fa7e01b67 https://github.com/GrapheneOS/platform_frameworks_base/commit/5bb05db6f73992cc345d3662652bea024f3ace3b https://github.com/GrapheneOS/platform_frameworks_base/commit/536b4976880224d8518e9208f4e3caacf79e64c9 https://github.com/GrapheneOS/platform_frameworks_base/commit/24802a832b514452df5cea11759be8d33a7b8bc0 https://github.com/GrapheneOS/platform_frameworks_base/commit/ce6dcc2368fbf817c1c7ae2595b0367750b741dc https://github.com/GrapheneOS/platform_frameworks_base/commit/3d3d5c4d38a1614ba6e9c8baa517516bdb647223 https://github.com/GrapheneOS/platform_frameworks_base/commit/2eda592b79edd89907769fbc9e8ad175523bff0b 10 https://github.com/GrapheneOS/platform_libcore/commit/29f28b53c0cc85612e66485bc250fc57d82bc622 10 https://github.com/GrapheneOS/platform_libcore/commit/13a992c716f9b39920a7b37af2f447ced8e45c15 9 https://github.com/GrapheneOS/platform_frameworks_base/commit/750efbf6bce8bbe850679eb6a90b00108314226c https://github.com/GrapheneOS/platform_frameworks_base/commit/ed563b6f26452581f9dba1c1ef245e893f5045ca https://github.com/GrapheneOS/platform_frameworks_base/commit/aad3c7d750f9814344514cb187112e50574bb382 https://github.com/GrapheneOS/platform_frameworks_base/commit/da3180f9a8e75b10826ce2faf046c0f3912dfd59 https://github.com/GrapheneOS/platform_frameworks_base/commit/68773a29b77d6e87201b3af1b0b21e9385a1bdb0 https://github.com/GrapheneOS/platform_frameworks_base/commit/283b3fa09c002861fa5525a2be8071953e05e794 https://github.com/GrapheneOS/platform_frameworks_base/commit/f133136b65841735895ec15acdd2c60ecd45e72d https://github.com/GrapheneOS/platform_frameworks_base/commit/01a01ce5f6570f31232bc488da5683481ca32388 https://github.com/GrapheneOS/platform_frameworks_base/commit/17c309c0988ccea718ee0779d23387d6af40a80d https://github.com/GrapheneOS/platform_frameworks_base/commit/8806ec3ef166fe1fd1eeb690ace6dd5a7682195c Signed-off-by: Tad <tad@spotco.us>
2022-03-15 19:41:05 +00:00
+ ExecInit.execApplication(parsedArgs.niceName, parsedArgs.targetSdkVersion,
+ VMRuntime.getCurrentInstructionSet(), parsedArgs.remainingArgs);
+
+ // Should not get here.
+ throw new IllegalStateException("ExecInit.execApplication unexpectedly returned");
+ }
return ZygoteInit.zygoteInit(parsedArgs.targetSdkVersion, parsedArgs.remainingArgs,
null /* classLoader */);
} else {