su 二进制如何工作?

How su binary works?

我正在浏览 Chainsdd 的 su 二进制代码,当我浏览它时我看到它使用 setuid(0) setgid(0) 授予 root 权限

所以我的问题是:这个方法可以用在我自己的 c 库中吗?

如果不是那么 su 是怎么做到的?是因为它被放置在 /system 分区中,并进行了一些 chmod 或其他类似的操作吗?

su 可执行文件应该设置 suid 标志。这允许它以其所有者的 uid 和 gid 开始,它们都应该是 root。 从 Android 上的普通应用程序不可能调用 setuid(0)setgid(0),因为它们都是以任意非根 uid 和 gid 启动的。