亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android 7.0 SEAndroid app權限配置方法

 更新時間:2018年07月30日 16:26:52   作者:慢慢的燃燒  
今天小編就為大家分享一篇Android 7.0 SEAndroid app權限配置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

1.SEAndroid app分類

SELinux(或SEAndroid)將app劃分為主要三種類型(根據(jù)user不同,也有其他的domain類型):

1)untrusted_app 第三方app,沒有Android平臺簽名,沒有system權限

2)platform_app 有Android平臺簽名,沒有system權限

3)system_app 有android平臺簽名和system權限

從上面劃分,權限等級,理論上:untrusted_app < platform_app < system_app

2.seapp_contexts定義

system/sepolicy/seapp_contexts

isSystemServer=true domain=system_server 
user=system seinfo=platform domain=system_app type=system_app_data_file 
user=bluetooth seinfo=platform domain=bluetooth type=bluetooth_data_file 
user=nfc seinfo=platform domain=nfc type=nfc_data_file 
user=radio seinfo=platform domain=radio type=radio_data_file 
user=shared_relro domain=shared_relro 
user=shell seinfo=platform domain=shell type=shell_data_file 
user=_isolated domain=isolated_app levelFrom=user 
user=_app seinfo=platform domain=platform_app type=app_data_file levelFrom=user 
user=_app domain=untrusted_app type=app_data_file levelFrom=user 

從上面可以看出,domain和type由user和seinfo兩個參數(shù)決定。

比如:

user=system seinfo=platform,domain才是system_app

user=_app,可以是untrusted_app或platform_app,如果seinfo=platform,則是platform_app。

3.user和seinfo判定方式

首先看user,user可以理解為UID,例如ps -Z結(jié)果如下:

u:r:system_app:s0    system 2414 1172 com.android.keychain 
u:r:platform_app:s0   u0_a6  2439 1172 com.android.managedprovisioning 
u:r:untrusted_app:s0   u0_a8  2460 1172 com.android.onetimeinitializer 
u:r:system_app:s0    system 2480 1172 com.android.tv.settings 
u:r:untrusted_app:s0   u0_a27 2504 1172 com.android.email 
u:r:untrusted_app:s0   u0_a28 2523 1172 com.android.exchange 
u:r:untrusted_app:s0   u0_a7  2567 1172 com.android.musicfx 

第一列是SContext,第二列是UID,只要UID是system的基本都是system_app,反過來一樣。

其他的U0_XXX要么屬于platform_app或untrusted_app

seinfo由system/sepolicy/mac_permissions.xml決定,內(nèi)容如下:

<!-- Platform dev key in AOSP --> 
<signer signature="@PLATFORM" > 
 <seinfo value="platform" /> 
</signer> 
 
<!-- All other keys --> 
<default> 
 <seinfo value="default" /> 
</default> 

即如果簽名是platform,seinfo就是platform,其他的比如shared等,seinfo是default。

比如上面ps -Z的結(jié)果里面,OneTimeInitializer.apk是untrusted_app,ManagedProvisioning.apk是platform_app。

分別查看這兩個app的Android.mk

packages\apps\OneTimeInitializer\Android.mk 沒有定義LOCAL_CERTIFICATE,默認是shared

packages\apps\ManagedProvisioning\Android.mk 有定義LOCAL_CERTIFICATE := platform

因為ManagedProvisioning.apk有platform簽名,所以seinfo是platform。

TvSettings是system_app,查看對應的參數(shù):

packages\apps\TvSettings\Settings\Android.mk 有定義LOCAL_CERTIFICATE := platform

packages\apps\TvSettings\Settings\AndroidManifest.xml 有定義android:sharedUserId="android.uid.system"

TvSettings user是system,seinfo是platform,所以是system_app

packages\apps\ManagedProvisioning\AndroidManifest.xml 沒有定義android:sharedUserId="android.uid.system"

所以ManagedProvisioning雖然seinfo是platform,但是user不是system,因此只是platform_app,而不是system_app。

4.app對應的te文件

system_app -> system/sepolicy/system_app.te

