自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (2)
  • 收藏
  • 关注

原创 GTS fail之GtsPackageSignatureTest和GtsApexSignatureVerificationTest

为什么Google会增加case来强制让我们更新Apex的sign key呢,不明真相的我们可能会觉得多此一举,个人最初也会有类似的感受,但直到我查了下GTS的release notes,就觉得还是需要重视sign key的,原来是CVE漏洞的需要,这里也没有能力对CVE展开,就贴一下供大家参考,有Google partner账号的,可以继续对漏洞做进一步的了解,这里我就不瞎带路了。这里提一个快速验证是否生效的办法,编译完OS检查OTA target_file的META目录下。

2024-04-02 20:11:43 842

原创 qualcomm导出分区之(UFS篇)

这篇关于emmc存储dump flash的blog(高通QFIL 导出所有分区_blank_gpt-CSDN博客)的方法不知道大家是不是都没遇到过问题,前阵我个人在实践UFS 时就遇到UFS直接用QFIL读取不了总blocks数,导致回读flash的大小没办法确定,然后就去查了高通文档,最后实操成功,中间遇到了些小问题,记录下来供大家参考。

2024-03-24 22:33:32 897

原创 android 9 OTA到android11弹出密码框

bootloader和keymaster通信接口改变导致的OTA问题

2022-12-06 11:51:58 1098 1

原创 Cts 失败项之CtsAppSecurityHostTestCases

Cts 失败项之CtsAppSecurityHostTestCases

2022-09-23 20:14:06 2041

原创 CTS CtsHostsideNetworkTests失败项记录

CTS CtsHostsideNetworkTests

2022-09-21 20:07:57 1414

原创 Chrome浏览器的crash问题

Chrome浏览器crash

2022-06-17 20:36:07 2047 3

原创 UEFI 增加main fvsize大小

uefi FV编译编译报错

2022-05-23 21:45:06 1735

原创 android virtual A/B OTA降级策略

目录前言1.android默认的降级限制1.1. recovery模式下的降级限制1.2. update_engine的降级限制2.通用的绕开android降级机制方式2.1 为何降级需要擦除userdata2.2 为何keymaster成为降级过程中的拦路虎3.虚拟A/B与A/B系统降级的区别3.1 Virtual A/B的概念3.2 A/B提前擦除userdata可以降级,为何virtual A/B就不行4.如何优雅的完成虚拟A/B系统的降级4.1 虚

2022-05-07 19:49:20 3791 4

原创 OTA 差分包命令

OTA差分包需求多的话,建议还是封装脚本,免得记不住命令老是要翻记录,简单按照当前公司的实际需求封装了下命令,包含升级和降级包的自动识别.主要是对命令的封装,基本实现基于我们公司自己的版本号规则的比较,自动判别升级or降级,比较逻辑写的乱,仅供参考,大家可以自行优化,封装好之后做差分包就不用都找负责OTA的朋友了,脚本一丢,还是能省心不少../build/tools/releasetools/ota_from_target_files -p out/host/linux-x86 -k devic.

2022-04-11 20:58:02 1505 3

原创 Recovery模式下读取Ram配置

背景在recovery模式下,为了限制低内存设备的升级,添加读取RAM配置,达到不让安装OTA包的目的,顺带梳理一下安装ota包的流程.方案

2022-04-09 15:41:54 700

原创 android 优化system分区空间小方法

背景为何需要采用此种方式 ,随着android系统大版本的升级,系统本身的体积越来越大,对于必须要内置GMS包的升级项目,system分区的大小因为之前在低版本时,给得不够大,为了OTA升级,又不能修改分区的大小,那就只能各种裁剪,尝试各种减少system分区占用的方法(裁剪app及so、关闭部分app的预编译等). 经历各种折腾后,还没有达到预期的效果,最后找到了apk gz压缩编译的方式节省分区空间.原理此方案android源码很早就已经支持了,猜想此方案并未被广泛应用的原因,一方面,增加分

2021-11-01 21:19:49 5314 8

原创 qcom SDM450 android11平台新建device的编译报错

SDM450 Android 11新建device的过程中发现一个编译报错,模块为高通GPS相关的slim_daemon,默认的target为msm8953_64编译ok.本人新建的device编译就是失败,错误log[ 12% 3353/26214] target Executable: slim_daemon (out/target/product/xxx/obj/EXECUTABLES/slim_daemon_intermediates/LINKED/slim_daemon)FAILED: o

