自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

kevin's cache的专栏

誓要去 入刀山 浩气壮 过千关 豪情无限 男儿傲气...

  • 博客(253)
  • 资源 (3)
  • 收藏
  • 关注

原创 Android 11 添加系统开机启动的Service方案

android11 添加了开机启动的service,涉及添加过程中遇到的编译,安全规则语法等多个问题

2022-03-16 16:21:00 8546 2

原创 Android Settings增加多击事件,增加开发者模式打开难度

对付这种需求本来有多种方案,比如通过PKMS里边加一些签名或者包名校验,防止三方apk后装,之前的博客里有记录过该方法,本篇只针对settings打开开发者模式的方式做复杂化处理,因为这个入口如果完全屏蔽对开发者可能不太友好。这个改动设置一个标志位,在30s内点击相关栏10次才会设置,30s后次数自动清零重新累计,在该标志位设定后,原有的开发者模式多击才会生效,这里只是讲一个方法,具体哪个栏目可以灵活控制。软件平台:Android11。硬件平台:QCS6125。

2024-07-29 10:48:59 194

原创 android11 屏蔽usb通过otg转接口外接鼠标设备

考虑到屏蔽的层面可以从两个层面去做,一个是驱动层面不识别,一个就是Android系统层面不识别加载,本篇只讲后者。需求:Android设备通过接usb转接线连接鼠标功能屏蔽。可以看到,底层驱动识别后,EventHub也识别了设备一些类型属性,软件平台:Android11。硬件平台:QCS6125。

2024-07-18 18:48:34 562

原创 android 使用系统工具bootchart统计开机时长

然后,打开png图片,即可查看开机总时长,及关注的进程启动的时间点、系统资源占用等信息。需求:统计系统优化前后的启动时长差异。软件平台:Android11。硬件平台:QCS6125。

2024-07-09 14:15:31 298

原创 android 排查sensor异常问题

可以检测到16个非动态(静态)传感器,如果是异常的情况,这些动态和静态传感器检测的值应该都是0个,即捕获不到任何传感器硬件。具体问题:设备起来后,无法横竖屏自动旋转,通过sensor api接口拿到的数据为null;印象中低版本是可以通过getevent获取sensor的值的,但是高版本这种方法不灵通了。软件平台:Android11。硬件平台:QCS6125。

2024-07-04 14:56:52 234

原创 android OTA升级之后,apk崩溃无法启动

也就是说,我们这个高低版本是fingerprint相同的情况,这个问题追述到jenkins编译,启动job时会初始化一个BUILD_NUMBER值,这个值正好跟Android的build系统的名称重复,这就导致Android build系统那一套拼接时间戳的值不会走,因为jenkins一启动就会定义该值,而我们jenkins服务器迁移过,这个值又会从1开始累计,导致前后版本都是16,从而导致fingerprint一致。问题背景:系统版本从低版本升级到高版本后,apk崩溃启动失败。硬件平台:QCS6125。

2024-06-13 14:21:23 635

原创 android 调试UI 按钮无法点击事件问题

首先,打开了Android自带的pointer_location报点轨迹,用电磁笔点击按钮,发现有点位,但是控件未见响应,基本排除硬件、驱动、及系统层面的问题。可以看到这个提交按钮的clickable属性为false,因此无法响应点击事件。实锤给客户端的同事去分析原因去了~~~~~软件平台:Android11。问题:UI控件无法点击。硬件平台:QCS6125。

2024-05-31 16:10:17 443

原创 高通平台Android11 添加新分区的方法

鉴于此,决定重新创建一个分区,将logcat后台记录的日志文件全部移到此分区,由于此分区不参与recovery的双清操作,因此可保证系统再次启动后,该分区依然有recovery模式之前的日志文件,用来排查导致进入recovery模式的原因。我们这个分区的size定义为100M大小,这个可根据自己需要做调整。依次添加的为:生命device节点类型、添加到file上下文、添加开机阶段fsck的操作权限(否则挂载不上)、添加init进程访问节点权限、添加shell访问挂载目录的权限、添加vold挂载节点的权限。

2024-04-22 17:39:56 1091

原创 android11 添加实时记录logcat日志保存到data目录

