“根”到底如何工作?植根后,所有应用程序都以root身份在手机上运行吗?


45

我一直在阅读有关手机植根的信息,但是我对概念存在一些疑问:从运营商处购买Android手机时,您没有“根”访问权限。当您启动手机时,这是否意味着使用了“用户”帐户(就像我在Linux / Mac上的“ / home / myself”一样)?Android手机中是否存在“ / home / myself”或类似名称?

如果我为手机设置了“ root”权限,那么在开机时是否可以以root用户身份启动手机?现在所有应用程序都将以root身份运行吗?还是当他们尝试以root身份运行时,我需要允许他们这样做吗?

如果Android本质上是Linux,要备份我的设备,我是否应该只能连接到该设备的根目录,进行完整备份tar -cvzf /然后再scp到某个地方?为什么我需要Nandroid和这些完善的解决方案?



Answers:


56

当您启动手机时,这是否意味着使用了“用户”帐户(就像我在Linux / Mac上的“ / home / myself”一样)?Android手机中是否存在“ / home / myself”或类似名称?

否。Android是为单用户系统设计的,并且许多设计决策都使/ home / myself不再存在。在Android中,通过将每个应用程序作为自己的用户运行,使用Linux内核的多用户功能来增强安全性。因此,将每个应用程序的数据相互隔离。

如果我为手机设置了“ root”权限,那么在开机时是否可以以root用户身份启动手机?现在所有应用程序都将以root身份运行吗?还是当他们尝试以root身份运行时,我需要允许他们这样做吗?

不不不 在现代生根方法(基本上是最早的生根方法)中,有一个名为“超级用户”的应用程序,用于管理允许获得根访问权限的应用程序。

由于Android是Linux,因此我对访问终端和一些Unix实用程序(ssh,rsync等)感兴趣。我不介意在必要时使用蓝牙键盘和vi(例如,编辑/ etc / hosts)。这可能吗?我可以在终端上使用很多Unix实用程序(我知道busybox可用)吗?

是的,存在一个shell(但不是bash shell)。您可能需要安装Terminal Emulator才能访问它(默认情况下,某些自定义ROM会安装它)或使用ADB将其用作远程Shell。因为它不使用bash,所以该终端将与您在常规Linux发行版中看到的终端稍有不同(特别是它没有自动补全功能),并且您认为“标准”的大多数shell命令都不存在或仅存在以极其准骨的形式存在。

如果您经常使用终端,则可以安装busybox和bash以获得更熟悉的终端体验;您还可以安装GNU用户空间实用程序,但是您需要一台具有大量磁盘空间的高端手机。

简而言之,您想要的就是可能的。尽管默认情况下许多工具未安装在制造商ROM上。自行安装所有这些工具需要花费很多工作,最简单,最快的方法是安装一个自定义ROM,以提供诸如CyanogenMod之类的工具。

如果Android本质上是Linux

Android使用Linux内核,但它不是GNU / Linux,也不使用典型的GNU用户空间程序。取而代之的是,它使用工具箱用户空间,这是一个非常简单的用户空间(甚至比busybox小,用户箱甚至没有cp,您必须使用cat来复制文件)。某些自定义Android ROM默认情况下会安装busybox。

要备份我的设备,我是否应该只能连接到该设备的根目录,是否要执行完整的tar -cvzf /并把它们放到某个地方?为什么我需要Nandroid和这些完整的解决方案?

这基本上是Nandroid所做的(严格来说,Nandroid备份更像是用dd而不是tar进行备份),除了GUI更方便。大多数人,甚至是高级用户,都不喜欢在小键盘上键入复杂的命令或每次要备份时都必须连接外部键盘(世界上99%的人患有终端恐惧症)。只需启动一个应用程序并单击一个按钮,然后为您完成所有操作,就容易得多。


2
“世界上99%的人患有终末恐惧症”-可悲但真实。但我是一名候机楼恋人。我一直想知道在应用程序后面发出了什么命令。毕竟它正在处理我的宝贵数据。我喜欢自己发出命令,尤其是作为开发人员。
2015年

OEM如何在无根设备上使用根功能?
Shloime Rosenblum
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.