First in hand look at the S4 & ADB Poking!

The S4 may be the XTEINK many people have been waiting for. It keeps the 4.3" pocketable format, magsafe compatibility, physical page-turn keys and USB-C charging. Then comes the part that actually changes the device: Android!

Read on @ readme.club

[+] adb shell cat /proc/cpuinfo
processor	: 0
model name	: ARMv8 Processor rev 2 (v8l)
BogoMIPS	: 48.00
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt lpae evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0xd04
CPU revision	: 2

processor	: 1
model name	: ARMv8 Processor rev 2 (v8l)
BogoMIPS	: 48.00
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt lpae evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0xd04
CPU revision	: 2

processor	: 2
model name	: ARMv8 Processor rev 2 (v8l)
BogoMIPS	: 48.00
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt lpae evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0xd04
CPU revision	: 2

processor	: 3
model name	: ARMv8 Processor rev 2 (v8l)
BogoMIPS	: 48.00
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt lpae evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0xd04
CPU revision	: 2

Hardware	: Rockchip rk3326 863 board
Serial		: d2f968771c5f895f
[+] adb shell dumpsys cpuinfo
Load: 1.07 / 1.22 / 0.98
CPU usage from 193586ms to 111878ms ago (2026-09-19 18:15:05.780 to 2026-09-19 18:16:27.488):
  32% 38/kworker/2:1-memcg_kmem_cache: 0% user + 32% kernel
  1.8% 166/surfaceflinger: 1.6% user + 0.1% kernel / faults: 222 minor
  1.4% 389/system_server: 1.1% user + 0.2% kernel / faults: 1471 minor
  0.6% 1578/ksdioirqd/mmc1: 0% user + 0.6% kernel
  0.3% 537/com.android.systemui: 0.2% user + 0% kernel / faults: 435 minor
  0.1% 92/kworker/u8:3-devfreq_workq: 0% user + 0.1% kernel
  0.1% 50/cfinteractive: 0% user + 0.1% kernel
  0.1% 1537/kworker/u8:7-events_unbound: 0% user + 0.1% kernel
  0.1% 208/[email protected]: 0% user + 0% kernel / faults: 70 minor
  0.1% 1580/RTW_RECV_THREAD: 0.1% user + 0% kernel
  0% 1624/kworker/3:0-events_freezable: 0% user + 0% kernel
  0% 323/wificond: 0% user + 0% kernel / faults: 67 minor
  0% 506/[email protected]: 0% user + 0% kernel / faults: 115 minor
  0% 1019/com.wetao.elauncher: 0% user + 0% kernel / faults: 29 minor
  0% 164/[email protected]: 0% user + 0% kernel / faults: 14 minor
  0% 1/init: 0% user + 0% kernel
  0% 10/rcu_preempt: 0% user + 0% kernel
  0% 236/kworker/2:3: 0% user + 0% kernel
  0% 262/[email protected]: 0% user + 0% kernel / faults: 64 minor
  0% 1079/android.process.media: 0% user + 0% kernel / faults: 1 minor
  0% 1581/RTW_CMD_THREAD: 0% user + 0% kernel
  0% 22/migration/2: 0% user + 0% kernel
  0% 82/ion_system_heap: 0% user + 0% kernel
  0% 86/kworker/0:2-cgroup_pidlist_destroy: 0% user + 0% kernel
  0% 90/mali-simple-pow: 0% user + 0% kernel
  0% 93/kworker/3:3-cgroup_pidlist_destroy: 0% user + 0% kernel
  0% 142/logd: 0% user + 0% kernel
  0% 144/servicemanager: 0% user + 0% kernel
  0% 145/hwservicemanager: 0% user + 0% kernel / faults: 4 minor
  0% 197/f2fs_gc-253:5: 0% user + 0% kernel
  0% 250/netd: 0% user + 0% kernel
  0% 322/storaged: 0% user + 0% kernel
  0% 1579/RTW_XMIT_THREAD: 0% user + 0% kernel
  0% 1633/kworker/u8:0-devfreq_workq: 0% user + 0% kernel
 +0% 1634/kworker/3:1-events_freezable: 0% user + 0% kernel
