安卓QCOM平台子系统复位原因记录分析

参考LA msm-4.14 kernel,先看下在drivers/soc/qcom/subsys-pil-tz.c里记录失败原因的接口: static void log_failure_reason(const struct pil_tz_data *d){ size_t size; char *smem_reason...

阅读全文

SDIO Card传输分析

前面分析了SDIO探测原理,现在我们来看下SDIO读写传输。SDIO提供了两个新的I/O读写命令: CMD52(IO_RW_DIRECT)和CMD53(IO_RW_EXTENDED)。CMD52用来读写一个字节,CMD53用来读写更多的数据。 CMD53数据传输分块传输(block mode)和字节传输(byte mode)两种模式,下表是与SD ...

阅读全文

SDIO Card初始化分析

SDIO Card全称是Secure Digital Input Output Card,它是在SD memory card的基础上扩展了I/O功能。SDIO再加上memory就变成了Combo card(组合卡?),这里主要看下SDIO card。 SDIO card分快(High-Speed)慢(Low-Speed)两种版本。传输模式分为SPI...

阅读全文

UFS概览

UFS(Universal Flash Storage)的出现就是为了取代eMMC和SD cards,它兼具eMMC优点(low power)和SCSI SSD优点(high performance),因而是基于SCSI架构的,称它mobile SSD最合适。如果是可移除(removable)的就是UFS card了。 SCSI architectural ...

阅读全文

Android如何在No command下进入recovery

一般我们用adb reboot recovery或从bootloader按键进入recovery时,会出现一个倒地小机器人,下方提示No command。 我们来看下为啥会这样以及此场景下如何进入recovery menu。 ok, 让我们先check No command,以下参考10.0: const GRSurface* ScreenRecoveryU...

阅读全文

KPW3软越狱实践

这几天酝酿着干一件事,就是越狱Kindle,今天终于完成,要得就是自定义屏保,先上美图: 之前买过Kindle 558,x宝购入,美版原装,越狱和固件版本有关,看了多个帖子,这台558固件不支持软越狱,拆机好像可以,我基本上看的网上下载PDF,想立即体验下koreader重排PDF。 x米最近也出了一款电子书,有背光灯看重的就是PDF重排,599.00,可...

阅读全文

How to install SlickEdit under arm64 Linux

有些时候,我们需要在ARM Linux上看代码,Source Insight一直没出Linux版(why?),可以用Wine,不过在ARM上有点复杂,这里主要说下一款叫 SlickEdit 的代码编辑器,有Linux版本(not free),官方介绍是: SlickEdit - The most powerful code editor available...

阅读全文

Use Beautiful Soup4 to pull weather

Recently, i found i can not get weather forecast from http://wxdata.weather.com/wxdata as below: This service is deprecated as of 01/15/2020 ok, i’m using pywapi-0.3.8 to show wea...

阅读全文

解决Gmail登录失败时Invalid credentials错误问题

今天git sendmail(gmail)出现如下错误: Send this email? ([y]es|[n]o|[q]uit|[a]ll): y5.7.8 Username and Password not accepted. Learn more at5.7.8 https://support.google.com/mail/?p=BadCreden...

阅读全文

Android AB retry count分析

A/B系统是Android设计给OTA用,前面有文章分析过,只不过是LK下。现在看下QCOM UEFI下对A/B retry count是否递减的逻辑。 EFI_STATUSFindBootableSlot (Slot *BootableSlot){ Unbootable = (BootEntry->PartEntry....

阅读全文