《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 其他 > 教學(xué):secure boot (一)FIT Image

教學(xué):secure boot (一)FIT Image

2022-09-05
來源:電子技術(shù)應(yīng)用專欄作家 嵌入式與Linux那些事
關(guān)鍵詞: secureboot FITImage

  前言

  secure boot 和FIT Image是前段時間接觸到的,其實早就該總結(jié)下了,奈何懶癌犯了,拖了好久才寫出來。

  之前也有人問我,工作后最大的感受是什么?我的回答是:“快速學(xué)習(xí)”。

  就嵌入式來講,大多數(shù)應(yīng)屆生在校期間可能都沒做過完整的項目,僅憑在校期間學(xué)習(xí)的內(nèi)容很難勝任公司的要求。

  就底層驅(qū)動來講,雖然我之前也學(xué)習(xí)過韋東山老師的上s3c2440的課程,但是到了公司才發(fā)現(xiàn),這些內(nèi)容其實都已經(jīng)過時了。

  但并不是說這些內(nèi)容都沒有必要去學(xué)習(xí)了。在學(xué)習(xí)的過程中,認為最重要的是培養(yǎng)我們的自學(xué)能力。

  很多初學(xué)者在剛開始學(xué)習(xí)時,可能就敗在了搭建環(huán)境上。搭建環(huán)境時遇到問題不知道怎么辦?

  我們?nèi)粘i_發(fā)中遇到的90%的問題,在網(wǎng)上都有人遇到過,也有相應(yīng)的解決辦法。學(xué)會利用bing,google,stackoverflow等搜索工具是一項很重要的技能。

  如果遇到了網(wǎng)上沒有的問題怎么辦?軟件問題要先搞清楚原理,再去看代碼邏輯。硬件問題看官方手冊。像Linux kernel,ARM等都提供了完善的手冊,大部分問題在手冊中都有相應(yīng)說明。

  好了,扯遠了。下面回歸正題。

  本文主要介紹了FIT Image起源,制作方法,its的語法結(jié)構(gòu),bootm 啟動FIT Image的方式。

  本文這篇文章是對后面介紹的secure boot做鋪墊。ARMv8 secure boot一種實現(xiàn)的方式就是利用了FIT Image的特性。

  zImage,uImage, Legacy uImage 和 FIT uImage

  內(nèi)核經(jīng)過編譯后,會生成一個elf的可執(zhí)行程序,叫vmlinux,這個就是原始的未經(jīng)任何處理加工的原版內(nèi)核elf文件。不過,最終燒寫在嵌入式設(shè)備上的并不是這個文件。而是經(jīng)過objcopy工具加工后的專門用于燒錄的鏡像格式Image。

  原則上Image就可以直接被燒錄到Flash上進行啟動執(zhí)行,但linux的內(nèi)核開發(fā)者覺得Image還是太大了,因此對Image進行了壓縮,并且在Image壓縮后的文件的前端附加了一部分解壓縮代碼,構(gòu)成了一個壓縮格式的鏡像文件就叫zImage。

  解壓的時候,通過zImage鏡像頭部的解壓縮代碼進行自解壓,然后執(zhí)行解壓出來的內(nèi)核鏡像。

  Uboot要正確啟動Linux內(nèi)核,就需要知道內(nèi)核的一些信息,比如鏡像的類型(kernel image,dtb,ramdisk image),鏡像在內(nèi)存的位置,鏡像的鏈接地址,鏡像文件是否有壓縮等等。

  Uboot為了拿到這些信息,發(fā)明了一種內(nèi)核格式叫uImage,也叫Legacy uImage。uImage是由zImage加工得到的,uboot中有一個工具mkimage,該工具會給zImage加一個64字節(jié)的header,將啟動內(nèi)核所需的信息存儲在header中。uboot啟動后,從header中讀取所需的信息,按照指示,進行相應(yīng)的動作即可。

  header格式可以參考:include/image.h。mkimage源碼在tools/mkimage

  FIT image的來源

  有了Legacy uImage后,為什么又搞出來一個FIT uImage呢?

  在Linus Torvalds 看來,內(nèi)核中arch/arm/mach-xxx充斥著大量的垃圾代碼。因為內(nèi)核并不關(guān)心板級細節(jié),比如板上的platform設(shè)備、resource、i2c_board_info、spi_board_info等等。大家有興趣可以看下s3c2410的板級目錄,代碼量在數(shù)萬行。

  因此,ARM社區(qū)引入了Device Tree,使用Device Tree后,許多硬件的細節(jié)可以直接透過它傳遞給Linux,而不再需要在kernel中進行大量的冗余編碼。

  為了更好的支持單個固件的通用性,Uboot也需要對這種uImage固件進行支持。FIT uImage中加入多個dtb文件 和ramdisk文件,當(dāng)然如果需要的話,同樣可以支持多個kernel文件。

  內(nèi)核中的FDT全程為flattened device tree,F(xiàn)IT全稱叫flattened image tree。FIT利用了Device Tree Source files(DTS)的語法,生成的Image文件也和dtb文件類似(稱作itb)。

  這樣的目的就是能夠使同一個uImage能夠在Uboot中選擇特定的kernel/dtb和ramdisk進行啟動了,達成一個uImage可以通用多個板型的目的。

  制作FIT Image

  制作FIT Image需要用到兩個工具,mkimage和的dtc。dtc要導(dǎo)入到環(huán)境變量$PATH中,mkimage會調(diào)用dtc。

  mkimage的輸入為 image source file,它定義了啟動過程中image的各種屬性,擴展名為.its。its只是描述了Image的屬性,實際的Image data 是在uImage中,具體路徑由its指定。

  微信圖片_20220905173802.png

  如下是kernel 的its文件,后面會介紹各項內(nèi)容的含義。

  /*

  * Simple U-Boot uImage source file containing a single kernel

  */

  /dts-v1/;

  / {

  description = "Simple image with single Linux kernel";

  #address-cells = <1>;

  images {

  kernel@1 {

  description = "Vanilla Linux kernel";

  data = /incbin/("./vmlinux.bin.gz"); # Image data 具體路徑

  type = "kernel";

  arch = "ppc";

  os = "linux";

  compression = "gzip";

  load = <00000000>;

  entry = <00000000>;

  hash@1 {

  algo = "crc32";

  };

  hash@2 {

  algo = "sha1";

  };

  };

  };

  configurations {

  default = "config@1";

  config@1 {

  description = "Boot Linux kernel";

  kernel = "kernel@1";

  };

  };

  };

  mkimage的輸出是一個后綴為.itb的二進制文件,包含了所有需要的數(shù)據(jù)(kernel,dtb,ramdisk)。itb文件制作好之后,就可以直接加載到嵌入式設(shè)備上,通過bootm命令啟動。

  總結(jié)下制作FIT Image的4個必要文件:

  mkimage,

  dtc

  its(image source file (*.its))

  image data file(s)。

  its語法結(jié)構(gòu)

  uImage Tree 的根節(jié)點結(jié)構(gòu)

  / o image-tree

  |- description = "image description"

  |- timestamp = <12399321>

  |- #address-cells = <1>

  |

  o images

  | |

  | o image@1 {...}

  | o image@2 {...}

  | ...

  |

  o configurations

  |- default = "conf@1"

  |

  o conf@1 {...}

  o conf@2 {...}

  ...

  description:描述uImage的文本。

  timestamp:修改Image鏡像的時間,由mkimage工具自動生成。在security boot中,timestamp不同也會被認為是不同的Image。

  images:子鏡像,如kernel Image,ramdisk Image。

  configurations:配置項節(jié)點,可以將不同類型的二進制文件,根據(jù)不同的場景,組合起來,形成一個個的配置項。u-boot在boot的時候,以配置項為單位加載、執(zhí)行,這樣就可以根據(jù)不同的場景,方便的選擇不同的配置。

  '/images' node

  該節(jié)點中描述了Image鏡像必要的信息.

  o image@1

  |- description = "component sub-image description"

  |- data = /incbin/("path/to/data/file.bin")

  |- type = "sub-image type name"

  |- arch = "ARCH name"

  |- os = "OS name"

  |- compression = "compression name"

  |- load = <00000000>

  |- entry = <00000000>

  |

  o hash@1 {...}

  o hash@2 {...}

  ...

  description:子鏡像的文本描述,可以隨便寫。

  type:子鏡像的類型,比如standalone,kernel,ramdisk,firmware等等。

  data:包含該節(jié)點二進制文件的路徑。

  compression:壓縮方式,比如none,gzip,bzip2。

  os:操作系統(tǒng)的名稱,如solaris,uboot,qnx等。

  arch:平臺架構(gòu),如arm,mips,i386等。

  entry:二進制文件入口地址,即鏈接地址。

  load:二進制文件的加載位置。

  hash@1:鏡像使用的校驗算法,如sha256,crc32等。

  Hash nodes

  o hash@1

  |- algo = "hash or checksum algorithm name"

  |- value = [hash or checksum value]

  algo:算法名稱,如crc32,md5,sha256等。

  value:算法校驗值,即algo計算后的數(shù)值。

  '/configurations' node

  o configurations

  |- default = "default configuration sub-node unit name"

  |

  o config@1 {...}

  o config@2 {...}

  ...

  default:默認的子節(jié)點的配置

  config@1: 該配置具體使用那些kernel Image,ramdisk Image等。

  Configuration nodes

  o config@1

  |- description = "configuration description"

  |- kernel = "kernel sub-node unit name"

  |- ramdisk = "ramdisk sub-node unit name"

  |- fdt = "fdt sub-node unit-name" [, "fdt overlay sub-node unit-name", ...]

  |- fpga = "fpga sub-node unit-name"

  |- loadables = "loadables sub-node unit-name"

  description:該配置的名稱。

  kernel:鏡像類型為kernel的單元的名稱。

  ramdisk:鏡像類型為ramdisk的單元的名稱。

  fdt:鏡像類型為fdt的單元的名稱。

  loadables:額外的可加載的二進制文件的列表,U-Boot將在給定的起始地址加載每個二進制文件。

  舉例

  如下是一個有多種kernels, ramdisks and FDT blobs鏡像多套配置的its文件。它包含了3種配置,每種配置使用了不同的kernel、ramdisk和fdt,默認配置項由“default”指定,當(dāng)然也可以在運行時指定。

  /*

  * U-Boot uImage source file with multiple kernels, ramdisks and FDT blobs

  */

  /dts-v1/;

  / {

  description = "Various kernels, ramdisks and FDT blobs";

  #address-cells = <1>;

  images {

  kernel@1 {

  description = "vanilla-2.6.23";

  data = /incbin/("./vmlinux.bin.gz");

  type = "kernel";

  arch = "ppc";

  os = "linux";

  compression = "gzip";

  load = <00000000>;

  entry = <00000000>;

  hash@1 {

  algo = "md5";

  };

  hash@2 {

  algo = "sha1";

  };

  };

  kernel@2 {

  description = "2.6.23-denx";

  data = /incbin/("./2.6.23-denx.bin.gz");

  type = "kernel";

  arch = "ppc";

  os = "linux";

  compression = "gzip";

  load = <00000000>;

  entry = <00000000>;

  hash@1 {

  algo = "sha1";

  };

  };

  kernel@3 {

  description = "2.4.25-denx";

  data = /incbin/("./2.4.25-denx.bin.gz");

  type = "kernel";

  arch = "ppc";

  os = "linux";

  compression = "gzip";

  load = <00000000>;

  entry = <00000000>;

  hash@1 {

  algo = "md5";

  };

  };

  ramdisk@1 {

  description = "eldk-4.2-ramdisk";

  data = /incbin/("./eldk-4.2-ramdisk");

  type = "ramdisk";

  arch = "ppc";

  os = "linux";

  compression = "gzip";

  load = <00000000>;

  entry = <00000000>;

  hash@1 {

  algo = "sha1";

  };

  };

  ramdisk@2 {

  description = "eldk-3.1-ramdisk";

  data = /incbin/("./eldk-3.1-ramdisk");

  type = "ramdisk";

  arch = "ppc";

  os = "linux";

  compression = "gzip";

  load = <00000000>;

  entry = <00000000>;

  hash@1 {

  algo = "crc32";

  };

  };

  fdt@1 {

  description = "tqm5200-fdt";

  data = /incbin/("./tqm5200.dtb");

  type = "flat_dt";

  arch = "ppc";

  compression = "none";

  hash@1 {

  algo = "crc32";

  };

  };

  fdt@2 {

  description = "tqm5200s-fdt";

  data = /incbin/("./tqm5200s.dtb");

  type = "flat_dt";

  arch = "ppc";

  compression = "none";

  load = <00700000>;

  hash@1 {

  algo = "sha1";

  };

  };

  };

  configurations {

  default = "config@1";

  config@1 {

  description = "tqm5200 vanilla-2.6.23 configuration";

  kernel = "kernel@1";

  ramdisk = "ramdisk@1";

  fdt = "fdt@1";

  };

  config@2 {

  description = "tqm5200s denx-2.6.23 configuration";

  kernel = "kernel@2";

  ramdisk = "ramdisk@1";

  fdt = "fdt@2";

  };

  config@3 {

  description = "tqm5200s denx-2.4.25 configuration";

  kernel = "kernel@3";

  ramdisk = "ramdisk@2";

  };

  };

  };

  FIT Image的編譯和啟動

  在服務(wù)器上,可以使用mkimage工具制作 FIT Image。

  如下是kernel_fdt.its,下面將使用該文件制作itb。

  /*

  * Simple U-Boot uImage source file containing a single kernel and FDT blob

  */

  /dts-v1/;

  / {

  description = "Simple image with single Linux kernel and FDT blob";

  #address-cells = <1>;

  images {

  kernel@1 {

  description = "Vanilla Linux kernel";

  data = /incbin/("./vmlinux.bin.gz");

  type = "kernel";

  arch = "ppc";

  os = "linux";

  compression = "gzip";

  load = <00000000>;

  entry = <00000000>;

  hash@1 {

  algo = "crc32";

  };

  hash@2 {

  algo = "sha1";

  };

  };

  fdt@1 {

  description = "Flattened Device Tree blob";

  data = /incbin/("./target.dtb");

  type = "flat_dt";

  arch = "ppc";

  compression = "none";

  hash@1 {

  algo = "crc32";

  };

  hash@2 {

  algo = "sha1";

  };

  };

  };

  configurations {

  default = "conf@1";

  conf@1 {

  description = "Boot Linux kernel with FDT blob";

  kernel = "kernel@1";

  fdt = "fdt@1";

  };

  };

  };

  $ mkimage -f kernel_fdt.its kernel_fdt.itb

  DTC: dts->dtb  on file "kernel_fdt.its"

  $

  $ mkimage -l kernel_fdt.itb

  FIT description: Simple image with single Linux kernel and FDT blob

  Created:  Tue Mar 11 16:29:22 2008

  Image 0 (kernel@1)

  Description: Vanilla Linux kernel

  Type:  Kernel Image

  Compression: gzip compressed

  Data Size: 1092037 Bytes = 1066.44 kB = 1.04 MB

  Architecture: PowerPC

  OS:  Linux

  Load Address: 0x00000000

  Entry Point: 0x00000000

  Hash algo: crc32

  Hash value: 2c0cc807

  Hash algo: sha1

  Hash value: 264b59935470e42c418744f83935d44cdf59a3bb

  Image 1 (fdt@1)

  Description: Flattened Device Tree blob

  Type:  Flat Device Tree

  Compression: uncompressed

  Data Size: 16384 Bytes = 16.00 kB = 0.02 MB

  Architecture: PowerPC

  Hash algo: crc32

  Hash value: 0d655d71

  Hash algo: sha1

  Hash value: 25ab4e15cd4b8a5144610394560d9c318ce52def

  Default Configuration: 'conf@1'

  Configuration 0 (conf@1)

  Description: Boot Linux kernel with FDT blob

  Kernel: kernel@1

  FDT:  fdt@1

  在當(dāng)前目錄下就可以找到kernel_fdt.itb,itb文件就可以加載到設(shè)備上啟動。

  > tftp 900000 /path/to/tftp/location/kernel_fdt.itb

  Using FEC device

  TFTP from server 192.168.1.1; our IP address is 192.168.160.5

  Filename '/path/to/tftp/location/kernel_fdt.itb'.

  Load address: 0x900000

  Loading: #################################################################

  ###########

  done

  Bytes transferred = 1109776 (10ef10 hex)

  => iminfo

  ## Checking Image at 00900000 ...

  FIT image found

  FIT description: Simple image with single Linux kernel and FDT blob

  Created:     2008-03-11 15:29:22 UTC

  Image 0 (kernel@1)

  Description:  Vanilla Linux kernel

  Type:    Kernel Image

  Compression:  gzip compressed

  Data Start:   0x009000ec

  Data Size:    1092037 Bytes =  1 MB

  Architecture: PowerPC

  OS:    Linux

  Load Address: 0x00000000

  Entry Point:  0x00000000

  Hash algo:    crc32

  Hash value:   2c0cc807

  Hash algo:    sha1

  Hash value:   264b59935470e42c418744f83935d44cdf59a3bb

  Image 1 (fdt@1)

  Description:  Flattened Device Tree blob

  Type:    Flat Device Tree

  Compression:  uncompressed

  Data Start:   0x00a0abdc

  Data Size:    16384 Bytes = 16 kB

  Architecture: PowerPC

  Hash algo:    crc32

  Hash value:   0d655d71

  Hash algo:    sha1

  Hash value:   25ab4e15cd4b8a5144610394560d9c318ce52def

  Default Configuration: 'conf@1'

  Configuration 0 (conf@1)

  Description:  Boot Linux kernel with FDT blob

  Kernel:    kernel@1

  FDT:    fdt@1

  => bootm

  ## Booting kernel from FIT Image at 00900000 ...

  Using 'conf@1' configuration

  Trying 'kernel@1' kernel subimage

  Description:  Vanilla Linux kernel

  Type:    Kernel Image

  Compression:  gzip compressed

  Data Start:   0x009000ec

  Data Size:    1092037 Bytes =  1 MB

  Architecture: PowerPC

  OS:    Linux

  Load Address: 0x00000000

  Entry Point:  0x00000000

  Hash algo:    crc32

  Hash value:   2c0cc807

  Hash algo:    sha1

  Hash value:   264b59935470e42c418744f83935d44cdf59a3bb

  Verifying Hash Integrity ... crc32+ sha1+ OK

  Uncompressing Kernel Image ... OK

  ## Flattened Device Tree from FIT Image at 00900000

  Using 'conf@1' configuration

  Trying 'fdt@1' FDT blob subimage

  Description:  Flattened Device Tree blob

  Type:    Flat Device Tree

  Compression:  uncompressed

  Data Start:   0x00a0abdc

  Data Size:    16384 Bytes = 16 kB

  Architecture: PowerPC

  Hash algo:    crc32

  Hash value:   0d655d71

  Hash algo:    sha1

  Hash value:   25ab4e15cd4b8a5144610394560d9c318ce52def

  Verifying Hash Integrity ... crc32+ sha1+ OK

  Booting using the fdt blob at 0xa0abdc

  Loading Device Tree to 007fc000, end 007fffff ... OK

  [    0.000000] Using lite5200 machine description

  [    0.000000] Linux version 2.6.24-rc6-gaebecdfc (m8@hekate) (gcc version 4.0.0 (DENX ELDK 4.1 4.0.0)) #1 Sat Jan 12 15:38:48 CET 2008

  bootm啟動不同的配置

  對于FIT Image,bootm有多種啟動方式。

  1. bootm <addr1>

  2. bootm [<addr1>]:<subimg1>

  3. bootm [<addr1>]#<conf>[#<extra-conf[#...]]

  4. bootm [<addr1>]:<subimg1> [<addr2>]:<subimg2>

  5. bootm [<addr1>]:<subimg1> [<addr2>]:<subimg2> [<addr3>]:<subimg3>

  6. bootm [<addr1>]:<subimg1> [<addr2>]:<subimg2> <addr3>

  7. bootm [<addr1>]:<subimg1> -     [<addr3>]:<subimg3>

  8. bootm [<addr1>]:<subimg1> -     <addr3>

  對于有多種鏡像,多套配置的itb,都是以configurations 中default 指定的配置啟動。

  bootm 200000

  也可以手動指定使用那套配置

  bootm 200000#cfg@1

  也可以手動搭配不同的鏡像節(jié)點啟動

  bootm 200000:kernel@1 800000:ramdisk@2

  bootm 200000:kernel@1 800000:ramdisk@1 800000:fdt@1

  bootm 200000:kernel@2 200000:ramdisk@2 600000

  bootm 200000:kernel@2 - 200000:fdt@1

  如果bootm的時候不指定地址,則會使用CONFIG_SYS_LOAD_ADDR配置的地址。

  總結(jié)

  本文對FIT Image作了簡單的介紹,更詳細的內(nèi)容可以參考官方文檔。后面有時間會動手制作一個FIT Image在板子上跑下。

  FIT Image可以兼容于多種板子,而無需重新進行編譯燒寫。對于有多個kernel節(jié)點或者fdt節(jié)點等等,兼容性更強。同時,可以有多種configurations,來對kernel、fdt、ramdisk來進行組合。


 更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<

