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

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

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

安全驅(qū)動(dòng)如何添加系統(tǒng)服務(wù)

麥辣雞腿堡 ? 來源:TrustZone ? 作者:TrustZone ? 2023-10-30 16:12 ? 次閱讀

添加系統(tǒng)服務(wù)

系統(tǒng)服務(wù)的添加不是必需的,為方便對(duì)底層驅(qū)動(dòng)的管理和對(duì)外部設(shè)備的擴(kuò)展,可將安全驅(qū)動(dòng)的接口接入到某個(gè)系統(tǒng)服務(wù)中,通過系統(tǒng)服務(wù)向外界暴露調(diào)用接口,以便上層TA可以使用該安全驅(qū)動(dòng)。

在本示例中建立的系統(tǒng)服務(wù)的源代碼為tee_test.c文件,需將該文件保存到optee_os/core/tee目錄中,同時(shí)將tee_test.h文件保存到optee_os/core/include/tee目錄中,然后修改optee_os/core/tee目錄中的sub.mk文件,添加“srcs-y += tee_test.c”,將tee_test.c集成到編譯系統(tǒng)中。

也可使用宏來控制該系統(tǒng)服務(wù)的編譯,其實(shí)現(xiàn)方法與上一節(jié)相同。

在tee_test.c文件中使用service_init宏來定義該系統(tǒng)服務(wù)的初始化函數(shù)(tee_test_init),該初始化函數(shù)將會(huì)被編譯到OP-TEE的初始化段中,OP-TEE啟動(dòng)時(shí)將會(huì)執(zhí)行服務(wù)段中包含的函數(shù),調(diào)用tee_test_init函數(shù)初始化該系統(tǒng)服務(wù)。

到這里明白了driver_init和service_init的差異。一個(gè)是直接注冊(cè)驅(qū)動(dòng)的系統(tǒng)調(diào)用,一個(gè)注冊(cè)到系統(tǒng)服務(wù)。

3.4 添加系統(tǒng)調(diào)用

上層的TA運(yùn)行于OP-TEE的用戶空間,如果上層的TA需要調(diào)用安全驅(qū)動(dòng),則需通過調(diào)用系統(tǒng)調(diào)用接口的方式來調(diào)用安全驅(qū)動(dòng)提供的操作接口。

若要在TA中使用本示例中的安全驅(qū)動(dòng),則還需在OP-TEE中增加該驅(qū)動(dòng)對(duì)應(yīng)的系統(tǒng)調(diào)用。包括用戶空間接口的定義和內(nèi)核空間接口的定義,關(guān)于OP-TEE中系統(tǒng)調(diào)用的實(shí)現(xiàn)原理可參閱第16章。(小的馬上后面補(bǔ)上)

圖片

1.用戶空間代碼的修改

修改optee_os/lib/libutee/arch/arm/utee_syscalls_asm.S文件,添加如下內(nèi)容:

UTEE_SYSCALL utee_testDriver_write, TEE_SCN_TESTDRIVER_WRITE,3
        UTEE_SYSCALL utee_testDriver_read, TEE_SCN_TESTDRIVER_READ,3
        UTEE_SYSCALL utee_testDriver_dump, TEE_SCN_TESTDRIVER_DUMP,2

utee_testDriver_xxx是在TA中調(diào)用該驅(qū)動(dòng)時(shí)使用的函數(shù),

TEE_SCN_TESTDRIVER_XXX是該系統(tǒng)調(diào)用對(duì)應(yīng)的索引值。

上層TA調(diào)用utee_testDriver_xxx函數(shù)后會(huì)進(jìn)入OP-TEE的內(nèi)核空間,系統(tǒng)通過查找TEE_SCN_TESTDRIVER_XXX對(duì)應(yīng)的接口來找到該功能在OP-TEE內(nèi)核中的實(shí)現(xiàn)。

最后的數(shù)字表示調(diào)用該接口時(shí)需要代入的參數(shù)的個(gè)數(shù)。

修改optee_os/lib/libutee/include/utee_syscalls.h文件,添加如下內(nèi)容,申明上述三個(gè)函數(shù)接口。在TA的源代碼中包含該頭文件后就可調(diào)用這三個(gè)接口來對(duì)該安全驅(qū)動(dòng)進(jìn)行調(diào)用。

