写一个magisk模块冻结谷歌服务和谷歌服务框架当有APP需要时自动解冻APP退出自动冻结。
编写一个Magisk模块可以冻结谷歌服务和谷歌服务框架,并在需要时自动解冻,APP关闭时自动冻结。以下是一个简单的示例模块的代码:
- 创建文件夹和文件结构: 在模块的根目录下,创建以下文件和文件夹:
module.prop:模块属性配置文件system/文件夹:用于存放冻结和解冻脚本system/etc/init.d/文件夹:用于存放自定义脚本
- 修改
module.prop文件: 在module.prop文件中输入以下内容:
id=google_freeze
name=Google Freeze
version=1.0
versionCode=1
author=Your Name
description=Freeze Google Services and Google Services Framework
- 创建冻结和解冻脚本:
在
system/文件夹下创建以下两个脚本文件:
system/google_freeze.sh:用于冻结谷歌服务和谷歌服务框架
#!/system/bin/sh
pm disable com.google.android.gms
pm disable com.google.android.gsf
system/google_unfreeze.sh:用于解冻谷歌服务和谷歌服务框架
#!/system/bin/sh
pm enable com.google.android.gms
pm enable com.google.android.gsf
- 创建自定义脚本:
在
system/etc/init.d/文件夹下创建一个自定义脚本文件,命名为99google_freeze,用于在APP启动和退出时执行相应的操作:
#!/system/bin/sh
# 当APP启动时解冻
onappstart() {
sh /system/google_unfreeze.sh
}
# 当APP退出时冻结
onappexit() {
sh /system/google_freeze.sh
}
# 检查APP状态
checkapp() {
local pkgname=$1
local appstate=$(cmd package list packages -f | grep "/$pkgname=")
if [ -n "$appstate" ]; then
onappstart
else
onappexit
fi
}
# 监听APP启动和退出事件
while true; do
currentapps=$(dumpsys activity activities | grep "packageName=")
# 检查需要冻结的APP列表
checkapp com.example.app1
checkapp com.example.app2
sleep 3
done
-
打包模块: 将以上文件和文件夹打包为一个zip文件,命名为
google_freeze.zip。 -
安装和启用模块: 将打包好的
google_freeze.zip模块通过Magisk Manager或Magisk Recovery进行安装并启用。
请注意,这只是一个简单的示例模块,可能需要根据具体的设备和系统进行适当的调整。在使用之前,请务必备份系统和数据,以防出现意外情况
原文地址: https://www.cveoy.top/t/topic/h20C 著作权归作者所有。请勿转载和采集!