The Magisk Story - история создания Magisk, написанная автором проекта. Если кто не в курсе, Magisk представляет собой едва ли не самый популярный сегодня менеджер прав root и систему модификации Android без внесения изменения в системный раздел (если по простому: он модифицирует boot-раздел и во время загрузки вносит изменения поверх system-раздела без его модификации, это называется systemless). Наиболее интересные выдержки:
- Magisk был создан под впечатлением от SuperSU для Android 6.0 (в котором впервые появился режим systemless). Автор пытался заставить systemless режим работать не только в отношении root-доступа, но и для установки Xposed, в результате чего родился новый проект;
- Magisk использует довольно простой трюк: он внедреяет себя в boot-скрипт и на стадии загрузки post-fs-data, когда все файловые системы уже подключены, но Zygote не запущен (в Android Zygote фактически запускает ОС), подключает поверх файловой системы system все необходимые модификации (в Linux такое можно сделать с помощью так называемого bind mount);
- Популярности Magisk способствовала игра Pokemon Go, задействующая в своей работе систему Google SafetyNet для проверки, что на устройстве не получены права root и не произведены модификации (в Magisk есть система обхода SafetyNet);
- Между Google и Magisk до сих пор идет ожесточенная борьба, первые встраивают новые правила проверок SafetyNet, второй с каждым новым релизом учится их обходить;
- На первых порах развития проекта автор просил помощи у знаменитого Android-хакера и создателя SuperSU ChainFire, но тот отказал ему, сославшись на интеллектуальную собственность. Автор Magisk в результате просто украл его утилиту для патчинга правил SELinux (supolicy) и интегрировал в свой проект.