8% TOTAL: 0.8% user + 2.8% kernel + 4% irq + 0.3% softirq
[+] adb shell getprop
[UserVolumeLabel]: [RockChips]
[build.version.extensions.r]: [0]
[cache_key.bluetooth.get_bond_state]: [-5381312004518092082]
[cache_key.bluetooth.get_profile_connection_state]: [-5381312004518092084]
[cache_key.bluetooth.get_state]: [-5381312004518092085]
[cache_key.bluetooth.is_offloaded_filtering_supported]: [-5381312004518092083]
[cache_key.display_info]: [-5929706338784874641]
[cache_key.has_system_feature]: [-5929706338784874694]
[cache_key.is_compat_change_enabled]: [-5929706338784874673]
[cache_key.is_interactive]: [-5929706338784874645]
[cache_key.is_power_save_mode]: [-5929706338784874683]
[cache_key.is_user_unlocked]: [-5929706338784874677]
[cache_key.location_enabled]: [-5929706338784874682]
[cache_key.package_info]: [-5929706338784874672]
[cache_key.telephony.get_active_data_sub_id]: [6547659322246117672]
[cache_key.telephony.get_default_data_sub_id]: [6547659322246117668]
[cache_key.telephony.get_default_sms_sub_id]: [6547659322246117669]
[cache_key.telephony.get_default_sub_id]: [6547659322246117667]
[cache_key.telephony.get_slot_index]: [6547659322246117671]
[config.disable_consumerir]: [true]
[config.disable_rtt]: [true]
[dalvik.vm.appimageformat]: [lz4]
[dalvik.vm.boot-dex2oat-threads]: [4]
[dalvik.vm.dex2oat-Xms]: [64m]
[dalvik.vm.dex2oat-Xmx]: [512m]
[dalvik.vm.dex2oat-max-image-block-size]: [524288]
[dalvik.vm.dex2oat-minidebuginfo]: [true]
[dalvik.vm.dex2oat-resolve-startup-strings]: [true]
[dalvik.vm.dex2oat-threads]: [4]
[dalvik.vm.dex2oat-updatable-bcp-packages-file]: [/system/etc/updatable-bcp-packages.txt]
[dalvik.vm.dexopt.secondary]: [true]
[dalvik.vm.foreground-heap-growth-multiplier]: [2.0]
[dalvik.vm.heapgrowthlimit]: [128m]
[dalvik.vm.heapsize]: [256m]
[dalvik.vm.image-dex2oat-Xms]: [64m]
[dalvik.vm.image-dex2oat-Xmx]: [64m]
[dalvik.vm.isa.arm.features]: [default]
[dalvik.vm.isa.arm.variant]: [cortex-a9]
[dalvik.vm.minidebuginfo]: [true]
[dalvik.vm.systemservercompilerfilter]: [speed-profile]
[dalvik.vm.usejit]: [true]
[dalvik.vm.usejitprofiles]: [true]
[debug.atrace.tags.enableflags]: [0]
[debug.force_rtl]: [false]
[debug.hwui.use_partial_updates]: [false]
[debug.nfc.fw_download]: [false]
[debug.nfc.se]: [false]
[debug.tracing.screen_brightness]: [0.3503937]
[debug.tracing.screen_state]: [2]
[dev.bootcomplete]: [1]
[dev.mnt.blk.data]: [dm-5]
[dev.mnt.blk.data.user.0]: [dm-5]
[dev.mnt.blk.data_mirror.cur_profiles]: [dm-5]
[dev.mnt.blk.data_mirror.data_ce.null]: [dm-5]
[dev.mnt.blk.data_mirror.data_ce.null.0]: [dm-5]
[dev.mnt.blk.data_mirror.data_de.null]: [dm-5]
[dev.mnt.blk.odm]: [dm-4]
[dev.mnt.blk.product]: [dm-3]
[dev.mnt.blk.root]: [dm-0]
[dev.mnt.blk.system_ext]: [dm-1]
[dev.mnt.blk.vendor]: [dm-2]
[dumpstate.completed]: [0]
[dumpstate.last_id]: [2]
[gsm.current.phone-type]: [1]
[gsm.network.type]: [Unknown]
[hwservicemanager.ready]: [true]
[init.svc.adbd]: [running]
[init.svc.apexd]: [stopped]
[init.svc.apexd-bootstrap]: [stopped]
[init.svc.apexd-snapshotde]: [stopped]
[init.svc.audioserver]: [running]
[init.svc.bootanim]: [stopped]
[init.svc.boringssl_self_test32]: [stopped]
[init.svc.boringssl_self_test32_vendor]: [stopped]
[init.svc.boringssl_self_test_apex32]: [stopped]
[init.svc.bpfloader]: [stopped]
[init.svc.cameraserver]: [running]
[init.svc.credstore]: [running]
[init.svc.derive_sdk]: [stopped]
[init.svc.drm]: [running]
[init.svc.dump_kernel_panic]: [stopped]
[init.svc.gatekeeperd]: [running]
[init.svc.gpu]: [running]
[init.svc.health-hal-2-1]: [running]
[init.svc.heapprofd]: [stopped]
[init.svc.hidl_memory]: [running]
[init.svc.hwservicemanager]: [running]
[init.svc.idmap2d]: [stopped]
[init.svc.incidentd]: [running]
[init.svc.installd]: [running]
[init.svc.iorapd]: [stopped]
[init.svc.keystore]: [running]
[init.svc.lmkd]: [running]
[init.svc.logcatd]: [stopped]
[init.svc.logd]: [running]
[init.svc.logd-auditctl]: [stopped]
[init.svc.logd-reinit]: [stopped]
[init.svc.media]: [running]
[init.svc.media.swcodec]: [running]
[init.svc.mediadrm]: [running]
[init.svc.mediaextractor]: [running]
[init.svc.mediametrics]: [running]
[init.svc.netd]: [running]
[init.svc.rockchip.drmservice]: [stopped]
[init.svc.servicemanager]: [running]
[init.svc.simple_bugreportd]: [stopped]
[init.svc.slttrace]: [stopped]
[init.svc.statsd]: [running]
[init.svc.storaged]: [running]
[init.svc.surfaceflinger]: [running]
[init.svc.system_suspend]: [running]
[init.svc.tombstoned]: [running]
[init.svc.traced]: [running]
[init.svc.traced_perf]: [stopped]
[init.svc.traced_probes]: [running]
[init.svc.ueventd]: [running]
[init.svc.usbd]: [stopped]
[init.svc.vendor.audio-hal]: [running]
[init.svc.vendor.bluetooth-1-0]: [running]
[init.svc.vendor.camera-provider-2-4]: [stopped]
[init.svc.vendor.gatekeeper-1-0]: [running]
[init.svc.vendor.gralloc-4-0]: [running]
[init.svc.vendor.hwcomposer-2-1]: [running]
[init.svc.vendor.insmod_sh]: [stopped]
[init.svc.vendor.keymaster-4-0]: [running]
[init.svc.vendor.light-rockchip]: [running]
[init.svc.vendor.media.omx]: [running]
[init.svc.vendor.memtrack-hal-1-0]: [running]
[init.svc.vendor.power-aidl-rockchip]: [running]
[init.svc.vendor.rockit-hal-1-0]: [running]
[init.svc.vendor.sensors-hal-1-0]: [running]
[init.svc.vendor.wifi_hal_legacy]: [running]
[init.svc.vendor_flash_recovery]: [stopped]
[init.svc.vndservicemanager]: [running]
[init.svc.vold]: [running]
[init.svc.wait_for_keymaster]: [stopped]
[init.svc.wificond]: [running]
[init.svc.wpa_supplicant]: [running]
[init.svc.zygote]: [running]
[keyguard.no_require_sim]: [true]
[log.tag.APM_AudioPolicyManager]: [D]
[log.tag.stats_log]: [I]
[net.bt.name]: [Android]
[net.qtaguid_enabled]: [1]
[net.tcp.default_init_rwnd]: [60]
[persist.bt.sleep.flag]: [false]
[persist.shutdown.timeout]: [1800000]
[persist.sys.boot.reason]: []
[persist.sys.boot.reason.history]: [shutdown,,1789832152
shutdown,,1789826085
shutdown,,1789821758]
[persist.sys.dalvik.vm.lib.2]: [libart.so]
[persist.sys.device_provisioned]: [1]
[persist.sys.displayinset.top]: [0]
[persist.sys.first_booting]: [false]
[persist.sys.fullmode_cnt]: [0]
[persist.sys.fuse]: [true]
[persist.sys.gamma]: [192]
[persist.sys.isolated_storage]: [true]
[persist.sys.lmk.reportkills]: [true]
[persist.sys.locale]: [en-US]
[persist.sys.safemode]: []
[persist.sys.strictmode.visual]: [false]
[persist.sys.timezone]: [Europe/Berlin]
[persist.sys.usb.config]: [adb,mtp]
[persist.sys.zram_enabled]: [1]
[persist.traced.enable]: [1]
[persist.vendor.brightness.main]: [50]
[persist.vendor.color.main]: [Auto]
[persist.vendor.contrast.main]: [50]
[persist.vendor.framebuffer.main]: [0x0@60]
[persist.vendor.hue.main]: [50]
[persist.vendor.overscan.main]: [overscan 100,100,100,100]
[persist.vendor.resolution.main]: [Auto]
[persist.vendor.rk_vulkan]: [true]
[persist.vendor.saturation.main]: [50]
[persist.wetao.wallpaper.standby]: [/storage/emulated/0/Wallpaper/rmc.jpg]
[persist.wifi.sleep.flag]: [false]
[pm.dexopt.ab-ota]: [speed-profile]
[pm.dexopt.bg-dexopt]: [speed-profile]
[pm.dexopt.boot]: [verify]
[pm.dexopt.downgrade_after_inactive_days]: [10]
[pm.dexopt.first-boot]: [quicken]
[pm.dexopt.inactive]: [verify]
[pm.dexopt.install]: [speed-profile]
[pm.dexopt.shared]: [quicken]
[ril.function.dataonly]: [1]
[ro.actionable_compatible_property.enabled]: [true]
[ro.adb.secure]: [1]
[ro.allow.mock.location]: [0]
[ro.audio.monitorOrientation]: [true]
[ro.backkey.home]: [true]
[ro.baseband]: [N/A]
[ro.board.platform]: [rk3326]
[ro.boot.baseband]: [N/A]
[ro.boot.boot_devices]: [ff390000.dwmmc,ff3b0000.nandc]
[ro.boot.bootreason]: [shutdown,]
[ro.boot.console]: [ttyFIQ0]
[ro.boot.dtb_idx]: [0]
[ro.boot.dtbo_idx]: [0]
[ro.boot.dynamic_partitions]: [true]
[ro.boot.flash.locked]: [0]
[ro.boot.hardware]: [rk30board]
[ro.boot.mode]: [normal]
[ro.boot.noril]: [true]
[ro.boot.oem_unlocked]: [0]
[ro.boot.selinux]: [permissive]
[ro.boot.serialno]: [SA4B03CN2608083015X]
[ro.boot.storagemedia]: [emmc]
[ro.boot.verifiedbootstate]: [orange]
[ro.boot.veritymode]: [enforcing]
[ro.boot.wificountrycode]: [CN]
[ro.bootimage.build.date]: [Mon Aug 17 15:22:45 CST 2026]
[ro.bootimage.build.date.utc]: [1786951365]
[ro.bootimage.build.fingerprint]: [rockchip/rk3326_go/rk3326_go:11/RD2A.211001.002/wetao18608171522:user/release-keys]
[ro.bootloader]: [unknown]
[ro.bootmode]: [normal]
[ro.build.characteristics]: [tablet]
[ro.build.date]: [Mon Aug 17 15:22:45 CST 2026]
[ro.build.date.utc]: [1786951365]
[ro.build.description]: [WT4S1CN20260817]
[ro.build.display.id]: [WT4S1CN20260817]
[ro.build.fingerprint]: [rockchip/rk3326_go/rk3326_go:11/RD2A.211001.002/eng.wetao1.20260817.152741:user/release-keys]
[ro.build.flavor]: [S4-user]
[ro.build.host]: [wetao186]
[ro.build.id]: [RD2A.211001.002]
[ro.build.product]: [S4]
[ro.build.tags]: [release-keys]
[ro.build.type]: [user]
[ro.build.user]: [wetao186]
[ro.build.version.all_codenames]: [REL]
[ro.build.version.base_os]: []
[ro.build.version.codename]: [REL]
[ro.build.version.incremental]: [eng.wetao1.20260817.152741]
[ro.build.version.min_supported_target_sdk]: [23]
[ro.build.version.preview_sdk]: [0]
[ro.build.version.preview_sdk_fingerprint]: [REL]
[ro.build.version.release]: [11]
[ro.build.version.release_or_codename]: [11]
[ro.build.version.sdk]: [30]
[ro.build.version.security_patch]: [2021-10-01]
[ro.camera.enableLazyHal]: [true]
[ro.carrier]: [unknown]
[ro.com.android.dataroaming]: [true]
[ro.config.alarm_alert]: [Oxygen.ogg]
[ro.config.enable.remotecontrol]: [false]
[ro.config.low_ram]: [true]
[ro.config.notification_sound]: [pixiedust.ogg]
[ro.config.statusbar]: [sync]
[ro.config.statuspanel]: [wifi,bt,clean]
[ro.crypto.metadata.enabled]: [true]
[ro.crypto.state]: [encrypted]
[ro.crypto.type]: [file]
[ro.crypto.uses_fs_ioc_add_encryption_key]: [true]
[ro.dalvik.vm.native.bridge]: [0]
[ro.debuggable]: [0]
[ro.device.auto.shutdown]: [true]
[ro.device.brightness.enable]: [0]
[ro.device.bt_support]: [true]
[ro.device.contrast.enable]: [false]
[ro.device.dict.translate_enable]: [false]
[ro.device.otg_support]: [true]
[ro.device.reader.nightmode.enable]: [false]
[ro.device.timezone]: [Asia/Shanghai]
[ro.device.tts_enable]: [false]
[ro.device.wifi_model]: [rtl8723ds]
[ro.enable_boot_charger_mode]: [0]
[ro.factory.hasGPS]: [false]
[ro.factory.storage_suppexfat]: [true]
[ro.factory.storage_suppntfs]: [true]
[ro.factory.tool]: [0]
[ro.factory.without_battery]: [false]
[ro.hardware]: [rk30board]
[ro.hardware.egl]: [mali]
[ro.hwui.use_vulkan]: []
[ro.iorapd.enable]: [false]
[ro.kernel.android.checkjni]: [0]
[ro.lmk.critical_upgrade]: [true]
[ro.lmk.downgrade_pressure]: [60]
[ro.lmk.kill_heaviest_task]: [false]
[ro.lmk.upgrade_pressure]: [40]
[ro.lockscreen.disable.default]: [true]
[ro.logd.size.stats]: [64K]
[ro.minui.default_rotation]: [ROTATION_NONE]
[ro.minui.pixel_format]: [RGBX_8888]
[ro.odm.build.date]: [Mon Aug 17 15:22:45 CST 2026]
[ro.odm.build.date.utc]: [1786951365]
[ro.odm.build.fingerprint]: [rockchip/rk3326_go/rk3326_go:11/RD2A.211001.002/wetao18608171522:user/release-keys]
[ro.odm.build.id]: [RD2A.211001.002]
[ro.odm.build.tags]: [release-keys]
[ro.odm.build.type]: [user]
[ro.odm.build.version.incremental]: [eng.wetao1.20260817.152741]
[ro.odm.build.version.release]: [11]
[ro.odm.build.version.release_or_codename]: [11]
[ro.odm.build.version.sdk]: [30]
[ro.odm.product.cpu.abilist]: [armeabi-v7a,armeabi]
[ro.odm.product.cpu.abilist32]: [armeabi-v7a,armeabi]
[ro.odm.product.cpu.abilist64]: []
[ro.oem.name]: [S4]
[ro.oem_unlock_supported]: [1]
[ro.opengles.version]: [196610]
[ro.organization_owned]: [false]
[ro.postinstall.fstab.prefix]: [/system]
[ro.product.board]: [rk30sdk]
[ro.product.brand]: [XTEINK]
[ro.product.build.date]: [Mon Aug 17 15:22:45 CST 2026]
[ro.product.build.date.utc]: [1786951365]
[ro.product.build.fingerprint]: [rockchip/rk3326_go/rk3326_go:11/RD2A.211001.002/wetao18608171522:user/release-keys]
[ro.product.build.id]: [RD2A.211001.002]
[ro.product.build.tags]: [release-keys]
[ro.product.build.type]: [user]
[ro.product.build.version.incremental]: [eng.wetao1.20260817.152741]
[ro.product.build.version.release]: [11]
[ro.product.build.version.release_or_codename]: [11]
[ro.product.build.version.sdk]: [30]
[ro.product.cpu.abi]: [armeabi-v7a]
[ro.product.cpu.abi2]: [armeabi]
[ro.product.cpu.abilist]: [armeabi-v7a,armeabi]
[ro.product.cpu.abilist32]: [armeabi-v7a,armeabi]
[ro.product.cpu.abilist64]: []
[ro.product.device]: [S4]
[ro.product.first_api_level]: [30]
[ro.product.locale]: [zh-CN]
[ro.product.manufacturer]: [XTEINK]
[ro.product.model]: [S4]
[ro.product.name]: [S4]
[ro.product.odm.brand]: [XTEINK]
[ro.product.odm.device]: [S4]
[ro.product.odm.manufacturer]: [XTEINK]
[ro.product.odm.model]: [S4]
[ro.product.odm.name]: [S4]
[ro.product.ota.host]: [120.79.104.199:2300]
[ro.product.product.brand]: [XTEINK]
[ro.product.product.device]: [S4]
[ro.product.product.manufacturer]: [XTEINK]
[ro.product.product.model]: [S4]
[ro.product.product.name]: [S4]
[ro.product.system.brand]: [XTEINK]
[ro.product.system.device]: [S4]
[ro.product.system.manufacturer]: [XTEINK]
[ro.product.system.model]: [S4]
[ro.product.system.name]: [S4]
[ro.product.system_ext.brand]: [XTEINK]
[ro.product.system_ext.device]: [S4]
[ro.product.system_ext.manufacturer]: [XTEINK]
[ro.product.system_ext.model]: [S4]
[ro.product.system_ext.name]: [S4]
[ro.product.usbfactory]: [rockchip_usb]
[ro.product.vendor.brand]: [XTEINK]
[ro.product.vendor.device]: [S4]
[ro.product.vendor.manufacturer]: [XTEINK]
[ro.product.vendor.model]: [S4]
[ro.product.vendor.name]: [S4]
[ro.product.vndk.version]: [30]
[ro.property_service.version]: [2]
[ro.radio.noril]: [true]
[ro.revision]: [0]
[ro.rk.LowBatteryBrightness]: [false]
[ro.rk.MassStorage]: [false]
[ro.rk.bt_enable]: [true]
[ro.rk.def_brightness]: [200]
[ro.rk.flash_enable]: [true]
[ro.rk.hdmi_enable]: [true]
[ro.rk.homepage_base]: []
[ro.rk.install_non_market_apps]: [false]
[ro.rk.screenoff_time]: [300000]
[ro.rk.screenshot_enable]: [true]
[ro.rk.systembar.tabletUI]: [false]
[ro.rk.systembar.voiceicon]: [true]
[ro.rksdk.version]: [ANDROID11_RKR12]
[ro.safemode.disabled]: [true]
[ro.secure]: [1]
[ro.serialno]: [SA4B03CN2608083015X]
[ro.sf.hwrotation]: [0]
[ro.sf.lcd_density]: [219]
[ro.statsd.enable]: [true]
[ro.statusbar.panel_seek]: [true]
[ro.statusbar.panel_type]: [wetao1]
[ro.system.build.date]: [Mon Aug 17 15:22:45 CST 2026]
[ro.system.build.date.utc]: [1786951365]
[ro.system.build.fingerprint]: [rockchip/rk3326_go/rk3326_go:11/RD2A.211001.002/wetao18608171522:user/release-keys]
[ro.system.build.id]: [RD2A.211001.002]
[ro.system.build.tags]: [release-keys]
[ro.system.build.type]: [user]
[ro.system.build.version.incremental]: [eng.wetao1.20260817.152741]
[ro.system.build.version.release]: [11]
[ro.system.build.version.release_or_codename]: [11]
[ro.system.build.version.sdk]: [30]
[ro.system_ext.build.date]: [Mon Aug 17 15:22:45 CST 2026]
[ro.system_ext.build.date.utc]: [1786951365]
[ro.system_ext.build.fingerprint]: [rockchip/rk3326_go/rk3326_go:11/RD2A.211001.002/wetao18608171522:user/release-keys]
[ro.system_ext.build.id]: [RD2A.211001.002]
[ro.system_ext.build.tags]: [release-keys]
[ro.system_ext.build.type]: [user]
[ro.system_ext.build.version.incremental]: [eng.wetao1.20260817.152741]
[ro.system_ext.build.version.release]: [11]
[ro.system_ext.build.version.release_or_codename]: [11]
[ro.system_ext.build.version.sdk]: [30]
[ro.target.product]: [tablet]
[ro.tether.denied]: [false]
[ro.treble.enabled]: [true]
[ro.vendor.build.date]: [Mon Aug 17 15:22:45 CST 2026]
[ro.vendor.build.date.utc]: [1786951365]
[ro.vendor.build.fingerprint]: [rockchip/rk3326_go/rk3326_go:11/RD2A.211001.002/wetao18608171522:user/release-keys]
[ro.vendor.build.id]: [RD2A.211001.002]
[ro.vendor.build.security_patch]: [2021-10-01]
[ro.vendor.build.tags]: [release-keys]
[ro.vendor.build.type]: [user]
[ro.vendor.build.version.incremental]: [eng.wetao1.20260817.152741]
[ro.vendor.build.version.release]: [11]
[ro.vendor.build.version.release_or_codename]: [11]
[ro.vendor.build.version.sdk]: [30]
[ro.vendor.mpp_buf_type]: [1]
[ro.vendor.product.cpu.abilist]: [armeabi-v7a,armeabi]
[ro.vendor.product.cpu.abilist32]: [armeabi-v7a,armeabi]
[ro.vendor.product.cpu.abilist64]: []
[ro.vendor.sdkversion]: [RK3326_ANDROID10.0_MID_V1.0]
[ro.vendor.stamp]: [2b20ed5e22105039ccf7c2e4e12de626 -]
[ro.vendor.udisk.visible]: [true]
[ro.vndk.version]: [30]
[ro.wetao.display]: [2]
[ro.wetao.el.shelf_main]: [all]
[ro.wetao.font.language]: [true]
[ro.wetao.model]: [S4]
[ro.wetao.rotate_enable]: [false]
[ro.wetao.screenlock_enable]: [false]
[ro.wetao.weread.volumekey.flip]: [true]
[ro.wetao.wifi]: [rtl8723ds]
[ro.wetao.wifi.sleep_timer]: [30000]
[ro.wifi.channels]: []
[ro.zram.mark_idle_delay_mins]: [60]
[ro.zygote]: [zygote32]
[security.perf_harden]: [1]
[selinux.restorecon_recursive]: [/data/misc_ce/0]
[service.bootanim.exit]: [1]
[service.sf.present_timestamp]: [0]
[sf.power.control]: [2073600]
[sys.ID.mID]: [3]
[sys.api.gesturekey.lock]: [back]
[sys.bluetooth.enable]: [0]
[sys.boot.reason]: [shutdown,]
[sys.boot.reason.last]: [shutdown,]
[sys.boot_completed]: [1]
[sys.bootstat.first_boot_completed]: [1]
[sys.bugreport_reason]: [SYSTEM_BOOT]
[sys.eink.bt.keep_wakeup]: [1]
[sys.eink.dither]: [1]
[sys.gmali.version]: [g2p0-01eac0-x-5@0]
[sys.init.perf_lsm_hooks]: [1]
[sys.isolated_storage_snapshot]: [true]
[sys.power.connected]: [1]
[sys.rescue_boot_count]: [1]
[sys.resolution.changed]: [false]
[sys.retaildemo.enabled]: [0]
[sys.sltgltrace.result]: [PASS]
[sys.sltgltrace.status]: [1342 C]
[sys.standby.charge]: [1]
[sys.standby.nopower]: [0]
[sys.status.hidebar_enable]: [false]
[sys.sysctl.extra_free_kbytes]: [4500]
[sys.sysctl.tcp_def_init_rwnd]: [60]
[sys.system_server.start_count]: [1]
[sys.system_server.start_elapsed]: [16281]
[sys.system_server.start_uptime]: [16281]
[sys.usb.config]: [mtp,adb]
[sys.usb.configfs]: [1]
[sys.usb.controller]: [ff300000.usb]
[sys.usb.ffs.ready]: [1]
[sys.usb.mtp.device_type]: [3]
[sys.usb.state]: [mtp,adb]
[sys.use_memfd]: [false]
[sys.user.0.ce_available]: [true]
[sys.wetao.max_cached_proc]: [3]
[sys.wetao.reader.fullmode_cnt]: [10]
[sys.wetao.reader.progress_mode]: [0]
[sys.wifi.enable]: [1]
[sys.wifitracing.started]: [1]
[testing.mediascanner.skiplist]: [/mnt/shell/emulated/Android/]
[vendor.all.modules.ready]: [1]
[vendor.ghwc.commit]: [commit-id:ff5e815404]
[vendor.ghwc.version]: [0.67-rk3326-MID]
[vendor.gralloc.fb_size]: [384000]
[vendor.gralloc.no_afbc_for_fb_target_layer]: [1]
[vendor.hwc.compose_policy]: [6]
[vendor.hwc.device.aux]: []
[vendor.hwc.device.main]: [DSI]
[vold.has_adoptable]: [0]
[vold.has_quota]: [1]
[vold.has_reserved]: [1]
[wifi.interface]: [wlan0]
[wifi.supplicant_scan_interval]: [15]
[+] adb shell getprop ro.product.cpu.abi
armeabi-v7a
[+] adb shell getprop ro.board.platform
rk3326
[+] adb shell getprop ro.hardware
rk30board
[+] adb shell cat /proc/meminfo
MemTotal:        2016252 kB
MemFree:          869104 kB
MemAvailable:    1412580 kB
Buffers:            2632 kB
Cached:           526648 kB
SwapCached:            0 kB
Active:           443640 kB
Inactive:         404948 kB
Active(anon):     323588 kB
Inactive(anon):     3948 kB
Active(file):     120052 kB
Inactive(file):   401000 kB
Unevictable:        4152 kB
Mlocked:            2580 kB
SwapTotal:       1512184 kB
SwapFree:        1512184 kB
Dirty:                24 kB
Writeback:             0 kB
AnonPages:        323416 kB
Mapped:           305976 kB
Shmem:              6280 kB
KReclaimable:      60680 kB
Slab:             145016 kB
SReclaimable:      53616 kB
SUnreclaim:        91400 kB
KernelStack:       14416 kB
PageTables:        19460 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     2520308 kB
Committed_AS:   14307772 kB
VmallocTotal:   263061440 kB
VmallocUsed:       34548 kB
VmallocChunk:          0 kB
Percpu:             3424 kB
CmaTotal:          16384 kB
CmaAllocated:       1296 kB
CmaReleased:       15088 kB
CmaFree:               0 kB
[+] adb shell dumpsys battery
Current Battery Service state:
  AC powered: false
  USB powered: true
  Wireless powered: false
  Max charging current: 500
  Max charging voltage: 4350
  Charge counter: 1
  status: 2
  health: 2
  present: true
  level: 98
  scale: 100
  voltage: 4228
  current: 326000
  temperature: 270
  technology: 
