0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Android系統(tǒng)層級分析與權(quán)限問題

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:Jasonangel ? 2023-10-07 15:03 ? 次閱讀

Android 層級分析

這個(gè)圖中 kernel 和 native 層的通信是 syscall,這個(gè)大家都很熟悉,就是系統(tǒng)調(diào)用,畢竟 C++ 調(diào)用 C 語言還是很簡單的。

而 FrameWork 層和 Native 層通信就比較復(fù)雜了,java 如何調(diào)用 C++ 語言,這里會有一個(gè) JNI 機(jī)制,JNI 有特定的語法,類似于 C 語言但又不是 C 語言,他可以實(shí)現(xiàn) java 調(diào)用 C++的函數(shù),這個(gè)過程需要 Android Runtime(ART) 安卓虛擬機(jī)的配合。

在 Native 層中,有很多 C++ 寫的系統(tǒng)服務(wù),供上層使用,比如最重要的ServiceManager,管理所有其他服務(wù)的服務(wù)。

案例分析

手機(jī) app 想要控制喇叭、LED硬件,要從 app 傳遞到 kernel,操作硬件,這個(gè)流程要比 Linux 的應(yīng)用程序復(fù)雜得多。并且方式不止一種,舉例:

1、app 通過直接讀寫 kernel 節(jié)點(diǎn),向其寫入數(shù)據(jù),這就類似于在 Linux 命令行直接 echo,這是最簡單的方式。因?yàn)?java 本身也有文件讀寫函數(shù),有按字節(jié)讀寫和字符串讀寫兩種方式。

2、app 的 java 語言調(diào)用 JNI 文件,JNI 調(diào)用 C 語言,在 C 函數(shù)中去操作節(jié)點(diǎn)。

3、也可以用 C++ 寫一個(gè) Native 服務(wù),APP 通過 binder 通信訪問這個(gè)服務(wù),在這個(gè)服務(wù)中操作節(jié)點(diǎn)。當(dāng)然 socket 通信也可以。

Android 權(quán)限問題

當(dāng)然,以上所有的操作都需要權(quán)限,安卓系統(tǒng)的權(quán)限限制的比較嚴(yán)格,防止黑客破解。

如果你有 root 權(quán)限,那么你可以在安卓系統(tǒng)命令行中輸入 setenforce 0 來關(guān)閉Android 系統(tǒng)的 SELinux 檢查機(jī)制,那基本上你所有操作都可以被允許。

在 Linux 系統(tǒng)中,安全機(jī)制是:我是 root,我派出去的程序訪問任何東西也應(yīng)該是 root 權(quán)限,沒有人可以阻止我。

在 Andorid 系統(tǒng)中,安全機(jī)制是:不管你是誰,做任何事情都要提前申請,否則會被 SELinux 檢查,沒有提前申請的行為都會被拒絕,看 log 會發(fā)現(xiàn)很多 avc deny。

舉個(gè)形象一點(diǎn)的例子:一個(gè)公司老板,派他的兒子去自己的公司上班,按理來說是應(yīng)該類似于 root 權(quán)限,誰能擋我?實(shí)際上呢,到公司上班可以,因?yàn)槔习逄崆罢f了,但是去衛(wèi)生間要申請權(quán)限,用電腦要申請權(quán)限,用打印機(jī)要申請權(quán)限,除了過來上班,其余任何沒有提前說明的行為都會被拒絕。

這就是 Andorid 系統(tǒng)嚴(yán)格的安全機(jī)制,防止了黑客破解 root 權(quán)限以后亂搞你的手機(jī),比如:內(nèi)置一個(gè)程序,定期訪問你的 xxx 文件,然后通過網(wǎng)絡(luò)發(fā)出去。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3917

    瀏覽量

    127036
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11207

    瀏覽量

    208717
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4277

    瀏覽量

    62323
  • 系統(tǒng)
    +關(guān)注

    關(guān)注

    1

    文章

    1006

    瀏覽量

    21292
