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

iOS 是如何獲取夜間模式啟動圖緩存路徑?

移動開發
本文通過對 applicationState.db 進行一系列的分析,最終實現了在模擬器下獲取獲取夜間模式啟動圖緩存路徑的訴求。

你是否了解過iOS 是如何獲取夜間模式啟動圖緩存路徑??

百度APP技術團隊曾經發布過一篇深夜暗坑 - iOS啟動圖異常修復方案。

該文章分享了一些關于啟動圖的研究,但是通過文章的內容,我們仍然無法解決這個問題:iOS 是如何獲取夜間模式啟動圖緩存路徑?

[[353923]]

經過一系列的研究,作者獲了模擬器場景下的方案,現分享作者的研究記錄。

方案一:嘗試通過啟動圖文件名判斷緩存圖是否屬于夜間模式

我們首先對 深夜暗坑 - iOS啟動圖異常修復方案 提供的信息進行提煉。

原文提供了以下2個信息:

  • 緩存啟動圖的文件名具有規則,但其規則我們不得而知
  • 4 張啟動圖的文件名
  1. ├── 1FFD332B-EBA0-40C9-8EEE-BEC9AEF7C41A@3x.ktx 
  2. ├── 96920D11-6312-4D69-BBDB-AFBB52DBDDB3@3x.ktx 
  3. ├── 98F7B5B1-5B3B-478B-93A8-ED3DE6492AD1@3x.ktx 
  4. └── D9D48845-8565-42CE-A834-479CC9CC8BAD@3x.ktx 

通過 4 個文件名,我們可以發現4張圖片的命名都符合以下規則:

  1. xxxxxxxx-xxxx-4xxx-xxxx-xxxxxxxxxxxx 

再結合蘋果官方文檔 NSUUID 的內容:

  1. `NSUUID`conform to RFC 4122 version 4 and are created with random bytes. 

我們可以得到以下結論:

  • 4 個文件名的都是通過 NSUUID 動態生成
  • 文件名只包含版本 4,不再包含其它有效的信息

方案二:通過系統文件進行分析

方案一失敗后,我們猜測 iOS 是通過其它方式保存夜間模式啟動圖緩存路徑信息。

經過一系列的測試,作者發現了 applicationState.db 文件。

applicationState.db

系統會通過 applicationState.db 保存程序狀態等各類信息,當然,也會包括夜間模式啟動圖緩存路徑信息。

本文分析的文件位于 ~/Library/Developer/CoreSimulator/Devices/1F9B22C5-E446-4881-AFE4-3373E3513C59/data/Library/FrontBoard/applicationState.db

其中,1F9B22C5-E446-4881-AFE4-3373E3513C59代表 iOS 模擬器的設備ID。

模擬器的完整ID列表可以通過命令 plutil -p ~/Library/Developer/CoreSimulator/Devices/device_set.plist 查看

測試環境

為了方便對系統文件進行分析,本文以 iOS 14 模擬器為目標進行分析。

版本信息如下所示:

  1. (lldb) platform status 
  2.   Platform: ios-simulator 
  3.     Triple: x86_64h-apple-macosx 
  4. OS Version: 10.15.6 (19G2021) 
  5.     Kernel: Darwin Kernel Version 19.6.0: Thu Jun 18 20:49:00 PDT 2020; root:xnu-6153.141.1~1/RELEASE_X86_64 
  6.   Hostname: 127.0.0.1 
  7. WorkingDir: / 
  8.   SDK Path: "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk" 
  9. No devices are available. 

另外,后續的代碼會假定 Bundle identifier 是 test.SplashTest

解析 applicationState.db

先嘗試通過 file命令獲取 applicationState.db文件類型:

  1. file ~/Library/Developer/CoreSimulator/Devices/1F9B22C5-E446-4881-AFE4-3373E3513C59/data/Library/FrontBoard/applicationState.db 

輸出:

  1. SQLite 3.x databaselast written using SQLite version 3032003 

測試成功,通過 file 命令的輸出可以看到文件類型是 SQLite 3.x。

db 結構