[+] adb shell dumpsys display
DISPLAY MANAGER (dumpsys display)
  mOnlyCode=false
  mSafeMode=false
  mPendingTraversal=false
  mGlobalDisplayState=ON
  mNextNonDefaultDisplayId=1
  mViewports=[DisplayViewport{type=INTERNAL, valid=true, isActive=true, displayId=0, uniqueId='local:0', physicalPort=0, orientation=0, logicalFrame=Rect(0, 0 - 480, 800), physicalFrame=Rect(0, 0 - 480, 800), deviceWidth=480, deviceHeight=800}]
  mDefaultDisplayDefaultColorMode=0
  mSingleDisplayDemoMode=false
  mWifiDisplayScanRequestCount=0
  mStableDisplaySize=Point(480, 800)
  mMinimumBrightnessCurve=[(0.0, 0.0), (2000.0, 50.0), (4000.0, 90.0)]

Display Adapters: size=3
  LocalDisplayAdapter
  VirtualDisplayAdapter
  OverlayDisplayAdapter
    mCurrentOverlaySetting=
    mOverlays: size=0

Display Devices: size=1

  DisplayDeviceInfo{"quot;Built-in Screen"quot;: uniqueId="quot;local:0"quot;, 480 x 800, modeId 1, defaultModeId 1, supportedModes [{id=1, width=480, height=800, fps=78.00001}], colorMode 0, supportedColorModes [0], HdrCapabilities HdrCapabilities{mSupportedHdrTypes=[], mMaxLuminance=500.0, mMaxAverageLuminance=500.0, mMinLuminance=0.0}, allmSupported false, gameContentTypeSupported false, density 219, 79.686 x 239.058 dpi, appVsyncOff 2000000, presDeadline 12820512, touch INTERNAL, rotation 0, type INTERNAL, address {port=0}, deviceProductInfo null, state ON, FLAG_DEFAULT_DISPLAY, FLAG_ROTATES_WITH_CONTENT, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS}
    mAdapter=LocalDisplayAdapter
    mUniqueId=local:0
    mDisplayToken=android.os.BinderProxy@205897b
    mCurrentLayerStack=0
    mCurrentOrientation=0
    mCurrentLayerStackRect=Rect(0, 0 - 480, 800)
    mCurrentDisplayRect=Rect(0, 0 - 480, 800)
    mCurrentSurface=null
    mPhysicalDisplayId=0
    mDisplayModeSpecs={baseModeId=1 primaryRefreshRateRange=[0 Infinity] appRequestRefreshRateRange=[0 Infinity]}
    mDisplayModeSpecsInvalid=false
    mActiveConfigId=0
    mActiveModeId=1
    mActiveColorMode=0
    mDefaultModeId=1
    mState=ON
    mBrightnessState=0.3503937
    mBacklight=com.android.server.lights.LightsService$LightImpl@c613398
    mAllmSupported=false
    mAllmRequested=false
    mGameContentTypeSupported=false
    mGameContentTypeRequested=false
    mDisplayInfo=DisplayInfo{isInternal=true, density=1.36875, secure=true, deviceProductInfo=null}
    mDisplayConfigs=
      DisplayConfig{width=480, height=800, xDpi=79.686, yDpi=239.058, refreshRate=78.00001, appVsyncOffsetNanos=2000000, presentationDeadlineNanos=12820512, configGroup=-1}
    mSupportedModes=
      DisplayModeRecord{mMode={id=1, width=480, height=800, fps=78.00001}}
    mSupportedColorModes=[0]
Logical Displays: size=1
  Display 0:
mDisplayId=0
    mLayerStack=0
    mHasContent=true
    mDesiredDisplayModeSpecs={baseModeId=1 primaryRefreshRateRange=[0 Infinity] appRequestRefreshRateRange=[0 Infinity]}
    mRequestedColorMode=0
    mDisplayOffset=(0, 0)
    mDisplayScalingDisabled=false
    mPrimaryDisplayDevice=Built-in Screen
    mBaseDisplayInfo=DisplayInfo{"quot;Built-in Screen"quot;, displayId 0, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS, FLAG_TRUSTED, real 480 x 800, largest app 480 x 800, smallest app 480 x 800, appVsyncOff 2000000, presDeadline 12820512, mode 1, defaultMode 1, modes [{id=1, width=480, height=800, fps=78.00001}], hdrCapabilities HdrCapabilities{mSupportedHdrTypes=[], mMaxLuminance=500.0, mMaxAverageLuminance=500.0, mMinLuminance=0.0}, minimalPostProcessingSupported false, rotation 0, state ON, type INTERNAL, uniqueId "quot;local:0"quot;, app 480 x 800, density 219 (79.686 x 239.058) dpi, layerStack 0, colorMode 0, supportedColorModes [0], address {port=0}, deviceProductInfo null, removeMode 0}
    mOverrideDisplayInfo=DisplayInfo{"quot;Built-in Screen"quot;, displayId 0, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS, FLAG_TRUSTED, real 480 x 800, largest app 800 x 748, smallest app 480 x 428, appVsyncOff 2000000, presDeadline 12820512, mode 1, defaultMode 1, modes [{id=1, width=480, height=800, fps=78.00001}], hdrCapabilities HdrCapabilities{mSupportedHdrTypes=[], mMaxLuminance=500.0, mMaxAverageLuminance=500.0, mMinLuminance=0.0}, minimalPostProcessingSupported false, rotation 0, state OFF, type INTERNAL, uniqueId "quot;local:0"quot;, app 480 x 800, density 219 (79.686 x 239.058) dpi, layerStack 0, colorMode 0, supportedColorModes [0], address {port=0}, deviceProductInfo null, removeMode 0}
    mRequestedMinimalPostProcessing=false

DisplayModeDirector
  mSupportedModesByDisplay:
    0 ->gt; [{id=1, width=480, height=800, fps=78.00001}]
  mDefaultModeByDisplay:
    0 ->gt; {id=1, width=480, height=800, fps=78.00001}
  mVotesByDisplay:
    -1:
      PRIORITY_USER_SETTING_MIN_REFRESH_RATE ->gt; Vote{width=-1, height=-1, minRefreshRate=0.0, maxRefreshRate=Infinity}
      PRIORITY_DEFAULT_REFRESH_RATE ->gt; Vote{width=-1, height=-1, minRefreshRate=0.0, maxRefreshRate=60.0}
  SettingsObserver
    mDefaultRefreshRate: 60.0
    mDefaultPeakRefreshRate: 0.0
  AppRequestObserver
    mAppRequestedModeByDisplay:
  BrightnessObserver
    mAmbientLux: -1.0
    mBrightness: 90
    mDefaultDisplayState: 2
    mLowPowerModeEnabled: false
    mRefreshRateChangeable: false
    mShouldObserveDisplayLowChange: false
    mShouldObserveAmbientLowChange: false
    mRefreshRateInLowZone: 0
    mShouldObserveDisplayHighChange: false
    mShouldObserveAmbientHighChange: false
    mRefreshRateInHighZone: 0
    mLastSensorData: 0.0
    mTimestamp: 1970-01-01 01:00:00.000

Callbacks: size=25
  0: mPid=389, mWifiDisplayScanRequested=false
  1: mPid=537, mWifiDisplayScanRequested=false
  2: mPid=684, mWifiDisplayScanRequested=false
  3: mPid=703, mWifiDisplayScanRequested=false
  4: mPid=723, mWifiDisplayScanRequested=false
  5: mPid=743, mWifiDisplayScanRequested=false
  6: mPid=901, mWifiDisplayScanRequested=false
  7: mPid=953, mWifiDisplayScanRequested=false
  8: mPid=978, mWifiDisplayScanRequested=false
  9: mPid=1001, mWifiDisplayScanRequested=false
  10: mPid=1019, mWifiDisplayScanRequested=false
  11: mPid=1039, mWifiDisplayScanRequested=false
  12: mPid=1060, mWifiDisplayScanRequested=false
  13: mPid=1079, mWifiDisplayScanRequested=false
  14: mPid=1144, mWifiDisplayScanRequested=false
  15: mPid=1198, mWifiDisplayScanRequested=false
  16: mPid=1206, mWifiDisplayScanRequested=false
  17: mPid=1268, mWifiDisplayScanRequested=false
  18: mPid=1288, mWifiDisplayScanRequested=false
  19: mPid=1307, mWifiDisplayScanRequested=false
  20: mPid=1328, mWifiDisplayScanRequested=false
  21: mPid=1347, mWifiDisplayScanRequested=false
  22: mPid=1383, mWifiDisplayScanRequested=false
  23: mPid=1431, mWifiDisplayScanRequested=false
  24: mPid=1454, mWifiDisplayScanRequested=false

Display Power Controller Locked State:
  mDisplayReadyLocked=true
  mPendingRequestLocked=policy=BRIGHT, useProximitySensor=false, screenBrightnessOverride=NaN, useAutoBrightness=false, screenAutoBrightnessAdjustmentOverride=NaN, screenLowPowerBrightnessFactor=1.0, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=NaN, dozeScreenState=UNKNOWN
  mPendingRequestChangedLocked=false
  mPendingWaitForNegativeProximityLocked=false
  mPendingUpdatePowerStateLocked=false

Display Power Controller Configuration:
  mScreenBrightnessDozeConfig=0.0
  mScreenBrightnessDimConfig=0.05
  mScreenBrightnessDefault=0.39763778
  mScreenBrightnessForVrRangeMinimum=0.307087
  mScreenBrightnessForVrRangeMaximum=1.0
  mScreenBrightnessForVrDefault=0.33464
  mUseSoftwareAutoBrightnessConfig=true
  mAllowAutoBrightnessWhileDozingConfig=false
  mSkipScreenOnBrightnessRamp=false
  mColorFadeFadesConfig=false
  mColorFadeEnabled=false
  mDisplayBlanksAfterDozeConfig=false
  mBrightnessBucketsInDozeConfig=false

Display Power Controller Thread State:
  mPowerRequest=policy=BRIGHT, useProximitySensor=false, screenBrightnessOverride=NaN, useAutoBrightness=false, screenAutoBrightnessAdjustmentOverride=NaN, screenLowPowerBrightnessFactor=1.0, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=NaN, dozeScreenState=UNKNOWN
  mUnfinishedBusiness=false
  mWaitingForNegativeProximity=false
  mProximitySensor=null
  mProximitySensorEnabled=false
  mProximityThreshold=0.0
  mProximity=Unknown
  mPendingProximity=Unknown
  mPendingProximityDebounceTime=-1 (1730789 ms ago)
  mScreenOffBecauseOfProximity=false
  mLastUserSetScreenBrightnessFloat=0.0
  mPendingScreenBrightnessSettingFloat=NaN
  mTemporaryScreenBrightnessFloat=NaN
  mAutoBrightnessAdjustment=0.0
  mBrightnessReason=manual
  mTemporaryAutoBrightnessAdjustment=NaN
  mPendingAutoBrightnessAdjustment=NaN
  mScreenBrightnessForVrFloat=0.33464
  mAppliedAutoBrightness=false
  mAppliedDimming=false
  mAppliedLowPower=false
  mAppliedScreenBrightnessOverride=false
  mAppliedTemporaryBrightness=false
  mDozing=false
  mSkipRampState=RAMP_STATE_SKIP_NONE
  mScreenOnBlockStartRealTime=3161920
  mScreenOffBlockStartRealTime=3157676
  mPendingScreenOnUnblocker=null
  mPendingScreenOffUnblocker=null
  mPendingScreenOff=false
  mReportedToPolicy=REPORTED_TO_POLICY_SCREEN_ON
  mScreenBrightnessRampAnimator.isAnimating()=false

