中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

guest mode 無法record audio

發布時間:2020-07-21 04:29:16 來源:網絡 閱讀:1085 作者:lindt 欄目:移動開發

在owner切換成guest用戶時,發現無法獲取到OP_RECORD_AUDIO = 27權限


在創建audiosource時,傳入的包名

 new AudioSource(...

            String16("media")/* mOpPackageName */,

media UID 1013 屬于系統進程,得到userhandle 0

而在owner 切換到 guest 用戶時,audioservice 會將userhandle 0 disallow record audio 

 UserManagerService.getInstance().setSystemControlledUserRestriction(

                        UserManager.DISALLOW_RECORD_AUDIO, true, userId);//(userId = 0)


導致guest用戶無法獲取到record audio 權限


根據uid獲取userhandle 邏輯

core/java/android/os/UserHandle.java

public static @UserIdInt int getUserId(int uid) {

        if (MU_ENABLED) {

            return uid / PER_USER_RANGE;

        } else {

            return UserHandle.USER_SYSTEM;

        }

    }

M 上沒有切換問題,是因為
miracast 與 audio 運行在同一個進程中,在serviceutility.cpp中

if (getpid_cached == IPCThreadState::self()->getCallingPid()) return true;
會直接返回

而N 上面因為media harden原因,miracast與audio運行在不同進程中,該處無法直接返回,繼續進行ops權限檢查

ServiceUtility中放開對aid_media限制,無法通過CTS驗證



附錄 android 多用戶
http://blog.csdn.net/zhanglianyu00/article/details/50253187

3.Android多用戶 
Android4.2開始支持多用戶。Linux的uid/gid多用戶體系已經被用在App管理上了,所以android重新開發了一套多用戶體系,在UserManagerService中管理,PackageManagerService和ActivityManagerService中也有相關邏輯。Android的多用戶可以做到不同用戶的應用的物理文件級(數據)的區分,以實現不同用戶有不同的壁紙、密碼,以及不同的應用等。本文不展開多用戶的機制,只集中于uid。 
先看一下在多用戶下,應用的uid怎么變化。 
在一個有兩個用戶(用戶id分別為0和10)的安卓設備上,在用戶10下安裝一個應用,此時,在0下是看不到這個應用的。 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

卢氏县| 板桥市| 东城区| 台前县| 开平市| 怀集县| 义乌市| 会宁县| 定结县| 寿宁县| 平遥县| 屯昌县| 弋阳县| 禄丰县| 乐昌市| 安多县| 凤城市| 雷波县| 察雅县| 定州市| 永嘉县| 汝城县| 盈江县| 遵义市| 和田市| 咸阳市| 安龙县| 白水县| 德格县| 禹州市| 西丰县| 石柱| 绥德县| 元朗区| 梁平县| 溆浦县| 开封县| 鄂伦春自治旗| 巴林左旗| 盐山县| 上蔡县|