下面,再通過 SQLite 相關的工具對該文件進行dump,我們可以得到以下信息:

  1. sqlite> .schema 
  2. CREATE TABLE schema(version INT NOT NULL); 
  3. CREATE TABLE key_tab (id INTEGER PRIMARY KEYkey TEXT NOT NULLUNIQUE(key)); 
  4. CREATE TABLE application_identifier_tab (id INTEGER PRIMARY KEY, application_identifier TEXT NOT NULLUNIQUE(application_identifier)); 
  5. CREATE TABLE kvs (    id INTEGER PRIMARY KEY,    application_identifier INT REFERENCES application_identifier_tab(id),    key INT REFERENCES key_tab(id),    value BLOB,    UNIQUE(application_identifier, key)); 
  6. CREATE INDEX kvs_keys ON kvs(key); 
  7. CREATE INDEX kvs_application_identifiers ON kvs(application_identifier); 
  8. CREATE VIEW kvs_debug AS     SELECT application_identifier_tab.application_identifier, key_tab.key, value FROM application_identifier_tab, key_tab, kvs WHERE         kvs.application_identifier=application_identifier_tab.id         AND kvs.key=key_tab.id 
  9. /* kvs_debug(application_identifier,"key",value) */; 

application_identifier_tab 保存了設備安裝的應用列表( id 是主鍵,application_identifier 是 APP 的Bundle identifier)

key_tab 負責記錄常量字符串。

經過測試,夜間模式啟動圖緩存路徑的路徑屬于 XBApplicationSnapshotManifest。

 

  1. sqlite> .schema key_tab 
  2. CREATE TABLE key_tab (id INTEGER PRIMARY KEYkey TEXT NOT NULLUNIQUE(key)); 
  3. sqlite> .width 2 50 
  4. sqlite> select * from key_tab; 
  5. id  key 
  6. --  -------------------------------------------------- 
  7. 1   SBLaunchImageIngestionInfo 
  8. 2   XBApplicationSnapshotManifest 
  9. 3   _SBScenes 
  10. 4   SBApplicationShortcutItems 
  11. 5   compatibilityInfo 
  12. 6   SBApplicationRecentlyUpdated 
  13. 7   SBApplicationRecentlyUpdatedTimerStartDate 

kvs_debug 負責串聯上面的3個表:

  1. kvs.application_identifier=application_identifier_tab.id 
  2. kvs.key=key_tab.id 

通過 test.SplashTest,可以獲取到4個結果,其中第2負責保存快照相關信息

  1. sqlite> .width 15 32 8 
  2. sqlite> SELECT * FROM kvs_debug WHERE application_identifier = 'test.SplashTest'
  3. application_ide  key                               value 
  4. ---------------  --------------------------------  -------- 
  5. test.SplashTest  _SBScenes                         bplist00 
  6. test.SplashTest  XBApplicationSnapshotManifest     bplist00 
  7. test.SplashTest  SBApplicationRecentlyUpdated      0 
  8. test.SplashTest  compatibilityInfo                 bplist00 

導出XBApplicationSnapshotManifest

經過一番研究,我們發現 XBApplicationSnapshotManifest 對應的value 就是 SplashBoard 庫 XBApplicationSnapshotManifestImpl 類的持久化結果。

