【Android】Android 13系统源码修改与调试

android11修改源码,增加代码修改静态IP功能 参数安卓系统自带的设置静态IP功能,增加一个安卓APP发送广播就能修改系统静态IP地址的功能。 阅读详情
AI摘要

本文详细介绍使用Android Studio Platform编译Android13源码及调试流程。覆盖如何导入源码、使用断点调试Activity,以及如何修改LauncherApp和SettingsApp实现自定义功能。

前言

继上一篇关于AOSP系统编译,这篇文章分享一下如何修改与调试Android 13源码。
【Android】Ubuntu20.04编译Android 13并用模拟器运行
需要使用Google全新的IDE—Andriod Studio For Platorm(简称ASFP).

本文介绍:
如何使用ASFP导入Android系统源码
使用ASFP断点调试Activity
修改Launcher App实现去掉谷歌搜索框
修改Setings App实现显示自定义设备名称

因为要使用图形界面的Linux系统,最好安装带桌面的Ubuntu。

笔者原创,转载请注明出处:https://blog.youkuaiyun.com/devnn/article/details/140725388

使用ASFP导入Android系统源码

先下载ASFP,并导入下载好的Andriod系统源码:
在这里插入图片描述
Repo checkout: 源码根目录
lunch target: 启动目标,枚举值
Module paths: 要导入的模块
Project name: 工程名称自定义
Location: 工程位置自定义

本次使用的目标是sdk_phone_x86_64-userdebug

导入后的结构如下,可以编辑asfp-config.json再次修改。
在这里插入图片描述

使用ASFP调试Android系统源码

例如,调试Activity的onCreate代码,先打上断点,点击调试按钮,选择调试的进程,比如选择com.android.settings,当打开设置页时断点就会生效。如果有修改Activity代码,需要编译运行再断点。
在这里插入图片描述

修改Launcher App实现去掉谷歌搜索框

由于Launcher App在国内是用不到谷歌搜索框,因此需要隐藏。隐藏很简单,经过笔者对这个搜索框代码逻辑的梳理,按照以下路径注释掉添加View的代码即可:
LauncherRootVIew->Workspace->QsbContainerView->QsbFragment->onCreateView函数->注释mWrapper.addView(createQsb(mWrapper))

然后使用mm或者mmm命令重新编译Launcher3这个模块。

m命令用来编译整个系统,mm用来编译当前目录下的模块(先cd到模块根目录),mmm用来编译指定目录下的模块(后面指定模块根目录)

运行模拟器即可看到桌面已经没有了谷歌搜索框:
在这里插入图片描述

修改Setings App实现显示自定义设备名称

笔者通过断点调试 ,找到了显示设备名称的代码位置:

DeviceNamePreferenceController.java -> initializeDeviceName()

如下图,为了测试效果,笔者将设备名称通过硬编码修改为笔者的博客地址: blog.youkuaiyun.com/devnn

在这里插入图片描述

笔者原创,转载请注明出处:https://blog.youkuaiyun.com/devnn/article/details/140725388

同样使用mm或者mmm命令编译setting模块。

修改后的效果如下,可以看到设备名称已经变成了:blog.youkuaiyun.com/devnn

在这里插入图片描述
在这里插入图片描述

关于Android系统编译与调试就介绍到这了。

安卓8.1源码编译以及魔改小试 安卓源码编译 阅读详情

相关推荐

树莓派4B实战:从零构建Android Automotive OS 13.0车载系统

本文详细介绍了在树莓派4B上从零构建Android Automotive OS 13.0车载系统的完整实战流程,涵盖环境准备、源码下载、系统编译、镜像烧录及启动调试。重点解决了编译过程中的内存不足、依赖缺失等常见问题,为开发者提供了在低成本硬件上体验和开发AAOS车载系统的实用指南。

keras9composer的博客 424

Android13 adb input 调试命令使用和源码解析

