如何在Android上获取用户列表或探测用户?

时间:2014-09-11 15:01:38

标签: android linux native

网络上几乎没有任何关于Android用户的信息。我在一个有根据的busyboxed平台上,我无法获得用户列表。其他任何地方都没有/etc/passwd或任何其他passwd文件(非空)。我只能观察一些作为进程所有者的用户 由ps报告,并使用groups探测其群组。更为奇怪的是,Android应用程序进程属于u0_aSOMENUMBER等用户,例如u0_a1,u0_a53。 groups会导致groups: unknown user u0_a1su进入他们会导致任何事情都没有发生。我还猜测Android上没有用户密码这样的东西。

你能在Android用户结构上启发我吗?

1 个答案:

答案 0 :(得分:1)

  

你能在Android用户结构上启发我吗?

是肯定的。虽然我不知道所有小细节,但我相信我可以给你一个好的方向。

Linux用户和组由Android系统创建和管理。它们被用作系统工具来打包应用程序。每个应用程序都进入自己的进程,每个进程都进入自己的用户。该应用程序的用户在系统上拥有X,Y,Z的权限,如果超出您的工作范围,Linux会确保您的进程(您的应用程序进程)崩溃。

这就是为什么在应用清单文件中声明应用权限非常重要。

所以,因为它全部是自动生成的,所以它们只是你所见过的随机数字。

如果您希望设备上的用户列表在myname@gmail.com和myothername@gmail.com意义上是在设备设置中注册的用户,您应该使用Java代码,查询Ac​​countManager,如下所示:

AccountManager manager = AccountManager.get(context); 
Accounts[] accs = manager.getAccounts();
for(Account acc: accs)
 aac.name << here