AOSP源码隐藏状态栏

AOSP源码 android-10 r41 隐藏状态栏

文章目录

  • [AOSP源码 android-10 r41 隐藏状态栏](#AOSP源码 android-10 r41 隐藏状态栏)
    • [第一章 准备工作](#第一章 准备工作)
      • [第01节 阅读源码](#第01节 阅读源码)
      • [第02节 核心代码](#第02节 核心代码)
    • [第二章 编译运行](#第二章 编译运行)
      • [第01节 编译源代码](#第01节 编译源代码)
      • [第02节 推入到设备](#第02节 推入到设备)
      • [第03节 运行的效果](#第03节 运行的效果)
    • [第三章 简易源码阅读](#第三章 简易源码阅读)
      • [第01节 进入源码分支](#第01节 进入源码分支)
      • [第02节 找到指定代码](#第02节 找到指定代码)
      • [第03节 源码其他操作](#第03节 源码其他操作)

第一章 准备工作

第01节 阅读源码

下面地址,需要(科学上网,才可以阅读)

源码阅读地址

复制代码
https://cs.android.com/

可以查看系统状态栏的代码

复制代码
https://cs.android.com/android/platform/superproject/+/android-10.0.0_r41:frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java?hl=zh-cn

第02节 核心代码

在状态栏 com.android.systemui.statusbar.phone.StatusBar.java 代码的第837 行,初始化 状态栏的根布局。

当初始化根布局之后,增加一个隐藏状态栏视图的方法,即可以隐藏掉状态栏

第二章 编译运行

第01节 编译源代码

在源代码下载的根目录当中,执行下面的命令

shell 复制代码
source  build/envsetup.sh


# 选择你的淡斑或者模拟器目标(例如:   lunch  aosp_x86_64-eng )
lunch

单独编译 SystemUI 模块

使用 mmm 命令,单独编译指定目录下的模块

shell 复制代码
mmm  frameworks/base/packages/SystemUI

提示: 编译成功之后,终端会打印输出路径,Android 10 的 SystemUI 路径编译出来的结果通常是一个优化后的 APK

他一般位于 out/target/product/<你的机型>/system/product/priv-app/SystemUI/SystemUI.apk

我当前编译之后的路径

text 复制代码
out/target/product/generic_x86_64/system/product/priv-app/SystemUI/SystemUI.apk 

第02节 推入到设备

将编译之后的 APK,放入手机、模拟器

确保我的设备 手机或者模拟器已经连接 (adb devices 可见) 并且是 userdebug 或者 eng 版本

执行下面的命令

shell 复制代码
# 获取 root 权限
adb  root

# 取消设备完整性校验,仅用于学习研究中使用,正式场合需要其他操作
adb  disable-verity

# 挂载系统分区为可读可写
adb  remount


# 将最新编译的 APK 推送到系统目录中, 覆盖原版
adb push out/target/product/generic_x86_64/system/product/priv-app/SystemUI/SystemUI.apk   /product/priv-app/SystemUI/SystemUI.apk


# 修改权限(防止 SELinux 因为安全策略拦截导致的 SystemUI 被拦截, 引发 SystemUI 无法加载、设备黑屏、卡死开机动画)
adb  shell  chmod  644  /product/priv-app/SystemUI/SystemUI.apk


# 清除缓存并且重启 SystemUI 进程
adb  shell  pkill  -f  com.android.systemui

第03节 运行的效果

第三章 简易源码阅读

第01节 进入源码分支

打开官方的源码搜索网站,进行搜索需要的源码

输入之后的结果

第一步的搜索,展示的效果

选择你想要查找的分支

当然,你也可以在浏览器地址栏当中,直接输入地址

复制代码
https://cs.android.com/android/platform/superproject/+/android-10.0.0_r41:

也可以直接,进入到指定的分支当中。

第02节 找到指定代码

源代码的根目录 (需要重点关注的三个文件夹)

现在,我查找,需要隐藏的状态栏的代码,我提前知晓了 当前代码的路径:

复制代码
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java

有人问: 我咋知晓的是这个路径?

你可以问问 AI: 系统的SystemUI 状态栏 底层源码代码在 android10 r41 分支中,代码在什么路径?

那么后续只需要,按照上面的路径,点击进入即可。

我们先找到指定的目录

frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone

下面就是这个目录下面的内容

点击上面 红框对应的类文件即可。

可以找到我前面修改代码的位置 837行

第03节 源码其他操作

查看类的大纲视图

拓展的操作

相关推荐
2501_915909065 小时前
iOS 应用反调试技详解术 检测调试器的原理与防护实践
android·ios·小程序·https·uni-app·iphone·webview
Lvan的前端笔记5 小时前
AndroidX 完全入门指南
android·androidx
帅次6 小时前
Android 应用高级面试:Window 近1年高频追问 18 题
android·面试·职场和发展
总捣什么乱16 小时前
MySQL MySQL是怎么保证主备一致的?
android·mysql·adb
zzm6287 小时前
精读 HinDroid:基于异构信息网络的安卓恶意软件检测
android
weixin_440784117 小时前
Android基础知识汇总
android·java·android studio
sbjdhjd7 小时前
安全初级 | Upload 文件上传漏洞实操
android·经验分享·安全·网络安全·开源·php·apache
small-pudding8 小时前
Cocos Creator Android 热更新方案实践:逻辑更新、远程 Bundle 与线上回滚
android
00后程序员张8 小时前
iOS加固技术路线全面解析:Bitcode模式、源码模式与汇编模式对比及爱加密优势
android·汇编·ios·小程序·uni-app·cocoa·iphone
yunsr8 小时前
PHP函数及漏洞防御
android·开发语言·php