这就实现了开机自启动记录logcat,并且设置了每个logcat文件的大小,和一共报错多少个logcat日志文件。需求:设备即将上线,需要后台实时采集logcat日志,保存到相应目录下,方便app端上传到服务器,从而分析问题。延伸开发:APP可在发现异常时,主动上传该日志,或者拿到问题设备,将日志取出分析。软件平台:Android11。硬件平台:高通QCS6125。

2024-03-19 17:24:09 477

原创 android 添加ro属性字段并初始化

这种型号属性适合做成ro类型,类似于原生系统的ro.product.model,由于android层面拿到这个具体的型号值是内核通过传递cmdline而获取的,内核层面拿到硬件型号的区别从而在cmdline添加了一个board-id字段,Android层面在init进程解析并设置属性即可。需求:硬件需通过硬件电路区分为多款型号,需要初始化到相应的系统属性字段展示。修改分两部分,init一部分,settings展示代码一部分;软件平台:Android11。硬件平台:QCS6125。

2024-01-11 10:48:45 856

原创 Android11 将logcat日志定位到uart串口输出

重新编译刷机即可验证,注意如果串口日志仍不是全量则需要确认内核printk的级别,shell进设备,执行echo 7 > proc/sys/kernel/printk,可以将内核日志级别设置为最低,即基本上所有等级的日志都会输出到串口。需求:如题,串口需要输出logcat的系统全量日志,我这里边是把logcat日志定向到了/dev/kmsg从而使logcat跟kmsg一样通过串口输出。软件平台:Android11。硬件平台:QCS6125。

2023-11-16 10:52:45 584

原创 Android11 添加adb后门

逻辑就是,三个物理按键短时间按的次数各达到三次,就设置一个prop属性,在连接usb线后,直接可adb shell调试。软件平台:Android11。硬件平台:QCS6125。

2023-10-18 16:42:21 811

原创 Android11 移植memtester压测内存

需求如题,从网上下载了memtest源码压缩包,准备放到系统源码编译,然后push到板子上执行,结果,编译出来一堆问题,报build err。编译好后push到android设备里面,测试前需先在android看里面设置环境变量。

2023-10-18 11:41:36 567

原创 Android11 通过升级Settings数据强制覆盖用户的设置项

需求:设备通过OTA升级,强制修改用户的settings键值;编译SettingsProvider安装验证即可。软件:Android 11。硬件:QCS6125。

2023-09-19 14:17:23 492

原创 Android11 Framework添加Powerkey事件去抖

需求:短时间来回触控powerkey造成屏幕来回亮灭切换,需要去抖动,即在每次响应执行完一次休眠或者唤醒事件后,再响应powerkey事件。增量编译验证:达到的效果是每次经历完一次完整的唤醒、休眠逻辑才会响应PowerKey事件。

2023-07-11 10:50:43 331

原创 Android11 默认开机后台记录logcat日志

需求:android启动后,默认后台记录logcat日志,并且设置每个文件大小为2M,最多记录30个文件,并且放置的data目录需要开放给app侧读取权限。软件平台:Android11。Mark一下,编译验证调试~硬件平台:QCS6125。

2023-07-06 11:53:09 1526

原创 Android11 系统裁剪

2、修改device目录下的makefile,添加具体的package。修改后,编译一次,看out下相关app是否已经不存在即生效了。软件平台:Android11。1、build添加变量定义。硬件平台:QCS6125。

2023-06-13 10:30:13 763

原创 Android 添加休眠唤醒分别关闭和打开飞行模式

此服务主要的功能框架就是监听系统息屏的广播,在接受到此广播后,发五分钟延迟的消息,交给Handler去处理,从而开启飞行模式。需求:功耗考虑,需要在系统息屏5分钟后,进入飞行模式,系统唤醒后,关闭飞行模式。软件:Android11。硬件:QCS6125。

2023-05-19 16:00:12 432

原创 Android11 TextView长按默认触发选项定制

此外,对于网络链接文本,长按后可能会出发“打开”的按钮,这种情况可以删除Browser应用。软件平台:Android11。硬件平台:QCS6125。

2023-05-19 14:50:14 326

原创 repo 管理android源码,创建新分支,大版本回退快捷操作

Mark一下,上述这种方式其实是通过分支映射xml的方式,分支的proj列表xml文件,统一都在master分支管理维护。1、本地干净的代码推送到远程,新建分支,本地可建也可不建与远程同名的分支;2、新建本分支的xml文件,并提交到master分支;4、执行如下指令,sync代码,并且切换新分支;需求:android源码仓创建新分支。3、通过制定xml的方式同步新分支代码;