untrusted_app -> system/sepolicy/untrusted_app.te

platform_app -> system/sepolicy/platform_app.te

對應的權限,通過allow語句給予,比如只有system_app才可以設置prop:

# Write to properties 
unix_socket_connect(system_app, property, init) 
allow system_app debug_prop:property_service set; 
allow system_app net_radio_prop:property_service set; 
allow system_app system_radio_prop:property_service set; 
auditallow system_app net_radio_prop:property_service set; 
auditallow system_app system_radio_prop:property_service set; 
allow system_app system_prop:property_service set; 
allow system_app ctl_bugreport_prop:property_service set; 
allow system_app logd_prop:property_service set; 

總結(jié):

在引入SEAndroid后,app開發(fā)需要注意需要哪些權限,根據(jù)配置(shareuid和簽名)來決定domain,從而決定權限大小。

以上這篇Android 7.0 SEAndroid app權限配置方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關文章

  • Cocos2d-x 3.0多線程異步加載資源實例

    Cocos2d-x 3.0多線程異步加載資源實例

    手機游戲,即便是休閑類的小游戲,往往也涉及大量紋理資源、音視頻資源、文件讀寫以及網(wǎng)絡通信,處理的稍有不甚就會出現(xiàn)畫面卡頓,交互不暢的情況
    2014-04-04
  • Android手機通過rtp發(fā)送aac數(shù)據(jù)給vlc播放的實現(xiàn)步驟

    Android手機通過rtp發(fā)送aac數(shù)據(jù)給vlc播放的實現(xiàn)步驟

    這篇文章主要介紹了Android手機通過rtp發(fā)送aac數(shù)據(jù)給vlc播放的實現(xiàn)步驟,幫助大家更好的理解和學習使用Android,感興趣的朋友可以了解下
    2021-04-04
  • android實現(xiàn)簡單左滑刪除控件

    android實現(xiàn)簡單左滑刪除控件

    這篇文章主要為大家詳細介紹了android實現(xiàn)一個簡單左滑刪除控件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Mono for Android 實現(xiàn)高效的導航(Effective Navigation)

    Mono for Android 實現(xiàn)高效的導航(Effective Navigation)

    Android 4.0 系統(tǒng)定義了一系列的高效導航方式 (Effective Navigation), 主要包括標簽、下拉列表、以及向上和返回等, 本文介紹如何用 Mono for Android 實現(xiàn)這些的導航方式
    2012-12-12
  • Android 7.0系統(tǒng)webview 顯示https頁面空白處理方法

    Android 7.0系統(tǒng)webview 顯示https頁面空白處理方法

    今天小編就為大家分享一篇Android 7.0系統(tǒng)webview 顯示https頁面空白處理方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • OpenGL ES渲染管線概述(一)

    OpenGL ES渲染管線概述(一)

    這篇文章主要為大家詳細介紹了OpenGL ES渲染管線的簡單概述,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Android HandlerThread案例詳解

    Android HandlerThread案例詳解

    這篇文章主要介紹了Android HandlerThread案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • android開發(fā)基礎教程—打電話發(fā)短信

    android開發(fā)基礎教程—打電話發(fā)短信

    打電話發(fā)短信的功能已經(jīng)離不開我們的生活了,記下來介紹打電話發(fā)短信的具體實現(xiàn)代碼,感興趣的朋友可以了解下
    2013-01-01
  • 利用Flutter制作一個會飛的菜單

    利用Flutter制作一個會飛的菜單

    flutter中自帶了drawer組件,可以實現(xiàn)通用的菜單功能,所以本文將嘗試一下通過自定義動畫來實現(xiàn)一個會飛的菜單,感興趣的可以了解一下
    2023-06-06
  • Android中的Handler與多線程應用實例

    Android中的Handler與多線程應用實例

    這篇文章主要介紹了Android中的Handler與多線程應用實例,本文首先解釋一下handler是用來干嘛的,然后通過例子介紹其在多線程中的應用,需要的朋友可以參考下
    2015-03-03

最新評論