日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

在Android環(huán)境集成企業(yè)版或旗艦版SOC

SOC是一個端到端的服務(wù),為RTOS、Linux、Android操作系統(tǒng)的物聯(lián)網(wǎng)終端提供安全審計。本文介紹了如何在Android系統(tǒng)中集成企業(yè)版或旗艦版SOC。

前提條件

已通過IoT安全中心獲取企業(yè)版或旗艦版SOC SDK。也可以單擊下載SOC for Android SDK

說明

安全運營管理-SOC(企業(yè)版)、安全運營管理-SOC(旗艦版),以下簡稱:SOC SDK。

SOC SDK Native集成

步驟一:集成SOC SDK到Android ROM編譯環(huán)境

  1. 將下載好的SOC SDK保存到具有Android設(shè)備源代碼及編譯環(huán)境的計算機上,并解壓縮到任一目錄。

  2. 將dps_sdk目錄復(fù)制到$ANDROID_SOURCE_HOME/external目錄下。

  3. 在目標產(chǎn)品的Android makefile當中配置編譯dps_sdk包,在device.mk(或?qū)Φ裙δ艿奈募┊斨屑尤胍韵麓a:

    # build dps_sdk
    $(call inherit-product-if-exists,external/dps_sdk/dps_sdk.mk)
  4. 打開編輯$ANDROID_SOURCE_HOME/external/dps_sdk/dps_sdk.mk文件,編譯內(nèi)容如下:

    PRODUCT_PACKAGES += \
        dps_domain \
        dps_services \
        dps_pro \
        dps_extras \
        itls_client \

    編譯內(nèi)容

    是否必選

    描述

    dps_domain

    提供基礎(chǔ)文件系統(tǒng)取證、進程分析、完整性檢查功能,需要默認開啟。

    dps_services

    dps_pro

    屬于高階功能,可提供進程行為、網(wǎng)絡(luò)行為分析、漏洞修復(fù)等功能,建議開啟,但開啟后需要對Android系統(tǒng)上運行的APP做一些覆蓋兼容性測試。

    dps_extra

    屬于增強型工具,如果需要使用安全沙箱、安全控制臺、安全網(wǎng)絡(luò)掃描組件,請按需包含。

    itls_client

    為SOC增強型上云連接通道,基于 ID2 和 TEE CAP 鑒權(quán)上云,如果需要請包含,并參考“接入公有云物聯(lián)網(wǎng)安全中心”中的“方法一”進行適當配置。

步驟二:編譯前配置

  1. 用戶可以在$ANDROID_SOURCE_HOME/external/dps_sdk/packages/configure.ini當中進行服務(wù)參數(shù)的配置,請參見configure.ini配置

    說明

    一般而言這個配置文件在SDK輸出時已經(jīng)配置好,ISV用戶僅需要審核和微調(diào),微調(diào)部分如下:在Android產(chǎn)品當中,往往會采用一個property屬性來保存產(chǎn)品固件的版本號,每當產(chǎn)品進行OTA或者有線燒錄的時候,這個版本號都會發(fā)生變化。請根據(jù)您的產(chǎn)品當中具體的這個屬性值,對$ANDROID_SOURCE_HOME/external/dps_sdk/packages/configure.ini當中的MANAGED_VERSION進行仿寫配置即可。

  2. SOC SDK為Android 7.0以上版本提供了支持原生AOSP的SELinux和Seccomp安全策略,請在開始編譯產(chǎn)品鏡像之前,確認SELinux和Seccomp policy被加入到Android源代碼當中($DPS_SDK指代DPS SDK目錄):

    • 找到對應(yīng)的Android版本的SEPolicy目錄,將$DPS_SDK/policy/sepolicy/dps_file_contexts當中的內(nèi)容復(fù)制并粘貼到file_contexts文本最末尾。

    • 找到對應(yīng)的Android版本的SEPolicy目錄,將$DPS_SDK/policy/sepolicy/dps_android_X.te拷貝至該目錄并重命名為dps.te。其中X代表Android版本對應(yīng)字母號。

    • 找到Android源代碼的frameworks/av/services/mediacodec/minijail/seccomp_policy目錄,將$DPS_SDK/policy/seccomp_policy/dps_mediacodec-seccomp-arm.policy當中的內(nèi)容復(fù)制并粘貼到mediacodec-seccomp-arm.policy文件末尾。

    • 找到Android源代碼的frameworks/av/services/mediaextractor/minijail/seccomp_policy目錄,將$DPS_SDK/policy/seccomp_policy/dps_mediaextractor-seccomp-arm.policy當中的內(nèi)容復(fù)制并粘貼到mediaextractor-seccomp-arm.policy文件末尾。再將$DPS_SDK/policy/seccomp_policy/dps_mediaextractor-seccomp-x86.policy當中的內(nèi)容復(fù)制并粘貼到mediaextractor-seccomp-x86.policy文件末尾。

    說明

    在Android 8以上的版本中,需要額外配置vendor的SEPolicy,一個vendor相關(guān)的定制 SEPolicy,范例請參考:policy/sepolicy/vendor/dps_android_o_bullhead.te