微信圖片_20210517164139.jpg

微信圖片_20220708145705.jpg

電子技術(shù)應(yīng)用專欄作家  嵌入式與Linux那些事

原文鏈接:https://mp.weixin.qq.com/s/MtfGhhP_6PSa_mTeLn_XFQ

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 香蕉a视频 | 精品久久久久久亚洲综合网 | 亚洲天堂一区在线观看 | 99er久久| 欧美精品黑人粗大 | 少妇下蹲露大唇无遮挡图片 | 草草福利影院 | 国产欧美在线一区二区三区 | 黑人操亚洲美女 | 毛片在线视频 | 天天色综合合 | 不卡中文字幕在线 | 欧洲色av| 草逼导航 | jzjzz成人免费视频 | 国产黄色片一级 | 黄色大尺度视频 | 午夜男女很黄的视频 | 亚洲欧美日韩中文无线码 | h文日记高h污肉1v1 | 日本无遮真人祼交视频 | 国产成人av综合色 | 欧美视频在线观看一区 | 日本欧美一区二区免费视频 | 精精国产xxxx视频在线播放 | 少妇的丰满3中文字幕 | 免费网站看av片 | 天天躁日日躁狠狠躁av麻豆 | 91麻豆精产国品一二区灌醉 | 国产日产欧产美韩系列麻豆 | 国产妞干网 | 国产在线精品一区二区高清不卡 | 国产国语性生话播放 | 国产一级片免费观看 | 人妖粗暴刺激videos呻吟 | 亚洲呦女专区 | 国产亚洲精久久久久久无码 | 国产又黄又猛又粗又爽视频 | 国内少妇偷人精品视频 | 久久综合色鬼综合色 | 国产精品午夜影院 | 国产有码在线 | 成人免费一级伦理片在线播放 | 久久久久久免费精品 | 尹人久久 | 91精品国产亚洲 | 成人性色视频 | 自拍视频一区二区 | 国产精品乱码久久久 | 男女啪啪永久免费观看网站 | 中文字幕亚洲欧美 | 少妇一级淫免费放 | 热99re久久免费视精品频软件 | 九色在线观看 | 在线亚洲人成电影网站色www | 狠狠综合久久久久综合网 | 欧美五月 | 精品人人| 欧美国产一区二区三区激情无套 | 天天撸日日夜夜 | www.在线观看麻豆 | 久久久久成人精品无码中文字幕 | 香蕉久久av一区二区三区 | 欧美日韩制服在线 | 国产精品爱久久久久久久电影蜜臀 | 中文在线视频观看 | 久久99深爱久久99精品 | 成人在线污 | 日韩精品一区二区av在线 | 老妇肥熟凸凹丰满刺激小说 | 国产妇女视频 | 国产青青操 | 韩国av一区 | 一本加勒比北条麻妃 | 中文文字幕文字幕高清 | 欧美jizzhd精品欧美丰满 | 91精品婷婷国产综合久久竹菊 | 少妇1~3伦理 | 亚洲乱码一区av春药高潮 | 亚洲 国产 另类 精品 专区 | 欧美在线观看一区二区 | 国产精品网站在线 | 一进一出一爽又粗又大 | 国产a三级 | 国产精品久久久久久久久毛片 | 成人免费视频国产免费 | 欧美日韩一级黄色片 | 意大利少妇愉情理伦片 | 久久免费公开视频 | 国偷自产视频一区二区久 | 久久久久久久女女女又又 | 亚洲第一页综合 | 777色婷婷视频二三区 | 中文字字幕在线中文乱 | 亚洲成人免费在线观看 | 国产午夜视频在线观看 | 欧美国产乱视频 | 日韩人妻ol丝袜av一二区 | 女人被爽到呻吟gif动态图视看 | 免费特级毛片 | 国产乱码日产乱码精品精 | 最新中文字幕免费视频 | 鸥美毛片| 91九色丨porny丨丝袜 | 欧美黄色大片网站 | 激情天堂网 | 国产精品无套粉嫩白浆在线 | 久久www人成免费产片 | 国产一级在线 | 亚洲精品亚洲人成人网 | 99久久一区 | 免费播放一区二区三区 | 骚虎视频在线观看 | 全程穿着高跟鞋做爰av | www亚洲色图com | 少妇影院7788 | 在线播放91 | 91看片www | 国产精品对白 | 狠狠色丁香婷婷 | 国产r级在线 | 中文字幕大香视频蕉免费 | 婷婷伊人久久大香线蕉av | 无码高潮爽到爆的喷水视频app | 免费爱爱网站 | 日本欧美一区二区三区乱码 | 青青青青操 | 激情五月深爱五月 | 激情射精爽到偷偷c视频无码 | 夜色一区 | 日本19禁啪啪吃奶大尺度 | 亚洲午夜1000理论片aa | 欧美做受又硬又粗又大视频 | 小12萝8禁在线喷水观看 | 又粗又硬大战丰满少妇 | 91丝袜美女 | 欧美日韩不卡合集视频 | 女教师高潮黄又色视频 | √资源天堂中文在线 | 快播久久 | 午夜影院在线 | 亚洲欧美日韩在线 | 成年人毛片视频 | 2022天天躁狠狠燥 | 小拗女一区二区三区 | 欧美视频一区在线观看 | 中文字幕三区 | 亚洲精品中文字幕一区二区三区 | 噼里啪啦动漫高清在线观看 | 成人欧美一区二区三区黑人一 | 国产一区二区三区成人欧美日韩在线观看 | 久久精品国产av一区二区三区 | 综合色导航 | 久久久久久三级 | 欧美精品亚洲 | 久久黄色| 欧美不卡 | 强迫凌虐淫辱の牝奴在线观看 | 91精品国产日韩91久久久久久360 | 亚洲99久久无色码中文字幕 | 黄色小视频链接 | 亚洲色图欧美在线 | av中文字幕潮喷人妻系列 | 精品亚洲国产成人av | 天堂视频免费 | 亚洲国产精品一区二区久久恐怖片 | 内射后入在线观看一区 | 国产又粗又硬又大爽黄老大爷视 | 国产馆在线视频 | 成人理伦片免费 | 国产放荡对白视频一区二区 | 国产一级黄色毛片 | 国产黄色片在线免费观看 | 97视频免费 | 伊人精品无码av一区二区三区 | 精品欧美小视频在线观看 | 久久久无码精品一区二区三区蜜桃 | 91丨九色丨国产丨porny | 日日夜夜艹 | 97在线视频观看 | 91久久人人夜色一区二区 | 中文字幕国产在线 | 日韩网站在线观看 | 97精产国品一二三产区区别视频 | 亚婷婷洲av久久蜜臀小说 | 成年无码av片完整版 | 日韩免费淫片 | a级免费毛片 | 一级做a爰片久久毛片16 | 日本脱内衣全部视频 | 一本加勒比hezyo综合 | 精品一区久久久 | 我和岳疯狂性做爰全过程视频 | 久久精品国产av一区二区三区 | 国产精品 欧美日韩 | 欧美人与禽zozzo性之恋的特点 | 少妇无码av无码专区在线观看 | 国产精品丝袜黑色高跟鞋v18 | 18禁毛片无遮挡嫩草视频 | 按摩69xxx | 亚洲精品一区二区三区蜜桃 | 最新av不卡| 无码专区无码专区视频网址 | 小明看欧美日韩免费视频 | 亚洲国产精品无码久久久久高潮 | 久久摸摸碰碰97网站 | 五月丁香啪啪 | 欧美日韩99| 最新日韩av| 污网在线看| 国产精品午夜无码体验区 | 手机成人免费视频 | 永久免费观看美女裸体的网站 | 无套内谢的新婚少妇国语播放 | 日本一区二区三区视频在线观看 | 超清 忍不住的亲子伦中文字幕 | 美女尿尿网站 | 正在播放adn156松下纱荣子 | 免费人成又黄又爽又色 | 欧美在线看片 | 99色99| 日本理伦片973影视 日本理论片在线 | 国产日韩一区 | 欧美性videos高清精品 | 中文字幕人妻第一区 | 黑人性猛爱xxxxx免费 | 国产交换配乱淫视频a免费 国产精成人品免费观看 | 国产一区二区三区精品视频 | 午夜国产精品国产自线拍免费人妖 | 三级男人添奶爽爽爽视频 | 亚洲 中文 欧美 日韩 在线 | 亚洲欧美另类图片 | 国产嫖妓一区二区三区无码 | 精品一区二区三区国产 | 成年女人18级毛片毛片免费 | 国产91打白嫩光屁屁网站 | 国产肉丝袜在线观看 | 国产爽爽久久影院hd | 国产女主播视频 | 国语对白自产 | 婷婷夜夜躁天天躁人人躁 | 激情影院内射美女 | 国产精品国产三级国产aⅴ中文 | 久久合 | 欧美成人性视频在线播放 | 日韩v在线| 国产精品毛片一区二区三区 | 精品少妇久久久久久888优播 | 国产精品国产三级国产aⅴ原创 | 国产亚洲精品久久久玫瑰 | 亚洲综合av一区二区 | 天天做天天爱天天做 | 国产成人免费看一级大黄 | 亚洲免费人成 | 日本一级二级三级aⅴ网站 日本一级二级三级久久久 日本一级二级视频 | 国产成人欧美综合在线影院 | 国产综合精品一区二区三区 | 精品国产aⅴ麻豆 | 欧美 亚洲 另类 制服 自拍 | 看全色黄大色大片60岁 | 亚洲成av人在线视 | 超碰人人草人人干 | 精品久久久久久久久久久久久 | 日本特黄特黄刺激大片 | 玖玖玖在线观看 | 欧美激情 国产精品 | 久久6精品 | 国产婷婷色综合av蜜臀av | 日本在线一级片 | 日少妇av | 特大黑人巨交性xxxx | 大陆熟妇丰满多毛xxxⅹ | 久久久精品波多野结衣 | 国产女主播福利 | 欧美亚洲色综久久精品国产 | 久久免费精品 | 日本啊v在线 | 少妇二级淫片免费放 | 欧美熟妇另类久久久久久不卡 | 不卡的av在线免费观看 | 亚洲一区二区三区在线播放 | 内射毛片内射国产夫妻 | 免费黄色一级视频 | 超碰男人的天堂 | 九一精品视频 | 亚洲成人一区二区 | 天天综合久久 | 欧美日韩国产在线观看 | 爆乳2把你榨干哦ova在线观看 | 96精品| 91精品国产爱久久丝袜脚 | 色频在线 | 免费激情网站 | 无码人妻aⅴ一区二区三区69岛 | 冲田杏梨av一区二区三区 | 大伊人久久 | 国产精品无码av在线播放 | 国产精品久久久久久无人区 | 国产黄色片免费看 | 青青青青操 | av久久悠悠天堂影音网址 | 亚洲欧洲国产精品 | 国产乱人伦偷精品视频aaa | 亚洲狠狠爱一区二区三区 | 午夜激情视频在线 | 久草在线资源网 | 国内av在线 | 亚洲男人的天堂av手机在线观看 | 性开放xxxhd视频 | 日日躁狠狠躁夜夜躁av中文字幕 | 国产日韩精品在线 | 欧美精品中文字幕亚洲专区 | 国产成人精品三级麻豆 | 夫の友人 风间ゆみ 在线 | 放荡的少妇2欧美版 | 国产欧美一级片 | 黄a无码片内射无码视频 | 久久人人妻人人爽人人爽 | 久久第一页 | 麻豆一区二区99久久久久 | 日本在线成人 | 一性一交一口添一摸视频 | 狠狠操91 | 色妞视频男女视频 | 国模无码大尺度一区二区三区 | 人妻系列av无码专区 | 国产av无码国产av毛片 | 成人精品免费视频 | 疯狂做受xxxx高潮欧美日本 | 日本中文字幕免费观看 | 亚洲香蕉成人av网站在线观看 | 亚洲精品岛国片在线观看 | 欧美多毛肥胖老妇做爰 | 欧美精品一区二区视频在线观看 | 亚洲欧美综合一区二区三区 | 日日日操操操 | 国产精品国产三级国产普通话蜜臀 | 亚洲精品色在线网站 | 性xxxx尼泊尔娇小视频 | 国产清纯白嫩初黑人高生在线观看 | 欧美日韩国产精品激情在线播放 | 亚洲欧美日韩久久精品 | 老太婆性杂交视频 | 国产精品久久毛片 | 亚洲色成人网站www永久男男 | 99热热热| 日本一区二区三区中文字幕 | 在线视频一区二区 | 一本一道久久a久久 | 无码人妻一区二区三区在线 | 国产实拍会所女技师在线观看 | 国产日产精品久久久久快鸭 | 国产激情无码一区二区 | 日日噜噜噜夜夜爽爽狠狠小说 | 一本一道久久综合狠狠老精东影业 | 欧美一区二区三区啪啪 | 国产新婚疯狂做爰视频 | 日本大尺度做爰呻吟 | 亚洲天堂2014 | 黄a在线观看 | 亚洲在av极品无码天堂手机版 | 两个奶头被吃高潮视频 | 爱情岛论坛自拍亚洲品质极速福利 | 日本一区二区网站 | 亚洲高潮毛片无遮挡免费 | 丝袜美腿一区二区三区动态图 | 亚洲精品乱码久久久久久日本蜜臀 | 久久久久久久久久久网站 | 国产精品精品久久久久久甜蜜软件 | 天天爽夜夜爽夜夜爽精品视频 | 性久久久久久久 | 天天爽夜夜爽人人爽一区二区 | 五月婷香蕉久色在线看 | 就爱啪啪网站 | 午夜网站视频 | 日本裸体精油4按摩做爰 | 欧美一级淫片丝袜脚交 | 亚洲一区在线观看视频 | 99riav欧美丰满少妇视频 | www.久久av| 国产精品久久久久久久久晋中 | 在线永久免费观看黄网站视频 | 久久久久国产精品免费免费搜索 | 欧美性xxxxxx | 综合久久一区 | 少妇天堂网| 亚洲精品无码久久久影院相关影片 | 国产成人精品a视频 | 婷婷tv | 四虎影视国产精品 | www欧美在线| 午夜av免费看 | 国产精品美女久久久久久 | 成人一级片在线观看 | 欧美成人秋霞久久aa片 | 成人免费毛片网站 | 91快射| 国产一区二区三区四区五区入口 | 最近中文字幕在线视频 | 自拍偷拍五月天 | 国产视频你懂的 | 毛片无码免费无码播放 | 一区二区三区av夏目彩春 | 成人午夜一区 | 久久久久久伊人 | 国产做受69| 特级特黄刘亦菲aaa级 | 插插插综合视频 | 亚洲影院一区二区三区 | 国产成人无码视频一区二区三区 | 影音先锋中文字幕一区 | 亚洲精品久久久久一区二区三区 | 国产成人精品亚洲午夜麻豆 | 国精产品一区二区 | 国偷自产av一区二区三区 | 亚洲色成人中文字幕网站 | 99精品网 | 午夜视频一区二区 | 亚洲乱码国产乱码 | 人妖性生活视频 | 老熟妇仑乱一区二区视頻 | 国产69精品久久久久久人妻精品 | 狠狠操亚洲 | 国产精品久久久久久一二三四五 | 国产 国语对白 露脸 | 亚洲精品国产精品国自产 | 老女人av在线 | 亚洲va中文字幕无码久久不卡 | 久久99国内精品自在现线 | 国产欧美一区二区精品性色超碰 | 丁香婷婷六月天 | 欧美日韩一区二区在线播放 | 国产精品国产三级国产专区53 | 成人在线不卡 | 日韩一级黄色毛片 | 麻豆影视大全 | 亚洲人成网亚洲欧洲无码 | 成人乱淫av日日摸夜夜爽节目 | 欧美在线免费视频 | 国产成人免费一区二区三区 | 色哺乳xxxxxhd| 精品国产一区二区三区免费 | 中文字幕人妻熟女人妻洋洋 | 国产精品69久久久久水密桃 | 永久免费看成人av的动态图 | 在线播放不卡av | 国产黄色一区二区 | 永久av| 成人欧美一区二区三区黑人冫 | 久久国产免费观看 | 成人3d动漫一区二区三区 | 香蕉黄色片 | 国产精品无码免费专区午夜 | 国产熟女精品视频大全 | 日韩欧美第一页 | 伊人色综合久久天天网 | 2018av天堂在线视频精品观看 | 国产精品高潮呻吟视频 | 欧洲无线码一二三四区 | 成年女人免费v片 | 亚洲成av人片在www色猫咪 | 91爱视频 | 国产成人av一区二区三区在线观看 | 人妻熟女一二三区夜夜爱 | 国产精品久久天天躁 | 国产男女视频在线观看 | 婷婷综合精品 | 好吊爽在线播放视频 | 少妇人妻综合久久中文字幕 | 亚洲人成在线观看 | 刘亦菲毛片一区二区三区 | 成人国产片 | 一区二区片 | 国产91久| 欧美精品hd | 麻豆黄色一级片 | 午夜精品美女久久久久av福利 | 伊人久久婷婷色综合98网 | 日产精品久久久一区二区 | 色网在线观看 | 调教性瘾双性高清冷美人 | 狠狠色婷婷久久一区二区三区 | 爽天天天天天天天 | 国产又白又嫩又爽又黄 | 亚洲一区二区三区免费视频 | 三级av在线| 少妇高潮久久久久久潘金莲 | 永久黄网站色视频免费 | 免费人成视频x8x8 | 日韩中文字幕视频 | 毛片内射-百度 | 好硬好湿好爽好深视频 | 国产夫妻在线观看 | 欧洲熟妇色xxxxx欧美老妇伦 | www伊人久久| 精品国产一区二区三区在线 | 美女毛片一区二区三区四区 | 德国艳星videos极品hd | 成人av时间停止系列在线 | av东方在线| 国产激情一区 | 欧美黄页 | 污片网址 | 色wwwwww | 超清纯大学生白嫩啪啪 | 丝袜五月天 | 91偷拍在线嫩草 | 黄色大片网 | 国产理论视频在线观看 | 国产精品入口麻豆 | 国产欧美日韩一区二区三区 | 欧美一级片网站 | 久久久久久九九九 | 日韩av影视大全 | 国产又粗又猛又黄又爽无遮挡 | 亚洲激情视频小说 | 精品久久久久久 | 国产黄色一区二区三区 | 爱爱的网站 | 成人av资源 | 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 人人玩人人干 | 在线看91 | 91精品国产福利在线观看 | 亚洲一区二区三区四区av | 精品免费国产 | 久久久久xxxx | 日本黄视频在线观看 | 日本乱码一区二区三区芒果 | 肉体粗喘娇吟国产91 | 欧美激情性做爰免费视频 | 青草青草久热精品视频国产4 | 光棍影院一区二区 | 欧洲老妇做爰xxxⅹ性视频 | 亚洲乱码国产乱码精品天美传媒 | 久久99久久99精品免观看粉嫩 | 欧美成人精精品一区二区频 | 日韩精品中文字幕一区二区三区 | 木下凛凛子中文字幕亚洲 | www.色就是色.com| 亚洲人在线 | 成品片a免费入口麻豆 | 国产午夜福利久久精品 | 亚洲夜色噜噜av在线观看 | 日本九九视频 | 伊人久久无码中文字幕 | 无码国内精品久久人妻 | 国产黄色在线免费观看 | 四虎永久在线精品免费播放 | 久久久久99精品国产片 | 永久免费看片在线 | 免费毛片全部不收费的 | 乱子伦视频在线看 | 日韩伦理在线视频 | 久久精品女同亚洲女同13 | 教师夫妇交换刺激做爰小说 | 乌克兰黄色片 | 97涩国一产精品久久久久久久 | 什么网站可以看毛片 | 亚洲婷婷在线 | 96亚洲精品久久 | 欧美孕妇孕交黑巨大网站 | 老司机在线ae85 | 日韩免费观看完整 | 日韩免费看片网站 | 国产精品国产三级国产在线观什 | 亚洲精品wwww | 国产刺激的三3p交换视频 | 天天狠天天狠天天鲁 | 亚洲裸体视频 | 国产精品成人免费看片 | 无码中文字幕日韩专区 | 天天澡天天狠天天天做 | 极品尤物被啪到呻吟喷水 | 寡妇高潮一级片 | 少妇淫真视频一区二区 | 玖玖热麻豆国产精品图片 | 欧美精品一区二区三区在线 | 五月婷婷六月香 | 99久久综合狠狠综合久久 | 丰满饥渴的少妇hd | 天堂网av2014 | 国产三级在线 | 亚洲老妇色熟女老太 | 欧美肥妇bwbwbwbxx | 激情国产视频 | 精品中文字幕一区二区 | 真人与拘做受免费视频一 | 欧美老妇与禽交 | 不卡av免费| 日韩欧美理论片 | 色老头网址 | 噼里啪啦在线看免费观看视频 | 成人在线观看免费视频 | 成人免费区一区二区三区 | 快色视频网站 | 熟女人妻少妇精品视频 | 91粉色视频 | 日韩一区二区精品视频 | 电车侵犯高潮失禁在线看 | 四虎国产精品免费久久 | 日韩在线高清 | 午夜av免费| 99久99| 日韩综合第一页 | 少妇高潮流白浆9191 | 国产精品成人一区二区网站软件 | 亚洲天堂色图 | 麻豆av福利av久久av | 国产二级一片内射视频播放 | 国产欧美日韩综合 | 国产精品三级在线 | 亚洲插| 大奶子在线观看 | 91精品国产乱码久久蜜臀 |