1. 21 Nov, 2019 1 commit
  2. 20 Nov, 2019 1 commit
  3. 19 Nov, 2019 3 commits
  4. 18 Nov, 2019 1 commit
  5. 16 Nov, 2019 6 commits
    • topjohnwu's avatar
      Better environment status detection · da159e46
      topjohnwu authored
      da159e46
    • osm0sis's avatar
      magiskboot: add simple workaround for Samsung offset header variant · 7f6a6016
      osm0sis authored
      - some Samsung devices (e.g. Galaxy S5 SMG-900H) use a slightly different AOSP bootimg.h variant with `#define BOOT_NAME_SIZE 20` instead of 16
      - since all known examples of these device images do not have anything in the NAME or CMDLINE fields, and the bootloader also accepts standard AOSP images, simply offset the SHA1/SHA256 detection by 4 bytes to avoid false positives from these images, remain an equally effective detection shortcut, and ensure a proper SHA1 checksum on repack
      
      aosp-dtbhdt2-4offhash-seandroid-256sig-samsung_gs5-smg900h-boot.img
      UNPACK CHECKSUM [00000000b11580f7d20f70297cdc31e02626def0356c82b90000000000000000]
      REPACK CHECKSUM [73b18751202e56c433f89dfd1902c290eaf4eef3e167fcf03b814b59a5e984b6]
      AIK CHECKSUM    [b11580f7d20f70297cdc31e02626def0356c82b9000000000000000000000000]
      
      This patch should result in a `magiskboot unpack -n boot.img; magiskboot repack boot.img` new-boot.img matching the AIK CHECKSUM above.
      7f6a6016
    • Nick's avatar
      Update RU strings · 44ed0a32
      Nick authored
      Minor improvements and fixes
      44ed0a32
    • dark-basic's avatar
      Update strings.xml · 9964e1bb
      dark-basic authored
      9964e1bb
    • Viktor De Pasquale's avatar
      Fixed log items not being refreshed · 8b8f7254
      Viktor De Pasquale authored
      Close #2079
      8b8f7254
    • topjohnwu's avatar
      Move biometric settings higher in the list · bab856bc
      topjohnwu authored
      bab856bc
  6. 15 Nov, 2019 3 commits
  7. 14 Nov, 2019 2 commits
  8. 13 Nov, 2019 8 commits
  9. 12 Nov, 2019 1 commit
  10. 11 Nov, 2019 2 commits
  11. 10 Nov, 2019 1 commit
  12. 09 Nov, 2019 4 commits
    • topjohnwu's avatar
      Update hacks · ad40e533
      topjohnwu authored
      ad40e533
    • topjohnwu's avatar
      Make a.a not extend AppComponentFactory · a2ddf362
      topjohnwu authored
      Fix #2053
      a2ddf362
    • Ilya Kushnir's avatar
      Updating RU translation · 65eca316
      Ilya Kushnir authored
      65eca316
    • osm0sis's avatar
      SignBoot: also catch empty streamed signature as indicating not signed · 8b0b4a2c
      osm0sis authored
      - compare against new byte[] array as a quick tell, since when streaming from a partition with an unsigned image "signature" would of course read without issue but then remain filled by zero padding, resulting in the following:
          java.io.IOException: unexpected end-of-contents marker
              at org.bouncycastle.asn1.ASN1InputStream.readObject(Unknown Source:14)
              at com.topjohnwu.signing.SignBoot$BootSignature.<init>(SignBoot.java:235)
              at com.topjohnwu.signing.SignBoot.verifySignature(SignBoot.java:144)
              at com.topjohnwu.signing.BootSigner.main(BootSigner.java:15)
              at a.a.main(a.java:20)
      8b0b4a2c
  13. 08 Nov, 2019 2 commits
  14. 07 Nov, 2019 1 commit
  15. 05 Nov, 2019 1 commit
  16. 04 Nov, 2019 3 commits
    • topjohnwu's avatar
      Sort modules ignore case · a6e62e07
      topjohnwu authored
      Close #2024
      a6e62e07
    • topjohnwu's avatar
      Reuse ALPHANUM · b1d25e05
      topjohnwu authored
      b1d25e05
    • topjohnwu's avatar
      Use ContentProvider call method for communication · 25c55724
      topjohnwu authored
      Previously, we use either BroadcastReceivers or Activities to receive
      messages from our native daemon, but both have their own downsides.
      Some OEMs blocks broadcasts if the app is not running in the background,
      regardless of who the caller is. Activities on the other hand, despite
      working 100% of the time, will steal the focus of the current foreground
      app, even though we are just doing some logging and showing a toast.
      In addition, since stubs for hiding Magisk Manager is introduced, our
      only communication method is left with the broadcast option, as
      only broadcasting allows targeting a specific package name, not a
      component name (which will be obfuscated in the case of stubs).
      
      To make sure root requests will work on all devices, Magisk had to do
      some experiments every boot to test whether broadcast is deliverable or
      not. This makes the whole thing even more complicated then ever.
      
      So lets take a look at another kind of component in Android apps:
      ContentProviders. It is a vital part of Android's ecosystem, and as far
      as I know no OEMs will block requests to ContentProviders (or else
      tons of functionality will break catastrophically). Starting at API 11,
      the system supports calling a specific method in ContentProviders,
      optionally sending extra data along with the method call. This is
      perfect for the native daemon to start a communication with Magisk
      Manager. Another cool thing is that we no longer need to know the
      component name of the reciever, as ContentProviders identify themselves
      with an "authority" name, which in Magisk Manager's case is tied to the
      package name. We already have a mechanism to keep track of our current
      manager package name, so this works out of the box.
      
      So yay! No more flaky broadcast tests, no more stupid OEMs blocking
      broadcasts for some bizzare reasons. This method should in theory
      work on almost all devices and situations.
      25c55724