Display Power State:
  mScreenState=ON
  mScreenBrightness=0.3503937
  mScreenReady=true
  mScreenUpdatePending=false
  mColorFadePrepared=false
  mColorFadeLevel=1.0
  mColorFadeReady=true
  mColorFadeDrawPending=false

Photonic Modulator State:
  mPendingState=ON
  mPendingBacklight=0.3503937
  mActualState=ON
  mActualBacklight=0.3503937
  mStateChangeInProgress=false
  mBacklightChangeInProgress=false

Automatic Brightness Controller Configuration:
  mScreenBrightnessRangeMinimum=0.035433073
  mScreenBrightnessRangeMaximum=1.0
  mDozeScaleFactor=1.0
  mInitialLightSensorRate=250
  mNormalLightSensorRate=250
  mLightSensorWarmUpTimeConfig=0
  mBrighteningLightDebounceConfig=4000
  mDarkeningLightDebounceConfig=8000
  mResetAmbientLuxAfterWarmUpConfig=true
  mAmbientLightHorizon=10000
  mWeightingIntercept=10000

Automatic Brightness Controller State:
  mLightSensor=null
  mLightSensorEnabled=false
  mLightSensorEnableTime=0 (1730788 ms ago)
  mCurrentLightSensorRate=-1
  mAmbientLux=0.0
  mAmbientLuxValid=false
  mAmbientBrighteningThreshold=0.0
  mAmbientDarkeningThreshold=0.0
  mScreenBrighteningThreshold=0.0
  mScreenDarkeningThreshold=0.0
  mLastObservedLux=0.0
  mLastObservedLuxTime=0 (1730789 ms ago)
  mRecentLightSamples=0
  mAmbientLightRingBuffer=[]
  mScreenAutoBrightness=NaN
  mDisplayPolicy=BRIGHT
  mShortTermModelTimeout=300000
  mShortTermModelAnchor=-1.0
  mShortTermModelValid=true
  mBrightnessAdjustmentSamplePending=false
  mBrightnessAdjustmentSampleOldLux=0.0
  mBrightnessAdjustmentSampleOldBrightness=0.0
  mForegroundAppPackageName=null
  mPendingForegroundAppPackageName=null
  mForegroundAppCategory=-1
  mPendingForegroundAppCategory=-1

SimpleMappingStrategy
  mSpline=MonotoneCubicSpline{[(0.0, 0.035433073: 0.013600573), (11.0, 0.18503937: 0.0), (41.0, 0.18503937: 0.0), (91.0, 0.2992126: 0.0019572554), (161.0, 0.41338584: 0.0016332092), (226.0, 0.51968503: 0.00146004), (321.0, 0.6417323: 8.269012E-4), (641.0, 0.7598425: 2.7989666E-4), (1281.0, 0.88188976: 1.4008814E-4), (2601.0, 1.0: 8.947746E-5)]}
  mMaxGamma=3.0
  mAutoBrightnessAdjustment=0.0
  mUserLux=-1.0
  mUserBrightness=-1.0

HysteresisLevels
  mBrighteningThresholds=[0.1]
  mDarkeningThresholds=[0.2]
  mThresholdLevels=[]
HysteresisLevels
  mBrighteningThresholds=[0.1]
  mDarkeningThresholds=[0.2]
  mThresholdLevels=[]

BrightnessTracker state:
  mStarted=false
  mLastBatteryLevel=NaN
  mLastBrightness=-1.0
  mLastSensorReadings.size=0
  mEventsDirty=false
  mEvents.size=0
  mWriteBrightnessTrackerStateScheduled=false
  mSensorRegistered=false
  mColorSamplingEnabled=false
  mNoFramesToSample=0
  mFrameRate=0.0


PersistentDataStore
  mLoaded=true
  mDirty=false
  RememberedWifiDisplays:
  DisplayStates:
  StableDeviceValues:
      StableDisplayWidth=480
      StableDisplayHeight=800
  BrightnessConfigurations:
[+] adb shell pm list features
feature:reqGlEsVersion=0x30002
feature:android.hardware.audio.output
feature:android.hardware.bluetooth
feature:android.hardware.bluetooth_le
feature:android.hardware.camera
feature:android.hardware.camera.any
feature:android.hardware.camera.front
feature:android.hardware.faketouch
feature:android.hardware.location
feature:android.hardware.location.network
feature:android.hardware.microphone
feature:android.hardware.opengles.aep
feature:android.hardware.ram.low
feature:android.hardware.screen.landscape
feature:android.hardware.screen.portrait
feature:android.hardware.sensor.accelerometer
feature:android.hardware.touchscreen
feature:android.hardware.usb.accessory
feature:android.hardware.usb.host
feature:android.hardware.wifi
feature:android.hardware.wifi.direct
feature:android.hardware.wifi.passpoint
feature:android.software.app_enumeration
feature:android.software.app_widgets
feature:android.software.autofill
feature:android.software.backup
feature:android.software.cant_save_state
feature:android.software.companion_device_setup
feature:android.software.connectionservice
feature:android.software.cts
feature:android.software.device_admin
feature:android.software.file_based_encryption
feature:android.software.home_screen
feature:android.software.incremental_delivery
feature:android.software.input_methods
feature:android.software.ipsec_tunnels
feature:android.software.print
feature:android.software.secure_lock_screen
feature:android.software.securely_removes_users
feature:android.software.webview
[+] adb shell dumpsys sensorservice
Captured at: 18:40:54.646
Sensor Device:
Total 1 h/w sensors, 1 running 0 disabled clients:
Sensor List:
0000000000) Accelerometer sensor      | The Android Open Source Project | ver: 1 | type: android.sensor.accelerometer(1) | perm: n/a | flags: 0x00000000
	continuous | minRate=5.00Hz | maxRate=142.86Hz | no batching | non-wakeUp | 
Fusion States:
9-axis fusion disabled (0 clients), gyro-rate= 200.00Hz, q=gt; (0), b=gt;
game fusion(no mag) disabled (0 clients), gyro-rate= 200.00Hz, q=gt; (0), b=gt;
geomag fusion (no gyro) disabled (0 clients), gyro-rate= 200.00Hz, q=gt; (0), b=gt;
Recent Sensor events:
Active sensors:
Socket Buffer size = 39 events
WakeLock Status: not held 
Mode : NORMAL
Sensor Privacy: disabled
0 active connections
0 direct connections
Previous Registrations:
[+] adb shell wm size
Physical size: 480x800
[+] adb shell wm density
Physical density: 219
[+] adb shell dumpsys thermalservice
IsStatusOverride: false
ThermalEventListeners:
	callbacks: 1
	killed: false
	broadcasts count: -1
ThermalStatusListeners:
	callbacks: 1
	killed: false
	broadcasts count: -1
Thermal Status: 0
Cached temperatures:
HAL Ready: false
[+] adb shell dumpsys SurfaceFlinger
Build configuration: [sf PRESENT_TIME_OFFSET=0 FORCE_HWC_FOR_RBG_TO_YUV=0 MAX_VIRT_DISPLAY_DIM=0 RUNNING_WITHOUT_SYNC_FRAMEWORK=0 NUM_FRAMEBUFFER_SURFACE_BUFFERS=3] [libui] [libgui]

Display identification data:
Display 0 (HWC display 1): no identification data

Wide-Color information:
Device has wide color built-in display: 0
Device uses color management: 1
DisplayColorSetting: Managed
Display 0 color modes:
    ColorMode::NATIVE (0)
    Current color mode: ColorMode::NATIVE (0)

Sync configuration: [using: EGL_ANDROID_native_fence_sync EGL_KHR_wait_sync]

Scheduler:
+  Idle timer: off
+  Touch timer: off
+  Use content detection: off

ScreenOff: 0d00:03:53.946
78fps: 0d00:37:16.315

           app phase:   2000000 ns	         SF phase:   1000000 ns
     early app phase:   2000000 ns	   early SF phase:   1000000 ns
  GL early app phase:   2000000 ns	GL early SF phase:   1000000 ns
next VSYNC threshold: 9223372036854775807 ns
      present offset:         0 ns	     VSYNC period:  12820512 ns

DesiredDisplayConfigSpecs (DisplayManager): default config ID: 0, primary range: [0.00 inf], app request range: [0.00 inf]

(config override by backdoor: no)

app: state=Idle VSyncState={displayId=0, count=5024}
  pending events (count=0):
  connections (count=16):
    Connection{0xe8210a90, VSyncRequest::None}
    Connection{0xe8210f90, VSyncRequest::None}
    Connection{0xe8211030, VSyncRequest::None}
    Connection{0xe8210fe0, VSyncRequest::None}
    Connection{0xe8211170, VSyncRequest::None}
    Connection{0xe8211120, VSyncRequest::None}
    Connection{0xe8211260, VSyncRequest::None}
    Connection{0xe82129d0, VSyncRequest::None}
    Connection{0xe82130b0, VSyncRequest::None}
    Connection{0xe8213330, VSyncRequest::None}
    Connection{0xe8212110, VSyncRequest::None}
    Connection{0xe8212980, VSyncRequest::None}
    Connection{0xe8212a70, VSyncRequest::None}
    Connection{0xe8212070, VSyncRequest::None}
    Connection{0xe82113f0, VSyncRequest::None}
    Connection{0xe8211f80, VSyncRequest::None}
present fences are used
mPeriod: 12768000 ns (78.321 fps)
mPhase: -2499 ns
mError: 0 ns (sqrt=0.0)
mNumResyncSamplesSincePresent: 4 (limit 4)
mNumResyncSamples: 6 (max 32)
mResyncSamples:
  2471011298000
  2471024100000 (+12802000)
  2471036858000 (+12758000)
  2471049628000 (+12770000)
  2471062403000 (+12775000)
  2471075169000 (+12766000)
mPresentFences [8]:
  [invalid fence]
  [invalid fence]
  [invalid fence]
  [invalid fence]
  [invalid fence]
  [invalid fence]
  [invalid fence]
  2471037686014  (8375.715 ms ago)
current monotonic time: 2479413401231

