1. 25 May, 2020 1 commit
  2. 24 May, 2020 2 commits
    • topjohnwu's avatar
      Optimize match-all-type rules · cd6eca1d
      topjohnwu authored
      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.
      cd6eca1d
    • topjohnwu's avatar
      Cleanup some implementations · 951273f8
      topjohnwu authored
      951273f8
  3. 23 May, 2020 4 commits
  4. 22 May, 2020 1 commit
    • topjohnwu's avatar
      Several statement parsing improvements · 0236ab88
      topjohnwu authored
      - Update help message to match the spec
      - Make tokenization not seg fault in certain conditions
      - Moar template + macro magic to reduce boilerplate
      0236ab88
  5. 21 May, 2020 1 commit
  6. 19 May, 2020 3 commits
  7. 18 May, 2020 8 commits
  8. 17 May, 2020 5 commits
  9. 16 May, 2020 1 commit
  10. 10 May, 2020 2 commits
  11. 09 May, 2020 3 commits
  12. 08 May, 2020 4 commits
  13. 07 May, 2020 2 commits
  14. 05 May, 2020 3 commits
    • topjohnwu's avatar
      87de0e7a
    • topjohnwu's avatar
      Tone down our DTB patching · 85755e30
      topjohnwu authored
      - Do not attempt to patch DTB anywhere outside of boot images as they
      are no longer essential. This makes Magisk installation to only modify
      strictly boot/recovery partitions again.
      - The only required patch for DTB is to strip verity out of partitions
      85755e30
    • topjohnwu's avatar
      Revert DTB patches to in-place binary patches · 02dc1172
      topjohnwu authored
      Since we no longer need to add new properties in the device tree, and
      all the patches we do removes strings, we can just directly patch
      the flat device tree in-place, ignoring basically all the higher level
      DTB structure and format to accomplish 100% compatibility.
      02dc1172