小米9se 刷机并解锁 Google Now
小米 9se 刷最新的 miui12,并刷入 谷歌全家桶,再打开 Google Now 的折腾经历.
事情起因是这样子的,本来吧,我只是想重置一下手机的,当然并不是在设置菜单里面点击恢复出产设置,或是清除数据什么的,做为~资深玩家~的菜鸡,当然是去到 Recovery 里面清,所以不小心勾上了 System,行吧,没了。
即然都这样子了,那。。。那就来一发吧。
首先下载了国际版的 9se 的线刷固件,然后下了最新版的 twrp ,不过吧,xiaomi.eu 发布的固件呼声也很高嘛,所以一起下了个最新版的周更版固件,当然还下了其它的一些,最新周更版的是 miui12,android11 的,gapps 也是必不可少的嘛,刷了安卓,没有刷 gapp 是没有灵魂的,没有 root 也是没有灵魂的,所以下了 magisk v21,没有 google now 怎么行?
折腾 1:
我目前用的是苹果电脑,所以得安装 ADB 吧,根据 Installing ADB on macOS 所说的也就完事了:
1
2
3
4
5
6
7
8
#Install the homebrew package manager
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
#Install adb
brew install android-platform-tools
#Start using adb
adb devices
用小米工具线刷 rom ,这个吧就是等他一会儿就好了,然后重启,因为刷了原版 rom , 所以 recovery 必定是回到了自带了,必须干掉是吧。
然后刷 twrp:
1
fastboot flash recovery twrp-3.5.0.img
网上说的各种姿势防止回到 原厂 recovery:
- 用上面的命令完了后再用下面命令重启
1
fastboot boot twrp-3.5.0.img
然而,我的手机会重启到系统,并不会重启到 recovery,所以失败了
刷完 twrp 用 音量+ 和 电源键 长按进入 recovery,然后用 twrp 的安装功能再刷一次
twrp-3.5.0.img
然而我重启了之后依然是回到了原产。我改一下刷机包,线刷的时候直接刷 twrp 试试,然而还是失败了。
所以一度想要放弃 android 11 ,我以为吧,是固件的锅,最后想起以前下载的旧版,针对 mi9se 做的 twrp , 刷了之后发现里面有一个 boot 签名的功能,果断运行一下,还真给固定了,所以是 boot 没有重签,导致系统验证恢复到 原厂 recovery, 然后再刷 3.5.0 的 twrp 就好了。
折腾 2
当然是把 GAPPS 给刷进去,我下载的是 NikGApps 完整版的,opengapps 没有 android 11 的,嗯,刷不进去,提示空间不足,首先我想到的是不安装一些吧。但是失败了,行吧,那就删 system 里面的我觉得不要的软件吧。
为此我还整的一个 shell 脚本用来删不要的软件,过程很是酸爽啊。
以下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/sbin/sh
echo "********* Starting REMOVE"
# 要删除的软件列表
appsList=("Browser" "Calculator" "Calendar" "CleanMaster" "DeskClock" "DocumentsUIGoogle" "Email" "FileExplorer" "Health" "InCallUI" "MiDrive" "MiGalleryLockscreen" "MiMover" "MiuiBugReport" "MiuiCompass" "MiuiGallery" "MiuiScanner" "MiuiScreenRecorder" "MiuiVideoGlobal" "Music" "NextPay" "Notes" "PeelMiRemote" "PersonalAssistant" "QuickSearchBox" "SoundRecorder" "SuperWallpaperEarth" "SuperWallpaperGeometry" "SuperWallpaperMars" "SuperWallpaperSaturn" "SuperWallpaperSnowmountain" "MiService" "Weather" "wps-lite" "MiuiWallpaper" "LiveWallpapersPicker" "WallpaperBackup")
# 这几个软件如果删了就没有壁纸功能了,设置了也没有用
#"MiuiWallpaper" "LiveWallpapersPicker" "WallpaperBackup")
for i in "${appsList[@]}"
do
if [ -d "/system/priv-app/$i" ]; then
echo "* Remove App: /system/priv-app/$i"
rm -rf /system/priv-app/$i
elif [ -d "/system/app/$i" ]; then
echo "* Remove App: /system/app/$i"
rm -rf /system/app/$i
elif [ -d "/data/app/$i" ]; then
echo "* Remove App: /data/app/$i"
rm -rf /data/app/$i
else
echo "- Not Found $i in /system/app/ or /system/priv-app/ or /data/app/"
fi
done
if [ -d "/system/media/wallpaper/wallpaper_group" ]; then
echo "* Remove Wallpaper"
rm -rf /system/media/wallpaper/wallpaper_group
fi
if [ -d "/system/media/audio/ringtones/" ]; then
echo "* Remove ringtones"
rm -rf /system/media/audio/ringtones/*
fi
if [ -d "/data/preloads/" ]; then
echo "* Remove Preload Apps"
rm -rf /data/preloads/*
fi
echo "********* REMOVE DONE"
最后看了一下这些我不要的软件,1.2+G 啊。这下就可以轻松的上全家桶了。
折腾 3
来点有 灵魂 的 root 吧,magisk 还是很轻松的就刷进去了,并且运行良好,没啥毛病。
没插卡的时候 google now 正常,记得以前看过,只要禁用 google play service 的电话权限就可以了,但是吧,设置里面找不到。行吧,以前旧版 安卓 似乎修改 build.prop
也是可以的。
android 11 的 build.prop
好几个位置都有,system
, product
, vendor
, system_ext
里面都有。所以我全都把下面几个改了:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
echo "********* Modify Build.prop"
echo "* modify build.prop"
sed -ie 's/^ro\.product\.system\.model.*/ro\.product\.system\.model\=Pixel\ 5\ XL/g' /system/build.prop
sed -ie 's/^ro\.opa.eligible_device.*//g' /system/build.prop
echo 'ro.opa.eligible_device=true' >> /system/build.prop
sed -ie 's/^ro\.product\.system\.brand.*/ro\.product\.system\.brand\=google/g' /system/build.prop
sed -ie 's/^ro\.product\.system\.manufacturer.*/ro\.product\.system\.manufacturer\=Google/g' /system/build.prop
sed -ie 's/^ro\.product\.manufacturer.*/ro\.product\.manufacturer\=Google/g' /system/build.prop
sed -ie 's/^ro\.product\.product\.model.*/ro\.product\.product\.model\=Pixel\ 5\ XL/g' /system/product/build.prop
sed -ie 's/^ro\.product\.product\.manufacturer.*/ro\.product\.product\.manufacturer\=Google/g' /system/product/build.prop
sed -ie 's/^ro\.product\.product\.brand.*/ro\.product\.product\.brand\=google/g' /system/product/build.prop
sed -ie 's/^ro\.product\.system_ext\.model.*/ro\.product\.system_ext\.model\=Pixel\ 5\ XL/g' /system/system_ext/build.prop
sed -ie 's/^ro\.product\.system_ext\.manufacturer.*/ro\.product\.system_ext\.manufacturer\=Google/g' /system/system_ext/build.prop
sed -ie 's/^ro\.product\.system_ext\.brand.*/ro\.product\.system_ext\.brand\=google/g' /system/system_ext/build.prop
sed -ie 's/^ro\.product\.odm\.model.*/ro\.product\.odm\.model\=Pixel\ 5\ XL/g' /vendor/odm/etc/build.prop
sed -ie 's/^ro\.product\.odm\.manufacturer.*/ro\.product\.odm\.manufacturer\=Google/g' /vendor/odm/etc/build.prop
sed -ie 's/^ro\.product\.odm\.brand.*/ro\.product\.odm\.brand\=google/g' /vendor/odm/etc/build.prop
sed -ie 's/^ro\.product\.vendor\.model.*/ro\.product\.vendor\.model\=Pixel\ 5\ XL/g' /vendor/build.prop
sed -ie 's/^ro\.product\.vendor\.manufacturer.*/ro\.product\.vendor\.manufacturer\=Google/g' /vendor/build.prop
sed -ie 's/^ro\.product\.vendor\.brand.*/ro\.product\.vendor\.brand\=google/g' /vendor/build.prop
echo "********* DONE"
重启了以后似乎并不起作用,好吧,换一个,毕竟我们是有 root 的人。
钛备份,幸运破解器 都只能查权限并不能修改,另一软件 APP OPS 可以改,但是也没起作用,重启一下权限又回去了。
用 ADB 修改应用权限提示出错了。
然后就开始浏览一下系统目录看看能不能发现什么猫腻,果然发现了 premissions
的目录,打开一看还真是应用权限的描述文件,下手试试吧。
依然是 shell:
1
2
3
4
5
6
7
8
9
10
11
12
13
echo "********* Modify Product Premissions"
permDir="/system/product/etc/permissions"
permFile=("com.google.android.gms.xml" "com.google.android.googlequicksearchbox.xml" "com.android.vending.xml")
for i in "${permFile[@]}"
do
if [ -f "$permDir/$i" ]; then
echo "* modify: $i"
sed -ie 's/<permission name="android.permission.READ_PHONE_STATE" \/>/<deny-permission name="android.permission.READ_PHONE_STATE" \/>/g' $permDir/$i
sed -ie 's/<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE" \/>/<deny-permission name="android.permission.READ_PRIVILEGED_PHONE_STATE" \/>/g' $permDir/$i
else
echo "- Not Found file: $permDir/$i"
fi
done
重启一下,居然出来了,但是 google 这应用没显示,行吧,我清除数据,出来了。
今天下午开了一下又来了,这下我不敢清数据了,万一又不行了。所以我又加了下面的,还没用就是了。
1
2
3
4
5
6
7
8
9
10
11
12
perFile="/system/product/etc/default-permissions/nikgapps-permissions.xml"
if [ -f "$perFile" ]; then
echo "* modify: $perFile"
sed -ie '18,45s/<permission name="android.permission.READ_PHONE_STATE"/<deny-permission name="android.permission.READ_PHONE_STATE"/g' $perFile
sed -ie '18,45s/<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/<deny-permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/g' $perFile
sed -ie '185,259s/<permission name="android.permission.READ_PHONE_STATE"/<deny-permission name="android.permission.READ_PHONE_STATE"/g' $perFile
sed -ie '185,259s/<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/<deny-permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/g' $perFile
else
echo "- Not Found file: $perFile"
fi
echo "********* DONE"
希望是有用的吧。
附一张截图:
提示截图应用中止了,算了不管了。
毕竟现在天冷。
2021-01-20
补上图:
另外,如果 google now 不显示,确认一下梯子 google 搜的时候是不是要人机验证。(我就碰到了,我还以为失败了,换一梯子就可以了。