2023-05-15 17:16:20 1010

原创 Android11 添加开机启动后固件升级逻辑

对于qcom平台,做如上修改后,可在android跟目录执行完env之后,mmm system/sepolicy就可以生成,会在out/target/product/trinket目录(lunch的产品)生成到两个路径下:system/etc/selinux和vendor/etc/selinux,分别将这两个目录push到target就可以验证生效;如果需要升级,则设置背景图,并且设置不可点击,防止不必要的anr出现。1、添加资源文件,即升级情况的全屏UI提示背景图;至此,需求开发完成。

2023-04-27 10:48:28 435

原创 Ubuntu18.04 安装 samba 服务器

步骤四:在Ubuntu下创建一个你想要共享的文件夹。并把文件夹权限设置为777,作者这里在/home目录下创建了work 共享文件夹。步骤七:在window下登陆到linux 下的共享文件夹 直接在window 文件路径下输入 \\ 你linux 的IP地址进行访问。步骤六:修改smaba配置文件 /etc/samba/smb.conf。步骤二:检查下samba安装信息 使用命令。步骤三: 使用命令 来启动samba服务。步骤五:添加 samba 用户。步骤一:直接使用命令。

2023-04-26 20:41:09 943

原创 Repo 整体版本回退,方便二分查找确定问题

1).在android根目录下,新建分支,repo forall -c git checkout -b new_branch_xxx XXX_HALO_2.1.2_L1_20220829。2).此时所有仓库已创建好新分支new_branch_xxx,且已回退至tag为XXX_HALO_2.1.2_L1_20220829时间节点的历史版本。先去随意git仓库下,git tag,假设想回退的tag号为XXX_HALO_2.1.2_L1_20220829。1.repo回退到具体某一天的提交。

2023-04-26 17:32:08 941

转载 Android11 SELinux 添加权限后不生效

发现需要确实是Android 11 platform_app 缺少mlstrustedobject。Android 11上需要对一个节点进行写操作,但是添加了Selinux以后还是报错。但是因为要过cts,不能直接修改platform_app的type。修改yft_temperature_file即可。软件平台:Android11。硬件平台:QCS6125。加了权限还是一直报avc。

2023-04-12 17:16:12 690

原创 android11 关闭默认的窗口切换动画

增量编译验证即可,发现window自身动画和window间切换动画已经默认关闭。软件平台:Android11。硬件平台:QCS6125。

2023-04-03 18:07:08 661

原创 Android平台设置系统默认亮度

软件平台:Android11。硬件平台:QCS6125。

2023-03-31 10:48:23 751

原创 Android11 添加输入法并且设置默认

具体配置项的字串怎么获取呢?安装上apk,在settings界面选中该输入法,然后命令行。拿到值设置到SettingsProvider的配置文件即可。软件平台:Android11。硬件平台:QCS6125。

2023-03-29 20:17:56 931

原创 默认开启“停用HW叠加层”开关,强制GPU渲染

因为开机默认状态,不会加载开发者模式的页面,因此在开发者模式的控制类是无法修改默认的,只能在开机必走的阶段执行使能,这里我选择的是FallbackHome这个类,每次在launcher启动之前都会调用这里,故选择该类。编译验证,刷机即可发现在开发者选项中,该项值已经默认打开了。

2023-02-05 15:18:08 6880

原创 Android11 设置菜单添加永不休眠选项

切换到dream_timeout资源,这里边有永不休眠的选项;软件平台:Android11。硬件平台:QCS6125。

2023-02-02 16:58:05 956

原创 Android11 修改默认系统语言为中文

不难看出,所谓的设置默认语言,只是把相应的语言配置到首位即可。

2023-01-30 16:46:25 1612 2

原创 隐藏Android11系统的鼠标

锁定是在PointerIcon.java中控制显示的,进入到PointerIcon类中详细分析,该类中主要的方法有getNullIcon() 获取空图标;getDefaultIcon()获取默认图标;getSystemIcon()获取系统图标等,认真读几遍代码,不难发现获取鼠标的方法最终都会调用到getSystemIcon()这个方法里。需求由来:项目中支持电磁笔,发现电磁笔接触屏幕的点系统都会显示黑色的鼠标小箭头,需要将这个屏蔽掉;进而查找pointer_arrow_icon.xml的加载位置,

