Android16之如何获取APP、Bin进程的UID(二百六十三)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者

博主新书推荐:《Android系统多媒体进阶实战》🚀
Android Audio工程师专栏地址:Audio工程师进阶系列【原创干货持续更新中...... 】🚀
Android多媒体专栏地址:多媒体系统工程师系列【原创干货持续更新中...... 】🚀
推荐1:车载系统实战课地址:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀
推荐2:HIDL与AIDL实战课地址:Android14 Binder之HIDL与AIDL通信实战课 🚀
推荐3:Android15音效实战课地址:Android15快速自定义与集成音效实战课 🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
更多原创,欢迎关注:Android系统攻城狮

🍉🍉🍉文章目录🍉🍉🍉

    • 🌻1.前言
    • [🌻2. UID是什么?](#🌻2. UID是什么?)
    • [🌻3. 解决方案](#🌻3. 解决方案)
      • [🐓3.1 获取APP:com.android.music进程的UID方案](#🐓3.1 获取APP:com.android.music进程的UID方案)
      • [🐓3.2 获取Bin:audioserver进程的UID方案](#🐓3.2 获取Bin:audioserver进程的UID方案)

🌻1.前言

本篇目的:Android16之如何获取APP、Bin进程的UID

🌻2. UID是什么?

  • UID (User Identifier) 是 Android 基于 Linux 内核的安全模型中的一个整型标识符,用来区分系统中的不同"用户进程"。
  • 每个 Android 应用(APK)在安装时,系统都会为其分配一个唯一的 UID(除非它与另一个应用共享同一个 UID)。
  • 在Linux层面上,这个UID就是应用在系统中的"用户身份"。

🌻3. 解决方案

🐓3.1 获取APP:com.android.music进程的UID方案

方案一:计算APP的UID

cpp 复制代码
# ps -ef|grep -i com.android.music
u0_a126       4903   865 0 07:21:23 ?     00:00:00 com.android.music

方式一:从用户名推算出 UID(最常见方式)
在 Android 中,u0_a126的UID 对应公式为:
UID = 10000 * userId + appId

而:
userId = 0(因为前缀是 u0_,即主用户 user 0)
appId = 10000 + 126 = 10126

结论:com.android.music的 UID = 10126

方案二:从系统包列表中/data/system/packages.list查询

cpp 复制代码
# adb shell cat /data/system/packages.list | grep com.android.music
com.android.music 10126 0 /data/user/0/com.android.music default:targetSdkVersion=30:partition=product none 0 35 1 @system

结论:com.android.music的UID为:10126

方案三:查看当前运行进程的UID

cpp 复制代码
# adb shell cat /proc/$(pidof com.android.music)/status | grep Uid
Uid:	10126	10126	10126	10126

🐓3.2 获取Bin:audioserver进程的UID方案

方案一:从用户名直接判断

Android 定义了一组 AID_xxx(Android ID),每个系统服务对应一个固定 UID:

用户名 AID 常量名 UID 数值 说明
root AID_ROOT 0 超级用户
system AID_SYSTEM 1000 系统核心服务
audioserver AID_AUDIOSERVER 1041 音频服务进程
mediaserver AID_MEDIA 1013 多媒体服务
cameraserver AID_CAMERASERVER 1047 摄像头服务
bluetooth AID_BLUETOOTH 1002 蓝牙守护进程

结论:audioserver进程的UID:为1041

方案二:用命令查看UID

cpp 复制代码
# adb shell cat /proc/10469/status | grep Uid
Uid:	1041	1041	1041	1041

方案三:用id命令查看

cpp 复制代码
# id audioserver
uid=1041(audioserver) gid=1041(audioserver) groups=1041(audioserver) context=u:r:su:s0

方案四:查看源码头文件

  • system/core/include/private/android_filesystem_config.h
cpp 复制代码
#define AID_TLSDATE 1039         /* tlsdate unprivileged user */
#define AID_MEDIA_EX 1040        /* mediaextractor process */
#define AID_AUDIOSERVER 1041     /* audioserver process */
#define AID_METRICS_COLL 1042    /* metrics_collector process */
#define AID_METRICSD 1043        /* metricsd process */

audioserver进程对应:AID_AUDIOSERVER,UID为1041。

相关推荐
爱喝雪碧的可乐2 小时前
OpenAI Codex完成率
大数据·人工智能·1024程序员节
要开心吖ZSH2 小时前
一次线上锁风暴复盘:号源表大范围 DELETE 的隐患与分批删除改造
数据库·mysql·行锁·1024程序员节·间隙锁·lockwaittimeout
Solange__2 小时前
文旅景区怎么用AI生成3D导览?从航拍采集、地标重建到网页漫游的完整方案
人工智能·3d·语言模型·自然语言处理·材质·贴图·1024程序员节
夏幻灵2 小时前
Web 渲染模式:SSR、CSR、SEO 与前后端分离
1024程序员节
m0_622023532 小时前
产业资本运作:新金融博弈下的产业链安全底盘搭建
大数据·深度学习·重构·1024程序员节
geats人山人海2 小时前
洛谷好题推荐 2026年10月24日
1024程序员节
扶尔魔ocy2 小时前
【C++开发】从裸指针到智能指针
c++·智能指针·1024程序员节
xUxIAOrUIII2 小时前
CS329a-推理时计算扩展
1024程序员节
KryHan2 小时前
【JavaScript】第三章数组
1024程序员节
小南家的青蛙2 小时前
Redis的资料
redis·缓存·1024程序员节