自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(214)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android 11 定制系统服务实战:从 Framework 开发到 APP 调用全记录

客户需要在 APP 层控制以下系统能力(普通 APP 无权限直接做到):这些能力分散在 system_server、SystemUI、PhoneWindowManager、sysfs 里,APP 无法直接触达。方案是做一个标准的 AIDL 系统服务 MmeService,跑在 system_server 进程,对 APP 暴露统一 Binder 接口;静默安装则由独立的 InstallerSystem 系统应用承接(system_server 读不了 sdcard,也不该持有安装权限)。三、Fram

2026-08-17 18:30:53 26

原创 Android 11 定制设置系统默认语言列表(en-US + zh-CN)与“添加语言“建议项

本文介绍了在Android 11系统上实现两个语言相关需求的修改方案: 修改一:在LocaleStore.java中添加代码,使"添加语言"页的建议列表出现中文选项。关键改动是在fillCache()方法中为zh-CN语言添加SUGGESTION_TYPE_SIM标志。 修改二:在Settings.java中修改首次开机时的默认语言列表设置,使其同时包含英语(美国)和中文(中国)。通过检查system_locales是否为空来判断首次开机,并设置默认LocaleList为"en-US,zh-CN"。 文章还

2026-08-15 13:52:26 46

原创 展讯平台 USB 存储未发送 MEDIA_MOUNTED 广播的排查与修复

展讯平台 USB 存储广播问题分析 摘要:展讯 SPRD Android 15 平台插入 USB 存储设备后,系统能正常挂载但应用收不到 MEDIA_MOUNTED 广播。通过代码追踪发现,问题根源在于 fstab 配置缺少 encryptable=footer 标志,导致 vold 服务未设置 kAdoptable 标记。这使得 framework 层的 isAdoptable() 返回 false,最终未设置 MOUNT_FLAG_VISIBLE_FOR_WRITE 标志,广播发送被阻断。全志 A537

2026-07-30 09:49:08 17

原创 Android 15 系统开发:按应用包名动态伪装系统属性

是系统底层高频接口,在里面打印日志会导致 logcat 刷屏,严重影响启动性能,甚至干扰系统服务日志分析。在定制 Android 系统的开发过程中,经常遇到这样一类需求:某些预装应用需要读取到特定的设备标识信息,而系统真实的硬件平台、产品代号与目标值不符。属性虽然直接,但影响范围太大,会导致系统其他模块、第三方应用、诊断工具全部拿到被修改的值,带来难以预料的副作用。执行之前,先判断当前进程的包名,如果是目标应用,就直接返回构造好的假值,完全不走底层属性读取。在 App 进程里,它会返回类似。

2026-05-30 16:56:51 63

原创 Android 15 AOSP 适配移动云电脑快捷键透传:解决 Win 键、Alt+Tab、Ctrl+Alt+Del 被系统拦截问题

采用本文方案后,只有云电脑 App 前台时才透传这些快捷键,其他场景仍保持 Android 默认快捷键逻辑。在 Android 15 系统上使用云电脑或远程桌面时,如果连接外接物理键盘,经常会遇到一个比较典型的问题:进入云电脑后,本方案适合系统定制场景,尤其是 Android 设备作为云电脑终端、远程桌面终端、办公终端使用时。也就是说,按键并没有完整透传到云电脑 App,而是在 Android 系统层被提前处理了。也类似,按下后可能触发 Android 本机应用切换,而不是云电脑内的窗口切换。

2026-05-15 14:42:44 236

原创 Android 11 系统级定制:深度重构 SystemUI 悬浮音量面板

在 Android 系统底层的定制开发中,SystemUI 的修改往往能带来最直观的用户体验提升。原生的 Android 11 音量面板是一个靠屏幕边缘吸附的整体卡片悬浮窗。如果在某些产品设计中,我们需要更加灵动、现代的 UI,比如 “将顶部铃声控制和底部音量条拆分为两个独立的悬浮胶囊”,该如何实现呢?本文将带你深入 Android 11 的 源码,一步步抽丝剥茧,完成音量面板的深度重构。完整源码与路径均已提供,建议准备好源码直接开干!我们需要在系统资源目录中创建四个背景与进度文件,以此实现真正的圆润胶囊

2026-04-18 23:17:41 2717

原创 Android SELinux 指南:从基本概念到实战修复