所以,我們可以通過通過以下代碼,對 value 的內容進行 dump。

  1. +(void)load {     
  2.     void *lib  =  dlopen("/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/SplashBoard.framework/SplashBoard", RTLD_NOW); 
  3.     printf("%p", lib); 
  4.     [self dump:@"/Users/test/Library/Developer/CoreSimulator/Devices/1F9B22C5-E446-4881-AFE4-3373E3513C59/data/Library/FrontBoard/XBApplicationSnapshotManifest.plist"]; 
  5.  
  6. +(void)dump:(NSString *)path { 
  7.     NSData *data0 = [NSData dataWithContentsOfFile:path]; 
  8.     NSPropertyListFormat f = -1; 
  9.     NSError *error = nil; 
  10.     NSData *data1 = [NSPropertyListSerialization propertyListWithData:data0 options:NSPropertyListReadStreamError format:&f error:&error]; 
  11.     if (f==kCFPropertyListXMLFormat_v1_0) { 
  12.         NSLog(@"kCFPropertyListXMLFormat_v1_0"); 
  13.     } 
  14.     id obj = [NSKeyedUnarchiver unarchiveTopLevelObjectWithData:data1 error:&error]; 
  15.     NSLog(@"%@",obj); 

dump 結果:

  1. <XBApplicationSnapshotManifestImpl: 0x600000050d80; clientCount: 0> { 
  2.     containerIdentity = 0x0; 
  3.     snapshots = { 
  4.         <XBApplicationSnapshotGroup: 0x600002e65ea0; identifier: test.SplashTest - {DEFAULT GROUP}> { 
  5.             <XBApplicationSnapshot: 0x7fcb53f04d90; identifier: CE275D00-5732-4AFD-88FD-00BAE541EC12; launchInterfaceIdentifier: __from_UILaunchStoryboardName__; contentType: GeneratedDefault; referenceSize: {375, 812}; interfaceOrientation: LandscapeLeft; userInterfaceStyle: Dark> { 
  6.                 creationDate = September 27, 2020 at 6:08:50 PM GMT+8; 
  7.                 keepsImageAccessUntilExpiration = NO
  8.                 hasGenerationContext = NO
  9.                 context = { 
  10.                     contentType = GeneratedDefault; 
  11.                     fullScreen = YES; 
  12.                     referenceSize = {375, 812}; 
  13.                     interfaceOrientation = LandscapeLeft; 
  14.                     userInterfaceStyle = Dark; 
  15.                     additionalContext = { 
  16.                         statusBarSettings = <XBStatusBarSettings: 0x600002c580f0; hidden: YES; style: 0x0; backgroundActivityEnabled: NO>; 
  17.                     } 
  18.                 } 
  19.                 imageContext = { 
  20.                     scale = 3.0; 
  21.                     opaque = YES; 
  22.                     fileRelativeLocation = default
  23.                     fileFormat = png; 
  24.                 } 
  25.             }; 
  26.             <XBApplicationSnapshot: 0x7fcb57004830; identifier: B9DAB53E-29D9-47D2-873E-5772DE9220D1; launchInterfaceIdentifier: __from_UILaunchStoryboardName__; contentType: GeneratedDefault; referenceSize: {375, 812}; interfaceOrientation: Portrait; userInterfaceStyle: Light> { 
  27.                 creationDate = September 27, 2020 at 6:08:50 PM GMT+8; 
  28.                 lastUsedDate = September 27, 2020 at 6:08:50 PM GMT+8; 
  29.                 keepsImageAccessUntilExpiration = NO
  30.                 hasGenerationContext = NO
  31.                 context = { 
  32.                     contentType = GeneratedDefault; 
  33.                     fullScreen = YES; 
  34.                     referenceSize = {375, 812}; 
  35.                     interfaceOrientation = Portrait; 
  36.                     userInterfaceStyle = Light; 
  37.                     additionalContext = { 
  38.                         statusBarSettings = <XBStatusBarSettings: 0x600002c5c1a0; hidden: NO; style: 0x0; backgroundActivityEnabled: NO>; 
  39.                     } 
  40.                 } 
  41.                 imageContext = { 
  42.                     scale = 3.0; 
  43.                     opaque = YES; 
  44.                     fileRelativeLocation = default
  45.                     fileFormat = png; 
  46.                 } 
  47.             }; 
  48.             <XBApplicationSnapshot: 0x7fcb57004b60; identifier: 6B84614D-0867-4048-BE04-8E22E6742DDF; launchInterfaceIdentifier: __from_UILaunchStoryboardName__; contentType: GeneratedDefault; referenceSize: {375, 812}; interfaceOrientation: Portrait; userInterfaceStyle: Dark> { 
  49.                 creationDate = September 27, 2020 at 6:08:50 PM GMT+8; 
  50.                 keepsImageAccessUntilExpiration = NO
  51.                 hasGenerationContext = NO
  52.                 context = { 
  53.                     contentType = GeneratedDefault; 
  54.                     fullScreen = YES; 
  55.                     referenceSize = {375, 812}; 
  56.                     interfaceOrientation = Portrait; 
  57.                     userInterfaceStyle = Dark; 
  58.                     additionalContext = { 
  59.                         statusBarSettings = <XBStatusBarSettings: 0x600002c5c2d0; hidden: NO; style: 0x0; backgroundActivityEnabled: NO>; 
  60.                     } 
  61.                 } 
  62.                 imageContext = { 
  63.                     scale = 3.0; 
  64.                     opaque = YES; 
  65.                     fileRelativeLocation = default
  66.                     fileFormat = png; 
  67.                 } 
  68.             }; 
  69.             <XBApplicationSnapshot: 0x7fcb57005140; identifier: D3E8D00C-EE33-466B-98A6-7E60865D8001; launchInterfaceIdentifier: __from_UILaunchStoryboardName__; contentType: GeneratedDefault; referenceSize: {375, 812}; interfaceOrientation: LandscapeLeft; userInterfaceStyle: Light> { 
  70.                 creationDate = September 27, 2020 at 6:08:50 PM GMT+8; 
  71.                 keepsImageAccessUntilExpiration = NO
  72.                 hasGenerationContext = NO
  73.                 context = { 
  74.                     contentType = GeneratedDefault; 
  75.                     fullScreen = YES; 
  76.                     referenceSize = {375, 812}; 
  77.                     interfaceOrientation = LandscapeLeft; 
  78.                     userInterfaceStyle = Light; 
  79.                     additionalContext = { 
  80.                         statusBarSettings = <XBStatusBarSettings: 0x600002c5c400; hidden: YES; style: 0x0; backgroundActivityEnabled: NO>; 
  81.                     } 
  82.                 } 
  83.                 imageContext = { 
  84.                     scale = 3.0; 
  85.                     opaque = YES; 
  86.                     fileRelativeLocation = default
  87.                     fileFormat = png; 
  88.                 } 
  89.             }; 
  90.         }; 
  91.     } 

SplashBoard 部分類圖

通過類信息,整理如下所示(只包含關鍵屬性):

獲取夜間模式啟動圖緩存路徑

通常上面的內容,我們可以對 iOS 獲取夜間模式啟動圖緩存路徑的流程進行合理的猜測

啟動時,會先通過 XBApplicationSnapshotGroup的identifier 獲取test.SplashTest - {DEFAULT GROUP} 的啟動圖列表

再通過 XBApplicationSnapshot 的 userInterfaceStyle = Dark; 和 interfaceOrientation = Portrait;等信息,判斷啟動時應該使用

  1. <XBApplicationSnapshot: 0x7fcb57004b60; identifier: 6B84614D- 
  2. 0867-4048-BE04-8E22E6742DDF; launchInterfaceIdentifier:  
  3. __from_UILaunchStoryboardName__; contentType: GeneratedDefault;  
  4. referenceSize: {375, 812}; interfaceOrientation: Portrait;  
  5. userInterfaceStyle: Dark> 

最后再通過 XBApplicationSnapshot的 _relativePath 拼接啟動圖的真實路徑

  1. ~/Library/Developer/CoreSimulator/Devices/1F9B22C5-E446-4881- 
  2. AFE4-3373E3513C59/data/Containers/Data/Application 
  3. /FA902232-17D2-495F-B23E-410349A9921C/Library/SplashBoard/Snapshots 
  4. /test.SplashTest - {DEFAULT GROUP}/6B84614D-0867-4048- 
  5. BE04-8E22E6742DDF@3x.ktx 

總結

本文通過對 applicationState.db 進行一系列的分析,最終實現了在模擬器下獲取獲取夜間模式啟動圖緩存路徑的訴求。

 

責任編輯:未麗燕 來源: 酷酷的哀殿的博客
相關推薦

2021-06-28 14:35:36

iOSAPP緩存

2020-05-06 19:16:45

Windows 10Windows微軟

2018-08-17 15:56:07

APP夜間模式理性思考

2021-05-06 06:22:36

手機夜間模式藍光

2019-02-01 09:10:01

2017-03-31 14:31:08

QQ瀏覽器修復功能特性

2020-12-28 12:37:36

緩存擊穿穿透

2021-08-26 17:36:42

Floyd算法數據結構

2018-06-22 13:25:14

2020-03-30 18:00:39

微信iOS應用移動應用

2021-10-30 20:49:24

算法 Xpath路徑

2022-02-27 15:46:55

iOS省電模式技巧

2019-01-03 09:45:02

Ubuntu救援模式

2021-11-29 10:27:24

設計模式程序員

2009-06-18 15:23:49

緩存控制器模式Ajax模式

2011-09-30 09:28:40

蘋果謠言

2015-11-05 13:21:23

大帳篷OpenStack開源社區

2019-04-15 14:23:00

Windows 10Windows操作系統

2011-07-25 16:50:24

Windows安全模式

2020-01-14 11:45:31

安全模式Windows 10Windows
點贊
收藏

51CTO技術棧公眾號

欧美视频一区二区三区| 免费在线欧美黄色| 欧美成人一区二区三区片免费| 中文字幕人成一区| 一本色道久久综合亚洲| 亚洲蜜桃视频| 精品国产乱码久久久久久老虎| 全黄性性激高免费视频| 深夜福利免费在线观看| 久久精品一区二区国产| 深夜精品寂寞黄网站在线观看| 草草久久久无码国产专区| 男男激情在线| 狠狠色狠狠色综合| 欧美精品日韩www.p站| 日韩精品视频一区二区| 性欧美18~19sex高清播放| 国产丝袜美腿一区二区三区| 91久久久久久久| 国产福利拍拍拍| 国产精品88久久久久久| 亚洲精品成人久久| av免费一区二区| av蜜臀在线| 国产精品欧美精品| 国产在线视频欧美一区二区三区| 无码一区二区三区| 欧美人与禽猛交乱配视频| 日韩精品有码在线观看| 制服丝袜中文字幕第一页| 成人av影院在线观看| 中文字幕视频一区二区三区久| 成人午夜电影免费在线观看| 国产情侣呻吟对白高潮| 婷婷综合伊人| 亚洲天堂第二页| zjzjzjzjzj亚洲女人| 国产第一精品| 狠狠躁夜夜躁人人爽天天天天97| 中文字幕第50页| av中文字幕在线| av电影在线观看不卡| 91中文精品字幕在线视频| 99re热视频| 校园激情久久| 久久频这里精品99香蕉| 国产一二三区精品| 日韩一区二区在线| 亚洲男人的天堂在线| 久久久久久久久久影视| 图片一区二区| 欧美日韩中文字幕一区二区| 妺妺窝人体色777777| jizz日韩| 久久九九久精品国产免费直播| 电影午夜精品一区二区三区| 免费黄色一级大片| 日韩综合一区二区| 91精品国产自产91精品| 精品无码久久久久久久久| 欧美丰满老妇| 日韩在线视频中文字幕| 韩国三级hd中文字幕| 外国成人在线视频| 精品呦交小u女在线| 菠萝菠萝蜜网站| 国内毛片久久| 日韩精品一区在线观看| 欧美一级免费在线| 日韩高清一区| 欧美zozo另类异族| 蜜桃色一区二区三区| 日韩精品一级| 亚洲精品在线免费播放| 波多野结衣有码| eeuss鲁片一区二区三区| 亚洲成人黄色在线| 水蜜桃av无码| 欧美极品在线观看| 国产一区二区三区在线| 天天舔天天操天天干| 国产一区二区三区站长工具| 在线亚洲男人天堂| 午夜黄色福利视频| 午夜精品视频一区二区三区在线看| 色99之美女主播在线视频| 国产色无码精品视频国产| 亚洲欧美伊人| 97在线视频免费播放| 天天干在线播放| 日韩av电影免费观看高清完整版| 国产精品视频区1| 97超碰人人草| 风间由美性色一区二区三区| 精品国产乱码一区二区三区四区| 天堂网www中文在线| 欧美激情在线观看视频免费| 宅男噜噜99国产精品观看免费| av在线app| 亚洲6080在线| 午夜视频你懂的| 日韩精品亚洲专区在线观看| 日韩精品视频观看| 少妇一级黄色片| 伊人久久大香线蕉综合四虎小说| 97精品国产97久久久久久免费| 国产91国语对白在线| 精品一区二区三区视频在线观看| 国产高清精品一区二区| 欧美另类自拍| 久久综合久久久久88| 亚洲精品久久区二区三区蜜桃臀| 婷婷av在线| 91福利社在线观看| 性生交大片免费看l| 日韩激情啪啪| 久久资源免费视频| 国产91精品一区| 久久er99热精品一区二区| 国产精华一区| 瑟瑟视频在线| 精品成人av一区| 久久久久久久久久一区二区| 国产女人18毛片水真多18精品| 国产亚洲美女久久| 久久免费小视频| 麻豆一区二区在线| 久久99精品国产一区二区三区 | 偷拍日韩校园综合在线| 美女一区二区三区视频| 伊人久久噜噜噜躁狠狠躁| 在线日韩日本国产亚洲| 国产在线视频在线观看| 美国十次了思思久久精品导航 | 蜜臀av色欲a片无码精品一区| 不卡一二三区| 欧美一区二区久久| 精品无人区无码乱码毛片国产 | 在线观看日本网站| 成人做爰69片免费看网站| 亚洲一区3d动漫同人无遮挡| 亚洲天堂资源| 亚洲国产成人爱av在线播放| 国产精品成人69xxx免费视频| 天堂在线一区二区| 国内外成人免费视频| 宅男在线观看免费高清网站| 欧美无砖砖区免费| 免费看黄色的视频| 亚欧美中日韩视频| 久久青青草综合| 91吃瓜在线观看| 精品国产乱子伦一区| 欧美另类视频在线观看| 国产在线乱码一区二区三区| 天天综合狠狠精品| 忘忧草在线www成人影院| 精品视频中文字幕| 欧美三级午夜理伦| 99精品视频一区| 日韩欧美国产综合在线| 粉嫩一区二区三区四区公司1| 麻豆乱码国产一区二区三区| 国产精品人妻一区二区三区| 国产精品欧美久久久久无广告 | 欧美日韩精品在线观看视频| 国内精品久久久久影院一蜜桃| 亚洲成色最大综合在线| 草莓视频成人appios| 一区二区三区天堂av| 黄色片视频免费| 国产清纯在线一区二区www| 亚洲国产精品毛片av不卡在线| 亚洲精品推荐| 国产精品极品尤物在线观看| 电影在线一区| 欧美日韩一区二区欧美激情| 波多野结衣家庭教师在线观看| 欧美a级理论片| 最新精品视频| 在线综合色站| 久久久视频精品| 亚洲av电影一区| 亚洲成av人综合在线观看| 免费日本黄色网址| 久久天堂成人| 亚洲午夜精品一区二区| 国产精品视频一区视频二区 | 欧美日本一道本| 成人免费视频网站入口::| 国产成人欧美日韩在线电影| 青青草精品视频在线| 亚洲激情播播| 91精品国产综合久久男男| 乱人伦中文视频在线| 日韩欧美卡一卡二| 亚洲免费黄色网址| 国产精品日韩精品欧美在线| 欧美性猛交乱大交| 一区二区三区精品视频在线观看| 色综合影院在线观看| 国产精品视频一区视频二区| 97视频在线观看视频免费视频| 国产精品ⅴa有声小说| 欧美一区二区三区四区五区 | 鲁鲁视频www一区二区| 精品福利在线| 久久久久久久久久久免费| 美州a亚洲一视本频v色道| 欧美电影影音先锋| 久久亚洲天堂网| 综合在线观看色| 成人无码www在线看免费| 日韩电影免费在线观看网站| 亚洲乱码一区二区三区| 高清精品视频| 国产视频福利一区| 麻豆福利在线观看| 中文字幕亚洲一区| 国产三级视频在线播放| 日韩欧中文字幕| 美国黄色片视频| 成人精品免费视频| 五月天中文字幕在线| 欧美日本精品| 天天综合中文字幕| 精品国产18久久久久久洗澡| 成人高h视频在线| 丁香高清在线观看完整电影视频| 最近2019中文字幕在线高清| 少妇高潮久久久| 欧美一区二区三区成人| 成年人视频免费| 精品国产乱码久久久久酒店| 欧美三级小视频| 国产精品国产三级国产aⅴ原创| 亚洲中文字幕无码一区| 国模大尺度一区二区三区| 老熟妇仑乱视频一区二区| 午夜精品网站| 亚洲国产欧洲综合997久久| 精品欠久久久中文字幕加勒比| 成人免费网站在线观看| 欧美美女日韩| 欧美精品福利在线| 精品视频在线一区二区| 中文字幕亚洲一区二区三区| 国产一区二区三区小说| 欧性猛交ⅹxxx乱大交| 欧美一区二区免费视频| 在线观看av大片| 欧美又粗又大又爽| 中文字幕亚洲乱码熟女1区2区| 亚洲女人小视频在线观看| 国精产品视频一二二区| 国产欧美精品国产国产专区| caopeng视频| 国产亚洲福利社区一区| 全黄一级裸体片| 91麻豆精品一区二区三区| 美女又爽又黄免费| av一区二区三区黑人| 色婷婷精品久久二区二区密| 成人精品鲁一区一区二区| 成人做爰www看视频软件| 粉嫩绯色av一区二区在线观看| 午夜免费福利网站| 国产精品系列在线观看| 黑人性生活视频| 国产成人精品一区二| 欧美图片自拍偷拍| 成人精品视频一区二区三区 | 国产精品综合一区二区三区| 做a视频在线观看| 国内精品伊人久久久久av影院| 91免费视频污| 国产成人精品www牛牛影视| 佐佐木明希电影| 91在线云播放| 91成人破解版| 中文字幕在线不卡| 欧美精品入口蜜桃| 精品欧美国产一区二区三区| 国产免费一级视频| 欧美日韩视频第一区| 国产乱色精品成人免费视频| 欧美电视剧在线看免费| 午夜视频1000| 伊人久久久久久久久久久久久| 1769在线观看| 久久国产精品久久久久久| 日韩精品卡一| 青青草国产精品一区二区| 国产91亚洲精品久久久| 91影视免费在线观看| 久久久久97| 亚洲国产精品毛片| 欧美亚韩一区| 黄色一级大片在线观看| 久久97超碰色| 亚洲精品乱码久久久久久蜜桃图片| 久久久.com| 激情五月婷婷小说| 色综合久久久久综合体| 国产一区二区在线视频观看| 亚洲精品一区二区三区影院 | 中文字幕色呦呦| 国产一区二区三区久久| 亚洲美女性囗交| 91在线国产福利| 午夜精品福利在线视频| 精品久久久久久久久国产字幕| 中文字幕制服诱惑| 亚洲国产91精品在线观看| 日本在线观看www| 97人人模人人爽人人喊中文字| 韩日一区二区| 久久久久久久久久久一区| 99九九热只有国产精品| 六月丁香婷婷激情| 国产精品69毛片高清亚洲| 久久av无码精品人妻系列试探| 亚洲精品成人精品456| 中文字幕精品在线观看| 亚洲国产成人精品电影| 黄视频在线观看网站| 日韩免费观看av| 99re8这里有精品热视频免费 | 国产精品蜜臀在线观看| 中文字幕日韩一级| 欧美一级理论片| 成人av电影观看| 日本久久久久亚洲中字幕| 极品尤物一区| 国产精品无码免费专区午夜| 麻豆视频一区二区| 少妇人妻好深好紧精品无码| 天天综合天天做天天综合| 成人精品在线播放| 欧美精品一本久久男人的天堂| 亚洲欧美在线人成swag| 日韩国产精品一区二区| 校园激情久久| 国产制服丝袜在线| 亚洲免费观看在线观看| 欧美一区少妇| 97超碰资源站在线观看| 秋霞av国产精品一区| 欧美18免费视频| 日韩久久久久久久久久久久| 狠狠狠色丁香婷婷综合激情 | 九九精品在线播放| 亚洲狼人综合| 中文字幕在线亚洲三区| 美女任你摸久久 | 一区二区三区播放| 在线国产精品播放| 欧美xnxx| 日韩视频在线播放| 免费人成黄页网站在线一区二区| 最近中文字幕免费视频| 欧美午夜电影在线| 日本大臀精品| 日韩av大片免费看| 神马电影久久| 中文字幕国内自拍| gogo高清在线播放免费| 在线观看国产免费视频| 国产欧美一区二区三区鸳鸯浴 | 韩国av在线免费观看| 九九九久久久久久| 一区二区三区视频免费视频观看网站 | 亚洲女人av| 国产美女精品久久| 色菇凉天天综合网| 1pondo在线播放免费| 91色中文字幕| 欧美日韩精品| www.555国产精品免费| 欧美日韩美女在线| 精品无人乱码| 91精品久久久久久久久久入口| 亚洲精品成人| 久久综合在线观看| 亚洲一二三四在线| 男人天堂av网| 免费福利视频一区二区三区| 97伦理在线四区| 国产一区二区你懂的| 成人黄色短视频| 精品国产3级a| 亚洲四虎影院| 野外做受又硬又粗又大视频√| 久久久久成人黄色影片| 国产人妖一区二区| 婷婷开心激情综合| 中文字幕在线视频精品| 中文字幕日韩欧美一区二区三区| 可以免费观看的毛片| 国产精品一区二区3区|