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。

相关推荐
张萌杰1 天前
深度学习的基础知识(常见名词解释)
人工智能·深度学习·机器学习·1024程序员节
开开心心就好2 天前
免费无广告卸载工具,轻便安全适配全用户
linux·运维·服务器·网络·安全·启发式算法·1024程序员节
开开心心就好3 天前
图片格式转换工具,右键菜单一键转换简化
linux·运维·服务器·python·django·pdf·1024程序员节
Android系统攻城狮5 天前
Android16音频之获取Record状态AudioRecord.getState:用法实例(一百七十七)
音视频·android16·音频进阶
徐子童5 天前
网络协议---TCP协议
网络·网络协议·tcp/ip·面试题·1024程序员节
Android系统攻城狮7 天前
Android16音频之获取录制状态AudioRecord.getRecordingState:用法实例(一百七十六)
音视频·android16·音频进阶
扫地的小何尚7 天前
NVIDIA RTX PC开源AI工具升级:加速LLM和扩散模型的性能革命
人工智能·python·算法·开源·nvidia·1024程序员节
数据皮皮侠AI8 天前
上市公司股票名称相似度(1990-2025)
大数据·人工智能·笔记·区块链·能源·1024程序员节
开开心心就好8 天前
系统清理工具清理缓存日志,启动卸载管理
linux·运维·服务器·神经网络·cnn·pdf·1024程序员节
Evan东少11 天前
[踩坑]笔记本Ubuntu20.04+NvidiaRTX5060驱动+cuda+Pytorch+ROS/Python实现人脸追踪(环境准备)
1024程序员节