步驟三:SELinux調(diào)試

沒有啟用SELinux的設(shè)備可以跳過這一步。

在啟用了SELinux的Android設(shè)備上必須要完成這一步調(diào)試,請參見Android SELinux策略開發(fā)

步驟四:(可選)內(nèi)核安全增強

非必選步驟,針對內(nèi)核審計相關(guān)強安全需求的用戶,請參見Linux 內(nèi)核功能依賴參考

步驟五:確認集成是否成功

  1. 開發(fā)階段請務(wù)必將SELinux置為permissive模式,具體方法為在產(chǎn)品的BoardConfig.mk文件里加入一行如下命令:

    BOARD_KERNEL_CMDLINE += androidboot.selinux=permissive
  2. 完成上述的步驟之后,就可以按照通常設(shè)備ROM編譯的方式進行編譯了。編譯結(jié)束之后通過幾個checklist來確保SOC SDK成功集成到了設(shè)備ROM:

    1. 在編譯工作機上,進入$ANDROID_SOURCE_HOME/out/target/<your_product>/目錄。

    2. 確認system/bin/logd不存在。

    3. 確認system/bin/linker64以及system/bin/linker形成符號鏈接,指向./dps/bin/linker64和./dps/bin/linker。

    4. 確認system/bin/目錄下具有dps文件夾,即/system/bin/dps存在,其中具有bin,lib(64),etc三個文件夾。

    5. 確認system/etc/init目錄下存在dps.rc文件。

    6. 確認system/etc/seccomp_policy當中幾個.policy文件以及/vendor/etc/seccomp_policy當中的幾個.policy文件中含有DPS指定的syscall白單。

  3. 完成上述確認之后嘗試刷機,并且進行開機check list:

    • 可以正常啟動到launcher,adb功能以及l(fā)ogcat功能正常。

    • adb shell進入系統(tǒng),通過ps命令,確認三個進程dpsd、logd、sagent均穩(wěn)定運行(1分鐘以內(nèi)進程號不變)。

接入公有云物聯(lián)網(wǎng)安全中心

SOC SDK需要和阿里云物聯(lián)網(wǎng)平臺服務(wù)端之間建立一個安全的MQTT連接,才能正常工作,因此,我們需要將它接入阿里云物聯(lián)網(wǎng)平臺。

下面介紹常用的兩種接入阿里云物聯(lián)網(wǎng)的方式,在集成過程中,只需要根據(jù)實際需求選中其中一種方式即可。

  • 方法一:推薦用于沒有集成TEE-PRO的Android設(shè)備。

  • 方法二:推薦用于已經(jīng)集成了TEE-PRO的Android設(shè)備。

方法一:復(fù)用ID2+TEE-CAP建立的iTLS上云通道

在目標設(shè)備Android系統(tǒng)當中,如果事先沒有集成TEE-PRO,則可以通過APP+Linkkit SDK+ID2+TEE CAP建立iTLS上云通道,同時這個通道也可以給SOC復(fù)用。我們推薦您使用這種方式讓SOC SDK連入阿里云物聯(lián)網(wǎng),通過ID2認證的MQTT over iTLS通道可以讓你的數(shù)據(jù)傳輸更加安全。