这就意味着,即使两个进程都有较高的系统权限,它们在 SELinux 里依旧可以、也应该被限制在不同的职责边界中。这篇文章会从最基础的概念讲起,逐步讲到 Android 中常见的策略文件、标签机制、日志阅读方式,以及一个完整的新服务实战流程。当你开始把 denial 看作一种设计反馈,而不是单纯的报错信息时,SELinux 就不再只是一个令人烦躁的门槛,而会变成帮助你理解 Android 系统结构的一把标尺。这意味着,Android SELinux 不是“文件权限加强版”,而是系统组件边界的一部分。

2026-04-04 14:50:35 446

原创 Android 16 通过 ADB 启动 Activity 实现恢复出厂设置

理想的方案是:通过一条 ADB 命令直接启动一个专属 Activity,由该 Activity 在后台静默完成出厂重置的广播发送,整个过程无需任何用户交互。并注册自定义 Action,我们以最小的代码改动实现了一条 ADB 命令触发恢复出厂设置的能力,非常适合产线自动化测试、压测循环或远程设备管理等场景。执行后,设备将立即进入出厂重置流程,无需任何手动操作。属性,在量产固件中需要评估安全风险,建议仅在工程版本或测试版本中保留,量产版本应通过编译开关或权限保护加以限制。,整个过程无界面闪烁,对用户完全透明。

2026-03-12 17:26:55 87

原创 Android 16 系统预置媒体文件自动拷贝方案

本文介绍了一种Android设备出厂定制中自动拷贝系统内置媒体素材到外部存储的方案。该方案采用三层架构:构建层通过PRODUCT_COPY_FILES将素材打包进系统镜像;启动层通过CoreStartable机制在SystemUI启动时监听开机广播;执行层使用MediaPreloadHelper在后台线程完成文件拷贝,并通过SharedPreferences保证幂等性。关键实现包括构建脚本修改、Dagger注入注册以及核心拷贝逻辑,可将素材自动复制到指定目录(如Pictures、DCIM等),提升用户开箱体

2026-03-05 16:06:32 90

原创 你不是不自律,你只是没找到那个开关

大脑不会记住"你做了什么",大脑记住的是"做这件事的时候你感觉怎么样"。但 Fogg 让我换了个角度看——那些看起来很自律的人,未必是意志力更强,只是他们有意无意地,给自己搭了一个更顺手的结构。Fogg 说,每次完成微小行为之后,你要立刻"庆祝"——对自己说一句"太棒了",或者在心里给自己竖个大拇指,甚至只是微微一笑。Fogg 不是让你用更大的毅力去坚持,而是让你把行为缩小到荒谬的程度——真正阻碍你的,从来不是"做完这件事",而是"开始做这件事"。BJ Fogg 会告诉你——不是你的问题,是方法的问题。

2026-02-10 14:08:24 400

原创 存款多少才能在超市不看价格?

钱就像做菜用的盐。没有盐,菜确实寡淡无味,难以下咽。所以我们在早期确实要努力赚钱,尽快脱离那个"无盐可用"的窘境。但是,盐本身不是一道菜。你不能光吃盐。如果我们为了搞更多的盐,而牺牲了食材本身——我们的健康、家庭、时间、生活——那就是本末倒置。更可怕的是,如果你往菜里放了太多盐,这道菜就彻底毁了。我们在攀登财富阶梯的过程中,最难的从来不是怎么往上爬,而是——知道什么时候该停下来,好好享用这道菜。

2026-02-09 10:29:35 606

原创 给电脑浏览器安装一个智能喝水助手

【代码】通过油猴脚本给电脑浏览器安装一个智能喝水助手。

2026-01-31 14:43:30 204

原创 金字塔原理的核心原则,它如何提高我们的沟通效率

例如,不能将“财务问题”和“人事建议”混在同一个层级的列表中,除非你能在上一层找到一个能同时概括这两者的名词(如“公司面临的挑战”)。通过预先将信息归纳、分组并按自上而下的顺序呈现,你实际上是把“经过加工的成品”直接喂给受众,让他们不需要消耗额外的脑力去寻找逻辑关系,从而能轻松理解你的观点。这种方式通过描述受众已知的背景和面临的冲突,引出他们心中的疑问,而你的文章正是对该疑问的回答。金字塔原理之所以高效,是因为它顺应了人类大脑处理信息的生理特点,减少了受众在接收信息时的“脑力损耗”。

2026-01-30 17:41:24 572

原创 备忘 frameworks 里的 *ShellCommand.java

【代码】备忘 frameworks 里的 *ShellCommand.java。

2026-01-19 17:07:29 55