收藏 人收藏

    評論

    相關(guān)推薦

    Android系統(tǒng)文件權(quán)限解釋

    眾所周知,安卓是基于linux開發(fā)的,因此想要了解android系統(tǒng)文件的權(quán)限,需要從Linux說起?! inux系統(tǒng)權(quán)限簡介:  一個(gè)文
    發(fā)表于 07-10 15:10

    AM335X開發(fā)板Android 應(yīng)用程序獲得system權(quán)限的方法

    Android應(yīng)用程序開發(fā)中,有些操作的實(shí)現(xiàn),會發(fā)現(xiàn)單純添加了相應(yīng)的功能語句卻不能實(shí)現(xiàn)想要的效果,這個(gè)時(shí)候就可能是因?yàn)檫@些功能必須使apk有system權(quán)限才能操作,這也是Android系統(tǒng)
    發(fā)表于 05-20 17:55

    [資料分享]+《Android軟件安全與逆向分析

    `[資料分享]+《Android軟件安全與逆向分析》一、看威武霸氣的封面作者:豐生強(qiáng) 二、讀讀簡介,看看適合你嗎? 本書由淺入深、循序漸進(jìn)地講解了Android 系統(tǒng)的軟件安全、逆向
    發(fā)表于 09-26 10:53

    系統(tǒng)層級靜電放電與芯片層級靜電放電有什么差異

    軍方所制定的人體靜電放電模型最具代表性,又稱之為芯片層級靜電放電測試。而針對終端消費(fèi)者所使用的電子產(chǎn)品,則以IEC 61000-4-2所制定的人體靜電放電模型為測試主流,這就是一般認(rèn)知的系統(tǒng)層級靜電放電
    發(fā)表于 07-25 06:45

    Android 系統(tǒng)添加SELinux權(quán)限

    CPU:RK3288系統(tǒng)Android 5.1SELinux 主要由美國國家安全局開發(fā)。2.6 及以上版本的 Linux 內(nèi)核都已經(jīng)集成了 SELinux 模塊。通過虛擬文件系統(tǒng) proc 來讀寫
    發(fā)表于 02-09 22:49

    Android Framework電源子系統(tǒng)分析

    系列文章解讀&說明:Android Framework 電源子系統(tǒng)分析主要分為以下部分:Android Framework 電源子系統(tǒng)
    發(fā)表于 12-31 06:51

    請問android 7.1應(yīng)用獲取root權(quán)限的方法是什么

    應(yīng)開發(fā)需要,應(yīng)用軟件需要獲取root權(quán)限,請問android7.1.1如何root呢?
    發(fā)表于 01-04 06:11

    基于RBAC的統(tǒng)一權(quán)限管理系統(tǒng)研究

            通過對當(dāng)前基于RBAC 模型的各類權(quán)限管理系統(tǒng)應(yīng)用情況的具體分析,指出基于具體需求開發(fā)的權(quán)限管理
    發(fā)表于 09-05 09:03 ?21次下載

    Android內(nèi)核分析

    介紹Android 移動平臺系統(tǒng)架構(gòu),通過對Android 源代碼的分析,將其與標(biāo)準(zhǔn)Linux 內(nèi)核(2.6.27)源代碼相比較,詳細(xì)解析Andro
    發(fā)表于 10-29 16:17 ?116次下載

    Android系統(tǒng)權(quán)限提升攻擊檢測技術(shù)_王聰

    Android系統(tǒng)權(quán)限提升攻擊檢測技術(shù)_王聰
    發(fā)表于 03-19 11:41 ?0次下載

    如何使用權(quán)限Android進(jìn)行應(yīng)用風(fēng)險(xiǎn)評估方法的資料說明

    針對Android權(quán)限機(jī)制存在的問題以及傳統(tǒng)的應(yīng)用風(fēng)險(xiǎn)等級評估方法的不足,提出了一種基于權(quán)限Android應(yīng)用風(fēng)險(xiǎn)評估方法。首先,通過對應(yīng)用程序進(jìn)行逆向工程
    發(fā)表于 03-28 16:49 ?4次下載
    如何使用<b class='flag-5'>權(quán)限</b>的<b class='flag-5'>Android</b>進(jìn)行應(yīng)用風(fēng)險(xiǎn)評估方法的資料說明

    如何使用Android權(quán)限實(shí)現(xiàn)應(yīng)用風(fēng)險(xiǎn)評估詳細(xì)方法說明

    針對Android權(quán)限機(jī)制存在的問題以及傳統(tǒng)的應(yīng)用風(fēng)險(xiǎn)等級評估方法的不足,提出了一種基于權(quán)限Android應(yīng)用風(fēng)險(xiǎn)評估方法。首先,通過對應(yīng)用程序進(jìn)行逆向工程
    發(fā)表于 10-25 16:57 ?4次下載
    如何使用<b class='flag-5'>Android</b>的<b class='flag-5'>權(quán)限</b>實(shí)現(xiàn)應(yīng)用風(fēng)險(xiǎn)評估詳細(xì)方法說明

    基于權(quán)限Android應(yīng)用風(fēng)險(xiǎn)評估方法

    針對Android權(quán)限機(jī)制存在的問題以及傳統(tǒng)的應(yīng)用風(fēng)險(xiǎn)等級評估方法的不足,提出了一種基于權(quán)限Android應(yīng)用風(fēng)險(xiǎn)評估方法。首先,通過對應(yīng)用程序進(jìn)行逆向工程
    發(fā)表于 07-17 15:55 ?11次下載
    基于<b class='flag-5'>權(quán)限</b>的<b class='flag-5'>Android</b>應(yīng)用風(fēng)險(xiǎn)評估方法

    Android掛載system文件夾讀寫權(quán)限

    Android系統(tǒng)中,system文件夾一般都是只讀屬性,無論是root用戶還是普通權(quán)限用戶,在Android安全研究或開發(fā)過程中
    的頭像 發(fā)表于 08-08 09:36 ?1.3w次閱讀
    <b class='flag-5'>Android</b>掛載system文件夾讀寫<b class='flag-5'>權(quán)限</b>

    oracle系統(tǒng)權(quán)限和對象權(quán)限的區(qū)別

    Oracle系統(tǒng)權(quán)限和對象權(quán)限是Oracle數(shù)據(jù)庫中的兩種不同類型的權(quán)限控制機(jī)制。雖然它們都是用于限制用戶對數(shù)據(jù)庫進(jìn)行操作的權(quán)限,但它們的作
    的頭像 發(fā)表于 12-05 16:21 ?932次閱讀