整體的數(shù)據(jù)鏈路通道如下圖所示:整體的數(shù)據(jù)鏈路通道具體操作步驟如下:

  1. $ANDROID_SOURCE_HOME/external/dps_sdk/dps_sdk.mk文件中確認啟用了itls_client選項。

  2. 使用PC瀏覽器打開阿里云物聯(lián)網(wǎng)平臺控制臺

  3. 進入控制臺之后單擊對應(yīng)的實例,在左側(cè)導(dǎo)航欄,選擇設(shè)備管理 > 產(chǎn)品,單擊創(chuàng)建產(chǎn)品

    重要

    認證方式必須選擇ID2。

  4. 創(chuàng)建成功后,進入產(chǎn)品詳情頁面,單擊上方Product Secret右側(cè)的查看按鈕,獲取產(chǎn)品證書信息。

    說明

    請妥善保管產(chǎn)品證書信息,對應(yīng)ProductKey和ProductSecret在后續(xù)步驟中會使用。

  5. 在Android Studio導(dǎo)入的SDK包中找到$ANDROID_SOURCE_HOME/external/dps_sdk/client/example/itls_client應(yīng)用程序工程,選擇res/raw/deviceinfo文件,請將ProductKey和ProductSecret填入相應(yīng)的字段。測試階段可以在這里填寫每個設(shè)備的身份標識到deviceName字段。

    {
        "productKey": "<your_product_key>",
        "deviceName": "<unique_id_of_device>",
        "productSecret": "<your_product_secret>",
        "deviceSecret": "itls_secret",
        "subDevice": [
          {
              "productKey": "",
              "deviceName": ""
          },
          {
            "productKey": "",
            "deviceName": ""
        }
      ]
    }
  6. 完成之后編譯運行這個APP,可使用自簽證書對其進行簽名,并輸入打包好的apk文件,命名為itls_client.apk,復(fù)制到dps_sdk/client/prebuilt/itls_client.apk

  7. 重新編譯系統(tǒng)鏡象,此時這個itls_client.apk會被預(yù)裝到目標設(shè)設(shè)備,開機自啟動且在有網(wǎng)絡(luò)連接的時候自動接入阿里云物聯(lián)網(wǎng)平臺。

說明

安全開發(fā)實踐建議:

  • 上述的ProductKey和ProductSecret是產(chǎn)品賬號的私密信息,建議不要明文配置到deviceinfo,而是通過nvram燒錄等方式配置到ROM,并在APP當中通過接口獲取。

  • 上述的deviceName由于當前產(chǎn)品的每個出貨的設(shè)備個體都需要做到不相同,因此建議您根據(jù)自身設(shè)備ID對這個字段進行配置和獲取(譬如使用IMEI,MAC或者燒錄到nvram的設(shè)備ID等)。

  • 請對上述APP進行改造,確保系統(tǒng)開機之后自動啟動(注冊BOOT_COMPLETED broadcast receiver),以及網(wǎng)絡(luò)切換之后重新激活。

  • 其它隱藏APP界面,launcher圖標等您可自行決定處理。

方法二:自定義客戶端接入上云

如果希望自定義客戶端接入時,可使用SOC提供的客戶端示例代碼,自行修改后完成客戶端上云。

客戶端示例代碼可參考SDK的client目錄。您也可以獨立編譯,編譯步驟如下:

  1. 請在dps_sdk.mk的PRODUCT_PACKAGES列表中添加cloud_agent_example項。

  2. 請自行在Android init.rc文件中啟動客戶端服務(wù)。并在SDK的packages/service.ini文件當中注釋掉start sagent項目。

  3. 按照正常方式編譯設(shè)備鏡像,cloud_agent_example會被編譯至鏡像的/system/bin/目錄下。

確認集成已成功

上述兩種方法,無論采用哪一種,在配置完成,設(shè)備上線之后,即可在物聯(lián)網(wǎng)平臺控制臺設(shè)備管理 > 設(shè)備以及物聯(lián)網(wǎng)安全中心接入管理 > 直連設(shè)備 > 設(shè)備列表頁面看到設(shè)備接入條目。

在物聯(lián)網(wǎng)安全運營中心管理控制臺中對此設(shè)備進行取證操作,稍置約5分鐘后,界面提示若取證通過,即表明集成成功。