2021-08-31 17:38:37 1683

原创 Audio Recorder app和通话无声问题定位

最近测试报了个偶现问题,在一同耳机切换和通话测试后,soundrecorder app播放录音文件时没有声音,通话也无法听到对方的声音,而正常的music音频能够播放.问题发现后,抓取了对应的logcat的log,一直在排查可疑的点,下面的Log是第一个怀疑的点,后面仔细想想,这个很明显是当播放无声后,手动调节音量键的log,当然setVolumeCurveIndex设置failed也给了个audiopolicy这个排查的方向.06-28 16:16:37.712 9843 103...

2021-07-27 00:00:06 2030 1

原创 高通QFIL 导出所有分区

android系统开发过程中,针对概率性问题,尤其是开机问题,我们想尽量的保留现场,需要dump整个flash的数据,以便抓取更多的log信息及可能的对未来验证修改点的需要添砖加瓦.

2021-07-24 11:51:48 7790 2

原创 android O及P之后禁止Microphone录音

背景客户需求禁止所有Mic数据输入,既包括安卓设备普通的使用场景下,还包括外接带Mic耳机的场景,首先,得考虑如何才能达到我们的目的,基本思路就是得掐断源头,源头在何处,下面便慢慢道来....

2021-07-22 21:20:12 1528 4

原创 Uefi ABL读取XBL设置的标志位

高通启用UEFI架构的bootloader,有些时候有些状态值,需要ABL阶段获取.上层思维让我总是以属性来开端,实际上android 的setproperty和getproperty属性对于uefi启动流程是不可取的.自己在修改这块内容的举例来简单记录下,XBL setSetVariable 设置标志位#include <Library/UefiRuntimeServicesTableLib.h>//导入头文件......Boolean EpStatus;EpStatus =

2021-07-11 16:26:42 1430

原创 win10截到因光标移动或其他操作导致截图问题

我们经常会遇到截图时,需要单击工具界面的某个子菜单,但是该菜单点开之后是悬浮框显示,只要去截图,悬浮框就会消失.Win10有工具可以支持此种操作,在此做个记录,方法“Win+ Shift + S” 组合键如我下面的工具,需要截图子菜单的悬浮框....

2021-06-24 09:37:51 304

原创 qualcomm non SecureBoot 安卓设备默认lock

市场上几乎大部分的安卓设备都是默认Lock上锁的,尤其是品牌手机类,针对没有开启secureboot的设备,lock设备的需求该如何实现,下文针对Qualcomm平台来提供一个方式实现.

2021-06-23 20:59:35 1603

原创 android 11安装apk 报错installed APKs to be stored uncompressed and aligned on a 4-byte boundary

