Magisk/native/jni
topjohnwu cd6eca1dc2 Optimize match-all-type rules
For match-all-type rules (e.g. "allow magisk * * *" used in Magisk),
we used to iterate and apply rules on all existing types. However, this
is actually unnecessary as all selinux types should have at least 1
attributes assigned to it (process types "domain", file context types
"file_type" etc.). This means in order to create rules that applies to
all types, we actually only need to create rules for all attributes.

This optimization SIGNIFICANTLY reduces the patched sepolicy that is
loaded into the kernel when running Magisk. For example on Pixel 4 XL
running Android R DP4, the sepolicy sizes are
patched (before) : 3455948
patched (after)  : 843176
stock            : 630229

The active sepolicy size actually impacts the performance of every single
operation in the operating system, because the larger the policies gets,
the longer it takes for the kernel to lookup and match rules.
2020-05-24 05:41:19 -07:00
..
core Detect volume down key combo for safe mode 2020-05-19 04:57:47 -07:00
external Update selinux libs 2020-05-23 05:02:26 -07:00
include Cleanup some implementations 2020-05-24 04:16:40 -07:00
init Modernize magiskpolicy 2020-05-21 06:48:02 -07:00
magiskboot Revert DTB patches to in-place binary patches 2020-05-05 01:03:09 -07:00
magiskhide Allow consecutive points 2020-05-23 14:58:17 -07:00
magiskpolicy Optimize match-all-type rules 2020-05-24 05:41:19 -07:00
resetprop Update resetprop to partially use system impl 2020-05-07 23:54:00 -07:00
su Make version reporting consistent 2020-03-23 01:17:13 -07:00
systemproperties Update resetprop to partially use system impl 2020-05-07 23:54:00 -07:00
utils Detect volume down key combo for safe mode 2020-05-19 04:57:47 -07:00
.gitignore Add entrypoint to build test 2019-04-01 02:46:09 -04:00
Android.mk Rewrite sepolicy.c in C++ 2020-05-23 00:18:25 -07:00
Application.mk native: fix slower build on non-Windows platforms 2020-05-09 04:41:07 -07:00