Fix memory flags in external services and secondary zygotes.
This change fixes a number of interconnected issues in memory safety (MTE, GWP-ASan, nativeHeapZeroInit) runtime flags. * Exported services use the hosting app UID to locate the process definition, and fail 100% of the time. Use the defining app UID and package name instead. * Isolated services process name does not match the name in the defining app manifest, because it includes a class name and an instance number. Pass the defining process name in HostingRecord to address this. * Exported service ApplicationInfo.packageName refers to the hosting app, again. As a result, wrong compat feature overrides are applied. This has been fixed before for AppZygote services; extend the fix to all external services. * Pass correct memory runtimeFlags to WebViewZygote. This is important because both MTE and GWP-ASan have a one-way disable switch; they are enabled in the Zygote and disabled in the apps that do not opt-in. Passing 0 runtimeFlags to WebViewZygote (and AppZygote) makes it impossible to enable these features later in their child processes. This change moves runtimeFlags logic from ProcessList to os.Zygote to make it available to WebViewZygote. Bug: 208910418 Test: CtsTaggingHostTestCases Test: atest in frameworks/base Test: CtsWebkitTestCases Test: manual install WebView with android:memtagMode tag Change-Id: I232d35344f4cd34226ff11324421904b35251525
Loading
Please register or sign in to comment