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

前言

继上一篇关于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.csdn.net/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.csdn.net/devnn

在这里插入图片描述

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

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

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

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

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

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值