2018.2.22 Magisk v16.0
F2FS Crash Fix
AOSP upstream updated SQLite to 3.21.0+, and starting from that version introduces a new atomic write ioctl to eliminate the use of journal files. That optimization is only available on F2FS filesystems. For some weird reason (@arter97 thinks it is F2FS bug or SQLite bug) the database setup will fail with a weird error code. I found a way to overcome the issue and so far tests are positive.
Welcome Huawei Treble Devices!
Thanks to @[email protected]_USA
for reaching out and sent me a View 10 for development, support for Huawei/Honor Treble devices (Mate 10/10 Pro/View 10) is officially added to Magisk! It's quite interesting to see the differences between implementations of Treble
NDK Compiler Bug
Due to complicated reasons, Magisk release binaries are all compiled with the very old NDK r10e. However the x86/x64 compiler contains an optimization bug causing critical strings being stripped out of the binary, which wasn't fixed until r13 when Google switched from GCC to Clang. This causes some bootloops on some devices in v15.4, and by using a workaround, this issue was eliminated.
Here I officially announce that my Android library for root app developers - libsu, is finally fully documented and ready for a proper release! I extracted all the experience I gained from developing Magisk Manager over the past year and crafted it into an independent library for developers. It was designed to easily share an interactive root shell across the whole application, which many root apps fail to do so since it is pretty complicated to maintain. Using the high level APIs are so simple that you won't even notice you are sharing a shell!
I spent a lot of time re-creating many java.io.* classes so developers can directly use Java to do I/O operations with root access without messing with dirty command-lines. In addition, a lot of effort has put into optimizing the I/O streams so the performance is amazingly fast. It also comes with a bundled busybox binary and supports a lot more advanced feature for experienced developers.
Simple tutorial, example code, and full Javadoc are now all available: https://github.com/topjohnwu/libsu
Starting from Feb. 22nd (yes, I'm about to leave in a few hours....), I will start serving the mandatory military service for 4 months. In these 4 months I will be disconnected from the Internet... umm... actually, disconnected from the entire world should be more precise LOL. I worked full time the last few weeks in order to push out some quality stuffs before I leave for quite a long period of time. The submission server is not robust enough for me to deploy it on a remote machine, so the server will be down for most of the time in the following months. Occasionally when I have a few days off in the weekends, I will ramp up the server and gobble through the requests, and maybe check some easy issues if I found the time, but don't expect anything from me.
I hope this release is good enough for my temporary departure. Good bye Internet