当前位置: 首页 > news >正文

Android 10 Launcher3 删除谷歌搜索

命令行获取页面

手机处于launcher首页
adb shell dumpsys window | findstr mCurrentFocus
输出
mCurrentFocus=Window{9afb34d u0 com.android.launcher3/com.android.launcher3.Launcher}

找到源码路径

packages/apps/Launcher3/
Android10源码 搜索控件
grep -r -n AppsSearchContainerLayout
跳转:Ctrl+左键在这里插入图片描述

使用AS的Layout Inspector神器

在这里插入图片描述

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

查找手机中的路径

adb shell pm path com.android.launcher3

编译

mm -j8 WITH_DEXPREOPT=false

在这里插入图片描述
out/target/product/nanopc-t4/product/priv-app/Launcher3QuickStep/Launcher3QuickStep.apk

提取手机APK

adb pull /product/priv-app/Launcher3QuickStep/Launcher3QuickStep.apk

反编译验证

在这里插入图片描述

在这里插入图片描述

应用变体

在这里插入图片描述

推送

注意手机系统是推送这个,不是上面说的
out/target/product/nanopc-t4/product/priv-app/Launcher3QuickStep/Launcher3QuickStep.apk

而是Launcher3.apk
在这里插入图片描述

命令行打开源码位置

在这里插入图片描述

上传123

在这里插入图片描述

如果推送后无效果可以试着将如下文件夹删除后重启
在这里插入图片描述

效果如下

在这里插入图片描述

探究mm指令
#  
# Copyright (C) 2013 The Android Open Source Project  
#  
# Licensed under the Apache License, Version 2.0 (the "License");  
# you may not use this file except in compliance with the License.  
# You may obtain a copy of the License at  
#  
#      http://www.apache.org/licenses/LICENSE-2.0  
#  
# Unless required by applicable law or agreed to in writing, software  
# distributed under the License is distributed on an "AS IS" BASIS,  
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  
# See the License for the specific language governing permissions and  
# limitations under the License.  
#  # 设置当前目录路径  
LOCAL_PATH := $(call my-dir)  #  
# 构建插件库的规则(需要编写插件)。  
#  
include $(CLEAR_VARS)  # 清除之前的变量设置  
LOCAL_USE_AAPT2 := true  # 使用 AAPT2 工具  
LOCAL_AAPT2_ONLY := true  # 仅使用 AAPT2  
LOCAL_MODULE_TAGS := optional  # 模块标记为可选  
LOCAL_STATIC_JAVA_LIBRARIES := PluginCoreLib  # 静态 Java 库依赖  # 指定源文件,递归查找 src_plugins 目录下的所有 Java 文件  
LOCAL_SRC_FILES := \$(call all-java-files-under, src_plugins)  LOCAL_SDK_VERSION := current  # 当前 SDK 版本  
LOCAL_MIN_SDK_VERSION := 28  # 最小 SDK 版本  
LOCAL_MODULE := LauncherPluginLib  # 模块名称  include $(BUILD_STATIC_JAVA_LIBRARY)  # 构建静态 Java 库  #  
# 构建 Launcher3 依赖库的规则。  
#  
include $(CLEAR_VARS)  # 清除之前的变量设置  
LOCAL_USE_AAPT2 := true  # 使用 AAPT2 工具  
LOCAL_AAPT2_ONLY := true  # 仅使用 AAPT2  
LOCAL_MODULE_TAGS := optional  # 模块标记为可选  # 静态 Android 库依赖  
LOCAL_STATIC_ANDROID_LIBRARIES := \androidx.recyclerview_recyclerview \androidx.dynamicanimation_dynamicanimation \androidx.preference_preference \iconloader_base  LOCAL_STATIC_JAVA_LIBRARIES := LauncherPluginLib  # 静态 Java 库依赖  # 指定源文件,查找 protos 和 proto_overrides 目录下的所有 proto 文件  
# 以及 src_build_config 目录下的所有 Java 文件  
LOCAL_SRC_FILES := \$(call all-proto-files-under, protos) \$(call all-proto-files-under, proto_overrides) \$(call all-java-files-under, src_build_config)  LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res  # 资源目录  LOCAL_PROGUARD_ENABLED := disabled  # 禁用 Proguard  
LOCAL_PROTOC_OPTIMIZE_TYPE := nano  # Protobuf 优化类型  
LOCAL_PROTOC_FLAGS := --proto_path=$(LOCAL_PATH)/protos/ --proto_path=$(LOCAL_PATH)/proto_overrides/  # Protobuf 编译选项  
LOCAL_PROTO_JAVA_OUTPUT_PARAMS := enum_style=java  # Protobuf Java 输出参数  LOCAL_SDK_VERSION := current  # 当前 SDK 版本  
LOCAL_MIN_SDK_VERSION := 21  # 最小 SDK 版本  
LOCAL_MODULE := Launcher3CommonDepsLib  # 模块名称  
LOCAL_PRIVILEGED_MODULE := true  # 特权模块  
LOCAL_MANIFEST_FILE := AndroidManifest-common.xml  # 清单文件  include $(BUILD_STATIC_JAVA_LIBRARY)  # 构建静态 Java 库  #  
# 构建 Launcher3 应用的规则。  
#  
include $(CLEAR_VARS)  # 清除之前的变量设置  
LOCAL_USE_AAPT2 := true  # 使用 AAPT2 工具  
LOCAL_MODULE_TAGS := optional  # 模块标记为可选  # 静态 Android 库依赖  
LOCAL_STATIC_ANDROID_LIBRARIES := \Launcher3CommonDepsLib \SecondaryDisplayLauncherLib  # 指定源文件,查找 src 目录下的所有 Java 文件  
# 以及 src_shortcuts_overrides 和 src_ui_overrides 目录下的所有 Java 文件  
LOCAL_SRC_FILES := \$(call all-java-files-under, src) \$(call all-java-files-under, src_shortcuts_overrides) \$(call all-java-files-under, src_ui_overrides) \$(call all-java-files-under, src_flags)  LOCAL_PROGUARD_FLAG_FILES := proguard.flags  # Proguard 配置
最后

