Android11 源码修改
文章平均质量分 84
Android11 源码常用修改
cczhengv
android ROM 定制开发
展开
-
Android11.0(R) MTK 预置可卸载app恢复出厂不恢复(仿RK方案)
4、区分是刷机后第一次启动还是恢复出厂后第一次启动,正规来讲需要通过nvram方式去写标志区分(我发现一种偷懒取巧方式,判断/cache/recovery/last_install文件是否存在)RK这个解决方案还存在一个bug,当你把apk卸载后包名被记录到last_deleteApkFile.dat,你再次刷机后开机apk也不存在,/cache/recovery/last_kmsg.2每执行一次恢复出厂操作,/cache/recovery/中就会多出文件。...原创 2022-07-30 16:46:10 · 3764 阅读 · 0 评论 -
android10.0(Q) android11(R) 时区相关问题
一、默认关闭自动更新时区将自动更新时区开关 def_auto_time_zone 的值设置为 false。文件路径:platform/frameworks/base/packages/SettingsProvider/res/values/defaults.xml二、自动更新时区打开,设置默认时区不生效问题当你 persist.sys.timezone 配置了这个没用,那可能和设备驻留到紧急网络上,会根据网络上报的国家码进行匹配并更新时区2.1 android10.0(Q) 解决办法framew原创 2022-04-19 16:47:51 · 2065 阅读 · 3 评论 -
谷歌Dialer和来电铃声不同步问题修改
bug 描述:来电铃声响起后,来电页面隔个2~4秒才起来解决思路把原有响铃逻辑稍微延后,等到页面起来后再通知铃声播放。响铃实际在 Telecomm 中,这个简单要判断页面是否在前台这个有点挑战,一开始没啥思路,后来分析 log 找到了很明显的地方 DecorViewV/PhoneWindow: DecorView setVisiblity: visibility = 4, Parent = android.view.ViewRootImpl@b9781c9, this = DecorView@38原创 2022-04-02 16:58:27 · 3944 阅读 · 0 评论 -
Framework 全局监听屏幕点击事件 INPUT_EVENT_INJECTION
需求:用户点击屏幕后取消原有定时任务,无操作后顺延原来定时任务简单分析要想全局监听,那必须是在 framework 中了,应该从哪里切入呢?先看看 log,每点击一次屏幕后发现打印InputDispatcher: Asynchronous input event injection succeeded.全局搜索找到 frameworks\native\services\inputflinger\InputDispatcher.cpp 中这就有点难顶了,cpp 中想要通知 java 层还是有点困难的原创 2022-03-02 12:01:43 · 3955 阅读 · 0 评论 -
Android11.0(R) CTS UserspaceRebootHostTest 软重启动画铃声问题
11 开机动画和铃声 CTS 测试新增要求如下google 本身的动画so是包含这块逻辑处理的,但是不能播放 mp3 类型铃声,使用 mtk 框架那套是不完整的需要我们自己修改一下软重启相关介绍可以看官方软重启测试指令adb shell svc power reboot userspace修改清单frameworks/base/services/core/java/com/android/server/power/ShutdownThread.javasystem/core/rootdi原创 2021-12-28 16:16:13 · 2227 阅读 · 0 评论 -
Android11.0(R) MTK user版本打开MtkLog功能
MTKLog 功能很好用,在 userdebug 和 eng 版本中可以帮助我们分析问题。今天来搞一下,在 User 版本中也启用这个功能。修改清单device/mediatek/system/common/mtklog/mtklog-config-bsp-eng.propdevice/mediatek/system/common/mtklog/mtklog-config-bsp-user.propdevice/mediatek/system/common/device.mkdevice/med原创 2021-12-16 14:21:57 · 3953 阅读 · 0 评论 -
android11.0(R) 谷歌浏览器去除短信分享功能
客户定制GMS 版本下,要求去除谷歌浏览器中分享菜单下短信备选项,最终实现效果如下要输入网页后右上角菜单中才会显示分享功能。解决办法frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java@@ -7413,11 +7417,44 @@ public class PackageManagerService extends IPackageManager.Stub if (原创 2021-12-10 10:51:30 · 2142 阅读 · 0 评论 -
android11.0(R) data分区节点加密控制分析
前情提要androidQ(10.0) 预装集成apk到data分区Android O、P、Q 版本如何预装 APK遇到问题当然是和之前一样啦,开机并不能正常启动,而是自动进入了 recovery 界面,且界面显示Can’t load Android system. You’r data may be corrupt.If you continue to get this message, you mayneed to perform a factory data reset and erase原创 2021-11-25 14:45:12 · 4905 阅读 · 3 评论 -
Android11.0(R) framework 新增类 lint 编码检查问题
从 10.0 移植了几个类过来,没想到一编译出来几十个 errors,这就很离谱,明明是现成的代码。后来仔细看了错误 log 提示,Your API changes are triggering API Lint warnings or errors详细 log 如下26 new API lint issues were found.See tools/metalava/API-LINT.md for how to handle these.****************************原创 2021-11-10 13:18:59 · 7070 阅读 · 3 评论 -
Android11.0(R) 预置 wifi 信息自动连接
在系统中预置一个 wifi 的 ssid 和 pwd,这样在系统烧写启动完成后开机打开 wifi 就能自动连接指定 ssid。1、获取 WifiConfigStore.xmlR 版本此文件路径位于/data/misc/apexdata/com.android.wifi/WifiConfigStore.xmluserdebug 版本下先连接好指定 ssid,将 WifiConfigStore.xml copy 出来,大致长这样。<?xml version='1.0' encoding='ut原创 2021-10-29 14:20:31 · 5762 阅读 · 5 评论 -
Android11.0(R) 预留清空锁屏密码接口
前言出厂的设备有些客户喜欢设置锁屏密码,无奈记性不好,忘记密码后就只能恢复出厂或者重新刷机了,啊这客户肯定不接受的。为了防止客户逼逼赖赖,我们就未雨绸缪,给它加个清除接口。先说结论,系统锁屏密码数据库存储位于 /data/system/locksettings.db经过测试 O 版本直接删除 locksettings.db 就已经达到要求测试 Q、R 版本直接删除 locksettings.db 后,系统锁屏界面确实没了,但一直卡在安卓正在启动界面了,无法进入桌面,进入设置中查看 Launche原创 2021-10-24 10:30:00 · 3380 阅读 · 4 评论 -
Android11.0(R) 华为充电动画
根据系统原有的无线充电动画流程,新增有线充电气泡动画。效果图修改文件清单 vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/wired_charging_layout.xml vendor/mediatek/pr原创 2021-10-08 13:13:51 · 1812 阅读 · 0 评论 -
Android11.0(R) MTK平台添加新分区
mtk 平台增加一个新分区test,修改文件列表如下 modified: device/mediatek/mt6765/init.mt6765.rc modified: device/mediatek/mt6765/sepolicy/basic/device.te modified: device/mediatek/mt6765/sepolicy/basic/file_contexts modified: device/mediatek/mt6765/ueventd.mt6765.e原创 2021-09-15 12:10:19 · 7128 阅读 · 25 评论 -
Android11.0(R) HAL 相机集成水印算法+多帧算法
一、写在前面上网????经常看到一些好文章,除了收藏之外,顺手一会照着搞一搞。这次看到 qiuxintai 写的MTK HAL算法集成之单帧算法MTK HAL算法集成之多帧算法有点东西,写的很详细,适合来一遍,文章是基于MTK 9.0 的,大差不差。我就基于最新的 11 搞了。二、准备工作qiuxintai 文章中并没有提供 libwatermark.so watermark.rgbalibmultiframe.so 这几个关键的东西,所以我们要先把这几个东西集齐才能召唤神龙。经过一原创 2021-09-13 11:40:30 · 10682 阅读 · 11 评论 -
Audio HAL 通话录音上下行分离
背景需求做语音识别和答录功能的app大都需要将通话录音上下行VOICE_DOWNLINK/VOICE_UPLINK单独分离实时转义识别。两个解决方向:1、AudioRecord 方法的立体声录制PCM数据混合音源了,二进制文件无法区分哪些数据是左声道,哪些是右声道。通过修改AudioRecord立体声PCM录制方案,每8位一组数据,左声道8位在前,右声道8位在后。2、使用两个实例同时运行MediaRecorder的VOICE_UPLINK,VOICE_DOWNLINK录制上行或下行数据,且数据不重原创 2021-08-12 12:21:46 · 2699 阅读 · 2 评论 -
Android11.0 增加人脸解锁功能
一、Settings 模块修改从 Q 版本开始 aosp 代码就已经默认支持 Biometric 生物识别相关功能,Settings 中不显示入口菜单是因为判断了硬件是否支持。可以先看下安全页面中显示的菜单如下。我的设备默认是支持指纹模块的,所以在安全菜单中显示了这个入口。这块的逻辑如下,当没有设置图案/pin码/密码中任意一种锁屏方式时,进入指纹菜单中,会显示如图所示必须先设置一种备用解锁方式才可继续设置指纹操作。之前如果已经设置过三者之一的解锁方式,则进入指纹菜单中则跳过刚刚的页面,获取.原创 2021-07-16 15:41:04 · 6900 阅读 · 11 评论 -
关闭安卓系统导航栏右下角自动旋转按钮
问题现象:系统自动旋转屏幕已经关闭,手握手机横屏后在握成竖屏,右下角多出一个自动旋转按钮会闪烁两下,点击后系统又自动变成横屏了。解决办法:在 SystemUI 中搜索 rotate 相关找到 ic_sysbar_rotate_button.xmlvendor\mediatek\proprietary\packages\apps\SystemUI\src\com\android\systemui\statusbar\phone\NavigationBarView.java final Rota原创 2021-07-08 14:56:12 · 3656 阅读 · 0 评论 -
Android11.0 V-A/B无缝OTA升级update_engine
前言V-AB 升级方案其实早在 7.0 就已经引入了,只是并未强制启用,依旧兼容了之前 /cache 分区升级的方式。Android recovery更新简单流程及注意点所以一开始按照老思路来,解决完各种权限后最终发现 log 提示找不到 /cache 分区。后来查阅资料发现,相较于 Android 10.0,Android 11.0 的 Recovery 分区与 cache 分区已删除。AB 方案介绍AB 方案就是双分区双系统,每个镜像都是双份,分别对应两个分区。V-AB 方案介绍V-AB原创 2021-06-16 15:33:45 · 15333 阅读 · 39 评论 -
Android11.0 平板默认横屏且兼容重力传感器方案
前言之前搞过的默认横屏大都都是强制性的,静止了自动旋转,那是因为本身也不带重力传感器。之前的改法过于暴力不太正统,这次仔细研究了下 android 横竖屏控制相关的代码,整理了一套合适的修改方案。大多情况下竖屏横用是常见的应用场景,这样做应该能节省成本,但给系统软件带来的麻烦不小。而在安卓版本的迭代中,谷歌和 MTK 已经将屏幕旋转这块做的很完善了, 这里就以 MTK 平台 android11 最新源码分析。1、Uboot Logo(开机第一屏)方向控制MTK 的 UbootLogo 绘制在 l原创 2021-06-09 18:39:50 · 6460 阅读 · 12 评论 -
Android 屏幕显示方向分析
屏幕参数方向引入由于客户的选型,需要更改自身屏幕方向;在P之前的android SDK中,谷歌并不支持相关的功能;所以需要原厂自行定制;在P上 MTK为统一刷GSI和不刷GSI方向的统一,向谷歌mainline提供了对应的补丁;之后在Q上谷歌又进行了相关的修改;使得安卓支持改变默认显示方向的功能也日趋稳定;当然也是会存在bug,如在android Q上就出现了开机动画和应用启动动画异常问题(已解决);但为了统一后续android平台下的横屏竖用使用配置;全志平台androidQ横屏竖用也是依托这个补转载 2021-06-07 10:01:01 · 3880 阅读 · 0 评论 -
Android 通讯录号码匹配规则 SQL
当你在系统通讯录存储8位号码联系人后,呼出时在刚刚存储8位号码前任意补足3位数,查询到的联系人名称将被模糊匹配为8位号对应名字。举个例子,将 87354321 存储为 哈哈哈,拨号盘拨打 01087354321,通话记录和拨号界面都会显示 哈哈哈。要想解决这个问题需要了解系统联系人查询规则,可参考 Android6.0来电号码电话薄名称匹配整体看下来后发现就是查询 Provider,在 packages/apps/Dialer/java/com/android/incallui/CallerInfo原创 2021-06-02 16:08:08 · 1029 阅读 · 6 评论 -
Android11 强制所有APP 横屏显示
前言由于平板项目没有 Gsensor,需要将所有第三方APP强制横屏, 无视 android:screenOrientation=“portrait” 属性效果图修改前修改后修改源码alps\frameworks\base\services\core\java\com\android\server\wm\DisplayRotation.java @Surface.Rotation- private int mRotation;+ private int mRotati原创 2021-05-29 11:34:24 · 6608 阅读 · 24 评论 -
Android系统预装Chrome并自定义主页
网上有说必须加 GMS 框架后才能生效,我这里验证的是不需要,将 GMS 包中的 Chrome.apk 和 TrichromeLibrary.apk 拷贝出来在 package/apps 目录下新建 Chrome 文件夹,将俩 apk 拷贝至此出,新建 Android.mkpackages\apps\Chrome\Android.mk################################################################################ Chr原创 2021-05-22 14:02:15 · 2609 阅读 · 8 评论 -
FdSanitizer 简介
背景在分配file descriptors时, POSIX标准规定了内核必须从所有可被使用的fd数值中最小的一个, 参考alloc_fd,如果代码里没有正确的处理好fd的open/close等操作,就可能会带来以下2个副作用:use-after-closedouble-close示例: double-close问题void thread_one() { int fd = open("/dev/null", O_RDONLY); doWork(fd); close(fd);转载 2021-05-14 19:30:16 · 2567 阅读 · 1 评论 -
Android 11---WMS之横竖屏切换流程详解
本文以Activity.setRequestedOrientation为入口梳理下横竖屏切换的详细流程。 代码均是基于最新的11.0版本。 第一篇主要讲了横竖屏切换时的准备操作: 更新方向,执行冻屏,截图显示以及计算更新基于新的方向的DisplayInfo和Configuration。 第二篇主要讲下如何将更新后的Configuration通知到树形的窗口结构以及应用中。 第三篇主要讲下解冻的流程以及...转载 2021-04-16 19:23:29 · 2688 阅读 · 1 评论 -
Android11.0(R) MTK 平台开机logo动态替换(by logo.bin方式)
实现的效果客户提供一张格式为 bmp 的开机logo,在 linux 环境下执行制作 logo.bin 脚本文件,apk 拷贝 logo.bin 文件替换系统原有的bin,然后重启 logo 自动更新。原理分析MTK 平台的充电图片和开机logo都是打包到 logo.bin 中的对应的资源路径在源码 vendor\mediatek\proprietary\bootable\bootloader\lk\dev\logo系统一般预制了很多分辨率文件夹,实际通过 BOOT_LOGO 来确定打包那一个原创 2021-04-13 10:15:50 · 3620 阅读 · 9 评论 -
Android11.0(R) 手机锁屏炫酷充电动画————自定义View方案
本片文章的源码和修改思路均来自 Robin-GG这里只是将其整理出来,实际验证亲测可行。效果图修改文件清单SystemUI锁屏充电动画.zipvendor/mediatek/proprietary/packages/apps/SystemUI/res/drawable-xhdpi/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/prize_charge_layout.xmlvendor/mediatek/propr原创 2021-03-12 16:45:02 · 1779 阅读 · 9 评论 -
Android11.0(R) MTK6771 user版本关闭 SELinux
开始我们先来跟一下 selinux 的初始化过程system\core\init\main.cppint main(int argc, char** argv) {#if __has_feature(address_sanitizer) __asan_set_error_report_callback(AsanReportCallback);#endif if (!strcmp(basename(argv[0]), "ueventd")) { return ueve原创 2021-03-10 13:21:24 · 4605 阅读 · 3 评论 -
android11.0(R) root MTK 6771 user版本打开root权限(adb root权限和 apk root权限)
前言老弟们,还是我,将 root 进行到底!android11.0 root 安排!!!大体沿用之前 10.0 的修改方法,adb 想要 remount 成功,必须进行 fastboot 解锁,解锁后无需在进行 adb disable-verity操作,直接 adb remount 就能成功,且可以执行 push 或者 rm修改方案总共修改 15 个文件,新增 3 个文件,一共 18 个 modified: build/make/core/main.mk modified: bu原创 2021-03-04 09:54:32 · 7201 阅读 · 16 评论 -
Android11.0(R) MTK6771 平板横屏方案修改(强制app横屏 + 开机logo/动画+关机充电横屏 + RecoveryUI 横屏)
拆解步骤1、app 强制横屏显示,无视 android:screenOrientation=“portrait” 属性2、开机动画横屏3、开机logo、关机充电动画横屏4、RecoveryUI 横屏11 和 10 的差别不大,app 强制横屏显示 和 开机动画横屏 不太一样其它都一样处理上代码##1、app 强制横屏显示DisplayRotation 显示 mRotation 默认改为 3 (270)frameworks\base\services\core\java\com\androi原创 2021-01-20 10:13:36 · 4934 阅读 · 10 评论 -
Android11.0(R) MTK6765 TP 驱动移植调试排错过程
本文基于 Q 版本 TP 正常情况下平行移植到 R 版本中,只是记录移植过程中遇到的坑。具体 TP 驱动框架详细介绍可参考附录文章。TP 驱动代码路径位于*R\alps\kernel-4.19\drivers\input\touchscreen*相比较 10.0 而言,10 的 kernel 版本用的是 kernel-4.9,所以之前的代码路径在*Q\alps\kernel-4.9\drivers\input\touchscreen*如何知道项目使用的 kernel 版本,在项目 Project原创 2021-01-06 13:07:01 · 2204 阅读 · 1 评论 -
Android11(R) system_ext 分区 system_ext_specific 属性
android11 开搞朋友们,最近拿到 androidR 的代码了,让我们来康康有哪些变动,一上来就给我整懵了,编译了 SystemUI 后发现居然跑到 system\system_ext\priv-app 文件下了,这是什么鬼,又新加分区?之前 Q 版本已经新增了 product 分区,并且 SystemUI、Launcher3、Settings这些核心应用都存放在此处,现在 R 版本又跑到这个 system_ext 分区下了关于动态分区之前介绍过 Android10 动态分区介绍一探究竟原创 2020-12-17 19:11:07 · 12987 阅读 · 6 评论