summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Peter Collingbourne <pcc@google.com> 2022-01-19 13:15:44 -0800
committer Peter Collingbourne <pcc@google.com> 2022-01-25 01:43:07 +0000
commitd2de7517f3f9147988e09bcf79aceea36c77f93b (patch)
tree944066fdeaf5e4136ed4cd513e1c3fa57eff7787
parent489cec0276c3127842120ec0b428d754b9d5bcfe (diff)
Disable pointer authentication in app processes.
Unfortunately we have discovered that some applications in the wild are using PAC instructions incorrectly. To keep those applications working on PAC enabled devices, disable PAC in application processes for now. Bug: 212660282 Change-Id: I3030c47be9d02a27505bd4775c1982a20755758c Merged-In: I3030c47be9d02a27505bd4775c1982a20755758c
-rw-r--r--cmds/app_process/Android.bp2
-rw-r--r--cmds/app_process/app_main.cpp5
2 files changed, 7 insertions, 0 deletions
diff --git a/cmds/app_process/Android.bp b/cmds/app_process/Android.bp
index a1575173ded6..6a685a79cc33 100644
--- a/cmds/app_process/Android.bp
+++ b/cmds/app_process/Android.bp
@@ -64,6 +64,8 @@ cc_binary {
"libwilhelm",
],
+ header_libs: ["bionic_libc_platform_headers"],
+
compile_multilib: "both",
cflags: [
diff --git a/cmds/app_process/app_main.cpp b/cmds/app_process/app_main.cpp
index 12083b6fe20b..815f9455471c 100644
--- a/cmds/app_process/app_main.cpp
+++ b/cmds/app_process/app_main.cpp
@@ -15,6 +15,7 @@
#include <android-base/macros.h>
#include <binder/IPCThreadState.h>
+#include <bionic/pac.h>
#include <hwbinder/IPCThreadState.h>
#include <utils/Log.h>
#include <cutils/memory.h>
@@ -182,6 +183,10 @@ int main(int argc, char* const argv[])
ALOGV("app_process main with argv: %s", argv_String.string());
}
+ // Because of applications that are using PAC instructions incorrectly, PAC
+ // is disabled in application processes for now.
+ ScopedDisablePAC x;
+
AppRuntime runtime(argv[0], computeArgBlockSize(argc, argv));
// Process command line arguments
// ignore argv[0]