当前位置: 首页 > news >正文

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系统攻城狮

欢迎关注Android系统攻城狮

🍉🍉🍉文章目录🍉🍉🍉

    • 🌻1.前言
    • 🌻2. UID是什么?
    • 🌻3. 解决方案
      • 🐓3.1 获取APP:com.android.music进程的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

# 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查询

# 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

# 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 数值说明
rootAID_ROOT0超级用户
systemAID_SYSTEM1000系统核心服务
audioserverAID_AUDIOSERVER1041音频服务进程
mediaserverAID_MEDIA1013多媒体服务
cameraserverAID_CAMERASERVER1047摄像头服务
bluetoothAID_BLUETOOTH1002蓝牙守护进程

结论:audioserver进程的UID:为1041

方案二:用命令查看UID

# adb shell cat /proc/10469/status | grep Uid
Uid:	1041	1041	1041	1041

方案三:用id命令查看

# id audioserver
uid=1041(audioserver) gid=1041(audioserver) groups=1041(audioserver) context=u:r:su:s0

方案四:查看源码头文件

  • system/core/include/private/android_filesystem_config.h
#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。

http://www.dtcms.com/a/523847.html

相关文章:

  • 在JavaScript / HTML中,无法通过开发者工具查看DOM元素中input里输入的密码
  • 像素塔防游戏:像素守卫者
  • 什么是栈?深入理解 JVM 中的栈结构
  • Go Web 编程快速入门 07.2 - 模板(2):解析与执行(含Demo)
  • 公司用wordpress建站用花钱大连网站设计开发
  • 建设网站需要下载神呢软件吗重庆企业网站推广公司
  • 常规面光源在工业视觉检测上的应用
  • 数据结构——直接插入排序
  • 如何开公司做网站素材免费网站
  • Spring Boot 配置优先级
  • 【架构】-- Nightingale:云原生监控告警平台的深度解析
  • 【Leetcode】
  • 以LIS为突破口的全栈信创实践——浙江省人民医院多院区多活架构建设样本
  • 使用 IntelliJ IDEA 连接 Docker
  • Maya Python入门: polySphere()球体的形状节点操作
  • 目前最好的引流方法上海专业seo
  • 第一篇使用HTML写一个随机点名网页
  • 沈阳网站设计制作电子商务网站上线活动策划
  • 使用 Undertow 替代 Tomcat
  • 搜维尔科技将携手Xsens|Haption|Tesollo|Manus亮相IROS 2025国际智能机器人与系统会议
  • 第四章-Tomcat线程模型与运行方式
  • 【PB案例学习笔记】-46在数据窗口中编辑数据
  • tomcat问题
  • 爱电影网站个人养老金制度将落地
  • 自己做游戏网站电子商务营销是什么意思
  • 基于深度学习的短视频内容理解与推荐系统_hadoop+flask+spider
  • unbuntu系统配置IPV6的三种模式
  • ZVD振动抑制方法原理介绍
  • Java微服务无损发布生产案例
  • Kivy 乒乓游戏教程 基于Minconda或Anconda 运行