合作开发的三方apk, 用我们的platform keystore签名后,无法在android 11的设备上安装成功,一直提示安装错误Failure [-124: Failed parse during installPackageLI: Targeting R+ (version 30 and above) requires the resources.arsc of installed APKs to be stored uncompressed and aligned on a 4-byte bou

2021-06-07 20:50:40 9652 2

原创 Qualcomm checksparse和ptool工具的使用小结

前言本文记录的目的,一方面是对相关问题的记录,另一方面介绍下在调试过程中,通过打散镜像解决的实际问题.打散image的命令函数def ShowUsage(): PrintBanner("Basic Usage") print "python ptool.py -x partition.xml" PrintBanner("Advanced Usage") print "%-44s\t\tpython ptool.py -x partition.xml" % ("Basic

2021-06-01 21:12:18 3016

原创 android 11 user-debug OTA升级到user开机卡在动画无法进入系统

公司产品经常在测试过程中,需要在user和userdebug上来回切换,一方面是测试和QA作为测试用例来测试,另一方面,也是我们的销售支持team也需要去用userdebug版本做一些修改及验证问题便于调试.我们的OTA是基于A/B分区的,之前的版本这一块基本并未遇到什么问题,因为毕竟都是full ota升级,但是在android 11上,我们就遇到了userdebug升级user版本,升级完成后,开机一直卡在动画播放阶段,无法进入launcher.参考google补丁https://sour...

2021-05-24 19:55:13 1305 2

原创 qualcomm R fastboot -w后无法开机问题

执行"fastboot -w"的需求一般来自于测试GMS 刷GSI的需求,刷完google system image需要重新格式化三个分区userdata、cache及metadata

2021-05-10 15:40:30 3065 1

原创 高通qssi android R OTA

背景Google在androidQ版本上动态分区就启用了,另外高通在android R版本上既开启了动态分区,还默认了启用qssi的机制,对于OTA升级来说,这块会有什么变化,本文先从近期的一些调试过程中,简单总结一些注意事项,当然主要是一些记录,后续还需要继续分析流程.问题调试部分device/honeywell/eda52/AndroidBoard.mk#-----------------------------------------------------------...

2021-01-27 14:52:36 6763 3

原创 android R(Qualcomm平台)编译相关记录

前言此篇为调试记录,基于两个大的方向来归纳这篇文章要提的内容:1.ninja编译命令提高调试效率2.高通的源码在R上引入了QSSI(Qualcomm Single System Image),从字面上来看,就是要将system独立出来解耦,为厂商升级最新的android版本铺路.细节描述针对编译未对ninja编译做分析,旨在让参与模块的小伙伴们能有方式提高调试效率,调试android R版本的都知道编译调试带来的痛苦../prebuilts/build-tools/linu.

2020-12-27 18:07:44 3259 5

原创 Qualcomm R版本切换slot和OTA升级失败KBA

From Android R, especially new QCOM platforms, virtual A/B has been enabled by default, if your devices have not flashed slot B partitions images, when you switch slot to boot up, it will fail. In this situation, if you want to do OTA update, you should bu

2020-12-27 17:35:41 1450

原创 跨服务器复制文件

某些时刻我们在linux不同的服务器上需要做些文件拷贝,当然如果windows端都开启smb共享,那么这篇记录也就显得没存在的价值.复制文件或目录,粘贴... 完事,难道除了这种操作就没更好的方式吗,因为毕竟有些时候这个速度是相当的感人.我们在同服务器上拷贝文件时,都是采用cp命令,那此刻需要介绍的主角就是"SCP"SCP的介绍scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可.

2020-09-28 20:24:23 1524

原创 android O的混音降音浅析

前言源于当导航的语音播报和媒体播放器混音时,只要是导航播报在播放时,出现的媒体播放器的音量默认被压低了,起初的追踪方向是AudioService中的duck机制的考量,但实际的情况是封装的setwillPausewhenduck只是一个标志位而已,而且,app并不一定调用.分析从AudioService的代码流程追踪来看,...

2020-09-21 11:40:39 1734

原创 BeyondCompare4 30天过期解决办法

注册表删除CacheId,手动进入指定目录找不到,那还是用命令来解决吧,彻底和方便,记录下以防forget管理员权限下执行以下命令reg delete "HKEY_CURRENT_USER\Software\Scooter Software\Beyond Compare 4" /v CacheID /f再次打开beyondcompare完美解决....

2020-09-18 10:10:23 993

原创 tinycap录音

录音问题免不了需要抓取原始的pcm数据分析波形,目前安卓大部分是基于tinyalsa去实现音频相关的接口,所以调试过程中很自然就得走这一步.默认的MTK源码只include了tinyalsa的接口的so,并未把tinyalsa的命令工具默认编译进版本源码目录external/tinyalsa下,单编译生成二进制可执行文件out/target/product/k37mv1_64_bsp/system/bintinyhostlesstinymixtinypcminfotinycaptinyplay

2020-08-29 14:52:30 6349 6

原创 MTK FM收音机修改门限减少杂台

公司的新主板项目,FM全台搜索时,杂台较多,结合代码和文档,其实是有门限值可以调整的,主要是两个方面的门限值来限定.-----RSSI门限:表示电台的信号强度-----SMG门限:表示电台的声音品质-----另外对于densense电台还有提供RSSI门限值,用来减少搜索到假台的可能设置方法:vendor\mediatek\proprietary\hardware\connectivity\fmradio\config我们项目这边所用到的配置是mt6627,修改当前目录下fm_cust.cfg

2020-07-25 16:12:13 1220

原创 android 安装apk时出现INSTALL_FAILED_MISSING_SHARED_LIBRARY错误

给app组的同事提供基于add-on方式的jar包接口,调试过程中出现调试时遇到INSTALL_FAILED_MISSING_SHARED_LIBRARY错误。以add-on方式封装接口的背景是,提供stub的空接口,app集成只是为了正常的引用jar包编译,而真正的运行时主要依赖当前的系统,这也就避免了由于系统jar主导接口的控制权,在接口没有大变化的情况下,app不用理会接口的实际实现。app AndroidManifest.xml中添加对动态库的引用,如下:<uses-library an

2020-07-18 20:22:20 2408

原创 AudioTrack获取进程修改指定app的StreamType

android车机设备为了特定的区别于手机终端设备的应用场景,需要将部分特殊的音频流在系统框架层强制进行转换,针对这一需求,所以我们可以在音频数据流生产之处,强制改变。首先看看系统定义多少种Audio StreamType上源码system/media/audio/include/system/audio-base.htypedef enum { AUDIO_STREAM_DEFAULT = -1, // (-1) AUDIO_STREAM_MIN = 0, AUDIO_STR

2020-07-12 18:02:24 1063

原创 android FM JNI库参考原生实现

外置FM设备实现基本功能,提供类似原生FM的JNI库实现

2020-04-19 15:40:04 577

原创 android O apk调用jni库报错dlopen failed

调试外置FM模块,我这边提供了一个jni的动态接口库,供app去调用。遇到报错如下:“app_crashed_reason”:"java.lang.UnsatisfiedLinkError: dlopen failed: library “/system/lib64/libextFm_jni_fm_omr1.so” needed or dlopened by “/system/lib64/li...

2020-02-24 18:19:57 1293

原创 GMS测试减少Fail项的规避措施简记

android版本越高,迭代更新后,gms测试的测试用例也是越发庞大,测试时间也越来越长,这也就要求我们尽可能的减少因为测试先决条件引起的Fail项,导致时间的浪费。依稀记得在android L上,厂商过GMS认证,也就主要处理CTS------对应的总测试用例数也就映像中的6万多,android P上64位的CTS测试总用例数已经到了90多万项,光测试完CTS就得花费大量的时间,所以更体现了...

2020-01-08 23:03:04 362

原创 android NetworkSetting网络模式菜单开关

本文的目的是因为,我们之前做了针对不同的运营商设置不同的网络菜单,那么这样一来,如果是需要调试或者测试时,网络模式就没办法显示所有菜单,并且也无法修改。android N以前selinux策略并未限制priv-app的SystemProperities.set()的使用,我们可以直接在Dialer上添加数字暗码,设置不同的persist属性值,以便来控制菜单是显示所有还是保持设置好的运营商列表....

2019-12-31 20:33:30 1640

原创 不编译只打包system或者vendor image命令

android基于源码的系统开发过程中,整套工程已经全编译一次后,很多时候调试遇到下面的一些情形,我们想快速验证,但又不想要全编译整套工程,如:1.修改单个配置文件,如framework下修改了config.xml下的某个int或者bool开关值;2.system/vendor image下build.prop修改相关的属性;3.不同的app或模块之间发送的广播,或者另外一些跨进程跨模块的调...

2019-12-30 18:16:41 3084 3

原创 高通user版本diag口无法正常连接QXDM调试

modem同事调试网络问题,需要连QXDM读取设备信息和抓取log,正常不做修改的user版本只有9091的端口,但是无法正常连接调试.出于对厂商安全的考虑:修改如下,CTS版本不建议修改,修改位置:device/qcom/sepolicy/common/kernel.te屏蔽userdebug or eng的限制##userdebug_or_eng(allow kernel self...

2019-12-13 21:36:06 5602 4

原创 amlogic遥控器鼠标按键适配

首先描述一下功能,遥控器上配置预留鼠标键的按键后,功能实现的状态是按一下鼠标键,TV屏幕上类似出现鼠标左键的图标,方向导航上下左右控制移动方向,再次点击鼠标按键,恢复遥控器默认功能.以下我这边是随便找了一款遥控器,改按键为mouse button按键kernel 相应的遥控器适配dts下适配遥控器dts上的代码添加map_1: map_1{ mapname = "amlogic-remo...

2019-12-09 21:21:35 1340

原创 android下拉通知栏清除button修改到通知栏底部显示实现

原生的通知button交互上比较难用,直接上修改。button布局不同机型位置具体情况按自己的设备设置好,下面是当前实现项目的布局,仅供参考.frameworks\base\packages\SystemUI\res\layout\status_bar_expanded.xml<ImageViewandroid:id="@+id/ic_clear_all_notification"...

2019-12-09 21:01:09 563

粒子动画demo

粒子动画demo,满足日常修改所需用到的粒子动画合集,比较适用

2018-06-12

文件管理器

支持rar 、zip 、gzip文件格式的解压与压缩,原型基于Amza文件管理器,修复解压生成双层目录和报错bug,界面稍作调整。

2018-06-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除