TEE_Result utee_testDriver_write(void*buf,size_t blen,size_t offset);
        TEE_Result utee_testDriver_read(void*buf,size_t blen,size_t offset);
        TEE_Result utee_testDriver_dump(void*buf,size_t blen);

修改optee_os/lib/libutee/include/tee_syscall_numbers.h文件,添加上述三個(gè)系統(tǒng)調(diào)用接口的索引值,并修改TEE_SCN_MAX的值,需要修改和添加的內(nèi)容如下:

#define TEE_SCN_TESTDRIVER_WRITE              71
#define TEE_SCN_TESTDRIVER_READ           72
#define TEE_SCN_TESTDRIVER_DUMP           73
#define TEE_SCN_MAX                73

2.內(nèi)核空間代碼的修改

修改optee_os/core/arch/arm/tee/arch_svc.c文件中系統(tǒng)調(diào)用數(shù)組變量tee_svc_syscall_table的內(nèi)容,將上述系統(tǒng)調(diào)用對(duì)應(yīng)的內(nèi)核層接口添加到該數(shù)組中,并包含申明這三個(gè)接口的頭文件,在該文件中添加的內(nèi)容如下:

SYSCALL_ENTRY(syscall_testDriver_write),
        SYSCALL_ENTRY(syscall_testDriver_read),
        SYSCALL_ENTRY(syscall_testDriver_dump),
#includetee/tee_test.h >