Static screen stats:
  gt; gt; gt; gt;
  [com.android.settings/com.android.settings.SubSettings#0] 54.54 0.004 0.236 0.764
  [com.android.settings/com.android.settings.Settings$MyDeviceInfoActivity#0] 2.74 0.350 0.703 0.297
  [com.android.settings/com.android.settings.SubSettings#1] 1.28 0.000 0.787 0.213
  [com.android.settings/com.android.settings.Settings$SystemDashboardActivity#0] 0.98 0.149 0.719 0.281
  [android.rockchip.update.service/android.rockchip.update.service.OtaUpdateNotifyActivity#0] 0.85 0.000 0.000 1.000
  [com.android.systemui/com.android.systemui.usb.UsbDebuggingActivity#0] 0.27 0.000 0.000 1.000

Visible layers (count = 44)
GraphicBufferProducers: 5, max 4096
Composition layers
* Layer 0xe5b93800 (com.android.systemui.ImageWallpaper#0)
      isSecure=false geomUsesSourceCrop=true geomBufferUsesDisplayInverseTransform=false geomLayerTransform 0x00000000 (ROT_0 ) 0x05 (SCALE TRANSLATE )
    0.6875  0.0000  -24.0000
    0.0000  0.6875  -40.0000
    0.0000  0.0000  1.0000

      geomBufferSize=[0 0 1280 1280] geomContentCrop=[0 0 1280 1280] geomCrop=[0 0 -1 -1] geomBufferTransform=0 
        Region transparentRegionHint (this=0xe7e9816c, count=1)
    [  0,   0,   0,   0]
      geomLayerBounds=[34.909088 58.181816 733.090820 1221.818115]       shadowRadius=0.000000 
      blend=NONE (1) alpha=1.000000 backgroundBlurRadius=0 
      type=2013 appId=10099 composition type=DEVICE (2) 
      buffer: slot=1 buffer=0xe8140fa0 
      sideband stream=0x0 
      color=[0.000000 0.000000 0.000000] 
      isOpaque=true hasProtectedContent=false isColorspaceAgnostic=false dataspace=UNKNOWN (0) hdr metadata types=0 colorTransform=[[1.000,0.000,0.000,0.000][0.000,1.000,0.000,0.000][0.000,0.000,1.000,0.000][0.000,0.000,0.000,1.000]]
* Layer 0xe6665000 (Task=1#0)
      isSecure=false geomUsesSourceCrop=false geomBufferUsesDisplayInverseTransform=false geomLayerTransform 0x00000000 (ROT_0 ) 0x00 (IDENTITY )
    1.0000  0.0000  0.0000
    0.0000  1.0000  0.0000
    0.0000  0.0000  1.0000

      geomBufferSize=[0 0 -1 -1] geomContentCrop=[0 0 -1 -1] geomCrop=[0 0 -1 -1] geomBufferTransform=0 
        Region transparentRegionHint (this=0xe7e9456c, count=1)
    [  0,   0,   0,   0]
      geomLayerBounds=[0.000000 0.000000 480.000000 800.000000]       shadowRadius=0.000000 
      blend=NONE (1) alpha=1.000000 backgroundBlurRadius=0 
      type=0 appId=0 composition type=INVALID (0) 
      buffer: slot=-1 buffer=0x0 
      sideband stream=0x0 
      color=[0.000000 0.000000 0.000000] 
      isOpaque=true hasProtectedContent=false isColorspaceAgnostic=false dataspace=UNKNOWN (0) hdr metadata types=0 colorTransform=[[1.000,0.000,0.000,0.000][0.000,1.000,0.000,0.000][0.000,0.000,1.000,0.000][0.000,0.000,0.000,1.000]]
* Layer 0xe59ce000 (Task=39#0)
      isSecure=false geomUsesSourceCrop=false geomBufferUsesDisplayInverseTransform=false geomLayerTransform 0x00000000 (ROT_0 ) 0x00 (IDENTITY )
    1.0000  0.0000  0.0000
    0.0000  1.0000  0.0000
    0.0000  0.0000  1.0000

      geomBufferSize=[0 0 -1 -1] geomContentCrop=[0 0 -1 -1] geomCrop=[0 0 -1 -1] geomBufferTransform=0 
        Region transparentRegionHint (this=0xe58ed2ec, count=1)
    [  0,   0,   0,   0]
      geomLayerBounds=[0.000000 0.000000 480.000000 800.000000]       shadowRadius=0.000000 
      blend=NONE (1) alpha=1.000000 backgroundBlurRadius=0 
      type=0 appId=0 composition type=INVALID (0) 
      buffer: slot=-1 buffer=0x0 
      sideband stream=0x0 
      color=[0.000000 0.000000 0.000000] 
      isOpaque=true hasProtectedContent=false isColorspaceAgnostic=false dataspace=UNKNOWN (0) hdr metadata types=0 colorTransform=[[1.000,0.000,0.000,0.000][0.000,1.000,0.000,0.000][0.000,0.000,1.000,0.000][0.000,0.000,0.000,1.000]]
* Layer 0xe5b91000 (com.wetao.elauncher/com.wetao.elauncher.ui.main.MainActivity#0)
      isSecure=false geomUsesSourceCrop=true geomBufferUsesDisplayInverseTransform=false geomLayerTransform 0x00000000 (ROT_0 ) 0x00 (IDENTITY )
    1.0000  0.0000  0.0000
    0.0000  1.0000  0.0000
    0.0000  0.0000  1.0000

      geomBufferSize=[0 0 480 800] geomContentCrop=[0 0 480 800] geomCrop=[0 0 480 800] geomBufferTransform=0 
        Region transparentRegionHint (this=0xe7e96aec, count=1)
    [  0,   0,   0,   0]
      geomLayerBounds=[0.000000 0.000000 480.000000 800.000000]       shadowRadius=0.000000 
      blend=NONE (1) alpha=1.000000 backgroundBlurRadius=0 
      type=1 appId=1000 composition type=DEVICE (2) 
      buffer: slot=0 buffer=0xe8141180 
      sideband stream=0x0 
      color=[0.000000 0.000000 0.000000] 
      isOpaque=true hasProtectedContent=false isColorspaceAgnostic=false dataspace=UNKNOWN (0) hdr metadata types=0 colorTransform=[[1.000,0.000,0.000,0.000][0.000,1.000,0.000,0.000][0.000,0.000,1.000,0.000][0.000,0.000,0.000,1.000]]
* Layer 0xe5b7f000 (Surface(name=db128f6 InputMethod)/@0xf78c5cd - animation-leash#1)
      isSecure=false geomUsesSourceCrop=false geomBufferUsesDisplayInverseTransform=false geomLayerTransform 0x00000000 (ROT_0 ) 0x01 (TRANSLATE )
    1.0000  0.0000  0.0000
    0.0000  1.0000  800.0000
    0.0000  0.0000  1.0000

      geomBufferSize=[0 0 -1 -1] geomContentCrop=[0 0 -1 -1] geomCrop=[0 0 -1 -1] geomBufferTransform=0 
        Region transparentRegionHint (this=0xe7e97c6c, count=1)
    [  0,   0,   0,   0]
      geomLayerBounds=[0.000000 -800.000000 480.000000 0.000000]       shadowRadius=0.000000 
      blend=NONE (1) alpha=1.000000 backgroundBlurRadius=0 
      type=0 appId=0 composition type=INVALID (0) 
      buffer: slot=-1 buffer=0x0 
      sideband stream=0x0 
      color=[0.000000 0.000000 0.000000] 
      isOpaque=true hasProtectedContent=false isColorspaceAgnostic=false dataspace=UNKNOWN (0) hdr metadata types=0 colorTransform=[[1.000,0.000,0.000,0.000][0.000,1.000,0.000,0.000][0.000,0.000,1.000,0.000][0.000,0.000,0.000,1.000]]
* Layer 0xe5a44000 (Surface(name=db8a4ea StatusBar)/@0xf5a24d1 - animation-leash#0)
      isSecure=false geomUsesSourceCrop=false geomBufferUsesDisplayInverseTransform=false geomLayerTransform 0x00000000 (ROT_0 ) 0x00 (IDENTITY )
    1.0000  0.0000  0.0000
    0.0000  1.0000  0.0000
    0.0000  0.0000  1.0000

      geomBufferSize=[0 0 -1 -1] geomContentCrop=[0 0 -1 -1] geomCrop=[0 0 -1 -1] geomBufferTransform=0 
        Region transparentRegionHint (this=0xe58ed7ec, count=1)
    [  0,   0,   0,   0]
      geomLayerBounds=[0.000000 0.000000 480.000000 800.000000]       shadowRadius=0.000000 
      blend=NONE (1) alpha=1.000000 backgroundBlurRadius=0 
      type=0 appId=0 composition type=INVALID (0) 
      buffer: slot=-1 buffer=0x0 
      sideband stream=0x0 
      color=[0.000000 0.000000 0.000000] 
      isOpaque=true hasProtectedContent=false isColorspaceAgnostic=false dataspace=UNKNOWN (0) hdr metadata types=0 colorTransform=[[1.000,0.000,0.000,0.000][0.000,1.000,0.000,0.000][0.000,0.000,1.000,0.000][0.000,0.000,0.000,1.000]]
* Layer 0xe59e0800 (StatusBar#0)
      isSecure=false geomUsesSourceCrop=true geomBufferUsesDisplayInverseTransform=false geomLayerTransform 0x00000000 (ROT_0 ) 0x00 (IDENTITY )
    1.0000  0.0000  0.0000
    0.0000  1.0000  0.0000
    0.0000  0.0000  1.0000

      geomBufferSize=[0 0 480 52] geomContentCrop=[0 0 480 52] geomCrop=[0 0 480 52] geomBufferTransform=0 
        Region transparentRegionHint (this=0xe7e988ec, count=1)
    [  0,   0,   0,   0]
      geomLayerBounds=[0.000000 0.000000 480.000000 52.000000]       shadowRadius=0.000000 
      blend=PREMULTIPLIED (2) alpha=1.000000 backgroundBlurRadius=0 
      type=2000 appId=10099 composition type=DEVICE (2) 
      buffer: slot=2 buffer=0xe8143200 
      sideband stream=0x0 
      color=[0.000000 0.000000 0.000000] 
      isOpaque=false hasProtectedContent=false isColorspaceAgnostic=true dataspace=UNKNOWN (0) hdr metadata types=0 colorTransform=[[1.000,0.000,0.000,0.000][0.000,1.000,0.000,0.000][0.000,0.000,1.000,0.000][0.000,0.000,0.000,1.000]]
* Layer 0xe5a42000 (Surface(name=df6112c NavigationBar0)/@0xb3f8b36 - animation-leash#0)
      isSecure=false geomUsesSourceCrop=false geomBufferUsesDisplayInverseTransform=false geomLayerTransform 0x00000000 (ROT_0 ) 0x01 (TRANSLATE )
    1.0000  0.0000  0.0000
    0.0000  1.0000  800.0000
    0.0000  0.0000  1.0000

      geomBufferSize=[0 0 -1 -1] geomContentCrop=[0 0 -1 -1] geomCrop=[0 0 -1 -1] geomBufferTransform=0 
        Region transparentRegionHint (this=0xe58eda6c, count=1)
    [  0,   0,   0,   0]
      geomLayerBounds=[0.000000 -800.000000 480.000000 0.000000]       shadowRadius=0.000000 
      blend=NONE (1) alpha=1.000000 backgroundBlurRadius=0 
      type=0 appId=0 composition type=INVALID (0) 
      buffer: slot=-1 buffer=0x0 
      sideband stream=0x0 
      color=[0.000000 0.000000 0.000000] 
      isOpaque=true hasProtectedContent=false isColorspaceAgnostic=false dataspace=UNKNOWN (0) hdr metadata types=0 colorTransform=[[1.000,0.000,0.000,0.000][0.000,1.000,0.000,0.000][0.000,0.000,1.000,0.000][0.000,0.000,0.000,1.000]]
* Layer 0xe59de000 (NavigationBar0#0)
      isSecure=false geomUsesSourceCrop=false geomBufferUsesDisplayInverseTransform=false geomLayerTransform 0x00000000 (ROT_0 ) 0x01 (TRANSLATE )
    1.0000  0.0000  0.0000
    0.0000  1.0000  800.0000
    0.0000  0.0000  1.0000

      geomBufferSize=[0 0 -1 -1] geomContentCrop=[0 0 -1 -1] geomCrop=[0 0 -1 -1] geomBufferTransform=0 
        Region transparentRegionHint (this=0xe7e983ec, count=1)
    [  0,   0,   0,   0]
      geomLayerBounds=[0.000000 -800.000000 480.000000 0.000000]       shadowRadius=0.000000 
      blend=PREMULTIPLIED (2) alpha=1.000000 backgroundBlurRadius=0 
      type=0 appId=0 composition type=INVALID (0) 
      buffer: slot=-1 buffer=0x0 
      sideband stream=0x0 
      color=[0.000000 0.000000 0.000000] 
      isOpaque=false hasProtectedContent=false isColorspaceAgnostic=false dataspace=UNKNOWN (0) hdr metadata types=0 colorTransform=[[1.000,0.000,0.000,0.000][0.000,1.000,0.000,0.000][0.000,0.000,1.000,0.000][0.000,0.000,0.000,1.000]]
Displays (1 entries)
+ DisplayDevice{0, internal, primary, "quot;Internal display"quot;}
   powerMode=On (2), activeConfig=0,    Composition Display State: ["quot;Internal display"quot;]
   isVirtual=false hwcId=0 
   isEnabled=true isSecure=true usesClientComposition=true usesDeviceComposition=false flipClientTarget=false reusedClientComposition=false layerStack=0 layerStackInternal=true 
   transform 0x00000000 (ROT_0 ) 0x00 (IDENTITY )
    1.0000  0.0000  -0.0000
    0.0000  1.0000  -0.0000
    0.0000  0.0000  1.0000

   bounds=[0 0 480 800] frame=[0 0 480 800] viewport=[0 0 480 800] sourceClip=[0 0 480 800] destinationClip=[0 0 480 800] needsFiltering=false 
   colorMode=NATIVE (0) renderIntent=COLORIMETRIC (0) dataspace=UNKNOWN (0) colorTransformMatrix=[[1.000,0.000,0.000,0.000][0.000,1.000,0.000,0.000][0.000,0.000,1.000,0.000][0.000,0.000,0.000,1.000]]target dataspace=UNKNOWN (0) 
   Composition Display Color State:
   HWC Support: wideColorGamut=false hdr10plus=false hdr10=false hlg=false dv=false metadata=0 
   Composition RenderSurface State:
   size=[480 800] ANativeWindow=0xe6bd5c08 (format 1) flips=4855 
  FramebufferSurface: dataspace: Default(0)
   mAbandoned=0
   - BufferQueue mMaxAcquiredBufferCount=2 mMaxDequeuedBufferCount=1
     mDequeueBufferCannotBlock=0 mAsyncMode=0
     mQueueBufferCanDrop=0 mLegacyBufferDrop=1
     default-size=[480x800] default-format=1      transform-hint=00 frame-counter=305
     mTransformHintInUse=00 mAutoPrerotation=0
   FIFO(0):
   (mConsumerName=FramebufferSurface, mConnectedApi=1, mConsumerUsageBits=6656, mId=a600000000, producer=[208:???], consumer=[166:/system/bin/surfaceflinger])
   Slots:
    >gt;[01:0xe8140b40] state=ACQUIRED 0xe7c3c300 frame=305 [ 480x 800:   0,  1]
     [00:0xe8140a00] state=FREE     0xe7c3c200 frame=303 [ 480x 800:   0,  1]
     [02:0xe8140c80] state=FREE     0xe7c3c400 frame=304 [ 480x 800:   0,  1]

   2 Layers
  - Output Layer 0xe5f12800(com.wetao.elauncher/com.wetao.elauncher.ui.main.MainActivity#0)
        Region visibleRegion (this=0xe5f12810, count=1)
    [  0,   0, 480, 800]
        Region visibleNonTransparentRegion (this=0xe5f12864, count=1)
    [  0,   0, 480, 800]
        Region coveredRegion (this=0xe5f128b8, count=1)
    [  0,   0, 480,  52]
        Region output visibleRegion (this=0xe5f1290c, count=1)
    [  0,   0, 480, 800]
        Region shadowRegion (this=0xe5f12960, count=1)
    [  0,   0,   0,   0]
      forceClientComposition=false clearClientTarget=false displayFrame=[0 0 480 800] sourceCrop=[0.000000 0.000000 480.000000 800.000000] bufferTransform=0 (0) dataspace=UNKNOWN (0) z-index=0 
      hwc: layer=0x0824 composition=CLIENT (1) 
  - Output Layer 0xe5cffc00(StatusBar#0)
        Region visibleRegion (this=0xe5cffc10, count=1)
    [  0,   0, 480,  52]
        Region visibleNonTransparentRegion (this=0xe5cffc64, count=1)
    [  0,   0, 480,  52]
        Region coveredRegion (this=0xe5cffcb8, count=1)
    [  0,   0,   0,   0]
        Region output visibleRegion (this=0xe5cffd0c, count=1)
    [  0,   0, 480,  52]
        Region shadowRegion (this=0xe5cffd60, count=1)
    [  0,   0,   0,   0]
      forceClientComposition=false clearClientTarget=false displayFrame=[0 0 480 52] sourceCrop=[0.000000 0.000000 480.000000 52.000000] bufferTransform=0 (0) dataspace=UNKNOWN (0) z-index=1 
      hwc: layer=0x0822 composition=CLIENT (1) 

SurfaceFlinger global state:
EGL implementation : 1.4 Bifrost-"quot;g2p0-01eac0"quot;
EGL_ANDROID_image_native_buffer EGL_ANDROID_recordable EGL_ANDROID_native_fence_sync EGL_ANDROID_framebuffer_target EGL_ANDROID_image_crop EGL_ANDROID_blob_cache EGL_KHR_partial_update EGL_KHR_mutable_render_buffer EGL_ARM_image_format EGL_KHR_config_attribs EGL_KHR_image EGL_KHR_image_base EGL_KHR_fence_sync EGL_KHR_wait_sync EGL_KHR_gl_colorspace EGL_KHR_get_all_proc_addresses EGL_IMG_context_priority EGL_KHR_no_config_context EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_EXT_yuv_surface EGL_EXT_pixel_format_float EGL_ARM_pixmap_multisample_discard EGL_ARM_implicit_external_sync EGL_KHR_gl_texture_2D_image EGL_KHR_gl_renderbuffer_image EGL_KHR_create_context EGL_KHR_surfaceless_context EGL_KHR_gl_texture_cubemap_image EGL_EXT_image_gl_colorspace EGL_EXT_create_context_robustness
GLES: ARM, Mali-G31, OpenGL ES 3.2 v1.g2p0-01eac0.a818193b06a486891a03b96b9dd972e3
GL_EXT_debug_marker GL_ARM_rgba8 GL_ARM_mali_shader_binary GL_OES_depth24 GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_EXT_read_format_bgra GL_OES_compressed_paletted_texture GL_OES_compressed_ETC1_RGB8_texture GL_OES_standard_derivatives GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_EGL_sync GL_OES_texture_npot GL_OES_vertex_half_float GL_OES_required_internalformat GL_OES_vertex_array_object GL_OES_mapbuffer GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_type_2_10_10_10_REV GL_OES_fbo_render_mipmap GL_OES_element_index_uint GL_EXT_shadow_samplers GL_OES_texture_compression_astc GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_hdr GL_KHR_texture_compression_astc_sliced_3d GL_EXT_texture_compression_astc_decode_mode GL_EXT_texture_compression_astc_decode_mode_rgb9e5 GL_KHR_debug GL_EXT_occlusion_query_boolean GL_EXT_disjoint_timer_query GL_EXT_blend_minmax GL_EXT_discard_framebuffer GL_OES_get_program_binary GL_OES_texture_3D GL_EXT_texture_storage GL_EXT_multisampled_render_to_texture GL_EXT_multisampled_render_to_texture2 GL_OES_surfaceless_context GL_OES_texture_stencil8 GL_EXT_shader_pixel_local_storage GL_ARM_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch_depth_stencil GL_ARM_mali_program_binary GL_EXT_sRGB GL_EXT_sRGB_write_control GL_EXT_texture_sRGB_decode GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_RG8 GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_OES_texture_storage_multisample_2d_array GL_OES_shader_image_atomic GL_EXT_robustness GL_EXT_draw_buffers_indexed GL_OES_draw_buffers_indexed GL_EXT_texture_border_clamp GL_OES_texture_border_clamp GL_EXT_texture_cube_map_array GL_OES_texture_cube_map_array GL_OES_sample_variables GL_OES_sample_shading GL_OES_shader_multisample_interpolation GL_EXT_shader_io_blocks GL_OES_shader_io_blocks GL_EXT_tessellation_shader GL_OES_tessellation_shader GL_EXT_primitive_bounding_box GL_OES_primitive_bounding_box GL_EXT_geometry_shader GL_OES_geometry_shader GL_ANDROID_extension_pack_es31a GL_EXT_gpu_shader5 GL_OES_gpu_shader5 GL_EXT_texture_buffer GL_OES_texture_buffer GL_EXT_copy_image GL_OES_copy_image GL_EXT_shader_non_constant_global_initializers GL_EXT_color_buffer_half_float GL_EXT_color_buffer_float GL_EXT_YUV_target GL_OVR_multiview GL_OVR_multiview2 GL_OVR_multiview_multisampled_render_to_texture GL_KHR_robustness GL_KHR_robust_buffer_access_behavior GL_EXT_draw_elements_base_vertex GL_OES_draw_elements_base_vertex GL_EXT_protected_textures GL_EXT_buffer_storage GL_EXT_external_buffer GL_EXT_EGL_image_array GL_ARM_texture_unnormalized_coordinates 
RenderEngine supports protected context: 0
RenderEngine is in protected context: 0
RenderEngine program cache size for unprotected context: 64
RenderEngine program cache size for protected context: 0
RenderEngine last dataspace conversion: (Default) to (BT709 sRGB Full range)
RenderEngine image cache size: 9
Dumping buffer ids...
0xa600000f94
0xa600000f95
0xa600000f96
0xa6000000b6
0xa6000000b5
0xa600000113
0xa600000f93
0xa6000000b4
0xa6000000b7
RenderEngine framebuffer image cache size: 3
Dumping buffer ids...
0xa600000003
0xa600000002
0xa600000001
  Region undefinedRegion (this=0xe8107738, count=1)
    [  0,   0,   0,   0]
  orientation=ROTATION_0, isPoweredOn=1
  transaction-flags         : 00000000
  gpu_to_cpu_unsupported    : 0
  refresh-rate              : 78.000005 fps
  x-dpi                     : 79.685997
  y-dpi                     : 239.057999
  transaction time: 0.000000 us
Tracing state: disabled
  number of entries: 0 (0.00MB / 0.00MB)

Display 0 HWC layers:
-----------------------------------------------------------------------------------------------------------------------------------------------
 Layer name
           Z |  Window Type |  Comp Type |  Transform |   Disp Frame (LTRB) |          Source Crop (LTRB) |     Frame Rate (Explicit) [Focused]
-----------------------------------------------------------------------------------------------------------------------------------------------
 com.wetao.elauncher/com.wetao.elauncher.ui.main.MainActivity#0
  rel      0 |            1 |     CLIENT |          0 |    0    0  480  800 |    0.0    0.0  480.0  800.0 |                              [*]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 StatusBar#0
  rel      0 |         2000 |     CLIENT |          0 |    0    0  480   52 |    0.0    0.0  480.0   52.0 |                              [ ]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

h/w composer state:
  h/w composer enabled
-- HWC2On1Adapter --
Adapting to a HWC 1.4 device
Capabilities:
  PresentFenceIsNotReliable
  SidebandStream
Displays:
  Display 1: Physical  HWC1 ID: 0  Power mode: On  Vsync: Disable
    Color modes [active]: [0]
    1 Config (* active)
    * 480 x 800 @ 78.0 Hz, DPI: 79.7 x 239.1
        HWC1 ID/Color transform: [1/0]
    2 Layers
      Client Layer  HWC2/1: 36/0  Z: 0  Buffer: 0xf09bee00
        Display frame [LTRB]: [0, 0, 480, 800]
        Source crop: [0, 0, 480, 800]
        Transform: None  Blend mode: None DataSpace: 0
        Visible Region                  Surface Damage
        [0, 0, 480, 800]                None
      Client Layer  HWC2/1: 34/1  Z: 1  Buffer: 0xf09beb00
        Display frame [LTRB]: [0, 0, 480, 52]
        Source crop: [0, 0, 480, 52]
        Transform: None  Blend mode: Premultiplied DataSpace: 0
        Visible Region                  Surface Damage
        [0, 0, 480, 52]                 None
    Client target: 0xf09be700
    Last requested HWC1 state
      Geometry changed: N
      3 Layers
        Layer 0  Composition: Framebuffer  Buffer: 0xf09bee00/-1
          Display frame: [0, 0, 480, 800]
          Source crop: [0, 0, 480, 800]
          Transform: None  Blend mode: None
        Layer 1  Composition: Framebuffer  Buffer: 0xf09beb00/-1
          Display frame: [0, 0, 480, 52]
          Source crop: [0, 0, 480, 52]
          Transform: None  Blend mode: Premultiplied
        Layer 2  Composition: FramebufferTarget  Buffer: 0xf09be700/-1
          Display frame: [0, 0, 480, 800]
          Source crop: [0, 0, 480, 800]
          Transform: None  Blend mode: Premultiplied

HWC1 dump:
DrmCompositor stats:
--DrmDisplayCompositor[0]: num_frames=33 num_ms=1106 fps=29.8373
----DrmDisplayComposition crtc=59 type=FRAME timeline[current/squash/pre-comp/done]=0/0/0/1
    Layers: count=1
DrmHwcLayer[0] buffer[w/h/format]=480/800/DRM_FORMAT_ABGR8888 transform=gt; blending[a=255]=PREMULT source_crop[x/y/w/h]=0/0/480/800 handle parameter[w/h/s]=480/800/480 display_frame[x/y/w/h]=0/0/480/800
    Planes: count=6
DrmCompositionPlane[0] plane=58 type=LAYER
DrmCompositionPlane[1] plane=57 type=DISABLE
DrmCompositionPlane[2] plane=61 type=DISABLE
DrmCompositionPlane[3] plane=62 type=DISABLE
DrmCompositionPlane[4] plane=63 type=DISABLE
DrmCompositionPlane[5] plane=60 type=DISABLE
    Squash Regions: count=0
    Pre-Comp Regions: count=0
----SquashState generation=0 history=0
    Regions: count=0
--DrmDisplayCompositor[1]: num_frames=0 num_ms=1106 fps=0
----SquashState generation=0 history=0
    Regions: count=0
GraphicBufferAllocator buffers:
0xe5baa600: unknown     |  480 (   0) x  800 |    1 |        1 | 0x40000000000b00 | com.wetao.elauncher/com.wetao.elauncher.ui.main.MainActivity#0
0xe5baa900: unknown     | 1280 (   0) x 1280 |    1 |        2 | 0x40000000000b00 | com.android.systemui.ImageWallpaper#0
0xe613b000: unknown     |  480 (   0) x  800 |    1 |        1 | 0x40000000000b00 | com.wetao.elauncher/com.wetao.elauncher.ui.main.MainActivity#0
0xe7b52700: 1500.00 KiB |  480 ( 480) x  800 |    1 |        1 | 0x333 | screenshot
0xe7b52800: 1500.00 KiB |  480 ( 480) x  800 |    1 |        1 | 0x333 | screenshot
0xe7b52a00: unknown     |  480 (   0) x   52 |    1 |        1 | 0x40000000000b00 | StatusBar#0
0xe7b52b00: unknown     |  480 (   0) x   52 |    1 |        1 | 0x40000000000b00 | StatusBar#0
0xe7b52c00: unknown     |  480 (   0) x   52 |    1 |        1 | 0x40000000000b00 | StatusBar#0
0xe7b52d00: unknown     |  480 (   0) x   52 |    1 |        1 | 0x40000000000b00 | StatusBar#0
0xe7b52e00: unknown     |  480 (   0) x  800 |    1 |        1 | 0x40000000000b00 | com.wetao.elauncher/com.wetao.elauncher.ui.main.MainActivity#0
0xe7b52f00: unknown     |  480 (   0) x  800 |    1 |        1 | 0x40000000000b00 | com.wetao.elauncher/com.wetao.elauncher.ui.main.MainActivity#0
0xe7c3c200: unknown     |  480 (   0) x  800 |    1 |        1 | 0x1a00 | FramebufferSurface
0xe7c3c300: unknown     |  480 (   0) x  800 |    1 |        1 | 0x1a00 | FramebufferSurface
0xe7c3c400: unknown     |  480 (   0) x  800 |    1 |        1 | 0x1a00 | FramebufferSurface
0xe7c3ca00: unknown     |  480 (   0) x  800 |    1 |        1 | 0x40000000000b00 | com.wetao.elauncher/com.wetao.elauncher.ui.main.MainActivity#0
0xe81e3900: unknown     |    1 (   0) x    1 |    1 |        1 | 0x300 | placeholder
Total allocated by GraphicBufferAllocator (estimate): 3000.00 KB
Imported gralloc buffers:
+ name:screenshot, id:850403525403, size:1.5e+03KiB, w/h:480x800, usage: 0x333, req fmt:1, fourcc/mod:875708993/0, compressed: false
	planes: R/G/B/A:	 w/h:480x800, stride:1920 bytes, size:1536000
+ name:screenshot, id:850403525402, size:1.5e+03KiB, w/h:480x800, usage: 0x333, req fmt:1, fourcc/mod:875708993/0, compressed: false
	planes: R/G/B/A:	 w/h:480x800, stride:1920 bytes, size:1536000
+ name:com.wetao.elauncher/com.wetao.elauncher.ui.main.MainActivity#0, id:850403525389, size:1.5e+03KiB, w/h:480x800, usage: 0x40000000000b00, req fmt:1, fourcc/mod:875708993/0, compressed: false
	planes: R/G/B/A:	 w/h:480x800, stride:1920 bytes, size:1536000
+ name:com.wetao.elauncher/com.wetao.elauncher.ui.main.MainActivity#0, id:850403525387, size:1.5e+03KiB, w/h:480x800, usage: 0x40000000000b00, req fmt:1, fourcc/mod:875708993/0, compressed: false
	planes: R/G/B/A:	 w/h:480x800, stride:1920 bytes, size:1536000
+ name:com.wetao.elauncher/com.wetao.elauncher.ui.main.MainActivity#0, id:850403525340, size:1.5e+03KiB, w/h:480x800, usage: 0x40000000000b00, req fmt:1, fourcc/mod:875708993/0, compressed: false
	planes: R/G/B/A:	 w/h:480x800, stride:1920 bytes, size:1536000
+ name:com.android.systemui.ImageWallpaper#0, id:850403524666, size:6.4e+03KiB, w/h:1280x1280, usage: 0x40000000000b00, req fmt:2, fourcc/mod:875709016/0, compressed: false
	planes: R/G/B:	 w/h:1280x1280, stride:5120 bytes, size:6553600
+ name:StatusBar#0, id:850403524657, size:98KiB, w/h:480x52, usage: 0x40000000000b00, req fmt:1, fourcc/mod:875708993/0, compressed: false
	planes: R/G/B/A:	 w/h:480x52, stride:1920 bytes, size:99840
+ name:StatusBar#0, id:850403524659, size:98KiB, w/h:480x52, usage: 0x40000000000b00, req fmt:1, fourcc/mod:875708993/0, compressed: false
	planes: R/G/B/A:	 w/h:480x52, stride:1920 bytes, size:99840
+ name:StatusBar#0, id:850403524656, size:98KiB, w/h:480x52, usage: 0x40000000000b00, req fmt:1, fourcc/mod:875708993/0, compressed: false
	planes: R/G/B/A:	 w/h:480x52, stride:1920 bytes, size:99840
+ name:com.wetao.elauncher/com.wetao.elauncher.ui.main.MainActivity#0, id:850403525390, size:1.5e+03KiB, w/h:480x800, usage: 0x40000000000b00, req fmt:1, fourcc/mod:875708993/0, compressed: false
	planes: R/G/B/A:	 w/h:480x800, stride:1920 bytes, size:1536000
+ name:StatusBar#0, id:850403524658, size:98KiB, w/h:480x52, usage: 0x40000000000b00, req fmt:1, fourcc/mod:875708993/0, compressed: false
	planes: R/G/B/A:	 w/h:480x52, stride:1920 bytes, size:99840
+ name:placeholder, id:850403524608, size:0.062KiB, w/h:1x1, usage: 0x300, req fmt:1, fourcc/mod:875708993/0, compressed: false
	planes: R/G/B/A:	 w/h:1x1, stride:64 bytes, size:64
+ name:com.wetao.elauncher/com.wetao.elauncher.ui.main.MainActivity#0, id:850403525388, size:1.5e+03KiB, w/h:480x800, usage: 0x40000000000b00, req fmt:1, fourcc/mod:875708993/0, compressed: false
	planes: R/G/B/A:	 w/h:480x800, stride:1920 bytes, size:1536000
+ name:FramebufferSurface, id:850403524610, size:1.5e+03KiB, w/h:480x800, usage: 0x1a00, req fmt:1, fourcc/mod:875708993/0, compressed: false
	planes: R/G/B/A:	 w/h:480x800, stride:1920 bytes, size:1536000
+ name:FramebufferSurface, id:850403524609, size:1.5e+03KiB, w/h:480x800, usage: 0x1a00, req fmt:1, fourcc/mod:875708993/0, compressed: false
	planes: R/G/B/A:	 w/h:480x800, stride:1920 bytes, size:1536000
+ name:FramebufferSurface, id:850403524611, size:1.5e+03KiB, w/h:480x800, usage: 0x1a00, req fmt:1, fourcc/mod:875708993/0, compressed: false
	planes: R/G/B/A:	 w/h:480x800, stride:1920 bytes, size:1536000
Total imported by gralloc: 2.2e+04KiB
TimeStats miniDump:
Number of layers currently being tracked is 0
Number of layers in the stats pool is 0

+ ContainerLayer (Root#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000002, tr=[0.00, 0.00][0.00, 0.00]
      parent=none
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (mWindowContainers#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=Root#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (DisplayArea.Root#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=mWindowContainers#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (Leaf:0:1#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=DisplayArea.Root#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (WallpaperWindowToken{1c84b2f token=android.os.Binder@478750e}#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=Leaf:0:1#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (b34735b com.android.systemui.ImageWallpaper#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=WallpaperWindowToken{1c84b2f token=android.os.Binder@478750e}#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ BufferQueueLayer (com.android.systemui.ImageWallpaper#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(-24,-40), size=(1280,1280), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=1, invalidate=0, dataspace=Default, defaultPixelFormat=RGBx_8888, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000003, tr=[0.69, 0.00][0.00, 0.69]
      parent=b34735b com.android.systemui.ImageWallpaper#0
      zOrderRelativeOf=none
      activeBuffer=[1280x1280:   0,RGBx_8888], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={windowType:2013, ownerUID:10099}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (Leaf:2:2#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        1, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=DisplayArea.Root#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (DefaultTaskDisplayArea#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        2, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=DisplayArea.Root#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ EffectLayer (Task=1#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,0), size=(   0,   0), crop=[  0,   0, 480, 800], cornerRadius=0.000000, isProtected=0, isOpaque=1, invalidate=0, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(-1.000,-1.000,-1.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=DefaultTaskDisplayArea#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={taskId:1}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ EffectLayer (Task=39#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=1, invalidate=0, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(-1.000,-1.000,-1.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=Task=1#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={taskId:39}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (ActivityRecord{2e726c1 u0 com.wetao.elauncher/.ui.main.MainActivity#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=Task=39#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (75e9b58 com.wetao.elauncher/com.wetao.elauncher.ui.main.MainActivity#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=ActivityRecord{2e726c1 u0 com.wetao.elauncher/.ui.main.MainActivity#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ BufferQueueLayer (com.wetao.elauncher/com.wetao.elauncher.ui.main.MainActivity#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=1)
    [  0,   0, 480, 800]
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,0), size=( 480, 800), crop=[  0,   0, 480, 800], cornerRadius=0.000000, isProtected=0, isOpaque=1, invalidate=0, dataspace=Default, defaultPixelFormat=RGBA_8888, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000002, tr=[0.00, 0.00][0.00, 0.00]
      parent=75e9b58 com.wetao.elauncher/com.wetao.elauncher.ui.main.MainActivity#0
      zOrderRelativeOf=none
      activeBuffer=[ 480x 800:   0,RGBA_8888], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={windowType:1, ownerUID:1000}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (ImeContainer#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        1, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=ActivityRecord{2e726c1 u0 com.wetao.elauncher/.ui.main.MainActivity#0
      zOrderRelativeOf=75e9b58 com.wetao.elauncher/com.wetao.elauncher.ui.main.MainActivity#0
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (WindowToken{31fa5ac android.os.Binder@654e75f}#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=ImeContainer#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ EffectLayer (Surface(name=db128f6 InputMethod)/@0xf78c5cd - animation-leash#1)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,800), size=(   0,   0), crop=[  0,   0,   0,   0], cornerRadius=0.000000, isProtected=0, isOpaque=1, invalidate=0, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(-1.000,-1.000,-1.000,1.000), flags=0x00000001, tr=[0.00, 0.00][0.00, 0.00]
      parent=WindowToken{31fa5ac android.os.Binder@654e75f}#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (db128f6 InputMethod#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,800), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=Surface(name=db128f6 InputMethod)/@0xf78c5cd - animation-leash#1
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (homeAnimationLayer#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        1, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=DefaultTaskDisplayArea#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (splitScreenDividerAnchor#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        2, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=DefaultTaskDisplayArea#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (animationLayer#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        3, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=DefaultTaskDisplayArea#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (boostedAnimationLayer#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        4, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=DefaultTaskDisplayArea#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (Leaf:3:14#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        3, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=DisplayArea.Root#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (WindowToken{6897632 android.os.BinderProxy@d99e394}#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=Leaf:3:14#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (736bf83 AssistPreviewPanel#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,800), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=WindowToken{6897632 android.os.BinderProxy@d99e394}#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (Leaf:17:34#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        5, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=DisplayArea.Root#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (WindowToken{ecd84d5 android.os.BinderProxy@c932abf}#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=Leaf:17:34#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ EffectLayer (Surface(name=db8a4ea StatusBar)/@0xf5a24d1 - animation-leash#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,0), size=(   0,   0), crop=[  0,   0,   0,   0], cornerRadius=0.000000, isProtected=0, isOpaque=1, invalidate=0, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(-1.000,-1.000,-1.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=WindowToken{ecd84d5 android.os.BinderProxy@c932abf}#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (db8a4ea StatusBar#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=Surface(name=db8a4ea StatusBar)/@0xf5a24d1 - animation-leash#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ BufferQueueLayer (StatusBar#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=1)
    [  0,   0, 480,  52]
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,0), size=( 480,  52), crop=[  0,   0, 480,  52], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=0, dataspace=Default, defaultPixelFormat=RGBA_8888, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=db8a4ea StatusBar#0
      zOrderRelativeOf=none
      activeBuffer=[ 480x  52:   0,RGBA_8888], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={windowType:2000, ownerUID:10099}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (WindowToken{3dda360 android.os.BinderProxy@fa7f592}#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        1, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=Leaf:17:34#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (9660019 NotificationShade#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=WindowToken{3dda360 android.os.BinderProxy@fa7f592}#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (WindowToken{11bd0df android.os.BinderProxy@f6b7139}#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        2, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=Leaf:17:34#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ EffectLayer (Surface(name=df6112c NavigationBar0)/@0xb3f8b36 - animation-leash#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,800), size=(   0,   0), crop=[  0,   0,   0,   0], cornerRadius=0.000000, isProtected=0, isOpaque=1, invalidate=0, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(-1.000,-1.000,-1.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=WindowToken{11bd0df android.os.BinderProxy@f6b7139}#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (df6112c NavigationBar0#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,800), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=Surface(name=df6112c NavigationBar0)/@0xb3f8b36 - animation-leash#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ BufferQueueLayer (NavigationBar0#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,800), size=( 480,   1), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=0, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000001, tr=[0.00, 0.00][0.00, 0.00]
      parent=df6112c NavigationBar0#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={windowType:2019, ownerUID:10099}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (WindowToken{664242d android.os.BinderProxy@9b43b44}#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        3, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=Leaf:17:34#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (3774d62 pip-dismiss-overlay#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(0,458), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=WindowToken{664242d android.os.BinderProxy@9b43b44}#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (WindowToken{b1e5660 android.os.BinderProxy@419da63}#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        4, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=Leaf:17:34#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (87c3719 EdgeBackGestureHandler0#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(240,400), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=WindowToken{b1e5660 android.os.BinderProxy@419da63}#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (WindowToken{a249178 android.os.BinderProxy@e2632db}#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        5, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=Leaf:17:34#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (b4b051 SecondaryHomeHandle0#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        0, pos=(240,400), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=WindowToken{a249178 android.os.BinderProxy@e2632db}#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 
+ ContainerLayer (mOverlayContainers#0)
  Region TransparentRegion (this=0 count=0)
  Region VisibleRegion (this=0 count=0)
  Region SurfaceDamageRegion (this=0 count=0)
      layerStack=   0, z=        1, pos=(0,0), size=(   0,   0), crop=[  0,   0,  -1,  -1], cornerRadius=0.000000, isProtected=0, isOpaque=0, invalidate=1, dataspace=Default, defaultPixelFormat=Unknown/None, backgroundBlurRadius=0, color=(0.000,0.000,0.000,1.000), flags=0x00000000, tr=[0.00, 0.00][0.00, 0.00]
      parent=Root#0
      zOrderRelativeOf=none
      activeBuffer=[   0x   0:   0,Unknown/None], tr=[0.00, 0.00][0.00, 0.00] queued-frames=0, mRefreshPending=0, metadata={}, cornerRadiusCrop=[0.00, 0.00, 0.00, 0.00],  shadowRadius=0.000, 

Offscreen Layers:
Layer Surface(name=db128f6 InputMethod)/@0xf78c5cd - animation-leash#0 (EffectLayer) pid:389 uid:1000
[+] adb shell df -h
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                 984M  824K  984M   1% /dev
tmpfs                 984M     0  984M   0% /mnt
/dev/block/mmcblk2p11  11M  144K   11M   2% /metadata
/dev/block/dm-0       789M  787M     0 100% /
/dev/block/dm-2       166M  166M     0 100% /vendor
/dev/block/dm-4       2.9M  2.9M     0 100% /odm
/dev/block/dm-3        83M   83M     0 100% /product
/dev/block/dm-1        44M   44M     0 100% /system_ext
tmpfs                 984M     0  984M   0% /apex
/dev/block/mmcblk2p10 356M  204K  344M   1% /cache
/dev/block/dm-5        25G  678M   24G   3% /data
/dev/fuse              25G  678M   24G   3% /storage/emulated
[+] adb shell uname -a
Linux localhost 4.19.232 #106 SMP PREEMPT Mon Aug 17 15:20:40 CST 2026 armv8l
[+] adb shell dumpsys usb
USB MANAGER STATE (dumpsys usb):
{
  device_manager={
    handler={
      current_functions=MTP
      current_functions_applied=true
      screen_unlocked_functions=MTP
      screen_locked=false
      connected=true
      configured=true
      host_connected=false
      source_power=false
      sink_power=false
      usb_charging=true
      hide_usb_notification=false
      audio_accessory_connected=false
      kernel_state=CONFIGURED
    }
  }
  host_manager={
    num_connects=0
  }
  port_manager={
    is_simulation_active=false
  }
  alsa_manager={
    cards_parser=-1
  }
  settings_manager={
    user_settings={
      user_id=0
      device_attached_activities={
        activity={
          package_name=com.android.mtp
          class_name=com.android.mtp.ReceiverActivity
        }
        filters=[
          {
            vendor_id=-1
            product_id=-1
            class=255
            subclass=255
            protocol=0
            manufacturer_name=null
            product_name=null
            serial_number=null
          }
          {
            vendor_id=-1
            product_id=-1
            class=6
            subclass=1
            protocol=1
            manufacturer_name=null
            product_name=null
            serial_number=null
          }
        ]
      }
    }
    profile_group_settings={
      parent_user_id=0
    }
  }
  permissions_manager={
    user_permissions={
      user_id=0
    }
  }
}
[+] adb shell getevent -i
add device 1: /dev/input/event1
  bus:      0019
  vendor    0000
  product   0000
  version   0000
  name:     "quot;rk805 pwrkey"quot;
  location: "quot;rk805_pwrkey/input0"quot;
  id:       "quot;"quot;
  version:  1.0.1
  events:
    KEY (0001): 0074 
  input props:
    gt;
add device 2: /dev/input/event3
  bus:      0019
  vendor    0001
  product   0001
  version   0100
  name:     "quot;adc-keys"quot;
  location: "quot;adc-keys/input0"quot;
  id:       "quot;"quot;
  version:  1.0.1
  events:
    KEY (0001): 0072  0073 
  input props:
    gt;
add device 3: /dev/input/event2
  bus:      0018
  vendor    0000
  product   0000
  version   0000
  name:     "quot;gslX680-d708"quot;
  location: "quot;"quot;
  id:       "quot;"quot;
  version:  1.0.1
  events:
    KEY (0001): 0068  006d  009e  00d9 
    ABS (0003): 002f  : value 1, min 0, max 10, fuzz 0, flat 0, resolution 0
                0030  : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0
                0032  : value 0, min 0, max 200, fuzz 0, flat 0, resolution 0
                0035  : value 0, min 0, max 480, fuzz 0, flat 0, resolution 0
                0036  : value 0, min 0, max 800, fuzz 0, flat 0, resolution 0
                0039  : value 0, min 0, max 65535, fuzz 0, flat 0, resolution 0
  input props:
    INPUT_PROP_DIRECT
add device 4: /dev/input/event0
  bus:      0000
  vendor    0000
  product   0000
  version   0000
  name:     "quot;rk817-charger"quot;
  location: "quot;rk817-charger"quot;
  id:       "quot;"quot;
  version:  1.0.1
  events:
    KEY (0001): 008f 
  input props:
    gt;

Kodi Kronicles!

Kodi Kronicles Logo

Taking a step away from eink for a moment I took some time this week to write something for myself, a local watch journal I'd been thinking about for awhile now. It has taken shape as 'Kodi Kronicles' a small golang web application that sits on your network, takes notes on what you watch via Kodi and keeps a neat, searchable or at a glance heat mapped log of your kodi media consumption.

> github.com/LowFlowIO/Kodi-Kronicles

Sticky MicroNotes — Notes That Stick!

The Seeed reTerminal Sticky is a new cute little eink slab with magnets (4 of them) built into the back, snap it to your fridge, a filing cabinet, wherever metal lives. Out of the box it wants to talk to a phone app. I wanted it to talk to a keyboard instead.

Meet Sticky MicroNotes, a writing firmware port that turns it into a tiny writer deck-esque note pad device.

It's a port of MicroSlate, rebuilt for the reTerminal Sticky specifically. Pair a Bluetooth keyboard, start typing, notes save as plain .txt files on a microSD card. No app, no account, just a keyboard, a screen and a text file.

  • Pairs BLE keyboards; stores up to 4, auto-reconnects on boot.
  • Three writing modes: Scroll, Typewriter (single centered line), and Pagination; cycle with Tab.
  • Auto-saves after 10s idle or every 2 minutes while typing, plus a write-verify .bak rotation so a bad write never eats your last good draft.
  • Clean mode strips the editor chrome down to just your words.
  • Wi-Fi transfer at http://sticky.local — no cable, drag files in from your phone or laptop over your network.
  • Dark mode, portrait/landscape/inverted orientation, optional gyro auto-rotate.
> seeedstudio.com/sticky/playground/sticky-micronotes
> github.com/LowFlowIO/sticky-micronotes

Nothing about it tries to be clever. Notes are just text files named after their titles, sitting in /notes/ on your SD card, readable on literally anything. Grocery list on the fridge, morning pages before coffee, a stray idea you don't want to lose to your phone's notification hellscape — it's all just there, on a screen that sips power and never asks you to log in.

Try it out today!

x4ePapers v1.4 — Tag, Share & Install!

x4ePapers has quietly turned into a much bigger project than the little wallpaper dump it started as, so it felt like time for a proper update post. No single flashy feature this round but more a pile of smaller things that add up to a large gallery that's more pleasant to dig through now, instead of just scrolling and hoping many of you requested tags, I've given you all the tags!

x4ePapers with tags screenshot

Reaching the previous support goal helped me move all the iamges onto a proper CDN-backed home behind the scenes, which mostly just means: it's faster, it can hold a lot more wallpapers and it'll keep scaling as the collection grows. Not exciting to look at, but everything else below was only really possible after moving the storage burden off the tiny vps it was on which also means means this updates comes with another 37,977 wallpapers and proper resolution scalling for the x3 not just halfassing the old x4 images.

  • Every wallpaper is now tagged — subject, style, mood, etc. Tap into the tag cloud up top and browse by whatever you're actually in the mood for, instead of shuffling endlessly.
  • Click a wallpaper to open the preview and see its tags which are clickable so you can jump straight from one image to everything else with similar vibes.
  • There's now a share button on every card, it grabs a direct link to that wallpaper so you can send someone directly to an image in the gallery.
  • An "anime" toggle sits next to the tag cloud, off by default — flip it on if that's your thing, leave it off if it's not.
  • x4ePapers can now be installed as an app on your phone or desktop with a proper icon, opens in its own window, no browser fluff. Look for the install prompt in the lower left next time you visit.
> x4epapers.lowio.xyz

None of this changes what x4ePapers actually is, it's still a straightforward wallpaper library for the X3/4, still free, still no accounts or junk ads. Just easier to actually find the wallpaper you want in a library that keeps growing.

If you want to see it keep growing and the tags to get better, there's now a small support link tucked in the corner too. Completely optional, appreciated either way. Enjoy the new features!

[+] how_the_tagging_works.md

The tags aren't hand-typed, every image gets run through an open-source vision model locally on my own ancient workstation (which is very sadly without a gpu), which scores it against a growing vocabulary of subjects, styles, and moods and keeps whatever actually fits. I find images, feed them to the tagger, it writes tag manifests and preps the images ready to feed to the main app, good times.

Worth a mention for the curious: color/mood tags (like "warm" or "vibrant") were deliberately left out of the vocabulary. Every wallpaper gets converted to grayscale for e-ink screens anyway, so tagging by color would just be describing something you'd never actually see on the device. Brightness and contrast tags stuck around, since those do carry through.

With support the next upgrade would be to jump from the current 62% to 79%+ tagging acuuracy, but this will take a lot of cpu cycles, maybe weeks on my current workstation.

RdLtr — Save Now, Read Later

Remember x4Later, that quick article-to-EPUB converter I threw together back in January? Turns out it wanted to grow up. Meet RdLtr — same core idea, but properly fleshed out this time, with that "seamless uploads to device, via wifi?" TODO from the original post finally ticked off.

RdLtr Screenshot!

The idea is simple: find something worth reading, paste the link into RdLtr, get back a clean, lightweight EPUB — stripped of ads, popups, and whatever else the modern web insists on bolting onto a page these days. High contrast, sized for your device, easy reading.

  • Paste a link, get an EPUB back in seconds.
  • Optional images, kept grayscale and properly sized.
  • Install it as an app on your phone and share directly from any browser.
  • Hit a wall? RdLtr was built for r/longform readers, supporting archive links was key.
  • Point your e-reader's OPDS library feature at your own personal link — no cables, no 3rd party syncing software.

OPDS is the part I'm most pleased with. RdLtr runs its own library server in the background — you get your own shelf and everything you've saved is just... there. Add an article from your phone on the bus, it's waiting on your e-reader by the time you're home.

It's free and it lives at: rdltr.link

Give it a spin, let me know if something breaks. Happy reading!

[+] best_opds_readers.md

LowIO Wiki Beta One

LowIO Wiki is a purpose-built firmware for the Xteink X4 that boots straight into and offline Wikipedia library. β1 is the first public build meant for you to test, break and request new features, not just a simple demo.

LowIO Wiki Beta 1 on the X4 LowIO Wiki Article on the X4

It is forked from the Crossink/Almanac stack, stripped down so your device is a dedicated encyclopedia.

What β1 does so far ...

  • Boot and Home: The device boots directly to where you left off, Home has two options. Wikis, a selector for your article databases, and Settings keeping things simple. Selecting Resume drops you back into your last article.

  • CDB Packs: Drop any {arbitrary name}.cdb files directly onto the SD root. The Wikis selector automatically enumerates them. Open one, or hold Open to set it as your default. No rigid naming conventions or manifests required.

  • Reading Experience: Enjoy next/previous article navigation, random rolls, and a title index search. Hold Home to cycle body font sizes. Long articles cap out at roughly 30,000 characters at the moment.

  • Images: If your pack includes lead images, place the wiki_img/ directory in the SD root to display them under the article title.

  • Settings: A single page covers your sleep screen (dark, light, or custom), battery percentage, refresh interval, sunlight fade fix, sleep timeout, and language. No Wi‑Fi toggles, themes, or extra reader clutter.

SD card structure

Stick these files on the root of your SD card:

These CDB packs are built from English Wikipedia dumps: pageview-ranked titles, cleaned wikitext. DeepWiki is 600 or so interesting articles over a range of topics. Provided databases for this beta are by no means the whole of wikipedia, I will explore this later.

How to flash

  1. Grab lowio-wiki-beta1_x4.bin.
  2. Head to crosspointreader.com/#flash-tools, select Xteink X4, and choose Custom.bin
  3. Follow on screen instructions ...

β1 limits

  • 30k Character Limit: Longer pages are currently truncated, I've tested upto 52k with some stability, full articles will be supported next.

  • Single Language: Packs shipped so far are English-only, tools to create your own packs will be available later.

  • No In-Firmware Downloads: Packs and images must be pre-compiled on a PC. I may host a cdb library later and incorporate ota downloads/updates.

  • Isolated Index: The index searches the currently open .cdb, not a unified master index of every file on the card.

  • Lead Images Only: Images are currently limited to article lead images.

Why ship it now?

The core reader stable: open a pack, flip pages, jump to next/random, search, pull up the index, resume your place, and switch .cdbs. That's the basics for the beta, I need your testing and feedback, have at it!

What is next?

Longer articles, wider image coverage*, image toggle on device to unify packs, larger ranked dumps and more flexible search are all on the roadmap for β2 and beyond.

Let's not forget ...

A huge thank you to Sparkadium for the initial wiki groundwork and a kick up the ass to dive in, improve and make it my own.

Streaming direct from the r36s!

Testing testing ... this was a random thought at gone 1AM last night, "the r36s is bascially a linux box, ffmpeg streaming?"

I use ffmpeg at least a few times a week and it plays a large role in my automated media stack at home, I love working with it so I wrote a rough C wrapper and dropped it on my knock off r36s (512MB Ram) 3rd time lucky after some config tweaks and here we are! There's still work to do and I suspect it'll be even smoother on the 1GB models or the r36xx with built in WiFi not running ArkOS For Clones.

Repurposing an Orico SD Card Case

Little luggage for your e-reader! I repurposed an Orico SD Card Case for my Xteink X4, for $8 you can't go far wrong.  Grab yours! (affil)

Slap some stickers on it and now you can throw your reader in your bag and not worry about that delicate screen! 

An r36xx Server, CRT-ish, Media Player Thing...

This has been a long time coming, after my first post to this blog I played around with a few ideas of what to serve from the r36xx. I landed on this, a single page r36s emulator-thing, because the r36s is an emulator ... or something. 

> r36s.lowio.xyz

This page is served from a real r36xx running armbian/nginx/tailscale sat on my windowsill connected to a USB-UPS.

The video files are fragmented/indexed so channel loading/switching feels instant instead of waiting, this was one of the biggest challenges to do without cloudflare cache (which would bork range requests) I went through a few encode options to make sure everything loaded as fast as possible on any device, browser or connection and finished up by highly optimizing nginx, the images, code and then moved everything into RAM for maximum performance and less wear on the SD card.

I'll leave the rest of the features for you to discover, press some buttons, have fun.

Blog Article Editor

Over the years I have typically used nano/Geany to bash out code for my site, blogs, etc. this is sometimes a pain in the ass or generally inconvenient so I wrote this little editor that outputs pre-formatted HTML for my blog articles, good times. 

Blog Article Editor Screenshot

Why? Because I was never a fan of micro-blogging platforms or all-in-ones like WordPress and I usually learn something doing it all myself.

Xteink // (Un)Official Media

A new gallery for the official xteink user wallpapers.

> xteinkom.lowio.xyz

Xteink hosts its own user submitted wallpaper gallery via its cloud app, some of us don't (want to) use this app so a cool guy called Megabit_Omega decided to write a tool to download and sync (automated daily updates) all of this media, he then came to me for a place to host it and so I built this lovely new gallery, enjoy.

Some notes; most of this media was uploaded by Chinese citzens to their localized platform, keep this in mind when viewing through a western lens. I do not support and therefore will not take part in censorship for a global audience. Buddha, Spongebob, Mao, Pooh and a man with a little mustache may reside in the gallery, but you don't have to use any of them on your device if you don't want, use this cute pair of pussies instead ₍˄·͈༝·͈˄₎

Pussy Couple!

x4ePapers X3 Support

Changes in v1.3 (x3 update)

  • Download button split into X4 and X3.
  • X3 variant scales to 528x792 on the fly.
  • Selected Dither and Invert modifiers apply to output before scaling.
  • Downloaded files are named with _x4 and _x3 suffixes respectively.
> x4epapers.lowio.xyz

The X3 uses a slightly wider and shorter resolution than the X4 (528x792 vs 480x800). The scaling is done server-side on demand, so no separate image library is needed. As with the X4, the dither and invert toggles apply before the rescale, so what you see in the preview is what you get on the device.

A screenshot of the x4ePapers project with X3 download support

x4 Pokédex Wallpapers

u/basvanderploeg made an awesome generator for Pokédex wallpapers formatted for the xteink x4, I wrote a scraper to catch them all and offer them for download, good times!

A photo of the x4 with a pokemon wallpaper
Generation About Cards Stats Cards
Gen 1 KantoDownloadDownload
Gen 2 JohtoDownloadDownload
Gen 3 HoennDownloadDownload
Gen 4 SinnohDownloadDownload
Gen 5 UnovaDownloadDownload
Gen 6 KalosDownloadDownload
Gen 7 AlolaDownloadDownload
Gen 8 GalarDownloadDownload
Gen 9 PaldeaDownloadDownload

> github/scrp-basvanderploeg.nl

x4Later v1.0

Just a quicky post announcing x4Later, a web article to EPUB converter.

> x4later.lowio.xyz

TODO: Seamless uploads to device, via crosspoint/wifi? Bluetooth? We will see, the idea is to have options for web → device workflow.

A screenshot of the x4later project

x4ePapers v1.2

Changes in version v1.2

  • Added dither toggle!
  • Inverted color previews are now done in CSS.
  • Modified images are now cached in ram for 24 hours.
  • WEBP previews compressed by 8% to save on bandwidth.
  • Invert/Dither modifiers are now on-demand to save on storage.
  • Directory walk logic rewritten to speed up page loads allowing for a larger image collection.
> x4epapers.lowio.xyz

Settings for dithering are the same used in the Crosspoint firmware for book covers, as of writing Crosspoint doesn't apply dithering to wallpapers/sleep screens where as the stock fw does. Test to see what works for you.

A screenshot of the x4epaper v1.2 project

x4ePapers Goes Live!

A month ago procrastinating on reddit I saw a comment mentioning this wonderful little device, the xteink x4. I fell in love with the device and then the community r/xteinkereader

xteink x4 device on the sleep screen

Rallying around this device a bunch of very fine folk have given us custom firmware and many tools to make life with this beautiful piece of hardware that much better, I wanted to give back too so I have written a wallpaper/sleep screen tool and discovery site.

A screenshot of the x4epaper project

The plan was to have a site where you could potentially browse for as long as you want finding and curating the perfect collection of wallpapers for your device. So I built an asset pipeline in Go to ingest images, convert them to the format recommended for the x4 and display them as cleanly as possible while offering both original grayscale and an inverted option + one click downloads.


As this project is geared toward random discovery each page load gives you a fresh set of images or you can just keep scrolling and load more as you go. You can also tap an image for a closer look, happy tinkering, wallpaper collecting and most of all reading!

> x4epapers.lowio.xyz

Note that in gallery view and tap to preview the images are lower resolution webp to keep page loads snappy, hit download to get the full resolution x4 ready bmp files.
To-do: gather feedback, review image formats, optimize for performance at scale.


> r/xteinkereader Release Thread

The R36S As A Server

I recently picked up a cheap retro emulation handheld, my 3rd.. I told myself I'd do something else with this one, other than flash the latest r/SBCGaming OS recommendation, load it with 50,000 roms I'll never play and let it collect dust on my shelf. So let's turn it into a portable server.

Some Specs — SoC: Rockchip RK3326, CPU: Cortex-A35, GPU: Mali-G31 MP2, RAM: 1GB DDR3L, DSP: 3.5" 640×480 IPS, NIC: 2.4GHz, BAT: 3000mAh.

Think Raspberry Pi 3 with a screen, battery & USB-C in a nice case all for $35 delivered.

Enter Armbian!

Armbian running on the r36xx device

Much of the heavy lifting has already been done here, (the r/R36S community have even built Android for the platform!) so I flashed armbian-r36s-bookworm-xfce to a new mSD card, got lucky having a "panel 4" device and a few minutes later land in a fresh xfce environment!

Navigate the on-screen keyboard, enable ssh, a little apt-get, nginx is installed and ready to serve some pages. Now to build something fun for the community....

[+] Read project_notes.md

Additional logs: Running stable on RC5 build. Power consumption profiles idling under Nginx optimization sits roughly around ~140mA. Headless modifications can be configured safely via standard configuration files.


Stay tuned!!

Initial Commit

Low[Flow]IO goes live. This space will serve as a slightly curated digital garden for my projects, ramblings, tangents & deep-dives into tech.