Android O---Binder學習筆記

binder域

?為了明確劃分框架(獨立于設(shè)備)和供應商(特定于設(shè)備)代碼之間的 Binder 流量训挡,Android O 介紹了一個 Binder 上下文的概念鹰椒。每個 Binder 上下文都擁有自己的設(shè)備節(jié)點以及上下文(服務(wù))管理者庶灿。當您通過某個上下文傳遞 Binder 節(jié)點時,您只能通過它所屬的設(shè)備節(jié)點來訪問對應的上下文管理器,它只能通過另一個進程來訪問斤贰,從而使得各個域完全隔離。

散集列表

?在以往的 Android 版本中次询,Binder 調(diào)用的每一個數(shù)據(jù)都會被復制三次:

一次是在調(diào)用的進程中將數(shù)據(jù)序列化為一個?Parcel荧恍。

一次是在內(nèi)核驅(qū)動中將?Parcel?拷貝給目標進程。

一次是在目標進程中將?Parcel?反序列化屯吊。

Binder IPC

在 Android O 中送巡,/dev/binder?設(shè)備節(jié)點成為了獨立于框架進程的存在,這就意味著供應商進程不能再訪問它盒卸。供應商進程可以訪問?/dev/hwbinder骗爆,但必須將它們的 AIDL 接口轉(zhuǎn)換為 HIDL 接口。對于需要繼續(xù)在供應商進程間使用 AILD 接口的供應商蔽介,Android 支持如下所述的 Binder IPC摘投。

vndbinder

Android O 支持由供應商服務(wù)所使用的一個新的域,使用?/dev/vndbinder?代替對?/dev/binder?的訪問虹蓄。在添加?/dev/vndbinder?之后犀呼,目前 Binder IPC 共有以下三個域:


通常供應商進程不會直接打開 Binder 驅(qū)動,而是連接到?libbinder?用戶空間庫去薇组,這個庫打開了 Binder 驅(qū)動外臂。加入一個方法為?::android::ProcessState()?選擇用于?libbinder?的 Binder 驅(qū)動程序。在供應商進程調(diào)用?ProcessState律胀,?IPCThreadState?或?qū)θ魏?Binder 的一般性調(diào)用之前宋光,這一方法就應該被調(diào)用了。要使用它炭菌,則請在供應商進程(客戶端和服務(wù)端)的主函數(shù)之后進行如下調(diào)用:

ProcessState::initWithDriver("/dev/vndbinder");

vndservicemanager

在以前罪佳,Binder 驅(qū)動會注冊到?servicemanager?中,這樣它可以被其它進程獲取黑低。而在 Android O 中赘艳,servicemanager?目前已經(jīng)完全只由框架與應用程序來使用,而供應商進程已經(jīng)無法訪問它投储。

供應商服務(wù)現(xiàn)在可以使用?vndservicemanager第练,這是用?/dev/vndbinder?代替了?/dev/binder?而構(gòu)成的新的?servicemanager?實例,它與框架層的?servicemanager?是用同一源碼所構(gòu)建的玛荞。供應商進程不需要為了與?vndservicemanager?進行通訊而做出更改娇掏,當供應商進程打開?/dev/vndbinder?后,服務(wù)就會自動查找到?vndservicemanager勋眯。

vndservicemanager?的二進制文件已經(jīng)包含在 Android 默認的設(shè)備?makefile?中婴梧。

SELinux 策略

?需要使用 Binder 的功能以同其它進程通訊的供應商進程需要以下幾個條件:

訪問?/dev/vndbinder下梢。

Binder 的鉤子函數(shù)?{transfer, call}?設(shè)置到?vndservicemanager?中。

binder_call(A, B)?用于想要通過供應商 Binder 接口來調(diào)用到供應商域 B 的供應商域 A塞蹭。

在?vndservicemanager?中獲得?{add, find}?的服務(wù)權(quán)限孽江。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市番电,隨后出現(xiàn)的幾起案子岗屏,更是在濱河造成了極大的恐慌,老刑警劉巖漱办,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件这刷,死亡現(xiàn)場離奇詭異,居然都是意外死亡娩井,警方通過查閱死者的電腦和手機暇屋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來洞辣,“玉大人咐刨,你說我怎么就攤上這事⊙锼” “怎么了定鸟?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長畜挥。 經(jīng)常有香客問我仔粥,道長,這世上最難降的妖魔是什么蟹但? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮谭羔,結(jié)果婚禮上华糖,老公的妹妹穿的比我還像新娘。我一直安慰自己瘟裸,他們只是感情好客叉,可當我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著话告,像睡著了一般兼搏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沙郭,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天佛呻,我揣著相機與錄音,去河邊找鬼病线。 笑死吓著,一個胖子當著我的面吹牛鲤嫡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绑莺,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼暖眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了纺裁?” 一聲冷哼從身側(cè)響起诫肠,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎欺缘,沒想到半個月后区赵,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡浪南,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年笼才,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片络凿。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡骡送,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出絮记,到底是詐尸還是另有隱情摔踱,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布怨愤,位于F島的核電站派敷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏撰洗。R本人自食惡果不足惜篮愉,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望差导。 院中可真熱鬧试躏,春花似錦、人聲如沸设褐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽助析。三九已至犀被,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間外冀,已是汗流浹背寡键。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留锥惋,地道東北人昌腰。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓开伏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親遭商。 傳聞我的和親對象是個殘疾皇子固灵,可洞房花燭夜當晚...
    茶點故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,769評論 25 707
  • 現(xiàn)在過年,對我來說劫流,就是前赴后繼的熊孩子巫玻、一大堆人日夜不斷的打牌,吃各類高熱量高脂肪很厚潤甜肥的食物祠汇,還有走家串戶...
    影珠山人閱讀 218評論 0 1
  • 給拖延癥的幾個建議: 1.給自己一個合理的規(guī)劃 接到一項整合項目資料的任務(wù)仍秤,要求一周內(nèi)完成。覺得項目難度低可很,時間很...
    小淑愛酷仔閱讀 399評論 0 1
  • 陰山之北诗力,璞石無光, 千年磨礪我抠,溫潤有方苇本。 脫胎一品,華彩透光 冰肌雪骨菜拓,高潔圓方瓣窄。 有匪君子,如璧如圭纳鼎, 寬兮綽...
    三尺塵沙vivi閱讀 936評論 10 8