精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

OpenHarmony源碼解析之安全子系統 (應用權限管理)

開發
本文將介紹標準系統下安全子系統應用權限管理部分如何在系統內適配及實現,盡力深入細節部分。

[[435507]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

1.簡介

安全子系統為OpenHarmony提供有效保護應用和用戶數據的能力。

主要功能: 系統安全、數據安全、應用安全等;

目前開源功能: 應用完整性保護、應用權限管理、設備認證、密鑰管理服務、數據分級保護;

應用權限管理: 為程序框架子系統提供權限管理功能,并且為上層應用提供權限申請和授權狀態查詢接口。

本文將介紹標準系統下安全子系統應用權限管理部分如何在系統內適配及實現,盡力深入細節部分。

1.1 OpenHarmony 架構圖

OpenHarmony 源碼解析之安全子系統 (應用權限管理) -鴻蒙HarmonyOS技術社區

1.2 安全子系統

OpenHarmony 源碼解析之安全子系統 (應用權限管理) -鴻蒙HarmonyOS技術社區

1.3 應用權限管理

OpenHarmony中應用和系統服務均運行在獨立的沙箱中,進程空間和程序數據都是相互隔離的,以保護應用數據的安全性;但是運行在獨立沙箱中的服務或應用同時需要對外提供一些API以實現所需功能,其他獨立沙箱中的應用在跨進程訪問這些API時,需要系統提供一種權限管理機制對這些API的訪問者進行授權。

應用權限管理提供了權限定義機制,允許系統服務和應用為自己的敏感API定義新的權限,其他應用必須申請此權限才能訪問此敏感API;

應用權限管理提供了權限申請機制,允許應用申請權限,這些權限由系統或者其他應用定義,權限申請通過后就能訪問這個權限相關的系統或其他應用提供的敏感API;

應用權限管理也為用戶提供了一些必須的功能,方便用戶查看和管理權限授予情況。

OpenHarmony 源碼解析之安全子系統 (應用權限管理) -鴻蒙HarmonyOS技術社區

2.基礎知識

2.1 代碼結構

  1. /base/security/permission 
  2. ├── frameworks # 基礎設施層 
  3. │ └── permission_standard # 標準系統權限管理基礎設施層 
  4. ├── interfaces # 接口層 
  5. │ ├── innerkits # 內部接口層 
  6. │ │ ├── permission_lite # 輕量系統、小型系統權限管理內部接口層 
  7. │ │ └── permission_standard # 標準系統權限管理內部接口層 
  8. │ └── kits # 外部接口層 
  9. │ ├── permission_lite # 輕量系統、小型系統權限管理外部接口層 
  10. │ └── permission_standard # 標準系統權限管理外部接口層 
  11. └── services # 服務層 
  12. ├── permission_lite # 輕量系統、小型系統權限管理服務層 
  13. └── permission_standard # 標準系統權限管理服務層 

2.2 SystemAbility

應用權限管理模塊是以SystemAbility的形式對外提供能力的,在分布式任務調度子系統中safwk組件定義OpenHarmony中SystemAbility的實現方法,并提供啟動、注冊等接口實現。

實現一個SystemAbility需要六個步驟:

1)定義該服務對外提供的能力集合函數

  1. namespace OHOS { 
  2. class IListenAbility : public IRemoteBroker { 
  3. public
  4.     virtual int AddVolume(int volume) = 0; 
  5.  
  6. public
  7.     enum { 
  8.         ADD_VOLUME = 1, 
  9.     }; 
  10. public
  11.     DECLARE_INTERFACE_DESCRIPTOR(u"OHOS.test.IListenAbility"); 
  12. }; 

 2) 定義客戶端通信代碼XXXProxy

  1. namespace OHOS { 
  2. class ListenAbilityProxy : public IRemoteProxy<IListenAbility> { 
  3. public
  4.     int AddVolume(int volume); 
  5.  
  6.     explicit ListenAbilityProxy(const sptr<IRemoteObject>& impl) 
  7.         : IRemoteProxy<IListenAbility>(impl) 
  8.     { 
  9.     } 
  10.  
  11. private: 
  12.     static inline BrokerDelegator<ListenAbilityProxy> delegator_; 
  13. }; 
  14. } // namespace OHOS 

 3) 定義服務端通信代碼XXXStub

  1. namespace OHOS { 
  2. int32_t ListenAbilityStub::OnRemoteRequest(uint32_t code, 
  3.     MessageParcel& data, MessageParcel &reply, MessageOption &option
  4.     switch (code) { 
  5.         case ADD_VOLUME: { 
  6.             return reply.WriteInt32(AddVolume(data.ReadInt32())); 
  7.         } 
  8.         default
  9.             return IPCObjectStub::OnRemoteRequest(code, data, reply, option); 
  10.     } 

 4)SystemAbility的實現類 

  1. namespace { 
  2. constexpr OHOS::HiviewDFX::HiLogLabel LABEL = {LOG_CORE, 0xD001800, "SA_TST"}; 
  3.  
  4. REGISTER_SYSTEM_ABILITY_BY_ID(ListenAbility, DISTRIBUTED_SCHED_TEST_LISTEN_ID, true); 
  5.  
  6. ListenAbility::ListenAbility(int32_t saId, bool runOnCreate) : SystemAbility(saId, runOnCreate) 
  7.     HiLog::Info(LABEL, ":%s called", __func__); 
  8.     HiLog::Info(LABEL, "ListenAbility()"); 
  9.  
  10. ListenAbility::~ListenAbility() 
  11.     HiLog::Info(LABEL, "~ListenAbility()"); 
  12.  
  13. int ListenAbility::AddVolume(int volume) 
  14.     pid_t current = getpid(); 
  15.     HiLog::Info(LABEL, "ListenAbility::AddVolume volume = %d, pid = %d.", volume, current); 
  16.     return (volume + 1); 
  17.  
  18. void ListenAbility::OnDump() 
  19.  
  20. void ListenAbility::OnStart() 
  21.     HiLog::Info(LABEL, "ListenAbility::OnStart()"); 
  22.     HiLog::Info(LABEL, "ListenAbility:%s called:-----Publish------", __func__); 
  23.     bool res = Publish(this); 
  24.     if (res) { 
  25.         HiLog::Error(LABEL, "ListenAbility: res == false"); 
  26.     } 
  27.     HiLog::Info(LABEL, "ListenAbility:%s called:AddAbilityListener_OS_TST----beg-----", __func__); 
  28.     AddSystemAbilityListener(DISTRIBUTED_SCHED_TEST_OS_ID); 
  29.     HiLog::Info(LABEL, "ListenAbility:%s called:AddAbilityListener_OS_TST----end-----", __func__); 
  30.  
  31.     HiLog::Info(LABEL, "ListenAbility:%s called:StopAbility_OS_TST----beg-----", __func__); 
  32.     StopAbility(DISTRIBUTED_SCHED_TEST_OS_ID); 
  33.     HiLog::Info(LABEL, "ListenAbility:%s called:StopAbility_OS_TST----end-----", __func__); 
  34.     return
  35.  
  36. void ListenAbility::OnStop() 

5)SystemAbility配置

以c++實現的SA必須配置相關System Ability的profile配置文件才會完成SA的加載注冊邏輯,否則沒有編寫profile配置的System Ability不會完成注冊。配置方法如下:

在子系統的根目錄新建一個以sa_profile為名的文件夾;然后在此文件夾中新建兩個文件:一個以serviceId為前綴的xml文件;另外一個為BUILD.gn文件

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <info> 
  3.     <process>listen_test</process> 
  4.     <systemability> 
  5.     <name>serviceid</name
  6.     <libpath>/system/lib64/liblistentest.z.so</libpath> 
  7.     <run-on-create>true</run-on-create
  8.     <distributed>false</distributed> 
  9.     <dump-level>1</dump-level
  10. </systemability> 
  11. </info> 

 BUILD.gn:

  1. import("//build/ohos/sa_profile/sa_profile.gni"
  2. ohos_sa_profile("xxx_sa_profile") { 
  3.     sources = [ 
  4.         "serviceid.xml" 
  5.     ] 
  6.     subsystem_name = "distributedschedule" 

6)rc配置文件

rc配置文件為linux提供的native進程拉起策略,為手機在開機啟動階段由init進程解析配置的rc文件進行拉起

  1. service listen_test /system/bin/sa_main /system/profile/listen_test.xml 
  2.     class z_core 
  3.     user system 
  4.     group system shell 
  5.     seclabel u:r:xxxx:s0 

2.3 接口說明

標準系統用戶程序框架子系統提供權限管理基礎校驗能力,不對三方app開放,并提供如下API。

3.內部實現

3.1 類間關系

IPermissionManager:內部接口類

PermissionManagerProxy:IPC請求的代理類

PermissionManagerStub:IPC請求服務類

PermissionManagerClient:應用權限管理客戶類

PermissionKit:組件對外接口類,真正對外提供STATIC接口函數

PermissionManagerService:應用權限功能服務類,調用PermissionStateManager和PermissionDefinitionManager

PermissionStateManager:真正的應用權限管理功能實現

PermissionDefinitionManager:真正的應用權限管理功能實現

3.2 內部邏輯

標準系統下應用權限管理功能是基于SAMgr管理框架實現,如何配置SAMgr框架見基礎知識介紹,如果想學習更多細節參見SAMgr相關學習,這里專注于應用權限管理功能部分,并對代碼邏輯關鍵節點進行分析和展示。

應用權限管理組件通過PermissionKit類以單例模式對外提供接口,PermissionKit類內部接口函數則調用PermissionManagerClient類,PermissionManagerClient則通過調用GetSystemAbility函數獲取向SAMgr注冊過的代理類單例PermissionManagerProxy。

代碼如下:

  1. sptr<IPermissionManager> PermissionManagerClient::GetProxy() const 
  2.     auto sam = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 
  3.     if (sam == nullptr) { 
  4.         PERMISSION_LOG_DEBUG(LABEL, "%{public}s: GetSystemAbilityManager is null", __func__); 
  5.         return nullptr; 
  6.     } 
  7.     // 獲取Proxy 
  8.     auto permissionSa = sam->GetSystemAbility(IPermissionManager::SA_ID_PERMISSION_MANAGER_SERVICE); 
  9.     if (permissionSa == nullptr) { 
  10.         PERMISSION_LOG_DEBUG(LABEL, "%{public}s: GetSystemAbility %{public}d is null", __func__, 
  11.             IPermissionManager::SA_ID_PERMISSION_MANAGER_SERVICE); 
  12.         return nullptr; 
  13.     } 
  14.  
  15.     auto proxy = iface_cast<IPermissionManager>(permissionSa); 
  16.     if (proxy == nullptr) { 
  17.         PERMISSION_LOG_DEBUG(LABEL, "%{public}s: iface_cast get null", __func__); 
  18.         return nullptr; 
  19.     } 
  20.     return proxy; 

 在獲取代理類PermissionManagerProxy后,PermissionManagerProxy內部不同功能接口函數會調用SendRequest函數發起IPC請求服務。

示例代碼如下(刪去省略部分):

  1. int PermissionManagerProxy::VerifyPermission( 
  2.     const std::string& bundleName, const std::string& permissionName, int userId) 
  3.     // 省略部分 
  4.     ..................... 
  5.     // 發送請求服務 
  6.     int32_t requestResult = remote->SendRequest( 
  7.         static_cast<uint32_t>(IPermissionManager::InterfaceCode::VERIFY_PERMISSION), data, reply, option); 
  8.     if (requestResult != NO_ERROR) { 
  9.         PERMISSION_LOG_ERROR(LABEL, "%{public}s send request fail, result: %{public}d", __func__, requestResult); 
  10.         return PERMISSION_NOT_GRANTED; 
  11.     } 
  12.  
  13.     int32_t result = reply.ReadInt32(); 
  14.     PERMISSION_LOG_DEBUG(LABEL, "%{public}s get result from server data = %{public}d", __func__, result); 
  15.     return result; 

 其中接口類IPermissionManager中定義了IPC通信的請求碼。

示例代碼如下(刪去省略部分):

  1. class IPermissionManager : public IRemoteBroker { 
  2. public
  3.     static const int SA_ID_PERMISSION_MANAGER_SERVICE = 3501; 
  4.  
  5.     DECLARE_INTERFACE_DESCRIPTOR(u"ohos.security.permission.IPermissionManager"); 
  6.  
  7.     virtual int VerifyPermission(const std::string& bundleName, const std::string& permissionName, int userId) = 0; 
  8.     // 省略部分 
  9.     ................................ 
  10.     // 請求碼 
  11.     enum class InterfaceCode { 
  12.         VERIFY_PERMISSION = 0xff01, 
  13.         CAN_REQUEST_PERMISSION = 0xff02, 
  14.         GRANT_USER_GRANTED_PERMISSION = 0xff03, 
  15.         GRANT_SYSTEM_GRANTED_PERMISSION = 0xff04, 
  16.         REVOKE_USER_GRANTED_PERMISSION = 0xff05, 
  17.         REVOKE_SYSTEM_GRANTED_PERMISSION = 0xff06, 
  18.         ADD_USER_GRANTED_REQ_PERMISSIONS = 0xff07, 
  19.         ADD_SYSTEM_GRANTED_REQ_PERMISSIONS = 0xff08, 
  20.         REMOVE_USER_GRANTED_REQ_PERMISSIONS = 0xff09, 
  21.         REMOVE_SYSTEM_GRANTED_REQ_PERMISSIONS = 0xff10, 
  22.         ADD_DEF_PERMISSIONS = 0xff11, 
  23.         REMOVE_DEF_PERMISSIONS = 0xff12, 
  24.         GET_DEF_PERMISSION = 0xff13, 
  25.     }; 
  26. }; 

PermissionManagerService類則由于繼承了PermissionManagerStub,會在接口函數OnRemoteRequest函數接收到代理PermissionManagerProxy通過IPC通信發送的不同請求,進而進行處理。

示例代碼如下:

  1. int32_t PermissionManagerStub::OnRemoteRequest( 
  2.     uint32_t code, MessageParcel& data, MessageParcel& reply, MessageOption& option
  3.     PERMISSION_LOG_INFO(LABEL, "%{public}s called, code: %{public}d", __func__, code); 
  4.     std::u16string descriptor = data.ReadInterfaceToken(); 
  5.     if (descriptor != IPermissionManager::GetDescriptor()) { 
  6.         PERMISSION_LOG_ERROR(LABEL, "get unexpect descriptor: %{public}s", Str16ToStr8(descriptor).c_str()); 
  7.         return RET_FAILED; 
  8.     } 
  9.     switch (code) { 
  10.         case static_cast<uint32_t>(IPermissionManager::InterfaceCode::VERIFY_PERMISSION): 
  11.             VerifyPermissionInner(data, reply); 
  12.             break; 
  13.         case static_cast<uint32_t>(IPermissionManager::InterfaceCode::CAN_REQUEST_PERMISSION): 
  14.             CanRequestPermissionInner(data, reply); 
  15.             break; 
  16.         case static_cast<uint32_t>(IPermissionManager::InterfaceCode::GRANT_USER_GRANTED_PERMISSION): 
  17.             GrantUserGrantedPermissionInner(data, reply); 
  18.             break; 
  19.         // 省略部分 
  20.         ....... 
  21.  
  22.         default
  23.             return IPCObjectStub::OnRemoteRequest(code, data, reply, option); 
  24.     } 
  25.     return NO_ERROR; 

最終PermissionManagerService則調用PermissionStateManager和PermissionDefinitionManager類所提供的函數做具體的功能實現。

4.總結

當今設備安全問題已經越來越引起不同行業的重視,OpenHarmney安全子系統作為系統基礎能力之一對開發設備的安全性尤為重要,對系統框架開發來說很有必要學習其內部原理并對代碼結構深入了解,本文檔拋磚引玉介紹了標準系統下應用權限管理的相關邏輯框架,后續隨著學習的深入將不斷完善對安全子系統的解讀。

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2023-04-12 15:31:11

系統服務管理鴻蒙

2021-09-18 14:40:37

鴻蒙HarmonyOS應用

2021-12-17 16:42:09

鴻蒙HarmonyOS應用

2021-11-08 15:04:47

鴻蒙HarmonyOS應用

2022-01-06 16:17:58

鴻蒙HarmonyOS應用

2022-02-17 20:57:07

OpenHarmon操作系統鴻蒙

2022-01-10 15:30:11

鴻蒙HarmonyOS應用

2022-05-10 11:17:27

電話子系統數據服務模塊

2022-05-24 15:46:51

Wi-FiSTA模式

2021-09-13 15:15:18

鴻蒙HarmonyOS應用

2023-04-06 09:14:11

多模輸入子系統鴻蒙

2022-01-13 10:11:59

鴻蒙HarmonyOS應用

2023-06-28 15:00:02

開源鴻蒙輸入系統架構

2021-09-17 14:38:58

鴻蒙HarmonyOS應用

2021-11-25 09:54:54

鴻蒙HarmonyOS應用

2021-12-27 16:20:45

鴻蒙HarmonyOS應用

2022-01-20 14:33:29

openharmonwayland協議鴻蒙

2022-02-14 14:47:11

SystemUIOpenHarmon鴻蒙

2022-03-18 16:07:04

Graphic子系統鴻蒙

2021-12-14 14:45:38

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術棧公眾號

中文字幕精品影院| 欧美aaa免费| 蜜桃视频在线一区| 欧美放荡办公室videos4k| 亚洲の无码国产の无码步美| 日韩三区在线| 夜色激情一区二区| 日韩亚洲欧美精品| 亚洲国产精品久久久久久6q| 日韩av一二三| 高清一区二区三区四区五区| 日韩女同一区二区三区| 综合中文字幕| 欧美色图天堂网| 日韩av高清在线看片| 超碰国产在线| 91丨九色丨蝌蚪丨老版| 91精品视频大全| 亚洲自拍一区在线观看| 亚洲特级毛片| 久久精品电影网| 受虐m奴xxx在线观看| silk一区二区三区精品视频 | 久久精品国产2020观看福利| 亚洲色图14p| 亚洲综合影院| 在线不卡一区二区| 午夜免费精品视频| 少妇视频一区| 激情成人中文字幕| 国产精品视频网站在线观看| 蜜桃视频在线观看www社区| 91蜜桃在线免费视频| 国产精品三区在线| 亚洲国产精彩视频| 国产一区二区看久久| 国产精品久久久久影院日本| 一级黄色在线视频| 亚洲黄色高清| 国内伊人久久久久久网站视频 | 亚洲伊人一本大道中文字幕| 欧美人一级淫片a免费播放| 一二三区精品| 午夜精品久久久久久久99热浪潮 | 92国产精品视频| 亚洲天堂久久久久| 欧美aaaaaa午夜精品| 欧日韩不卡在线视频| 国产视频91在线| 日韩一级不卡| 欧美亚洲国产视频小说| 亚洲午夜18毛片在线看| 亚洲巨乳在线| 91国内揄拍国内精品对白| 日本一区二区三区免费视频| 亚洲精品影院在线观看| 69av视频在线播放| 四虎成人在线观看| 一本色道精品久久一区二区三区| 午夜精品国产精品大乳美女| 欧美bbbbbbbbbbbb精品| 亚洲欧美日本日韩| 国产精品99久久久久久久久久久久| 日韩视频在线观看一区| 日韩**一区毛片| 国产精品一二三在线| 国产精品视频一二区| 国产精品456| 国产区一区二区| 男操女在线观看| 国产精品免费久久久久| 中文字幕超清在线免费观看| 中文字幕在线观看播放| 亚洲午夜羞羞片| 亚洲自偷自拍熟女另类| 久久久人成影片一区二区三区在哪下载| 欧美视频三区在线播放| 日本高清一区二区视频| 伊色综合久久之综合久久| 亚洲精品国产精品自产a区红杏吧| 男人天堂av电影| 成人亚洲一区| 久久久爽爽爽美女图片| jizz国产在线观看| 国产在线国偷精品免费看| 国产精品毛片va一区二区三区| 日韩二区三区| 亚洲欧美另类小说| heyzo国产| 欧美激情不卡| 日韩精品亚洲元码| a一级免费视频| 亚洲精品看片| 成人午夜两性视频| 熟妇人妻系列aⅴ无码专区友真希| 国产日韩一级二级三级| 艳母动漫在线观看| 中文字幕在线视频网站| 91精品欧美一区二区三区综合在| 亚洲国产果冻传媒av在线观看| 日韩精品诱惑一区?区三区| 欧美激情一区二区久久久| 最近中文字幕在线免费观看| 成人午夜在线视频| 亚洲国产一区在线| 性欧美18xxxhd| 日韩三级中文字幕| 人妻熟人中文字幕一区二区| 亚洲青色在线| 91美女福利视频高清| 黄色片在线免费看| 亚洲福中文字幕伊人影院| 中文字幕第38页| 免费观看不卡av| 久久久久久久久久久免费 | 日韩三级中文字幕| 五月激情四射婷婷| 亚洲少妇诱惑| 风间由美一区二区三区| 麻豆影视在线观看_| 日本精品一级二级| 老鸭窝一区二区| 国产一区亚洲| 99精品国产高清一区二区| 日本中文字幕在线观看| 欧美最新大片在线看| 亚洲调教欧美在线| 在线观看的日韩av| 99精品国产高清在线观看| 成年人网站在线| 在线成人小视频| 美女网站视频色| 日av在线不卡| 日本不卡二区| 456亚洲精品成人影院| 亚洲欧美日韩网| 人人爽人人爽人人片av| 26uuu国产在线精品一区二区| 欧美一级视频在线播放| 丁香五月缴情综合网| 欧美福利在线观看| 成人福利小视频| 一个色妞综合视频在线观看| 欧美丰满熟妇bbb久久久| 欧美久久一区| 国产精品大全| 岛国av在线网站| 亚洲精品狠狠操| 久久免费激情视频| 久久久不卡影院| 手机看片福利日韩| 日韩欧美精品一区| 91久久久久久| 色噜噜狠狠狠综合欧洲色8| 日韩欧美一级二级三级久久久| 18岁成人毛片| 不卡高清视频专区| 精品一卡二卡三卡| 精品久久久久久久| 国产日韩精品在线| 中文字幕资源网在线观看| 亚洲大胆人体视频| 久草手机在线观看| 国产日本亚洲高清| 777一区二区| 国产精品s色| 久久久精品有限公司| free欧美| 久久久精品电影| 日韩中文字幕综合| 日韩欧美亚洲一二三区| 99久久久无码国产精品不卡| 国产精品18久久久久久vr| 男人的天堂狠狠干| 欧美日韩国产传媒| 亚洲999一在线观看www| av中文在线资源| 国产香蕉精品视频一区二区三区| 97超碰人人草| 天天爽夜夜爽夜夜爽精品视频| 中文字幕一区二区人妻在线不卡 | 日韩欧美第一页| 亚洲一二三四视频| 成人av电影在线| 波多结衣在线观看| 亚洲夜间福利| 亚洲一区二区三区免费观看| 高清日韩欧美| 国产欧美在线看| hd国产人妖ts另类视频| 日韩在线国产精品| 熟妇高潮一区二区高潮| 欧美福利视频一区| 久久久久久久久久久影院| 一区在线观看免费| 特级西西人体wwwww| 国产一区二区精品久久| 欧洲av无码放荡人妇网站| 中文字幕一区二区三区乱码图片| 欧美一区二区福利| 一区二区三区国产好| 国产精品久久久999| 97人人在线视频| 欧美精品一区在线播放| 国产午夜在线观看| 亚洲国产欧美一区二区三区同亚洲| 中国一区二区视频| 黑人精品xxx一区一二区| 国产美女福利视频| 欧美激情综合五月色丁香小说| 中文字幕一区二区三区人妻在线视频| 蜜臀精品一区二区三区在线观看| 成年人午夜免费视频| 欧美激情日韩| 在线播放豆国产99亚洲| 欧美色婷婷久久99精品红桃| 精品国产_亚洲人成在线| 欧美大片91| 国产欧美中文字幕| 日韩一区精品| 日韩免费在线播放| 色网在线免费观看| 性欧美视频videos6一9| 日本高清在线观看视频| 久久视频在线看| 色的视频在线免费看| 在线观看欧美日韩国产| 国产在线免费观看| 亚洲欧美一区二区三区四区| 亚洲日本在线播放| 亚洲激情成人网| 日韩中文字幕影院| 精品久久久久久无| 亚洲精品中文字幕成人片| 日韩欧美成人一区二区| 精品人妻aV中文字幕乱码色欲| 91麻豆精品国产综合久久久久久| 在线观看av大片| 欧美日韩精品三区| 中文字幕免费高清在线观看| 在线看日韩精品电影| 中文字幕一区二区三区四区欧美| 一本到不卡免费一区二区| 福利一区二区三区四区| 五月婷婷综合激情| 日本天堂网在线| 欧美视频二区36p| 中文人妻av久久人妻18| 欧洲人成人精品| 伊人网视频在线| 88在线观看91蜜桃国自产| 99热这里只有精品5| 日韩精品一区二| 色综合久久久久久| 亚洲奶大毛多的老太婆| 黄色网址在线播放| 久久国内精品一国内精品| 91极品在线| 国模精品视频一区二区| 亚洲免费福利| 国产精品美女www爽爽爽视频| 少妇精品视频在线观看| 91手机在线播放| 台湾佬综合网| 西游记1978| 女人色偷偷aa久久天堂| 欧美精品久久久久久久自慰| 久久国产欧美| 男人的天堂最新网址| 国产成人av网站| 亚洲国产果冻传媒av在线观看| 国产区在线观看成人精品 | 99久久精品无码一区二区毛片| 视频一区中文字幕精品| 欧美高清视频一区| 国产精品黑丝在线播放| 免费高清一区二区三区| 日韩精品亚洲专区| 图片区偷拍区小说区| 久久精品视频在线免费观看 | 午夜伊人狠狠久久| 4438国产精品一区二区| 欧美日韩黄色影视| 天堂网在线资源| 亚洲一二在线观看| 欧美人与禽猛交乱配| 国产成人精品在线视频| 精品视频一二| 欧美一级二级三级九九九| 一区二区三区午夜视频| 日韩人妻精品无码一区二区三区| 精品一区二区三区日韩| 国产精品三级在线观看无码| 亚洲精品v日韩精品| 国产精品高清无码| 亚洲成人久久一区| 日本不卡在线| 秋霞午夜一区二区| 2020国产精品极品色在线观看| 色噜噜色狠狠狠狠狠综合色一| 国产精品xvideos88| 亚洲精品久久久久久宅男| 91视频xxxx| 九九视频在线免费观看| 欧美日韩久久不卡| 撸视在线观看免费视频| 欧美激情视频一区二区三区不卡| 国产精品久久久久久吹潮| 精品国产乱码久久久久久88av| 永久91嫩草亚洲精品人人| 美女黄色片视频| 久久一区二区三区四区| 日本中文字幕网| 日韩欧美专区在线| 午夜毛片在线| 国产精品久久久久久久久借妻| 欧美一级全黄| 精品国偷自产一区二区三区| 狠狠色丁香婷婷综合| 欧美三级视频网站| 在线视频欧美精品| 三区在线视频| 538国产精品一区二区在线| 久久视频在线观看| 18禁网站免费无遮挡无码中文| 国产精品1024| 一区二区视频免费看| 在线不卡a资源高清| 在线a免费看| 国产精品老女人视频| 国产精品一区二区三区av麻| 92看片淫黄大片一级| 91看片淫黄大片一级在线观看| 日本少妇激情视频| 亚洲国产成人精品一区二区| 一区二区三区伦理| www.成人av.com| 在线精品福利| 中文字幕av观看| 一本色道**综合亚洲精品蜜桃冫| 飘雪影院手机免费高清版在线观看| 性欧美长视频免费观看不卡| 日本中文字幕在线一区| 人妻精品无码一区二区三区| 久久蜜桃av一区精品变态类天堂| 免费在线不卡视频| 亚洲精品一区二区久| 桃花岛tv亚洲品质| 亚洲巨乳在线观看| 黄色资源网久久资源365| 欧美黄色免费在线观看| 欧美成人a∨高清免费观看| 成年人视频免费在线播放| 精选一区二区三区四区五区| 久久久久国产精品一区三寸| 少妇视频在线播放| 欧美一区二区三区喷汁尤物| 国产丝袜在线观看视频| 久久艳妇乳肉豪妇荡乳av| 日韩不卡手机在线v区| 午夜国产小视频| 日韩一级免费一区| 欧美日韩在线观看首页| 日韩欧美在线电影| 国产一区91精品张津瑜| 国产午夜精品无码| 国产亚洲欧美日韩精品| 精品国产第一国产综合精品| 久艹在线免费观看| 久久色在线视频| 91精品国产乱码久久久久| 欧美激情va永久在线播放| 天天久久夜夜| 国产成人美女视频| 亚洲成人手机在线| 成人高清免费观看mv| 91沈先生播放一区二区| 亚洲一区日韩| 亚洲欧洲综合网| 欧美精品一区二区三区视频 | 中文一区在线| 黄色一级片一级片| 精品国产一区久久| 免费污视频在线一区| 91大学生片黄在线观看| 久久精品夜色噜噜亚洲aⅴ| 99这里有精品视频| 日本高清+成人网在线观看| 一区二区电影在线观看| 波多野结衣片子| 欧美成人乱码一区二区三区| 色婷婷综合久久久中字幕精品久久| 欧美性受xxxx黑人猛交88| 2021中文字幕一区亚洲| av中文在线观看| 日韩免费观看视频| 亚洲精品九九| 91嫩草丨国产丨精品| 亚洲人永久免费| 久久久伦理片|