麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

支持多用戶系統安全掛載存儲分區的方法與流程

文檔序號:41771014發布日期:2025-04-29 18:41閱讀:5來源:國知局
支持多用戶系統安全掛載存儲分區的方法與流程

本發明屬于計算機,具體涉及一種支持多用戶系統安全掛載存儲分區的方法。


背景技術:

1、如今社會工作越來越需要計算機的參與,計算機在多用戶功能上的應用也越來越廣泛,包括電腦、手機、智能汽車等等智能設備,它們的操作系統都集成多用戶功能,面對多任務的執行場景,可以通過多用戶共同參與的方式來輕松應對。

2、安卓系統中多用戶功能會為每個一用戶設計一個主用戶,在運行的過程中會創建很多的子用戶,每一個子用戶就是運行在主用戶環境下的進程,進程相應的可以訪問關聯主用戶存儲分區中的文件,即每一個用戶都采用了用戶關聯進程,進程訪問文件的設計模式。在系統正常運行的情況下切換系統用戶,系統首先會關閉所有用戶進程并重新掛載多用戶存儲分區,然后重新創建多用戶進程,接著切換到目標用戶。但是在系統運行過程中進行用戶切換往往會對正在訪問用戶存儲分區文件的應用進程造成中斷甚至破壞應用訪問的文件,同樣,對于部分應用在對應用戶存儲分區掛載完成前進行文件訪問的情況,應用運行也很容易出錯甚至崩潰。


技術實現思路

1、鑒于以上存在的問題,本發明提供一種支持多用戶系統安全掛載存儲分區的方法,為用戶進程訪問對應主用戶分區文件提供了可靠的保護機制,讓安卓系統在多用戶環境下運行也變得更加穩定和安全。

2、為解決上述技術問題,本發明采用如下的技術方案:

3、一種支持多用戶系統安全掛載存儲分區的方法,包括以下步驟:

4、安卓系統啟動,進入系統服務初始化,安卓用戶管理服務ums對當前系統所創建的用戶逐個進行初始化;根據userid順序,對每個用戶存儲分區都構建存儲管理服務;ums通過userid去掛載對應的用戶存儲分區,然后克隆安卓系統服務;

5、服務啟動完成后,正式進入系統,安卓系統首先進行用戶登錄,對于需要運行的用戶,系統先運行對應用戶空間的媒體提供應用mediaprovider,mediaprovider對用戶分區文件創建索引;

6、用戶分區文件索引創建完成后,其空間的mediaprovider保持后臺運行,接著安卓系統連接到用戶存儲分區并進入桌面程序;

7、進入桌面之后,運行用戶的系統核心組件功能啟用,通過各用戶空間的主進程開始啟動其他的應用進程;

8、啟動的應用進程可以通過進程context注冊系統切換用戶廣播接收器和用戶分區掛載結束廣播接收器;

9、進行系統切換用戶操作,調用ums設置主用戶方法,首先向所有運行的用戶空間發送自定義的系統切換用戶廣播,各用戶空間中注冊了系統切換用戶廣播接收器的進程停止訪問對應用戶分區文件;

10、接著ums收集當前系統可用userid,通過對應的存儲管理服務對userid用戶存儲分區進行重新掛載;

11、運行用戶的存儲管理服務將對應userid分區掛載完成后向對應用戶空間mediaprovider組件發送分區掛載廣播;

12、mediaprovider組件收到分區掛載廣播后把對應用戶存儲分區文件重新創建索引,待索引創建完成后發送自定義的用戶分區掛載結束廣播,在用戶存儲分區掛載完成前,用戶空間中就已經有正在運行的進程,對于注冊了用戶分區掛載結束廣播接收器的進程收到相應的廣播并且可以開始訪問對應用戶分區文件。

13、一種可能的實施方式中,所述克隆安卓系統服務中的安卓系統服務包括:packagemanager?service、activity?manager?service和window?manager?service。

