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

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

如果Android本质上是Linux,要备份我的设备,我是否应该只能以root用户身份连接,做一个完整的tar -cvzf /然后scp到某个地方吗?为什么我需要Nandroid和这些功能完善的解决方案?

评论

可能重复:android.stackexchange.com/questions/236/…

另请参阅:android.stackexchange.com/questions/1/…

#1 楼


当您启动手机时,是否意味着使用了“用户”帐户(例如我在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。


来备份我的设备,我是否应该只能连接到root,
做一个完整的tar -cvzf /然后他们将它们放到某个地方?为什么我需要
使用Nandroid和这些完整的解决方案?


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

评论


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

– Midnite
2015年5月7日,下午3:58

OEM如何在无根设备上使用根功能?

– Shloime Rosenblum
19年7月30日在22:05