2023-01-30 16:32:00 1058

原创 Android11 添加HIDL接口编译报错

可以看到在prebuilts目录生成了两个lsdump文件,cd到相应目录,git status看到文件确实被修改了,git commit这俩文件即可,这样其他人sync下来,直接就会build通过而不再报这个错误。软件平台:Android11。硬件平台:QCS6125。

2023-01-16 10:28:25 2069

原创 Android11 开机默认旋转90度

至此从开机动画开始往后的UI都修改为默认竖屏了,剩下的就是bootlogo部分,这部分只需要把bmp格式素材自行旋转为竖屏,编译到系统即可。需求说明:开机自动旋转90度,改横屏显示为默认竖屏,从开机logo,开机动画开始就默认旋转。第四步:修改DisplayRotation.java。第三步:修改RotationPolicy.java。默认settings键值配置为竖屏。软件平台:Android11。需求搞定~~~~~~硬件平台:QCS6125。第五步:修改开机动画部分。

2023-01-14 16:47:57 2179

原创 android 添加vndbinder控制接口

可以大概看出,是vndservice可执行程序通过vndbinder调用同样注册vndbinder的display.qservice服务,后边跟的参数38代表功能接口的ID号即为一个方法,再往后的i32为该功能的参数数据类型定义为int32,再往后尖括号就是参数值。需求描述:通过adb命令行,同注册为vndbinder的服务通信,调用其相关接口,注册vndbinder的服务在HW层实现。在执行上述指令的同时,打开logcat日志,可以看到“======”标示的日志输出,代表数据通路没问题。

2022-12-24 11:10:40 898

原创 Android11添加AIDL系统服务及HIDL接口服务

frameworks/base/services/core/java/com/android/server目录添加HandWriteManagerService.java。可以看到“======”标示的内容,从自定义服务开始到SF日志,到最终HW层扩展接口拿到传递的数据值证明接口通了~~~~完事大吉!将刚刚得到的新 hashcode 值更新到 hardware/interfaces/current.txt。Mark一下,本文只做数据通路走通,可参考实现自己的控制和数据传输接口!

2022-12-22 17:01:43 4909

原创 Ubuntu18.04添加vim配置

重启终端,vi一个文件即可生效~~~~

2022-11-17 17:23:22 1519

原创 HWC与GPU混合渲染概念详解

然后,SurfaceFlinger 通过调用 setClientTarget 将该缓冲区提供给屏幕,以便缓冲区可以在屏幕上显示,或者进一步与未标记为进行 SurfaceFlinger 合成的图层合成。该框架假设,在热插拔第一个内部屏幕之后,所有热插拔操作都是在外部屏幕上进行,因此如果添加了更多内部屏幕,它们将被错误地归类为 Display.TYPE_HDMI,而不是 Display.TYPE_BUILT_IN。在显示缓冲区之前,HWC 会检查同步栅栏是否已发出信号,如果有,则显示缓冲区。

2022-11-01 16:28:22 1712

原创 Andoird11版本对后装apk添加包名和签名校验

专门防止三方软件,盗取包名后台安装替换。软件平台:Android 11。

2022-08-24 17:47:32 1212

原创 Android 9系统添加系统字体

近日,预制了一套系统字体,本来字体可以在app中单独放置到资源,然后调用,但由于系统中定制的apk有多个需要用该字库,为了节约空间,就把字库文件预制到了系统,一份文件可以供多个apk去使用。改动不大,主要是找到要改动的点,网上的方案很多,大部分都是针对低版本,好多文件在高版本没有了,没办法参考,自己搞定了,Mark一下。我这里是改了Settings里边恢复出厂设置的确认界面的字体,修改完成,增量编译,然后刷机验证即可~~~修改frameworks/base/data/fonts目录内容。

2022-08-23 11:20:46 1266

原创 android11添加自定义静态广播无法获取解析

android11添加自定义静态广播

2022-08-04 10:16:58 3359

linux指令大全............

适合linux初学者的上乘秘籍!!!我刚买了一本感觉好就把他打成了文档,方便更多人

2010-03-18

考研真题。。。。。。。。。。

看了真题,包你复习效率大增。。。。。。。稳喥清华桂冠

2009-12-12

09年数学考研大纲数学一

对考研数学所考范围及深度做了很好的说明,值得一看呦。

2009-03-23

空空如也

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

TA关注的人

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