Android Shizuku源码分析 第二篇
本文深入分析了 Shizuku 的启动过程,特别是 Starter 类的 main 方法是如何被调用的。文章首先回顾了 Shizuku 的基本概念,并介绍了通过 adb 命令激活 ShizukuService 的过程,重点分析了 start.sh 脚本的执行。当用户通过 ShizukuManager 启动应用时,start.sh 脚本被调用,该脚本负责设置环境并执行 libshizuku.so 文件。文章详细描述了 ShizukuManager 在启动时如何写入 start.sh 文件及其相关的 dex 文件路径。接着,文章探讨了 libshizuku.so 中的 main 方法,说明了如何通过 app_process 启动 Java 类 moe.shizuku.server.Starter。在 Starter 类的 main 方法中,创建了 ShizukuService 实例,从而完成了 ShizukuService 的启动。最后,作者总结了整个过程,强调了用户通过简单的 adb 命令如何触发一系列复杂的操作,最终实现 Shizuku 的功能。