<kbd id="9plqc"><label id="9plqc"></label></kbd>

        <th id="9plqc"></th>
        1. <center id="9plqc"><video id="9plqc"></video></center>
          <sub id="9plqc"><form id="9plqc"><pre id="9plqc"></pre></form></sub>
          <nav id="9plqc"><form id="9plqc"><legend id="9plqc"></legend></form></nav>
          Rockchip Android13 GKI開發(fā)指南 您所在的位置:網(wǎng)站首頁 帶來財運的名字2017 Rockchip Android13 GKI開發(fā)指南

          Rockchip Android13 GKI開發(fā)指南

          2025-07-15 09:34| 來源: 網(wǎng)絡(luò)整理| 查看: 265

          Rockchip Android13 GKI開發(fā)指南 文章目錄 Rockchip Android13 GKI開發(fā)指南@[toc]1 GKI介紹1.1 什么是GKI1.2 什么產(chǎn)品需要使用GKI1.3 GKI和非GKI的差別 2 Rockchip Android13 GKI的適配情況3 Google upstream kernel下載及編譯4 Rockchip SDK中GKI相關(guān)目錄介紹5 Rockchip GKI編譯5.1 代碼修改5.2 編譯5.3 固件燒寫 6 KO編譯及修改6.1 添加新的模塊驅(qū)動的方法6.2 調(diào)試ko方法 7 開機log確認7.1 uboot階段7.2 Android階段7.3 KO加載7.4 KO加載報錯7.5 bootcmdline解析出錯 7.6 Mali KO加載失敗7.7 編譯kernel報錯8 調(diào)試技巧8.1 打印更多KO加載的log8.2 在RK的kernel打包中編譯GKI使用的boot.img8.3 查看google發(fā)布的內(nèi)核接口8.4 kernel編譯慢卡在LTO優(yōu)化 9 如何提交內(nèi)核接口到upstream10 目前已知的GKI和非GKI的差異1,GKI的版本dts里面不能同時配置多個camera2,GKI的版本同一個I2C下不能注冊相同地址的設(shè)備 1 GKI介紹 1.1 什么是GKI

          GKI:Generic Kernel Image 通用內(nèi)核映像。 Android13 GMS和EDLA認證的一個難點是google強制要求要支持GKI。GKI通用內(nèi)核映像,是google為了解決內(nèi)核碎片化的問題,而設(shè)計的通過提供統(tǒng)一核心內(nèi)核并將SoC和板級驅(qū)動從核心內(nèi)核移至可加載模塊中。核心內(nèi)核為驅(qū)動模塊提供了穩(wěn)定的內(nèi)核模塊接口,模塊驅(qū)動和核心內(nèi)核可以獨立進行更新。內(nèi)核接口可以通過upstream的方式進行擴展。 Soc和板級廠商在驅(qū)動開發(fā)時需要使用已經(jīng)定義的內(nèi)核接口,如果要新加核心內(nèi)核接口需要提交給google,這個周期會比較長,所以要提前做好開發(fā)準備。

          [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ulf1Pvdd-1687675851348)(D:\work\AndroidSDK\客戶培訓\GKI開發(fā)\gki框圖.png)]

          1.2 什么產(chǎn)品需要使用GKI 使用Android13且需要過GMS認證和EDLA認證的產(chǎn)品使用Android12 的RK3588和RK3588S的需要過GMS認證和EDLA認證的產(chǎn)品不過GMS認證和EDLA認證的產(chǎn)品不強制要求使用GKI 1.3 GKI和非GKI的差別

          通用內(nèi)核boot.img

          GKI非GKI由google定期發(fā)布boot.img,代碼不能自己修改由RK提供內(nèi)核源碼編譯,可以自由修改

          驅(qū)動模塊

          GKI非GKI以KO的形式加載,調(diào)用的內(nèi)核接口必需是google發(fā)布的boot.img里面包含的內(nèi)嵌在boot中,由RK提供內(nèi)核源碼編譯,可以自由修改和添加內(nèi)核接口

          kernel代碼

          GKI非GKIRK發(fā)布的kernel源碼僅用于編譯驅(qū)動模塊的KORK發(fā)布的kernel源碼用于完整的內(nèi)核和模塊驅(qū)動的編譯,模塊以.o的形式內(nèi)嵌編譯

          uboot支持head4

          分區(qū)差異 GKI增加vendor_boot、init_boot、resource分區(qū)

          啟用AB分區(qū)

          2 Rockchip Android13 GKI的適配情況

          kernel版本是5.10

          芯片是否完成適配RK3588/RK3588S已適配RK3568/RK3566已適配RK3326/RK3326S已適配PX30/PX30S已適配RK3399正在適配 3 Google upstream kernel下載及編譯

          Google的boot.img是定期發(fā)布,時間間隔比較長。 我們可以下載google的upstream的kernel源碼自己編譯boot.img進行驗證和debug。

          Google Upstream kernel下載鏈接:

          repo init -u https://android.googlesource.com/kernel/manifest -b common-android13-5.10

          需要鏈接google服務器下載

          編譯

          tools/bazel run --config=fast //common:kernel_aarch64_dist -- --dist_dir=./out

          生成boot.img

          out/boot.img 4 Rockchip SDK中GKI相關(guān)目錄介紹 kernel KO文件路徑 mkcombinedroot/vendor_ramdisk/lib/modules/ Google boot.img路徑 mkcombinedroot/prebuilts/boot-5.10.img KO文件加載順序配置文件 mkcombinedroot$ tree res/ res/ ├── board │ ├── px30-mini-evb-ddr3-v11-avb.load │ ├── rk3326-863-lp3-v10-rkisp1.load │ ├── rk3326-evb-lp3-v10-avb.load │ ├── rk3399-evb-ind-lpddr4-android-avb.load │ ├── rk3399-evb-ind-lpddr4-v13-android-avb.load │ ├── rk3562-evb1-lp4x-v10.load │ ├── rk3562-rk817-tablet-v10.load │ ├── rk3566-evb2-lp4x-v10.load │ ├── rk3566-rk817-tablet.load │ ├── rk3568-evb1-ddr4-v10.load │ ├── rk3588-evb1-lp4-v10.load │ ├── rk3588-evb7-lp4-v10.load │ └── rk3588s-tablet-v10.load ├── bootconfig ├── debug_list.load ├── file_contexts.bin ├── ramdisk_modules.load ├── recovery_gki.mk ├── soc │ ├── rk3326 │ │ └── vendor_ramdisk_modules.load │ ├── rk3399 │ │ └── vendor_ramdisk_modules.load │ ├── rk3562 │ │ └── vendor_ramdisk_modules.load │ ├── rk356x │ │ ├── vendor_ramdisk_modules.load │ └── rk3588 │ ├── vendor_ramdisk_modules.load ├── vendor_gki.mk ├── vendor_image_info.txt ├── vendor_modules.load ├── vendor_ramdisk_gki.mk

          其中: res/soc/ 下面的是芯片平臺相關(guān)的ko加載 res/board/下面是板級相關(guān)的ko加載

          GPU mali庫的路徑 GPU的mali庫是單獨編譯在vendor.img中,源文件路徑在 RK3588: vendor/rockchip/common/gpu/MaliG610/lib/modules/bifrost_kbase.ko RK356X/RK3562: vendor/rockchip/common/gpu/MaliG52/lib/modules/bifrost_kbase.ko RK3326/RK3326-S: PX30/PX30-S: vendor/rockchip/common/gpu/MaliTDVx/lib/modules/mali_kbase.ko RK3399: vendor/rockchip/common/gpu/MaliT860/lib/modules/mali_kbase.ko 5 Rockchip GKI編譯 5.1 代碼修改

          GKI需要打開AB系統(tǒng)才能使用,具體代碼修改如下:

          uboot需要打開AB配置 ~/a2_Android13_sdk/u-boot$ git diff diff --git a/configs/rk3568_defconfig b/configs/rk3568_defconfig index fbd9820acc..e23e438792 100644 --- a/configs/rk3588_defconfig +++ b/configs/rk3588_defconfig @@ -207,6 +207,7 @@ CONFIG_RSA_N_SIZE=0x200 CONFIG_RSA_E_SIZE=0x10 CONFIG_RSA_C_SIZE=0x20 CONFIG_SHA512=y CONFIG_LZ4=y CONFIG_LZMA=y CONFIG_SPL_GZIP=y @@ -220,3 +221,4 @@ CONFIG_RK_AVB_LIBAVB_USER=y CONFIG_OPTEE_CLIENT=y CONFIG_OPTEE_V2=y CONFIG_OPTEE_ALWAYS_USE_SECURITY_PARTITION=y +CONFIG_ANDROID_AB=y 增加板級的KO load文件 Rockchip的GKI框架里面加載KO的load文件有區(qū)分芯片平臺驅(qū)動和板級驅(qū)動,所以在開發(fā)新產(chǎn)品的時候需要增加板級驅(qū)動的KO load文件,load文件以device下面產(chǎn)品目錄中定義PRODUCT_KERNEL_DTS的dts的名字命名,并且保存在mkcombinedroot/res/board/下面,如: wlq@sys2_206:~/a0_Android13_gki$ tree mkcombinedroot/res/board/ mkcombinedroot/res/board/ ├── px30-mini-evb-ddr3-v11-avb.load ├── rk3326-863-lp3-v10-rkisp1.load ├── rk3326-evb-lp3-v10-avb.load ├── rk3399-evb-ind-lpddr4-android-avb.load ├── rk3399-evb-ind-lpddr4-v13-android-avb.load ├── rk3562-evb1-lp4x-v10.load ├── rk3562-rk817-tablet-v10.load ├── rk3566-evb2-lp4x-v10.load ├── rk3566-rk817-tablet.load ├── rk3568-evb1-ddr4-v10.load ├── rk3588-evb1-lp4-v10.load ├── rk3588-evb7-lp4-v10.load └── rk3588s-tablet-v10.load

          板級的KO load文件里面放的是板級的驅(qū)動模塊,如:觸摸屏、camera、sensor等芯片平臺以為的驅(qū)動模塊,如:

          wlq@sys2_206:~/a0_Android13_gki$ cat mkcombinedroot/res/board/rk3588-evb1-lp4-v10.load cw2015_battery.ko imx415.ko ov50c40.ko ov13855.ko gt1x-ts.ko snd-soc-es8323.ko Android的device產(chǎn)品目錄下配置GKI選項 ~/a2_Android13_sdk/device/rockchip/rk3588$ git diff diff --git a/rk3588_t/BoardConfig.mk b/rk3588_t/BoardConfig.mk old mode 100644 new mode 100755 index 50da541..06da5f3 --- a/rk3588_t/BoardConfig.mk +++ b/rk3588_t/BoardConfig.mk @@ -15,10 +15,21 @@ # include device/rockchip/rk3588/BoardConfig.mk BUILD_WITH_GO_OPT := false +BOARD_BUILD_GKI := true -# AB image definition -BOARD_USES_AB_IMAGE := false -BOARD_ROCKCHIP_VIRTUAL_AB_ENABLE := false +ifeq ($(strip $(BOARD_BUILD_GKI)), true) + #for gki + # AB image definition + BOARD_USES_AB_IMAGE := true + BOARD_ROCKCHIP_VIRTUAL_AB_ENABLE := true + PRODUCT_KERNEL_CONFIG := gki_defconfig rockchip_gki.config +else + BOARD_ROCKCHIP_VIRTUAL_AB_ENABLE := false + BOARD_USES_AB_IMAGE := false + PRODUCT_KERNEL_CONFIG := rockchip_defconfig android-13.config +endif BOARD_GRAVITY_SENSOR_SUPPORT := true BOARD_COMPASS_SENSOR_SUPPORT := true @@ -26,14 +37,21 @@ BOARD_SENSOR_COMPASS_AK8963-64 := true BOARD_GYROSCOPE_SENSOR_SUPPORT := true BOARD_PROXIMITY_SENSOR_SUPPORT := true BOARD_LIGHT_SENSOR_SUPPORT := true ifeq ($(strip $(BOARD_USES_AB_IMAGE)), true) include device/rockchip/common/BoardConfig_AB.mk TARGET_RECOVERY_FSTAB := device/rockchip/rk3588/rk3588_t/recovery.fstab_AB endif - +ifeq ($(strip $(BOARD_BUILD_GKI)), true) + #for gki + BOARD_SUPER_PARTITION_SIZE := 4294967296 + BOARD_ROCKCHIP_DYNAMIC_PARTITIONS_SIZE := $(shell expr $(BOARD_SUPER_PARTITION_SIZE) - 4194304) +endif PRODUCT_UBOOT_CONFIG := rk3588 PRODUCT_KERNEL_DTS := rk3588-evb1-lp4-v10 BOARD_GSENSOR_MXC6655XA_SUPPORT := true BOARD_CAMERA_SUPPORT_EXT := true 5.2 編譯

          完整編譯方式與非GKI的一樣

          source build/envsetup.sh lunch rk3588_t-userdebug ./build.sh -ACUKup

          注意:這里編譯的kernel只是為了編譯出resource.img,kernel源碼部分都是使用mkcombinedroot/vendor_ramdisk/lib/modules/下的ko文件直接打包成vendor_boot.img。內(nèi)核部分使用的是google發(fā)布的boot.img,具體路徑在mkcombinedroot/prebuilts/boot-5.10.img

          編譯完可以直接燒寫 rockdev/Image-rk3588_t/update.img

          在調(diào)試階段也支持單獨編譯vendor_boot.img 編譯命令:

          make installclean;make vendorbootimage -j12

          編譯完可以直接燒寫

          out/target/product/rk3588_t/vendor_boot.img 5.3 固件燒寫

          固件燒寫分2中方式:

          完整包update.img 固件路徑 rockdev/Image-rk3588_t/update.img

          在這里插入圖片描述

          可以通過瑞芯微開發(fā)工具燒寫

          散包燒寫 首先導入配置文件,方法是在工具 空白處右鍵-導入配置-選擇導入txt文件-選擇parameter.txt 在這里插入圖片描述 然后依次選擇rockdev/Image-rk3588_t/下對應的img文件進行燒寫,分區(qū)A和B導入的固件是同一個 rockdev/Image-rk3588_t ├── baseparameter.img ├── boot.img ├── dtbo.img ├── init_boot.img ├── MiniLoaderAll.bin ├── misc.img ├── parameter.txt ├── resource.img ├── super.img ├── uboot.img ├── update.img ├── vbmeta.img └── vendor_boot.img

          在這里插入圖片描述

          6 KO編譯及修改 6.1 添加新的模塊驅(qū)動的方法 將驅(qū)動代碼放到kernel-5.10對應的目錄下,這里以新加觸摸屏驅(qū)動gt1x為例進行說明。 將gt1x的驅(qū)動放在drivers/input/touchscreen/下面,并添加對應的Makefile和Kconfig,這里按kernel的標準方式進行作;增加一個自己的config文件, 在arch/arm64/configs/下新建一個xxx_gki.config,并將CONFIG_TOUCHSCREEN_GT1X=m (m表示編譯為ko)添加到xxx_gki.config中;將ko文件名添加到板級的load文件中, load文件在SDK的mkcombinedroot/res/board目錄下,如下

          |.load文件名稱| 對應分區(qū) | makefile解析 |加載時間| | - | - | - | | vendor_ramdisk_modules.load | vendor_boot | vendor_ramdisk_gki.mk |ramdisk init階段| | vendor_modules.load | vendor | vendor_gki.mk |android啟動時| | recovery_modules.load | recovery | recovery_gki.mk |recovery階段|

          這里以RK3588-EVB1的板級配置為例進行說明: 觸摸屏驅(qū)動要在init階段加載所以加到rk3588-evb1-lp4-v10.load中

          echo "gt1x-ts.ko" >> res/board/rk3588-evb1-lp4-v10.load

          注意 1:.load文件關(guān)乎驅(qū)動的加載順序,請不要修改原有順序,僅在需要時添加自己的驅(qū)動名稱,否則可能會導致系統(tǒng)無法啟動!!!

          注意 2:如果使用A/B系統(tǒng),請務必保證vendor_ramdisk_modules.load和recovery_modules.load文件內(nèi)容一致,否則會導致無法啟動!代碼默認使用軟鏈接將二者鏈接起來,請不要自己修改!!!

          注意 3:如果是在android啟動的時候加載的ko可以放在vendor_modules.load中,但需要注意:vendor下的ko不會被系統(tǒng)主動加載!如果僅需要在開機階段自動加載,可以使用Rockchip提供的默認加載腳本init.insmod.sh,該腳本會自動加載device/rockchip/common/rootdir/init.insmod.cfg配置中的所有ko。

          編譯 進到kernel-5.10目錄下進行ko文件編譯

          配置clang編譯鏈(編譯鏈版本請參考build.sh中的配置)

          export PATH=../prebuilts/clang/host/linux-x86/clang-r450784d/bin:$PATH make CROSS_COMPILE=aarch64-linux-gnu- LLVM=1 LLVM_IAS=1 ARCH=arm64 gki_defconfig rockchip_gki.config xxx_gki.config && make CROSS_COMPILE=aarch64-linux-gnu- LLVM=1 LLVM_IAS=1 ARCH=arm64 rk3588s-evb8-lp4x-v10.img -j32 編譯kernel后將編譯生產(chǎn)的gt1x-ts.ko文件拷貝到mkcombinedroot/vendor_ramdisk/lib/modules/下面 llvm-objcopy --strip-debug drivers/input/touchscreen/gt1x/gt1x-ts.ko ../mkcombinedroot/vendor_ramdisk/lib/modules/gt1x-ts.ko

          注意:這里拷貝KO文件需要用

          llvm-objcopy --strip-debug

          將調(diào)試信息剝離從而減小KO文件的大小,減少開機KO的加載時間。使用llvm-objcopy需要先lunch配置android環(huán)境。 6. 編譯vendor_boot.img 在工程根目錄下編譯vendor_boot.img,命令如下。 這一步是將KO文件打包到vendor_boot.img,在降vendor_boot.img燒寫到機器中。

          make installclean;make vendorbootimage -j12

          單獨燒寫vendor_boot.img,編譯完的vendor_boot.img路徑如下:

          out/target/product/rk3588_t/vendor_boot.img 驗證

          燒寫out/target/product/rk3588_t/vendor_boot.img文件到機器中開機驗證

          如果是放在vendor分區(qū)的ko可以在系統(tǒng)起來后直接push到機器內(nèi)的vendor分區(qū)中,手動掛載進行驗證

          如果有涉及到dts的修改,需要燒寫kernel-5.10下的resource.img

          附:AOSP定義的各類ko加載階段

          Boot modeStorageDisplayKeypadBatteryPMICTPNFC/Wi-Fi/BTSensorsCameraRecoveryYYYYYNNNNChargerYYYYYNNNNAndroidYYYYYYYYY 6.2 調(diào)試ko方法

          在kernel-5.10目錄下修改對應ko的驅(qū)動源碼

          使用如下命令進行ko編譯

          配置clang編譯鏈(編譯鏈版本請參考build.sh中的配置)export PATH=../prebuilts/clang/host/linux-x86/clang-r450784d/bin:$PATH 編譯komake CROSS_COMPILE=aarch64-linux-gnu- LLVM=1 LLVM_IAS=1 ARCH=arm64 gki_defconfig rockchip_gki.config xxx_gki.config && make CROSS_COMPILE=aarch64-linux-gnu- LLVM=1 LLVM_IAS=1 ARCH=arm64 rk3588s-evb8-lp4x-v10.img -j32 拷貝KO文件到mkcombinedroot/vendor_ramdisk/lib/modules/ llvm-objcopy --strip-debug drivers/xxx.ko ../mkcombinedroot/vendor_ramdisk/lib/modules/xxx.ko 編譯vendor_boot.img 在工程根目錄下編譯vendor_boot.img,命令如下。 這一步是將KO文件打包到vendor_boot.img,在降vendor_boot.img燒寫到機器中。 make installclean;make vendorbootimage -j12

          驗證 - 燒寫out/target/product/rk3588_t/vendor_boot.img文件到機器中開機驗證 - 如果是放在vendor分區(qū)的ko可以在系統(tǒng)起來后直接push到機器內(nèi)的vendor分區(qū)中,手動掛載進行驗證 - 如果有涉及到dts的修改,需要燒寫kernel-5.10下的resource.img

          調(diào)試完成后,將vendor_ramdisk/lib/modules的ko文件(被腳本自動拷貝)進行提交

          有關(guān)打包工具的詳細說明,請參考:mkcombinedroot/README

          注意:kernel編譯ko的時候如果有修改了config,則編譯中間會卡住很長一段時間,這是在做編譯優(yōu)化,根據(jù)編譯服務器硬件配置不同優(yōu)化的速度也不同,即卡住的時間也不同。 所以這個卡住是正常現(xiàn)象。

          7 開機log確認 7.1 uboot階段 內(nèi)容header版本vendor_ramdisk(v-ramdisk)V3+bootconfigV4+ ## Booting Android Image at 0x003ff000 ... Kernel: 0x00400000 - 0x03088ffc (45604 KiB) v-ramdisk: 0x0a200000 - 0x0a6944c8 (4690 KiB) ramdisk: 0x0a6944c8 - 0x0a7e54df (1349 KiB) bootconfig: 0x0a7e54df - 0x0a7e559c (1 KiB) bootparams: 0x0a7e559c - 0x0a7e759c 7.2 Android階段

          GKI版本: Linux version 5.10.117-android13-9-00037-gbc08447eb7bd

          [ 0.000000][ T0] Booting Linux on physical CPU 0x0000000000 [0x412fd050] [ 0.000000][ T0] Linux version 5.10.117-android12-9-00037-gbc08447eb7bd (build-user@build-host) (Android (7284624, based on r416183b) clang version 12.0.5 (https://android.googlesource.com/toolchain/llvm-project c935d99d7cf2016289302412d708641d52d2f7ee), LLD 12.0.5 (/buildbot/src/android/llvm-toolchai n/out/llvm-project/lld c935d99d7cf2016289302412d708641d52d2f7ee)) #1 SMP PREEMPT Thu Aug 25 15:24:20 UTC 2022

          Kernel command line: Header V4中不能存在androidboot.xxx這一類的命令行參數(shù),這類參數(shù)全部在bootconfig中。此類參數(shù)可以通過cat /proc/bootconfig確認。

          [ 0.000000][ T0] Kernel command line: stack_depot_disable=on kasan.stacktrace=off kvm-arm.mode=protected cgroup_disable=pressure cgroup.memory=nokme m storagemedia=emmc console=ttyFIQ0 firmware_class.path=/vendor/etc/firmware init=/init rootwait ro loop.max_part=7 bootconfig buildvariant=userdebug earl ycon=uart8250,mmio32,0xfeb50000 irqchip.gicv3_pseudo_nmi=0 7.3 KO加載

          開始加載ko,可以看到log:

          [ 1.034730][ T1] Run /init as init process [ 1.036190][ T1] init: init first stage started! [ 1.040534][ T1] init: Loading module /lib/modules/io-domain.ko with args '' [ 1.042038][ T1] init: Loaded kernel module /lib/modules/io-domain.ko 7.4 KO加載報錯

          使用了未導出的符號,報錯重啟:

          [ 0.805736][ T1] cryptodev: Unknown symbol crypto_ahash_final (err -2) [ 0.806383][ T1] cryptodev: Unknown symbol sg_nents (err -2) [ 0.806972][ T1] cryptodev: Unknown symbol crypto_alloc_akcipher (err -2) [ 0.819768][ T1] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00

          注: 正常不會出現(xiàn)此問題,參考 名詞解釋階段——ABI進行處理

          7.5 bootcmdline解析出錯

          錯誤log

          Failed to parse bootconfig: Value is redefined at 416.

          現(xiàn)象:無法開機或者開機進到recovery 原因:cmdline中的字段重復了,導致解析cmdline出錯,可以在開機到uboot的時候在串口按住crtl+p就會打印所有的cmdline信息,從打印的cmdline信息中檢查哪個字段重復了,然后去代碼里面找對應的定義的位置刪除對應的字段即可。一般吧cmdline是在device和kernel的dts中定義,可以在這兩個目錄下搜索該重復的字段即可。

          7.6 Mali KO加載失敗

          Mali KO加載失敗表現(xiàn)為無法開機界面顯示卡在’Rockchip kernel’的logo,logcat可以看到surfaceflinger crash。

          04-27 22:45:27.653 366 366 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 04-27 22:45:27.653 366 366 F DEBUG : Build fingerprint: 'rockchip/rk3562_t/rk3562_t:13/TQ2A.230305.008.F1/eng.wlq.20230427.101925:userdebug/release-keys' 04-27 22:45:27.653 366 366 F DEBUG : Revision: '0' 04-27 22:45:27.653 366 366 F DEBUG : ABI: 'arm64' 04-27 22:45:27.653 366 366 F DEBUG : Timestamp: 2023-04-27 22:45:27.509738048+0000 04-27 22:45:27.653 366 366 F DEBUG : Process uptime: 2s 04-27 22:45:27.653 366 366 F DEBUG : Cmdline: /system/bin/surfaceflinger 04-27 22:45:27.653 366 366 F DEBUG : pid: 335, tid: 360, name: surfaceflinger >>> /system/bin/surfaceflinger


          【本文地址】

          公司簡介

          聯(lián)系我們

          今日新聞

          推薦新聞

          專題文章
            CopyRight 2018-2019 實驗室設(shè)備網(wǎng) 版權(quán)所有
            黄色免费网站在线看,韩国精品在线观看,韩国美女一区二区,99国产热 安义县| 黎川县| 永泰县| 成武县| 房产| 吐鲁番市| 庆阳市| 郴州市| 永清县| 临夏县| 三河市| 林口县| 新宁县| 宝鸡市| 武清区| 吉水县| 乐至县| 西安市| 什邡市| 汶川县| 博白县| 横山县| 庆城县| 城口县| 益阳市| 桦南县| 周至县| 德州市| 潞城市| 邯郸市| 若尔盖县| 进贤县| 南华县| 安吉县| 白河县| 长治县| 逊克县| 荔浦县| 巴林左旗| 察雅县| 蒙自县| http://444 http://444 http://444 http://444 http://444 http://444