本章重点Android13 adb input 调试命令的使用和源码分析 通过命令来模拟用户在设备上的各种操作,从而进行测试、调试或其他目的。通过阅读源码来深入了解Android 13系统的输入事件管理机制。

我其实什么都不会 6813

手把手教你修改Android 13系统最低亮度值:PowerManager.BRIGHTNESS_MIN的隐藏玩法

本文深入探讨了Android 13系统中PowerManager.BRIGHTNESS_MIN常量的底层原理与修改方法。针对系统默认最低亮度值过高的问题,文章提供了无需Root的ADB调试路径和需源码编译的系统级修改两种方案,帮助开发者和极客用户突破限制,实现更低的屏幕亮度,以满足护眼阅读或定制硬件开发等特定场景需求。

sky77的博客 397

Android13源码下载和编译过程详解

作为Android开发者人人都应该有一份自己Android源码,这样我们就可以随时对自己有疑惑的地方通过亲手调试来加强理解。

u010345983的博客 8289

Ubuntu 22.04编译AOSP Android 13

下面选择自己想要的版本,如果想要启动模拟器的话,要选择sdk开头的,比如aosp_car_x86_64-userdebug是无法启动模拟器的,sdk_car_x86_64-userdebug 可以启动模拟器。-j后面的数字为使用cpu的线程数,我的电脑是20线程,我选择16防止电脑卡顿,后面编译也是如此。创建保存代码的目录,我下载分支为android-13.0.0_r35,如果想下载其他分支,请查看。等待编译完成,我编译了一个半小时,如果选择-j16的话应该会更快。如果切换了终端窗口,则执行。

weixin_41678668的博客 2203

Rockchip平台GMAC网卡(RTL8211FD)Phy网灯调试——RK3568 Android13平台

近日在调试RK3568平台的以太网网灯配置,期间磕磕绊绊,遇到些许问题,遂作些许记录。

一路寒风身如絮,命海沉浮客独行 2775

Android 13 源码获取与构建

源代码下载的时间比较长,一共耗时1小时12分钟。源码下载到本地后会自动进入文件检验阶段,用与校验下载的文件是否有缺失。Android 系统构建的过程非常长,构建完成后,将会在 out 目录中查看到编译好的系统镜像。验证python版本,确认 python 的默认版本是 3.x。修改 repo 中 REPO_URL 变量值。源代码下载后约占用 126G 的磁盘空间。选择 No,将会切换到 bash 环境。然后将 repo 文件复制到。将会进入系统编译构建过程。

架构师实战感悟 2219

Android系统导航栏(NavigationBar)的三种深度开启方案与实战解析

本文深度解析Android系统导航栏(NavigationBar)的三种开启方案,包括ADB命令动态调试、系统资源配置修改和永久性属性配置。通过实战案例和详细步骤,帮助开发者掌握虚拟按键的显示控制技术,适配不同厂商ROM,解决常见兼容性问题。特别针对Android 10+版本的全屏手势导航提供了适配建议。

weixin_30463341的博客 487

Android 13 网络ADB默认开启踩坑记:手把手教你修改源码绕过WiFi限制

本文详细介绍了如何通过修改Android 13源码绕过WiFi限制,实现网络ADB的默认开启。文章提供了关键代码修改步骤,包括AdbDebuggingManager.java和adb_wifi.cpp的调整,以及调试与验证技巧,帮助开发者轻松应对Android 13的网络ADB限制问题。

dengxiangbao3167的博客 466

告别USB线!手把手教你为Android 13设备永久开启无线ADB调试(端口5555)

本文详细介绍了在Android 13设备上永久开启无线ADB调试的多种方法,包括Root方案、免Root自动化脚本和深度定制ROM方案。重点解析了Android 13对无线调试的限制机制,并提供了修改系统属性和端口的实用技巧,帮助开发者彻底摆脱USB线的束缚,实现高效的无线调试。

cumi6497的博客 920

Android 13 自动开启 Wi-Fi ADB:从 Magisk 模块到 AOSP 源码定制