原创 Android 15 Settings定制:拦截“开发者选项”并添加动态密码锁

通过上述修改,我们成功实现了一个双重验证机制第一重(自定义):必须输入基于日期的特定暗号(如),此密码仅掌握在开发或售后人员手中。第二重(系统级):如果用户设置了手机锁屏密码,依然需要验证锁屏密码(保留了系统的安全性)。这种修改方式侵入性小,逻辑清晰,是 Android 系统定制中非常经典的功能实现。

2026-01-18 09:26:03 114

原创 【备忘】 展讯 Android16 屏幕休眠状态下插入 usb 充电不点亮屏幕

【代码】【备忘】 展讯 Android16 屏幕休眠状态下插入 usb 充电不点亮屏幕。

2025-12-20 20:36:10 68

原创 【备忘】 展讯 Android16 launcher3 默认无抽屉模式

【代码】【备忘】 展讯 Android16 launcher3 默认无抽屉模式。

2025-12-19 13:49:35 155

原创 【备忘】 Android16 Launcher3 AllApps抽屉页面显示铺满

【代码】【备忘】 Android16 Launcher3 AllApps抽屉页面显示铺满。

2025-12-18 23:21:47 79

原创 备忘 Android 16 通过 init.rc 开机完成后写入一个节点值

【代码】备忘 Android 16 开机完成时通过 init.rc 去写入一个节点值。

2025-11-20 14:28:54 65

原创 备忘 Android 16 设备硬件不带马达去掉振动

【代码】备忘 Android 16 设备硬件不带马达去掉振动。

2025-11-08 14:37:02 170

原创 Linux 软链接与硬链接详解:Android 系统源码开发实战指南

软链接更灵活,适合动态场景(版本切换、分支跟随、目录引用)硬链接更稳定,适合静态场景(备份、多位置使用、空间优化)🚀 提高开发效率(快速访问深层目录)💾 优化磁盘使用(避免重复数据)🔄 简化版本管理(灵活切换配置)🛡️ 保护重要文件(安全备份机制)软链接是路径,硬链接是文件。根据实际需求选择合适的链接方式,让 Android 源码开发更加高效!Linuxlnman lnAndroid 源码编译指南:https://source.android.com文件系统 inode 原理。

2025-11-08 14:20:07 320

原创 备忘 GMS项目不显示 Launhcer 应用列表里的推荐最近使用 App

【代码】备忘 GMS项目不显示 launhcer 应用列表里的推荐最近使用啊app。

2025-11-07 09:35:05 114

原创 备忘 Android 15去掉 WebView Shell

不内置 sys 目录里的 Browser2 即可。

2025-10-29 17:27:15 82

原创 备忘 修复 展讯 Android 16 DreamSoundRecorder 录音列表界面不显示状态栏问题

【代码】【备忘】 展讯 Android 16 DreamSoundRecorder 录音列表界面不显示导航栏。

2025-10-28 20:55:19 67

原创 备忘 Android 16 展锐平台默认使用 boot.img 打包固件

【代码】备忘 Android 16 展锐平台默认使用 boot.img 打包固件。

2025-10-16 15:56:15 223

原创 备忘 Android 16 修复大屏设备锁屏图标不显示

调整lock_icon_padding大小,不同屏幕尺寸分辨率可能有差异。

2025-10-16 14:04:00 193

原创 备忘 Android 16 修复设置改为双栏显示后设置搜索不到内容

【代码】备忘 Android 16 修复设置改为双栏显示后设置搜索不到内容。

2025-10-16 13:54:48 71

原创 备忘 Android 16 去掉插入数据线充电时触发的屏幕动画特效

