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。

相关推荐
侧耳42911 小时前
android11禁止安装apk
android·java·1024程序员节
淡淡的香烟11 小时前
Android15适配Edge
1024程序员节
scx2013100412 小时前
20251020二分总结
1024程序员节
落羽的落羽12 小时前
【Linux系统】从零掌握make与Makefile:高效自动化构建项目的工具
linux·服务器·开发语言·c++·人工智能·机器学习·1024程序员节
电子云与长程纠缠12 小时前
Blender入门学习06 - 粒子
学习·blender·1024程序员节
_extraordinary_12 小时前
Java SpringAOP --- AOP的使用,AOP的源码
java·spring·1024程序员节
爱看科技12 小时前
亚马逊“Amelia”智能眼镜登场,三星/微美全息加速AI+AR技术融合引领穿戴赛道!
1024程序员节
Aevget12 小时前
界面控件Kendo UI for Angular 2025 Q3亮点 - 全新的AI编码助手
ui·界面控件·kendo ui·ui开发·1024程序员节
KevinPedri12 小时前
测试:uk8s创建监控和告警同步飞书等渠道
docker·kubernetes·云计算·1024程序员节