ADB(Android Debug Bridge)是开发调试的核心工具,传统USB连接方式在多设备、远距离场景下效率低下,而Wi-Fi ADB通过TCP/IP协议让设备免去物理连接即可远程调试。ADB守护进程adbd的启动和属性读取是自动连接的关键,Android 13在安全策略上进一步收紧,使自动开启固定端口需要借助系统属性、init脚本或源码级定制。Magisk模块和AOSP源码修改是实现开机自动进入Wi-Fi ADB的两条主流路径,前者适合个人测试机,后者适用于车机、盒子等整机产品。无root设备则需

weixin_33910191的博客 334

android 13 输入法候选区不显示

再分别对比一下 android13和android10 updateExtractFrameVisibility的不同之处。现象:安装百度tv输入法后,输入法切换成中文 不显示候选区(android 10显示正常)可以看到 非全屏模式下,android 10 将mFullscreenArea设置成了可见。InputMethodService.java 提供主要的显示控制逻辑接口。所以android 10是没问题的,android 13则被默认隐藏了。input_method.xml 输入法键盘的布局。

qq_43527775的博客 777

Android13隐藏导航栏实战:从系统源码修改到自定义按钮图标(附完整代码)

本文详细解析了Android13系统级导航栏隐藏功能的开发实践,从源码修改到自定义按钮图标设计,提供完整代码实现。通过深入分析NavigationBarController架构、广播机制联动和矢量图标设计,帮助开发者掌握全面屏设备下的导航栏定制技术,实现最大化屏幕利用空间的目标。

weixin_29229261的博客 357

使用eclipse配合真机来调试android源码

目前网上已经有很多文章来描述如何使用eclipse来调试android源码,但是大多数都是最后基于 android虚拟机来完成最后的一次华丽转身,即享受最后调试的劳动果实,然后,然后就得忍受android虚拟机的各种缓慢,以及对esopengl库不支持导致的bug,问题,估计很多同学也就是调试通过一次就不愿意再用了。 下面,本文介绍一种使用eclipse调...

weixin_33882443的博客 279

Android13 绕过SELinux权限限制的实战技巧

本文针对Android13系统开发中SELinux权限限制过严的问题,提供了通过修改内核命令行参数(如androidboot.selinux=permissive)使其在启动时即进入宽容模式的实战技巧。该方法适用于深度定制开发与调试场景,并讨论了在无电池设备上可能遇到的低电关机等衍生问题及其解决方案。

weixin_29280219的博客 447

Android13 网络Adb端口固定与网络限制解除实战指南

本文详细解析了Android13网络ADB调试的痛点,提供了端口固定与网络限制解除的实战指南。通过修改系统属性、固定端口号(如5555)及移除网络依赖检查,实现稳定的ADB连接,大幅提升开发调试效率。文章包含具体代码修改步骤、调试技巧及常见问题解决方案,是Android开发者的实用参考。

gg901的博客 728

安卓13平板桌面定制实战:手把手教你修改Launcher3源码,搞定搜索框位置和任务栏居中

本文详细解析了安卓13平板Launcher3源码的定制方法,重点解决搜索框位置和任务栏居中问题。通过修改`device_profiles.xml`和关键Java代码,实现大屏设备的视觉优化,涵盖网格布局调整、任务栏隐藏异常处理等核心技巧,帮助开发者高效完成桌面定制。

weixin_33704591的博客 254

Android13 User版本Root权限实战:绕过adb权限限制的5个关键修改点

本文详细解析了在Android 13 User版本上获取Root和Remount权限的工程实践。通过修改adbd权限逻辑、调整SELinux策略、解除分区只读限制及配置系统属性等5个关键步骤,实现在保持系统纯净性能的同时,安全开启临时调试权限,为深度性能调优和底层验证提供解决方案。

weixin_29238147的博客 195
上一篇: 【Android】SharedPreferences阻塞问题深度分析
devnn
博客等级 码龄12年 2005粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值