14、一種可能的實施方式中,所述分區掛載廣播包括:(1)intent.action_media_mounted表示存儲設備已掛載成功可用,須動態注冊,無法通過靜態方式在manifest中聲明;(2)intent.action_media_unmounted表示存儲設備已卸載,但仍在物理連接狀態;(3)intent.action_media_removed表示存儲設備已被移除;(4)intent.action_media_bad_removal表示存儲設備被非正常移除,可導致數據丟失;(5)intent.action_media_eject表示存儲設備正在被安全移除

15、采用本發明具有如下的有益效果:

16、(1)自主設計廣播通知方案:在ums設置主用戶(管理員)邏輯中創建intent對象封裝好系統切換用戶廣播信息,接著以廣播的方式提醒當前系統所有用戶進程,使其能夠及時關閉用戶進程中的文件訪問操作,確保文件不被破環。接著ums會對當前系統可用的userid進行初始化并重新掛載對應userid的存儲分區,然后對應用戶空間的存儲管理服務以發送分區掛載廣播的方式通知mediaprovider應用,在mediaprovider把掃描的用戶分區文件索引結束的邏輯中創建intent對象并封裝好用戶分區掛載結束廣播信息,然后再次通過廣播通知到mediaprovier運行的用戶空間,確保用戶空間下的所有進程都能安全訪問對應用戶存儲分區下的文件。

17、(2)合理限制廣播接收用戶:系統執行用戶切換操作時,在ums設置主用戶(管理員)邏輯中使用系統切換用戶廣播信息去創建intent對象,然后把intent對象和userhandle.all作為參數去調用context的sendbroadcastasuser方法。當sendbroadcastasuser方法的指定用戶參數為userhandle.all的時候,該廣播會發送到當前系統中運行的所有用戶空間。接著ums會對當前系統所有可用的userid逐一進行初始化并重新掛載對應userid的存儲分區,然后對應用戶空間的存儲管理服務以發送分區掛載廣播的方式通知mediaprovider應用,當mediaprovider中分區文件索引結束時調用context對象中的sendbroadcast方法并傳入封裝了用戶分區掛載結束廣播信息的intent對象的時候,sendbroadcast方法會將分區掛載結束的消息通知到指定用戶空間的進程,采用向指定用戶空間發送廣播通知的方式發送用戶分區掛載結束廣播信息可以確保了對應用戶空間下的所有進程都能安全訪問用戶存儲分區文件。

18、(3)安全訪問用戶存儲分區:廣播發送端與廣播接收端之間的運行存在先后順序,只有經過廣播發送端發出廣播信息后,注冊了對應廣播信息的廣播接收端才能收到對應的信息,而且廣播發送端還能通過userhandle的用戶類別參數來限制廣播的接收用戶。基于廣播發送端與廣播接收端之間的這種關系,對于切換用戶作這種系統級別的操作,ums可以在設置主用戶方法中直接通過sendbroadcastasuser方法向所有用戶空間發送系統切換用戶廣播,讓所有的用戶進程都能收到并及時停止訪問對應用戶存儲分區文件,避免文件異常操作而被破壞。另一方面,ums會對當前系統所有可用的userid逐一進行初始化并重新掛載對應userid的存儲分區,然后對應用戶空間的存儲管理服務以發送分區掛載廣播的方式通知mediaprovider去索引分區中掃描到的文件,在mediaprovider把分區文件索引結束后直接調用sendbroadcast方法向當前用戶進程發送用戶分區掛載結束廣播信息,讓對應用戶空間中的所有進程收到用戶分區掛載結束廣播之后都可以安全訪問用戶存儲分區文件。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 车险| 宁陵县| 秦安县| 江安县| 大邑县| 安陆市| 五峰| 望城县| 高雄市| 濉溪县| 藁城市| 绍兴县| 郴州市| 喜德县| 丰原市| 抚顺县| 广州市| 威信县| 五峰| 彭阳县| 满城县| 林甸县| 建宁县| 临清市| 崇阳县| 枝江市| 永城市| 崇义县| 厦门市| 明光市| 阿城市| 且末县| 恩平市| 砀山县| 尚义县| 博野县| 岑巩县| 新津县| 峨眉山市| 莒南县| 霍邱县|