保持耐心,多次尝试,学习是一个渐进的过程,不要气馁,做好笔记

其他

https://juejin.cn/post/7107239279432040478#heading-14


http://www.mrgr.cn/news/80829.html

相关文章:

  • Unity WebGL包体压缩
  • C# Winform怎么设计串口,客户端和相机控件界面显示
  • 2. 4 模块化JDK:JDK模块结构与核心模块
  • 【MQ】RabbitMQ 高可用延时功能的探究
  • Python(pymysql包)操作MySQL【增删改查】
  • 每日一题——131.分割回文串
  • 【软件设计_设计模式】设计模式代码笔记
  • 关于在浏览器里面获取手机方向的事件
  • Java收发邮件 Jakarta mail
  • 每日十题八股-2024年12月19日
  • el-table 多表头+跨行跨列案例
  • 使用Gradio编写大模型ollama客户端 -界面版
  • Kaggler日志--Day9
  • Docker:Dockerfile(补充四)
  • 【Rust自学】4.1. 所有权:栈内存 vs. 堆内存
  • 【Linux】NET9运行时移植到低版本GLIBC的Linux纯内核板卡上
  • 初学stm32 ——— 串口通信
  • Qt Quick:CheckBox 复选框
  • Spring Boot 配置Kafka
  • 【0371】Postgres内核 实现构建一个 WAL record
  • 【java面向对象编程】第二弹----成员方法
  • 基于DockerCompose搭建Redis主从哨兵模式
  • js分页功能
  • 【Python】使用Selenium 操作浏览器 自动化测试 记录
  • regression里面的误差来源
  • Pytorch | 从零构建AlexNet对CIFAR10进行分类