if (!

2025-10-07 14:45:43 117

原创 Git 回退提交操作指南

在 Git 中,回退提交操作可以帮助你撤销错误的提交或恢复到之前的状态。以下是几种常用方法,根据需求选择合适的方式。

2025-09-10 13:55:03 645

原创 Android 15 中禁用/启用应用的系统级方法

在 Android 15 的开发中,有时我们需要以系统级权限来控制应用的启用状态。本文将介绍如何使用 PackageManager 来实现应用的禁用和启用功能。

2025-08-02 15:39:55 382

原创 Android 15 重置安装源的方法

【代码】Android 15重置安装源的方法。

2025-08-02 15:28:13 87

原创 备忘 展讯 Android 15 预置WPS

【代码】备忘 展讯 Android 15 预置WPS。

2025-08-02 15:09:56 113

原创 Android 15 限制APK包手动安装但不限制自升级的实现方案

通过这种方式,我们可以灵活控制Android设备上的应用安装行为,既保证了系统的安全性(限制新应用安装),又不影响现有应用的正常升级。这种方案特别适用于企业环境或需要严格控制应用安装的场景。

2025-08-02 14:39:32 538

原创 Android 13/14/15 默认授权应用权限的实现方法

Android版本修改方式实现原理13/14修改Permission.java将所有权限标记为Normal权限15修改DeviceIdleController.java + DefaultPermissionGrantPolicy.java监听应用安装并主动授权。

2025-08-02 14:22:33 2907 1

原创 Android 15 修改系统源码指定安装源

在 Android 15 中,有时需要限制应用的安装来源,确保只有特定的应用商店或安装器才能安装应用。本文将介绍如何通过修改系统源码来实现安装源限制,并解决安装源为 null 的问题。通过修改安装源限制:只允许指定的应用商店安装应用adb 安装拦截:阻止通过 adb 直接安装应用详细日志:便于调试和监控安装行为灵活配置:可以根据需要调整允许的安装源这种方法在企业管理、教育平板等场景下非常有用,可以有效控制应用的安装来源,提高系统安全性和管理效率。

2025-07-28 14:22:37 352

原创 Android 15 修改截图默认音量大小

在 Android 15 中,截图音效的默认音量可能过大,影响用户体验。本文将介绍如何通过修改系统源码来调整截图音效的默认音量大小。// 不同音量级别示例mediaPlayer.setVolume(0.1f, 0.1f) // 10% 音量(很小声)mediaPlayer.setVolume(0.2f, 0.2f) // 20% 音量(较小声)mediaPlayer.setVolume(0.3f, 0.3f) // 30% 音量(适中)

2025-07-28 13:59:01 168

原创 备忘 Android 15 去掉系统截图UI和提示音

如果要单独去掉左下角的编辑栏按钮。如果要保留动画和截图提示音。

2025-07-24 20:42:22 228

原创 备忘 Android 15 根据包名屏蔽应用通知包括状态栏和下拉菜单

【代码】备忘 Android 15 根据包名屏蔽应用通知包括状态栏和下拉菜单。

2025-07-24 16:17:48 112

原创 备忘 sleep 指令

【代码】备忘 sleep 指令。

2025-07-17 20:35:34 61

原创 Android 15 解决原生Calendar app 竖屏状态下菜单 => 点击更多 => 显示控件异常

【代码】Android 15 解决原生Calendar app 竖屏状态下菜单 => 点击更多 => 显示控件异常。

2025-07-16 15:33:40 84

ApktoolM-2.4.0-原版.apk

Apktool M可以帮助用户轻松将从split APK中提取APK文件,帮助用户更好完成文件的安装,软件中还将会为用户提供丰富的功能,让用户能够通过软件轻松获得更多的便利,还可以帮助用户完成应用的签名,为用户提供APK打包的服务。

2025-02-08

scrcpy 2.7 scrcpy-console.bat 默认关闭音频版本

scrcpy 2.7 scrcpy-console.bat 默认关闭音频版本

2024-11-20

VMware Workstation Pro 17.6.0

VMware Workstation Pro 虚拟机

2024-11-13

super-adb adb工具

adb工具

2024-08-01

Android 修改安兔兔等三方工具显示的屏幕尺寸 计算Ydpi apk 自动获取参数版

Android 修改安兔兔等三方工具显示的屏幕尺寸,计算Ydpi apk。 自动获取参数版 1.将apk需要安装到机器, 2.输入目标屏幕大小。 3.计算出Ydpi。 最后修改源码指定Xdpi ,Ydpi ,编译即可。

2024-07-15

Android 修改安兔兔等三方工具显示的屏幕尺寸,计算Ydpi apk calculateYdpi

Android 修改安兔兔等三方工具显示的屏幕尺寸,计算Ydpi apk。 1.将apk需要安装到机器, 2.输入目标屏幕大小,屏幕宽高,输入Xdpi。 3.计算出Ydpi。 最后修改源码指定Xdpi ,Ydpi ,编译即可。

2024-07-15

Android13 14系统 app获取第三方应用缓存的方法

Android13 14系统 app获取第三方应用缓存的方法

2024-03-13

Android-14-大屏设备显示NavigationBar.patch

Android_14_大屏设备显示NavigationBar

2024-01-04

一个简单bat脚本,按回车循环获取当前应用包名类名

用new bing写了一个简单bat脚本

2023-03-31

空空如也

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

TA关注的人

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