日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android远程调试的探索与实现

發布時間:2024/7/5 Android 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android远程调试的探索与实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作為移動開發者,最頭疼的莫過于遇到產品上線以后出現了Bug,但是本地開發環境又無法復現的情況。常見的調查線上棘手問題方式大概如下:

方法優點缺點
聯系用戶安裝已添加測試日志的APK方便定位問題需要用戶積極配合,如果日志添加不全面還需要反復重試
提前在一些關鍵路徑設置埋點,在用戶出現問題以后上報日志進而定位問題不需要用戶深度配合關鍵路徑不好預測

以上兩種方法在之前調查線上問題時都有使用,但因為二者都有明顯的缺點,所以效果不是特別理想。

能否開發一種工具,既不需要用戶深度配合也不需要提前埋點就能方便、快速地定位線上問題?

作為程序員,查bug一般使用下面幾種方式:閱讀源碼、記錄日志或調試程序。一般本地無法復現的問題通過閱讀源碼很難找到原因,而且大多數情況都和用戶本地環境有關。記錄日志的缺點之前講過了,同樣不予考慮,那能否像調試本地程序一樣調試已經發布出去的程序呢?我們對此做了一些嘗試和探索。

先看下調試原理,這里以Java為例(通過IDE調試Android程序也基于此原理)。Java(Android)程序都是運行在Java(Dalvik\ART)虛擬機上的,要調試Java程序,就需要向Java虛擬機請求當前程序運行狀態,并對虛擬機發送一定的指令,設置一些回調等等。Java的調試體系,就是虛擬機的一套用于調試的工具和接口。Java SE從1.2.2版本以后推出了JPDA框架(Java Platform Debugger Architecture,Java平臺調試體系結構)。

JPDA框架

JPDA定義了一套獨立且完整的調試體系,它由三個相對獨立的模塊組成,分別為:

  • JVM TI:Java虛擬機工具接口(被調試者)。
  • JDWP:Java Debug Wire Protocol,Java調試協議(通道)。
  • JDI:Java Debug Interface,Java調試接口(調試者)。

這三個模塊把調試過程分解成了三個自然的概念:

  • 被調試者運行在我們想要調試的虛擬機上,它可以通過JVM TI這個標準接口監控當前虛擬機的信息。
  • 調試者定義了用戶可以使用的調試接口,用戶可以通過這些接口對被調試虛擬機發送調試命令,同時顯示調試結果。
  • 在調試者和被調試者之間,通過JDWP傳輸層傳輸消息。

整個過程如下:

Components Debugger Interfaces/ |--------------|/ | VM |debuggee ----( |--------------| <------- JVM TI - Java VM Tool Interface\ | back-end |\ |--------------|/ |comm channel -( | <--------------- JDWP - Java Debug Wire Protocol\ ||--------------|| front-end ||--------------| <------- JDI - Java Debug Interface| UI ||--------------|

下面重點介紹一下JDWP協議。

JDWP協議

JDWP協議是用于調試器與目標虛擬機之間進行調試交互的通信協議,它的通信會話主要包含兩類數據包:

  • Command Packet:命令包。調試器發送給虛擬機Command,用于獲取程序狀態或控制程序執行;虛擬機發送Command給調試器,用于通知事件觸發消息。
  • Reply Packet:回復包,虛擬機發送給調試者回復命令的請求或者執行結果。

JDWP的數據包主要包含包頭和數據兩部分,包頭字段含義如下:

數據包部分JDWP協議按照功能分為18組命令(以Java 7為例),包含了虛擬機、引用類型、對象、線程、方法、堆棧、事件等不同類型的操作命令。

Dalvik虛擬機/ART虛擬機對JDWP協議的支持并不完整,但是大部分關鍵命令都是支持的,具體信息可以參考Dalvik-JDWP和ART-JDWP中所支持的消息。

Android調試原理

Android調試模型可以看作JPDA框架的具體實現。其中變化比較大的一個是JVM TI適配了Android設備特有的Dalvik虛擬機/ART虛擬機,另一個是JDWP的實現支持ADB和Socket兩種通信方式(ADB全稱為Android Debug Bridge,是Android系統的一個很重要的調試工具)。整體的調試模型如下:

____________________________________| || ADB Server (host) || |Debugger <---> LocalSocket <----> RemoteSocket || || ||___________________________||_______|||Transport ||(TCP for emulator - USB for device) ||||___________________________||_______| || || ADBD (device) || || || | Android-VM | || | JDWP-thread <====> LocalSocket <-> RemoteSocket || ||____________________________________|

運行在PC上的ADB Server和運行在Android設備上的ADBD守護進程之間通過USB或者無線網絡建立連接,分別負責Debugger和Android設備的虛擬機進行通信。一旦連接建立起來,Debugger和Android VM通過“橋梁”進行數據的交換,ADB Server和ADBD對它們來說是透明的。

綜上,要實現遠程調試,關鍵需要實現兩部分功能:

  • 能夠自定義JDWP通道。
  • 能模擬ADB和ADBD實現消息的轉發。

先看下如何實現自定義JDWP通道。

JDWP啟動過程

我們看下Android 5.0系統在啟動一個應用時是如何啟動JDWP Thread的。


點擊圖片查看大圖

通過上圖可以看到,Android在創建虛擬機的同時會創建一個JDWP-Thread,JDWP默認有ADB和Socket兩種通信方式。要實現遠程調試,ADB這種方式肯定不適用,所以能否實現一個自定義的Socket通道來實現JDWP的消息轉發成了問題的關鍵。

Hack-Native-JDWP

通過閱讀JDWP啟動源碼(Android-API-21)發現,要想讓JDWP通過自定義的Socket通道進行通信,需要滿足兩個條件:

  • 能夠修改全局變量gJdwpOptions的值,使其配置為Socket模式,并指明對應的端口號。
  • 使用新的gJdwpOptions參數重新啟動JDWP-Thread。

在Android中,JDWP相關代碼分別被編譯成libart.so(Art)和libdvm.so(Dalvik)。修改或調用其他so庫中的代碼需要用到動態加載,使用動態加載,應用程序需要先指定要加載的庫,然后將該庫作為一個可執行程序來使用(即調用其中的函數)。動態加載API 就是為了動態加載而存在的,它允許共享庫對用戶空間程序可用。下面表格展示了這個完整的 API:

函數描述
dlopen使對象文件可被程序訪問
dlsym獲取執行了 dlopen 函數的對象文件中的符號的地址
dlerror返回上一次出現錯誤的字符串
dlclose關閉目標文件

在介紹如何調用動態加載功能之前,先介紹一下C/C++編譯器在編譯目標文件時所進行的名字修飾(符號化)。

符號化

上文提到要想自定義JDWP-Thread,首先需要修改gJdwpOptions的值,該值是在debugger.cc中通過Dbg::ParseJdwpOptions方法來設置的,所以只要用新的配置重新調用一次ParseJdwpOptions即可。

如何找到Dbg::ParseJdwpOptions這個函數地址呢?為了保證每個函數、變量名都有唯一的標識,編譯器在將源代碼編譯成目標文件時會對變量名或函數名進行名字修飾。

先看一個例子,下面的C++程序中兩個f()的定義:

int f (void) { return 1; } int f (int) { return 0; } void g (void) { int i = f(), j = f(0); }

這些是不同的函數,除了函數名相同以外沒有任何關系。如果不做任何改變直接把它們當成C代碼,結果將導致一個錯誤:C語言不允許兩個函數同名。所以,C++編譯器將會把它們的類型信息編碼成符號名,結果類似下面的代碼:

int __f_v (void) { return 1; } int __f_i (int) { return 0; } void __g_v (void) { int i = __f_v(), j = __f_i(0); }

可以通過nm命令查看so文件中的符號信息。

nm -D libart.so | grep ParseJdwpOptions 001778d0 T _ZN3art3Dbg16ParseJdwpOptionsERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE

這樣就得到了ParseJdwpOptions函數在動態鏈接庫文件中符號化以后的函數名。

找到符號化了的函數名后,就可以通過調用動態鏈接庫中的函數重新啟動JDWP-Thread。部分代碼如下(以下代碼只針對Android-API-21和Android-API-22版本有效):

void *handler = dlopen("/system/lib/libart.so", RTLD_NOW);if(handler == NULL){LOGD(LOG_TAG,env->NewStringUTF(dlerror()));}//對于debuggable false的配置,重新設置為可調試void (*allowJdwp)(bool);allowJdwp = (void (*)(bool)) dlsym(handler, "_ZN3art3Dbg14SetJdwpAllowedEb");allowJdwp(true);void (*pfun)();//關閉之前啟動的jdwp-threadpfun = (void (*)()) dlsym(handler, "_ZN3art3Dbg8StopJdwpEv");pfun();//重新配置gJdwpOptionsbool (*parseJdwpOptions)(const std::string&);parseJdwpOptions = (bool (*)(const std::string&)) dlsym(handler,"_ZN3art3Dbg16ParseJdwpOptionsERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE");std::string options = "transport=dt_socket,address=8000,server=y,suspend=n";parseJdwpOptions(options);//重新startJdwppfun = (void (*)()) dlsym(handler, "_ZN3art3Dbg9StartJdwpEv");pfun();

以上代碼關閉了之前可能存在的JDWP-Thread,同時開啟一個本地的Socket通道來進行通信,這樣就能通過本地的Socket通道來進行JDWP消息的傳遞。

突破7.0動態鏈接的限制

通過上面代碼可知,實現自定義的JDWP通道主要是采用動態調用libart.so/libdvm.so中的函數實現。但從 Android 7.0 開始,系統將阻止應用動態鏈接非公開 NDK庫,詳情請參考《Android 7.0行為變更》,強制調用會產生如下Crash:

java.lang.UnsatisfiedLinkError: dlopen failed: library "/system/lib/libart.so" needed or dlopened by "/system/lib/libnativeloader.so" is not accessible for the namespace "classloader-namespace"

如何繞過這個限制來動態調用libart.so中的方法?既然直接調用dlopen會失敗,那是不是可以模擬dlopen和dlsym的實現來繞過這個限制?

dlopen和dlsym分別返回動態鏈接庫在內存中的句柄和某個符號的地址,所以只要能找到dlopen返回的句柄并通過句柄找到dlsym符號對應的地址,就相當于實現了這兩個函數的功能。libart.so會在程序啟動之后就被加載到內存中,可以在/proc/self/maps找到當前進程中libart.so在內存中映射的地址:

vbox86p:/ # cat /proc/1665/maps | grep libart.so e2d50000-e3473000 r-xp 00000000 08:06 1087 /system/lib/libart.so e3474000-e347c000 r--p 00723000 08:06 1087 /system/lib/libart.so e347c000-e347e000 rw-p 0072b000 08:06 1087 /system/lib/libart.so

這里libart.so被分成了三個連續子空間,從e2d50000開始。

如何才能在內存中找到想要打開的函數地址?我們先看下ELF文件結構:

要實現dlsym,首先要保證查找的符號在動態符號表中能找到,在ELF文件中,SHT_DYNSYM對應的Section定義了當前文件中的動態符號;SHT_STRTAB定義了動態庫中所有字符串;SHT_PROGBITS則定義了動態庫中定義的信息。如何找到這些Section:

  • 通過內存映射的方式把libart.so映射到內存中;
  • 按照ELF文件結構解析映射到內存中的libart.so;
  • 解析SHT_DYNSYM,并把當前section復制到內存中;
  • 解析SHT_STRTAB,并把當前section復制到內存中(后面需要根據SHT_STRTAB來找到特定的符號);
  • 解析SHT_PROGBITS,得到當前內存映射的偏移地址,這里要注意:不同進程中相同動態庫的同一個函數的偏移地址是一樣的。
  • 以上邏輯的部分代碼片段如下:

    fd = open(libpath, O_RDONLY);size = lseek(fd, 0, SEEK_END);if(size <= 0) fatal("lseek() failed for %s", libpath);elf = (Elf_Ehdr *) mmap(0, size, PROT_READ, MAP_SHARED, fd, 0);close(fd);fd = -1;if(elf == MAP_FAILED) fatal("mmap() failed for %s", libpath);ctx = (struct ctx *) calloc(1, sizeof(struct ctx));if(!ctx) fatal("no memory for %s", libpath);//通過/proc/self/proc 找到的libart.so的起始地址ctx->load_addr = (void *) load_addr;shoff = ((char *) elf) + elf->e_shoff;for(k = 0; k < elf->e_shnum; k++) {shoff = (char *)shoff + elf->e_shentsize;Elf_Shdr *sh = (Elf_Shdr *) shoff;log_dbg("%s: k=%d shdr=%p type=%x", __func__, k, sh, sh->sh_type);switch(sh->sh_type) {case SHT_DYNSYM:if(ctx->dynsym) fatal("%s: duplicate DYNSYM sections", libpath); /* .dynsym */ctx->dynsym = malloc(sh->sh_size);if(!ctx->dynsym) fatal("%s: no memory for .dynsym", libpath);memcpy(ctx->dynsym, ((char *) elf) + sh->sh_offset, sh->sh_size);//ctx->nsyms 動態符號表的個數ctx->nsyms = (sh->sh_size/sizeof(Elf_Sym)) ;break;case SHT_STRTAB:if(ctx->dynstr) break; /* .dynstr is guaranteed to be the first STRTAB */ctx->dynstr = malloc(sh->sh_size);if(!ctx->dynstr) fatal("%s: no memory for .dynstr", libpath);memcpy(ctx->dynstr, ((char *) elf) + sh->sh_offset, sh->sh_size);break;//當前段內容為program defined information:程序定義區case SHT_PROGBITS:if(!ctx->dynstr || !ctx->dynsym) break;//得到偏移地址ctx->bias = (off_t) sh->sh_addr - (off_t) sh->sh_offset;break;}}//關閉內存映射munmap(elf, size);

    接下來就可以根據要找的符號名在SHT_DYNSYM中對應的位置得到具體的函數指針,部分代碼如下:

    void *fake_dlsym(void *handle, const char *name) {int k;struct ctx *ctx = (struct ctx *) handle;Elf_Sym *sym = (Elf_Sym *) ctx->dynsym;char *strings = (char *) ctx->dynstr;for(k = 0; k < ctx->nsyms; k++, sym++)if(strcmp(strings + sym->st_name, name) == 0) {//動態庫的基地址 + 當前符號section地址 - 偏移地址return (char *)ctx->load_addr + sym->st_value - ctx->bias;}return 0; }

    通過以上模擬dlopen和dlsym的邏輯,我們成功繞過了系統將阻止應用動態鏈接非公開 NDK庫的限制。

    消息轉發

    完成上面邏輯以后就可以通過本地Socket在虛擬機和用戶進程之間傳遞JDWP消息。但是要實現遠程調試,還需要遠程下發虛擬機的調試指令并回傳執行結果。我們通過App原有Push通道加上線上消息轉發服務,實現了整個調試工具的消息轉發功能:

    Proguard對調試的影響

    正常發布到市場的項目都會通過Proguad進行混淆,不同力度的混淆配置會生成不同的字節碼文件。對調試功能影響比較大的配置有兩個:

    • LineNumberTable
    • LocalVariableTable

    如果Proguard中沒有對這兩個屬性進行Keep,那經過Proguard處理的方法字節碼中會缺失這兩個模塊,對調試的影響分別是無法在方法的某一行設置斷點和無法獲取當前本地變量的值(但能獲取到方法參數變量和類成員變量)。一般為了在應用發生崩潰時能獲取到調用棧中每個函數對應的行號,需要保留LineNumberTable,同時為了減少包體積會放棄LocalVariableTable。在沒有LocalVariableTable的情況下,可以通過調用Execute命令得到一些運行時結果間接得獲取到本地變量。

    JDI的實現

    整個消息交互流程跑通以后,接下來要做的就是根據JDI規范作進一步的封裝。為了方便快速調試,目前調試工具的前端實現主要參考了LLDB的調試流程,通過設置命令的方式進行調試,整體樣式如下圖所示:


    點擊圖片查看大圖

    本文從調查線上問題的常見手段入手,介紹了到店餐飲移動團隊在實現遠程調試過程中的嘗試和探索。通過遠程調試可以方便快捷地獲取用戶當前App運行時的狀態,助力開發者快速定位線上問題。

  • Java Debug Write Protocol.
  • Android虛擬機調試器原理與實現.
  • Linux 動態庫剖析.
  • Nougat_dlfunctions.
  • Dynamic Linking.
  • 武智,Android高級開發工程師,2013年7月校招加入美團,目前負責維護大眾點評App的美食頻道。

    瑩瑩,2015年校招加入美團,主要參與大眾點評美食頻道的日常開發工作,專注于通過工具自動化地提高開發效率和質量。

    周佳、盧晟、永鋒,2016年校招加入美團,主要參與大眾點評美食頻道的日常開發工作。

    到店餐飲技術部交易與信息技術中心,負責美團美食用戶端業務,服務于數以億計用戶,通過更好的榜單、真實的評價和完善的信息為用戶提供更好的決策支持,致力于提升用戶體驗。我們同時承載所有餐飲商戶端線上流量,為餐飲商戶提供多種營銷工具,提升餐飲商戶營銷效率,最終達到讓國人“Eat Better、Live Better”的美好愿景!我們的團隊包含且不限于Android、iOS、FE、Java、PHP等技術方向,已完備覆蓋前后端技術棧。只要你來,就能點亮全棧開發技能樹。誠摯歡迎投遞簡歷至wangying49#meituan.com。

    總結

    以上是生活随笔為你收集整理的Android远程调试的探索与实现的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    成人电影毛片 | 美女黄频视频大全 | 婷婷射五月 | 欧美一进一出抽搐大尺度视频 | 久草视频手机在线 | 色丁香色婷婷 | 国产18精品乱码免费看 | 在线观看黄色的网站 | 在线免费高清视频 | 亚洲影院一区 | 中文字幕在线看 | 九九久久成人 | 麻豆视频免费网站 | 91欧美日韩国产 | 99热精品国产一区二区在线观看 | 久久久久久久久久影视 | 中文字幕在线视频一区二区三区 | 808电影免费观看三年 | 亚洲综合在线观看视频 | 午夜骚影 | 狂野欧美激情性xxxx欧美 | 91久草视频 | 99中文字幕 | 色综合久久久久网 | 久久亚洲欧美日韩精品专区 | 亚洲狠狠婷婷综合久久久 | 欧美视频18 | 国产中文字幕网 | 人人天天夜夜 | 成人av手机在线 | 婷婷色网 | 亚洲综合色视频在线观看 | 亚洲精品网页 | 日韩电影一区二区三区在线观看 | 911精品视频 | 九色精品免费永久在线 | 最近中文国产在线视频 | 在线国产一区 | 日批视频在线播放 | 黄色网址中文字幕 | 在线免费视频你懂的 | 国产精品精品国产色婷婷 | 日韩欧美高清不卡 | 天天躁天天操 | 亚洲aⅴ久久精品 | 亚洲国产视频在线 | 超碰99在线 | 人人超在线公开视频 | 五月天久久久久 | 91av在线看 | 在线一二三区 | 91 在线视频 | 色综合天天色综合 | 亚洲作爱 | 日韩欧美一区二区在线播放 | 精品二区久久 | 日本中文字幕在线免费观看 | 精品国产一区二区三区四区在线观看 | 色偷偷av男人天堂 | 在线观看av大片 | 亚洲激情在线观看 | 国产一区二区视频在线 | 成人v| 在线导航av | 日韩a级黄色 | 成人av片在线观看 | 99re8这里有精品热视频免费 | 中文字幕亚洲精品在线观看 | 欧美日韩视频免费看 | 天天射天天色天天干 | 88av网站| 又紧又大又爽精品一区二区 | 美女视频是黄的免费观看 | 国产精品国产三级国产aⅴ入口 | 碰超在线 | 色狠狠婷婷 | 日韩国产精品久久 | 最近高清中文字幕在线国语5 | 亚洲美女视频在线观看 | 国产精品久久久久久久毛片 | 五月色婷 | 久久天天躁 | 99精品免费视频 | 日本韩国精品在线 | 成人黄色大片 | 在线电影日韩 | 日韩一级片网址 | 91高清在线看 | av成年人电影| 午夜精品久久久久久久99 | 成 人 a v天堂 | 国产激情电影综合在线看 | 9色在线视频 | 久久免费一级片 | av成人免费 | 天天天射 | 久久国产精品久久精品国产演员表 | 中文字幕在线观看91 | 天天操综 | 天天操天天射天天 | 中文字幕色网站 | 91精品国自产在线偷拍蜜桃 | 亚洲国产视频a | 国产精品乱看 | 色婷婷五| 久久免费看视频 | 91香蕉视频污在线 | 国内精自线一二区永久 | 精品99在线观看 | 久热久草在线 | 日韩久久久久久 | 97在线观看免费视频 | 91人人视频在线观看 | 99在线观看视频 | 天天操操操操操操 | 久久在现| 香蕉影视| 九九热在线观看 | 精品国模一区二区 | 亚洲精品乱码白浆高清久久久久久 | av资源免费在线观看 | 天天干天天干天天 | 久久久久久久久久毛片 | 久久网址 | 在线播放视频一区 | 欧美精品亚州精品 | 国产aa免费视频 | 中文字幕在线看视频 | 日韩影视大全 | 毛片网在线播放 | 在线中文字幕播放 | 五月婷婷在线观看视频 | 欧美性久久久久久 | 91污视频在线观看 | 国产亚洲小视频 | 天天草天天干天天射 | 麻豆精品传媒视频 | 久久国产精品99久久久久久丝袜 | 二区三区精品 | 99热免费在线 | 国产在线无| 热久久这里只有精品 | 久久精品国产v日韩v亚洲 | 久久久久久久99 | 婷婷 中文字幕 | 高清av免费一区中文字幕 | 欧美一级艳片视频免费观看 | 国产精品久久久久aaaa | 香蕉影院在线观看 | 狠狠干天天色 | 色999五月色 | 开心激情婷婷 | 国产亚洲久一区二区 | 国产另类av | 91福利在线导航 | 天天射夜夜爽 | 干av在线 | 久久久精品 一区二区三区 国产99视频在线观看 | 一区二区三区韩国免费中文网站 | 亚洲天堂精品视频在线观看 | 狠狠色噜噜狠狠狠狠2021天天 | 日本最大色倩网站www | 在线观看成年人 | 亚洲欧洲中文日韩久久av乱码 | 国内久久精品视频 | 波多野结衣亚洲一区二区 | 久章操| 婷婷在线免费 | 久久少妇免费视频 | 成人免费xxx在线观看 | 麻豆视频在线看 | 亚欧日韩成人h片 | 国产又粗又猛又黄又爽视频 | 亚洲精选在线观看 | av 一区 二区 久久 | 成人一区电影 | 日韩网站在线看片你懂的 | 日本中文字幕在线看 | 黄污视频网站 | 91九色国产在线 | 97精品国产91久久久久久久 | 久草久草视频 | 精品高清视频 | 久草视频免费观 | 亚洲欧美国内爽妇网 | 国产亚洲精品日韩在线tv黄 | 一区二区三区在线观看免费 | 国产精品日韩久久久久 | 有码视频在线观看 | 91综合视频在线观看 | 免费99视频 | 久久无码精品一区二区三区 | 黄色影院在线免费观看 | 国产成人三级在线 | 久久免费精品一区二区三区 | 九九久久久 | 色人久久 | 丝袜美女在线 | 五月天视频网 | 国产精品国产亚洲精品看不卡15 | 国产日韩欧美视频在线观看 | 亚洲片在线资源 | 亚洲一区精品人人爽人人躁 | 在线观看视频中文字幕 | 狠狠地日| 日韩精品一区二区三区电影 | 国产精品一区在线 | 国产免费嫩草影院 | 日韩成人不卡 | 麻豆av一区二区三区在线观看 | 免费韩国av| 免费看污网站 | 日韩欧美在线观看一区二区 | 999久久久久 | 9992tv成人免费看片 | 大胆欧美gogo免费视频一二区 | 色五月色开心色婷婷色丁香 | 国产69熟| 热久精品| 91麻豆高清视频 | 天天爱综合 | 精品久久久久国产免费第一页 | 国产一级在线观看视频 | 国产黄色免费电影 | 久久精品久久精品久久 | 久久97超碰 | 六月激情 | 日韩欧美一区二区在线观看 | 国产精品一区二区久久精品爱涩 | 欧美成人在线免费观看 | 国产三级精品三级在线观看 | 国产精品久99 | 欧美怡红院视频 | 国产在线观看你懂得 | 欧美成人亚洲成人 | 国产亚洲资源 | 最近中文国产在线视频 | 91视频在线看 | 日韩影片在线观看 | 欧美在线观看视频一区二区三区 | 丝袜足交在线 | 国产精品 日本 | 久草久热| 国产99久久久精品视频 | 国产精品区一区 | 国产偷国产偷亚洲清高 | 国产精品成人在线观看 | www久| 久久久精品欧美一区二区免费 | 四虎影视久久久 | 久久av观看 | 天天在线操 | 五月婷婷免费 | 亚洲视频资源在线 | 日韩激情免费视频 | 亚洲精品人人 | 亚洲天天| 91豆花在线| 日韩欧美国产精品 | 久久精品日产第一区二区三区乱码 | 国产精品露脸在线 | 亚洲精品国产精品乱码在线观看 | 午夜国产影院 | 麻花豆传媒mv在线观看网站 | 亚洲国产成人在线播放 | 日韩簧片在线观看 | 久草网视频在线观看 | 97色免费视频 | 久久福利电影 | 99精品热视频只有精品10 | 黄在线| 久久久精品国产免费观看同学 | 99久久精品国产观看 | 欧美疯狂性受xxxxx另类 | 天天干天天拍 | 波多野结衣电影一区二区三区 | 欧美精品久久久久久 | 狠狠狠色丁香婷婷综合久久88 | 美女网站黄在线观看 | www.天天成人国产电影 | 久久久精品二区 | 99久高清在线观看视频99精品热在线观看视频 | 欧美日韩免费网站 | 97视频资源 | 夜夜夜夜操 | 97超碰精品| 久久草在线视频国产 | 91黄站| 91视频在线播放视频 | 天天色影院 | 手机av永久免费 | 国产精品99久久久久久宅男 | 国产成人性色生活片 | 九九久久精品视频 | 午夜久久久久久久久 | 日日操操 | 天天综合色天天综合 | 制服丝袜亚洲 | 人人澡人 | 91爱爱免费观看 | 91亚洲欧美激情 | 国产精品免费观看久久 | 国产精品2020 | 99热这里有 | 麻豆久久久 | 天天激情 | 日韩精品一区二区三区视频播放 | 国产精品网站一区二区三区 | 久久成人资源 | 一本一道波多野毛片中文在线 | 欧美性生交大片免网 | 国产 一区二区三区 在线 | 最新av网址在线 | 亚洲欧洲精品视频 | 国产日产精品久久久久快鸭 | 狠狠干婷婷色 | 麻豆视屏 | 九九久久精品 | 天堂av在线 | 丁香婷婷色| 国内精品小视频 | 欧美性久久久 | 国内精品毛片 | av导航福利| 97av超碰| 在线视频 亚洲 | 久久精品女人毛片国产 | 亚洲黄色免费在线 | 久久一区二区三区日韩 | 九九九在线观看视频 | 日韩激情免费视频 | 99精彩视频在线观看免费 | 中文字幕久久精品亚洲乱码 | 男女激情片在线观看 | 午夜精品一二区 | 91成人免费看片 | 精品在线播放视频 | 国产成人在线观看免费 | 中文字幕在线看视频 | 亚洲精品一区二区三区在线观看 | 国内精品久久久久影院一蜜桃 | 精品国产91亚洲一区二区三区www | 91网站免费观看 | 99精品国产亚洲 | 91社区国产高清 | 国产999精品视频 | 在线播放日韩 | av在线电影免费观看 | 一区二区三区精品在线视频 | 日韩成人在线一区二区 | 久久精品久久99精品久久 | 天天干夜夜夜操天 | 国产手机在线观看视频 | 成人av免费看 | 亚洲综合爱 | 亚洲欧洲精品久久 | 久久久天堂 | 九九视频免费在线观看 | 日韩成人精品一区二区 | 91看片在线看片 | 色www免费视频 | www激情久久 | 久久夜夜操 | 五月婷婷黄色网 | 81精品国产乱码久久久久久 | 久久国产精品99精国产 | 日韩| 亚洲动漫在线观看 | 国产最新视频在线 | 人人搞人人搞 | 亚洲精品高清在线 | 精品国产日本 | 日韩av男人的天堂 | 免费精品久久久 | 欧美日韩精品综合 | 成人免费 在线播放 | 综合精品久久久 | 少妇视频在线播放 | av在线电影网站 | 九九视频网 | 天天视频亚洲 | 国产69精品久久久久9999apgf | 欧美精品久久久久久久久老牛影院 | 97在线视频免费 | japanesexxxhd奶水 91在线精品一区二区 | a天堂免费 | 麻豆国产精品永久免费视频 | 六月久久婷婷 | 黄色成品视频 | 肉色欧美久久久久久久免费看 | 国产精品一区二区三区在线播放 | 久久综合久久综合这里只有精品 | 国产香蕉在线 | 午夜的福利 | 99热只有精品在线观看 | 六月激情婷婷 | 美女福利视频 | av网站有哪些 | 婷婷电影网| 激情欧美日韩一区二区 | 日本爽妇网 | av一级片在线观看 | 国产免费小视频 | 日韩高清观看 | 日韩精品中文字幕在线不卡尤物 | 日韩美在线观看 | av成人免费在线观看 | 美女搞黄国产视频网站 | 国产亚洲精品综合一区91 | 国产精彩视频一区二区 | 在线91视频 | 国产精品自产拍在线观看蜜 | 在线观看va | 久久久久成人免费 | 黄色特级一级片 | aⅴ视频在线 | 婷婷中文字幕在线观看 | 在线中文字幕av观看 | 国产精品手机视频 | 99热在线精品观看 | 美女国内精品自产拍在线播放 | 美女黄网站视频免费 | 天天草天天 | 人人干人人艹 | 激情网五月天 | 蜜桃视频在线观看一区 | 激情欧美xxxx | 日韩va欧美va亚洲va久久 | 99久久精品视频免费 | 成人网页在线免费观看 | 国产va精品免费观看 | 国产在线精品福利 | 日韩精品一区二区三区中文字幕 | 久久色视频 | 国外调教视频网站 | 久草av在线播放 | 日日夜夜爱 | 最近中文字幕国语免费高清6 | 国产精品99在线播放 | 一级免费看 | 夜色成人网 | 久久成人高清视频 | 日韩在线精品一区 | 深爱五月激情五月 | 欧美午夜性 | 中文字幕资源网 国产 | 九九视频免费在线观看 | 99re8这里有精品热视频免费 | 最近中文字幕久久 | av在线h | 国产精品久久久久999 | 久久免费视频2 | 久久久国产精品人人片99精片欧美一 | 成人免费中文字幕 | 超碰97在线资源 | 午夜久久影视 | 国产色女| 精品视频123区在线观看 | 国产精品福利午夜在线观看 | 西西4444www大胆艺术 | 久久久久99精品成人片三人毛片 | 色网站免费在线看 | 黄色影院在线免费观看 | 欧美福利在线播放 | 麻豆传媒在线视频 | 人人射人人插 | 久久久久久久久爱 | 免费看污在线观看 | 久久免费国产电影 | 国产精品福利无圣光在线一区 | 国产一区在线视频播放 | 日韩精品中文字幕有码 | 色视频成人在线观看免 | 国产中文在线播放 | 在线观看免费视频你懂的 | av在线激情| 精品国产精品久久 | 视频国产在线 | 亚洲干视频在线观看 | 久久99国产综合精品免费 | 97在线精品 | 91亚洲精 | 啪啪动态视频 | 黄色三级在线观看 | 婷婷射五月 | 中文字幕中文中文字幕 | 五月综合激情 | 97视频在线免费播放 | 国偷自产中文字幕亚洲手机在线 | 精品国产一区二区久久 | 欧美一区二区三区四区夜夜大片 | 狠狠色丁香婷婷综合视频 | 国产婷婷vvvv激情久 | 一区二区三区在线观看免费 | 91av原创| 日本视频不卡 | 毛片网站在线看 | 日韩免费视频播放 | 成人午夜免费剧场 | 97色视频在线 | 日韩大片在线播放 | 国产精品欧美久久久久无广告 | 国产96在线视频 | 91片黄在线观 | 丁香五月缴情综合网 | 国产精品123 | 久草免费在线观看视频 | 久久国产乱 | 亚洲电影影音先锋 | 亚洲在线成人精品 | 国产色在线观看 | 久久久国产一区二区三区四区小说 | 国产 日韩 欧美 自拍 | 欧美一区二区三区免费看 | 看片黄网站| 精品亚洲视频在线观看 | 玖玖视频免费在线 | 亚洲黄色av一区 | 国产乱视频 | 黄色成人91| 国产亚洲久久 | 欧美日韩成人一区 | 亚洲精品在线一区二区三区 | 国产 日韩 欧美 中文 在线播放 | 操操操com | 国产午夜精品在线 | av一级二级| 777久久久| 精品亚洲一区二区 | 欧美在线a视频 | 国产精品观看在线亚洲人成网 | 日日爱av | 免费99精品国产自在在线 | 黄色毛片在线看 | 国产在线观看你懂的 | 亚洲人成人在线 | www.久久久.com | 国产精品日韩欧美一区二区 | 欧美最猛性xxxxx(亚洲精品) | 欧美大片在线看免费观看 | 亚洲精品免费在线观看 | 国产成人一区二区三区在线观看 | 黄色的网站免费看 | 久久激情视频 久久 | 一本一本久久a久久精品综合小说 | 国产精品99在线观看 | 精品国产一区二区久久 | 亚洲综合视频在线 | 中文在线免费看视频 | 91亚色免费视频 | 狠狠色丁香九九婷婷综合五月 | 婷婷丁香久久五月婷婷 | 国产一在线精品一区在线观看 | 美女视频黄网站 | 亚洲午夜精品一区二区三区电影院 | 天堂av免费观看 | 久久综合网色—综合色88 | 日本中出在线观看 | 一区二区不卡视频在线观看 | 精品国产乱码久久久久 | 成人h电影| 日韩a在线观看 | 黄色在线免费观看网址 | 成人在线免费视频观看 | 日韩在线电影一区 | 日韩美一区二区三区 | 婷婷社区五月天 | 奇米网在线观看 | 亚洲国产精品免费 | 国产精品视频你懂的 | 久久久久久久福利 | 波多野结衣精品视频 | 草久视频在线观看 | 欧美色精品天天在线观看视频 | 丁香六月av | 国产精品乱码高清在线看 | 天天操操操操操 | 一级黄色毛片 | 91欧美视频网站 | 久久精品电影院 | 国产精品久久久久久爽爽爽 | 欧美精品二 | 国产精品99久久久久久武松影视 | 欧美一区免费在线观看 | 成年人网站免费观看 | 在线之家免费在线观看电影 | 色欧美成人精品a∨在线观看 | 中文字幕在线免费看 | 免费福利片2019潦草影视午夜 | 操高跟美女 | 国产成人精品一区二区三区福利 | 高清av网站| 日韩免费在线视频 | 久艹视频免费观看 | 91在线视频观看 | 国产91精品高清一区二区三区 | 天天干.com | 亚洲天堂网在线观看视频 | 98超碰人人 | 亚洲精品视频大全 | 色婷婷视频网 | 麻豆免费观看视频 | 18pao国产成视频永久免费 | 日韩乱色精品一区二区 | 精品视频专区 | 国产无区一区二区三麻豆 | 久久天堂影院 | 日韩在线视频网 | 中文字幕av播放 | av在线在线 | 国产精品久久精品国产 | 国产亚洲精品久久19p | 五月天色婷婷丁香 | 亚洲欧美国产日韩在线观看 | 草免费视频 | 精品一区 精品二区 | 草久久久| 午夜神马福利 | 久久人人做 | 欧美人牲| 亚洲综合小说电影qvod | 国产视频精品久久 | 又黄又爽又色无遮挡免费 | 国产一级在线视频 | 狠狠88综合久久久久综合网 | 黄色一级在线视频 | 日韩免费播放 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 亚洲播播 | 五月综合激情网 | 成年美女黄网站色大片免费看 | 天天天色| 久久99精品久久久久蜜臀 | 天天干天天拍 | 日韩欧美在线国产 | www国产亚洲 | 日韩av黄| 天天操夜夜逼 | 美女视频黄免费网站 | 99久久婷婷国产一区二区三区 | 久久99九九99精品 | 久久综合干 | 久久久久影视 | 人人爽人人爱 | 欧美一级视频在线观看 | 九九热在线观看 | 91亚洲精品久久久蜜桃 | 97超碰在线久草超碰在线观看 | 国产精品黄色影片导航在线观看 | 日韩在线无 | 国产视频一级 | 国产精品一区二区免费看 | 亚洲va欧美va人人爽春色影视 | 久久er99热精品一区二区三区 | 在线观看视频99 | 久久精品99国产精品亚洲最刺激 | 日韩精品一区在线观看 | 久久资源在线 | 天天爱天天操天天爽 | 黄色小说在线免费观看 | 美女在线免费视频 | 久草精品视频 | 欧美一区在线观看视频 | 狠狠干网站| 精品一区av | 中文字幕美女免费在线 | 亚洲欧美视频一区二区三区 | 久草在线综合 | 亚洲成人av在线播放 | 亚洲精品美女免费 | 黄色国产区 | 日韩美在线 | 黄色福利| 在线黄色免费 | 最新黄色av网址 | av不卡中文| 伊人狠狠色丁香婷婷综合 | 中文字幕 国产视频 | 日韩网站一区二区 | 色婷婷福利视频 | 最近日本字幕mv免费观看在线 | 色人久久 | 最近2019中文免费高清视频观看www99 | 久插视频 | 国产黄色片久久 | 日韩av在线免费播放 | 久草青青在线观看 | 在线天堂视频 | 久久精品国产免费观看 | 午夜黄色 | 久久久www成人免费毛片麻豆 | 久久国产免费看 | 国产成人专区 | 亚洲欧美日韩精品久久久 | 欧洲不卡av | 中文字幕在线看视频国产中文版 | 天天做日日爱夜夜爽 | 在线小视频你懂的 | 曰本三级在线 | 噜噜色官网 | 久久综合之合合综合久久 | 中文字幕在线观看免费高清完整版 | 色天天| 成年美女黄网站色大片免费看 | 亚洲精品免费在线播放 | 国产精品乱码久久久 | 久久国产精品一区二区三区四区 | 网站免费黄色 | 国产精品视频免费 | 成人av动漫在线观看 | 久久久久二区 | 国产亚洲视频在线免费观看 | 亚洲国产资源 | 亚洲免费小视频 | 亚洲日本欧美在线 | 国产精品2018 | 国产无遮挡又黄又爽在线观看 | 日韩三级在线观看 | 一本一道久久a久久精品 | 中文字幕资源网 | 亚洲欧洲国产精品 | 一级免费黄色 | 超碰在97| 免费污片| 免费日韩视 | 国产在线观看你懂得 | 欧美男同网站 | 在线一二三区 | 久久免费视频一区 | www欧美日韩| 亚洲在线视频免费观看 | 91av原创 | 天天操操操操操操 | 91女子私密保健养生少妇 | 91精品国产91| 国产一级免费电影 | 九九久久视频 | 日韩中文字幕在线 | 一区二区三区四区五区在线视频 | 日韩中文字幕国产 | 久久av免费观看 | 香蕉视频国产在线 | 日韩欧美精品在线 | 国产99色 | 日韩成人精品 | 中文字幕在线观看播放 | 亚洲一区二区三区四区在线视频 | 国产精品美女久久久免费 | 免费a级大片 | 一级免费看视频 | 国产日女人 | a在线观看国产 | 天天干夜夜想 | 美女精品国产 | 97高清免费视频 | 日日爽夜夜操 | 日韩美女高潮 | 狠狠狠狠狠狠狠狠 | 国产成人久久av免费高清密臂 | 黄色一级大片免费看 | 亚洲国产播放 | 99久久99视频 | 国产高清在线视频 | 国偷自产中文字幕亚洲手机在线 | 一区二区三区日韩在线 | 在线观看色网站 | 97精品国产aⅴ | 国产在线更新 | 欧美日本三级 | 精品国产一区二区三区四 | 国产偷v国产偷∨精品视频 在线草 | 国产精品一区二 | 99se视频在线观看 | 色婷婷亚洲 | 麻豆视频免费看 | 精品一区久久 | 国产精品乱码一区二区视频 | 一级特黄aaa大片在线观看 | 精品国产自 | 啪啪午夜免费 | 久久天天躁狠狠躁亚洲综合公司 | 成人毛片一区二区三区 | 亚洲最新毛片 | av国产在线观看 | 久久久免费| 亚洲精品乱码久久久一二三 | 欧美在线free | 色五月情| 人人澡人人添人人爽一区二区 | 日韩精品久久久久久中文字幕8 | 美女网站视频免费黄 | 亚洲综合激情小说 | 色婷久久 | www.一区二区三区 | 国内精品免费 | 成人h动漫精品一区二 | 99色在线观看 | 96精品在线 | 丰满少妇高潮在线观看 | 免费麻豆网站 | 免费看黄的视频 | 国产精品一区二区免费视频 | 一区二区中文字幕在线播放 | 免费视频 三区 | 久草影视在线 | 国产精品永久在线观看 | 国产精品久久久久久久久蜜臀 | 福利一区在线视频 | 国产成人香蕉 | 99久久精品免费 | 91九色免费视频 | 日韩大片免费在线观看 | 午夜精品久久久久99热app | 四虎在线影视 | 国产精品中文字幕在线播放 | 最新国产在线观看 | 国产精品久久久久久久久久ktv | 99色在线播放 | 日日爱999| 激情五月亚洲 | 国产麻豆精品传媒av国产下载 | 天天草天天色 | 亚洲综合网站在线观看 | 国产玖玖精品视频 | 天天干天天操天天射 | 国产精品久久久久久久久久久久午夜 | 国产精品久久一区二区三区, | 日韩免费中文字幕 | 99热 精品在线 | 日韩久久精品一区二区三区下载 | 超碰97中文 | 在线欧美a| 国产成人一二片 | 欧美激情视频免费看 | 国内精品视频久久 | 中文字幕在线观看资源 | 1024手机看片国产 | 又黄又爽又无遮挡免费的网站 | 精品久久久久国产 | 2019中文字幕第一页 | 免费成人看片 | 色视频成人在线观看免 | 精品久久久久久一区二区里番 | 成人免费一区二区三区在线观看 | 韩国av一区| 中字幕视频在线永久在线观看免费 | 在线观看激情av | 成人免费在线观看av | 亚洲成人免费观看 | 在线成人免费电影 | 国产一级特黄毛片在线毛片 | 91精品在线免费视频 | 精品亚洲免a | 欧美一级欧美一级 | 色天天天| 国产一级视频在线免费观看 | 超碰免费久久 | 99久久影视 | 成人午夜毛片 | 亚洲第一中文字幕 | 99久久99久久精品免费 | 精品久久久久久一区二区里番 | 日韩欧美在线观看一区二区 | 91成人精品一区在线播放 | 狠狠操狠狠干2017 | 国产精成人品免费观看 | 欧美一级片在线观看视频 | 国产高清在线观看 | 久久在线精品 | 高清国产午夜精品久久久久久 | 丁香五香天综合情 | 精品久久久久久久久久久久 | 天天干天天玩天天操 | 一区二区三区在线免费 | 三级在线国产 | 四川bbb搡bbb爽爽视频 | 麻豆影视在线免费观看 | 国产精品一区二区在线观看免费 | 91av亚洲| 天堂在线免费视频 | 国产精品九九久久99视频 | 91av视频在线免费观看 | 最近最新mv字幕免费观看 | 久久精品久久久久电影 | 天天草天天摸 | 伊人狠狠色| 国产一区二区在线免费观看 | 五月婷婷综合激情 | 欧美精品黑人性xxxx | 久久久久国产精品一区二区 | av爱干| 久草精品在线观看 | 国产美女免费视频 | 亚洲综合日韩在线 | 麻豆视频一区二区 | 欧美激情综合色综合啪啪五月 | 国产高清视频在线免费观看 | www.狠狠 | 日韩av看片 | 免费在线视频一区二区 | 西西大胆免费视频 | 黄色成年片 | 成年人视频免费在线播放 | av丝袜在线 | 国产精品久久久久久久久久三级 | 国产永久免费高清在线观看视频 | 激情婷婷av| 国产精品九九九九九九 | 精品国产一区二区三区在线观看 | 中文字幕在线观看的网站 | 91精品欧美 | 91成人午夜| 久久线视频 | av日韩av| 亚洲精品久久久久www | 色狠狠狠 | 国产精品高潮呻吟久久久久 | 国产精品久久一区二区三区不卡 | 美国av大片 | 亚洲黑丝少妇 | 丁香av| 亚洲国产偷 | 97精产国品一二三产区在线 | 欧美韩日精品 | 亚洲另类交 | 成人黄色小说视频 | 在线成人性视频 | 国产精品中文字幕在线观看 | 91大神在线观看视频 | 在线免费中文字幕 | 日韩成人在线一区二区 | 国产又粗又猛又黄视频 | 精品免费视频. | 久久er99热精品一区二区三区 | 欧美精品一区二区蜜臀亚洲 | 91av视频在线播放 | 亚洲精品视频在 | 免费男女羞羞的视频网站中文字幕 | 成年人免费在线 | 久久精品激情 | 国产高清中文字幕 | 日日操日日插 | 狠狠色丁香婷婷综合最新地址 | 日本精品久久久久中文字幕5 | 久久99热精品 | 狠狠狠狠狠操 | 国产精品一区二区免费 | 久久久久久久久久久久久影院 | 免费a视频在线观看 | 99精品观看 | www.69xx| 99久久久国产精品免费观看 | 国产中文欧美日韩在线 | 日韩一级片观看 | 91成人在线视频观看 | 亚洲精品国偷拍自产在线观看 | 黄色一级大片在线免费看产 | 国产精品电影一区 | 国产成人精品亚洲日本在线观看 | 久草在线费播放视频 | 久久久天堂| 中文字幕在线视频一区二区三区 | 亚洲a在线观看 | 成人一级免费电影 | 久久a久久 | 亚洲爱爱视频 | 麻豆成人小视频 | 五月天婷亚洲天综合网精品偷 | 久热电影 | 国产精品福利在线播放 | 午夜精品久久久久久久99热影院 | 久久99亚洲网美利坚合众国 | bbw av| 日韩在线电影 | 91欧美精品 | 在线中文字幕电影 | 国产精品ssss在线亚洲 | 超碰国产在线 | 一区二区三区四区免费视频 | 亚洲视频在线观看免费 | 六月色丁香 | 99热在 | 免费在线观看一区二区三区 | 国产又粗又硬又爽的视频 | 91九色老| 色多多视频在线观看 | 一区二区 久久 | 狠狠色香婷婷久久亚洲精品 | 久久九九网站 | 在线观看中文字幕网站 | 亚洲理论在线观看电影 | 久久9视频 | 国内外成人免费在线视频 | 人人超碰人人 | 久久久电影 | 人人澡人人添人人爽一区二区 | 国产精品粉嫩 | 日韩欧美xxxx |