上述三個(gè)函數(shù)的具體實(shí)現(xiàn)在tee_test.c文件中,讀者可自行查閱這三個(gè)接口函數(shù)的實(shí)現(xiàn)。

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

    關(guān)注

    12

    文章

    1812

    瀏覽量

    85047
  • 設(shè)備
    +關(guān)注

    關(guān)注

    2

    文章

    4416

    瀏覽量

    70450
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4697

    瀏覽量

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

    關(guān)注

    1

    文章

    1005

    瀏覽量

    21273
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    [分享]windows 2003服務(wù)安全設(shè)置方法

    系統(tǒng)危險(xiǎn)文件的訪問權(quán)限,只留管理組成員。  此篇文章獻(xiàn)給對(duì)服務(wù)安全和個(gè)人PC安全方面有需要的朋友。  詳細(xì)文章轉(zhuǎn)自:  http
    發(fā)表于 12-14 10:20

    基于短消息的移動(dòng)安全通信系統(tǒng)

    針對(duì)目前移動(dòng)公網(wǎng)中短信系統(tǒng)存在的不安全因素,提出了一種安全短消息通信系統(tǒng)。然后基于實(shí)時(shí)主動(dòng)防護(hù)與管控的安全角度,介紹了
    發(fā)表于 05-06 09:04

    租用服務(wù)器后如何進(jìn)行服務(wù)安全防護(hù)

    基石,對(duì)網(wǎng)站的后續(xù)維護(hù)和發(fā)展起到重要作用,我們?cè)谧庥?b class='flag-5'>服務(wù)器之后,如何做好安全防護(hù)也成為重中之重。河南耀磊商務(wù)總結(jié)了6點(diǎn)服務(wù)器在安裝操作系統(tǒng)完畢之后需要做的
    發(fā)表于 08-16 11:27

    如何最大限度地提升自助服務(wù)設(shè)備的安全性?

    隨著市場(chǎng)對(duì)消費(fèi)者自動(dòng)化服務(wù)及自動(dòng)零售的需求不斷提升,選擇正確的安全解決方案對(duì)自助服務(wù)設(shè)計(jì)來說極為關(guān)鍵。合適的電子門禁解決方案可為自身服務(wù)應(yīng)用提供安全
    發(fā)表于 09-24 06:10

    交通安全統(tǒng)籌系統(tǒng)

    156開-1335-心3228自2019年以來公司成立交通安全統(tǒng)籌系統(tǒng)研發(fā)專項(xiàng)項(xiàng)目組,兩年來, 不斷對(duì)系統(tǒng),數(shù)據(jù)集合,流轉(zhuǎn)等甚至對(duì)交通安全增值服務(wù)
    發(fā)表于 10-28 14:04

    車輛安全統(tǒng)籌信息系統(tǒng)

    156開-1335-心3228自2019年以來公司成立交通安全統(tǒng)籌系統(tǒng)研發(fā)專項(xiàng)項(xiàng)目組,兩年來, 不斷對(duì)系統(tǒng),數(shù)據(jù)集合,流轉(zhuǎn)等甚至對(duì)交通安全增值服務(wù)
    發(fā)表于 10-28 14:06

    嵌入式Linux的USB驅(qū)動(dòng)添加及應(yīng)用

    驅(qū)動(dòng)程序添加是嵌入式Linux開發(fā)的關(guān)鍵技術(shù)之一。本文主要分析為MCF5272 添加USB驅(qū)動(dòng)程序的詳細(xì)過程, 簡(jiǎn)述UFTP 協(xié)議(USB 文件傳輸協(xié)議), 并給出一個(gè)文件傳輸?shù)膽?yīng)用示
    發(fā)表于 04-15 11:58 ?12次下載

    如何添加NandFlash驅(qū)動(dòng)

    這個(gè)文檔簡(jiǎn)單介紹了如何在 H-FLASHER 中添加NAND FLASH 驅(qū)動(dòng)?;谶@個(gè)文檔,用戶可以根據(jù) 自己的實(shí)際需求修改已有的NAND FLASH 驅(qū)動(dòng)程序,或添加新的NAND
    發(fā)表于 04-01 10:21 ?0次下載

    本體驅(qū)動(dòng)的IT服務(wù)管理系統(tǒng)模型研究_孫少雄

    本體驅(qū)動(dòng)的IT服務(wù)管理系統(tǒng)模型研究_孫少雄
    發(fā)表于 03-19 11:28 ?0次下載

    分析微軟在云服務(wù)添加的新安全特性

    Office365和Azure云服務(wù)將很快會(huì)推出新的安全服務(wù)和特性,并且報(bào)表能力也將加強(qiáng)。 微軟正在為Office365和Azure云服務(wù)增加一系列新的
    發(fā)表于 10-12 17:21 ?0次下載

    添加或刪除windows系統(tǒng)服務(wù)管理工具

    添加或刪除windows系統(tǒng)服務(wù)
    發(fā)表于 03-27 14:13 ?0次下載

    使用系統(tǒng)服務(wù)和器件驅(qū)動(dòng)器的遷移步驟介紹

    在本培訓(xùn)模塊中,我們將帶您了解將使用系統(tǒng)服務(wù)和器件驅(qū)動(dòng)器1.0 API的VisualDSP++? Blackfin項(xiàng)目遷移到CrossCore? Embedded Studio及系統(tǒng)
    的頭像 發(fā)表于 05-21 06:19 ?1880次閱讀
    使用<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>服務(wù)</b>和器件<b class='flag-5'>驅(qū)動(dòng)</b>器的遷移步驟介紹

    F1C100S添加USB驅(qū)動(dòng)

    F1C100S添加USB驅(qū)動(dòng)
    的頭像 發(fā)表于 02-15 14:58 ?2019次閱讀
    F1C100S<b class='flag-5'>添加</b>USB<b class='flag-5'>驅(qū)動(dòng)</b>

    labview怎么添加設(shè)備驅(qū)動(dòng)

    添加設(shè)備驅(qū)動(dòng)是使用LabVIEW進(jìn)行設(shè)備控制和數(shù)據(jù)采集的關(guān)鍵步驟之一。本文將向您介紹如何在LabVIEW中添加設(shè)備驅(qū)動(dòng)程序。 在開始之前,您需要明確了解所要
    的頭像 發(fā)表于 01-02 16:10 ?1985次閱讀

    安全服務(wù)可以分為哪三類服務(wù)

    安全服務(wù)是隨著云計(jì)算技術(shù)的發(fā)展而產(chǎn)生的,主要目的是保障云計(jì)算環(huán)境中的數(shù)據(jù)安全、系統(tǒng)安全和網(wǎng)絡(luò)安全。云
    的頭像 發(fā)表于 07-02 09:22 ?490次閱讀