网络上几乎没有任何关于Android用户的信息。我在一个有根据的busyboxed平台上,我无法获得用户列表。其他任何地方都没有/etc/passwd
或任何其他passwd
文件(非空)。我只能观察一些作为进程所有者的用户
由ps
报告,并使用groups
探测其群组。更为奇怪的是,Android应用程序进程属于u0_aSOMENUMBER等用户,例如u0_a1,u0_a53。 groups
会导致groups: unknown user u0_a1
。 su
进入他们会导致任何事情都没有发生。我还猜测Android上没有用户密码这样的东西。
你能在Android用户结构上启发我吗?
答案 0 :(得分:1)
你能在Android用户结构上启发我吗?
是肯定的。虽然我不知道所有小细节,但我相信我可以给你一个好的方向。
Linux用户和组由Android系统创建和管理。它们被用作系统工具来打包应用程序。每个应用程序都进入自己的进程,每个进程都进入自己的用户。该应用程序的用户在系统上拥有X,Y,Z的权限,如果超出您的工作范围,Linux会确保您的进程(您的应用程序进程)崩溃。
这就是为什么在应用清单文件中声明应用权限非常重要。
所以,因为它全部是自动生成的,所以它们只是你所见过的随机数字。
如果您希望设备上的用户列表在myname@gmail.com和myothername@gmail.com意义上是在设备设置中注册的用户,您应该使用Java代码,查询AccountManager,如下所示:
AccountManager manager = AccountManager.get(context);
Accounts[] accs = manager.getAccounts();
for(Account acc: accs)
aac.name << here