android 查看UID

原创 2018年04月17日 14:46:02

安卓查看UID

概述

    UID:一般理解为User Identifier,UID在linux中就是用户的ID,表明时哪个用户运行了这个程序,主要用于权限的管理。而在android中有所不同,Android中每个程序都有一个Uid 。默认情况下,机器人会给每个程序分配一个普通级别互不相同的UID,如果用互相调用,只能是UID相同才行,这就使得共享数据具有一定安全性,每个软件之间是不能随意获得数据的。

    Android的应用的UID是从10000开始,可以在Process.java中查看到(FIRST_APPLICATION_UID和LAST_APPLICATION_UID),由于UID是应用安装时确认的。我们可以从源码看到UID的产生(Settings.java)

private int newUserIdLPw(Object obj) {
    // Let's be stupidly inefficient for now...
    final int N = mUserIds.size();
    for (int i = 0; i < N; i++) {
        if (mUserIds.get(i) == null) {
            mUserIds.set(i, obj);
            return Process.FIRST_APPLICATION_UID + i;
        }
    }

    // None left?
    if (N > (Process.LAST_APPLICATION_UID-Process.FIRST_APPLICATION_UID)) {
        return -1;
    }

    mUserIds.add(obj);
    return Process.FIRST_APPLICATION_UID + N;
}

查看方式

  • 通过PS命令

    终端输入adb shell然后输入ps,可以查看到如下图进程列表。

    通过进程列表我们可以看到有多种类型的用户,其中u0_axxx代表着应用程序的用户。每个个应用程序的u0_axxx都是不一样的。从概述中我们知道应用程序的UID是从10000开始,u0_a后面的数字加上10000所得的值,既是UID了。

  • 通过程序获得所有已安装应用的UID
List<PackageInfo> packinfos = pManager.getInstalledPackages(PackageManager.GET_PERMISSIONS);
for(PackageInfo info : packinfos)
{
   Log.e(TAG,"app:"+info.applicationInfo.loadLabel(pManager).toString()+" uid:"+info.applicationInfo.uid);
}

  • 通过应用PID,查看对应应用的UID

    终端中输入adb shell,然后输入 cat /proc/<pid>/status。

  • 通过packages.xml,查看需要查询的应用的UID

    终端中输入adb shell,然后输入cat /data/system/packages.xml。


下一篇:android通过命令netstat查看应用访问过的ip和端口

Delphi源程序格式书写规范

1.规范简介本规范主要规定Delphi源程序在书写过程中所应遵循的规则及注意事项。编写该规范的目的是使公司软件开发人员的源代码书写习惯保持一致。这样做可以使每一个组员都可以理解其它组员的代码,以便于源...
  • tianhaiyise
  • tianhaiyise
  • 2002-01-08 09:35:00
  • 611

查看UID的方法

通过程序获得通过PackageManager,得到相应包名的ApplicationInfo,ApplicationInfo 中有个值域就是uid:try { PackageManager pm...
  • moonshine2016
  • moonshine2016
  • 2016-12-01 15:29:53
  • 5207

Android中的UID和PID意义,及查看方式

Pid是进程ID,Uid是用户ID,只是Android和计算机不一样,计算机每个用户都具有一个Uid,哪个用户start的程序,这个程序的Uid就是那个用户,而Android中每个程序都有一个Uid,...
  • oman111
  • oman111
  • 2015-05-11 13:48:22
  • 2539

android adb 获取所有app 的uid

系统刚启动的时候,会对每个app分配一个uid, 最简单的获取方式就是通过adb ,不过限于eng或userdebug版 adb pull  data/system/packages.list  ...
  • feitian_666
  • feitian_666
  • 2016-08-10 15:20:17
  • 6083

Android应用的uid和pid

大家在用开发工具连接手机时一定见过下图的进程编号:     PID和UID存在的意义         Pid是进程ID,Uid是用户ID,只是Android和计算机不一样,计算机每个用户都具有一个U...
  • u012481172
  • u012481172
  • 2016-04-08 13:26:15
  • 2223

Android手机中UID、PID作用及区别

PID 指进程ID. PID是进程的身份标识,程序一旦运行,就会给应用分配一个独一无二的PID(ps:一个应用可能包含多个进程,每个进程有唯一的一个PID) 进程终止后PID会被系统收回,再次打开...
  • jiaoli_82
  • jiaoli_82
  • 2015-11-12 17:51:59
  • 7923

认识Android的UID(Unix user ID)与权限

摘自: http://dev.10086.cn/cmdn/wiki/index.php?doc-view-2410.html
  • wangkaiblog
  • wangkaiblog
  • 2014-10-23 10:25:14
  • 1567

得到android所有已经安装的应用程序的uid代码

public List getUids() {         List uidList = new ArrayList();         pm = getPackageManager(); ...
  • gangyanliang
  • gangyanliang
  • 2012-11-28 19:01:36
  • 12725

Android 安全机制(1)uid 、 gid 与 pid

在 Android 上,一个应用程序只有一个UID,当然多个应用程序也可以共享一个UID。 对 于普通应用程序来说, gid 等于 uid 。由于每个应用程序的 uid 和 gid 都不相同, 因此不...
  • vshuang
  • vshuang
  • 2015-02-08 22:53:01
  • 22618

Android学习——Android 系统中的UID、GID、GIDS与PID

Android 系统中的UID、GID、GIDS与PID         在 Android 上,一个用户 UID 标示一个应用程序。应用程序在安装时被分配用户 UID,应用程序在设备上的存续期间...
  • janronehoo
  • janronehoo
  • 2017-03-02 17:30:17
  • 1388
收藏助手
不良信息举报
您举报文章:android 查看UID
举报原因:
原因补充:

(最多只允许输入30个字)