事情起因是这样子的,本来吧,我只是想重置一下手机的,当然并不是在设置菜单里面点击恢复出产设置,或是清除数据什么的,做为~资深玩家~的菜鸡,当然是去到 Recovery 里面清,所以不小心勾上了 System,行吧,没了。

即然都这样子了,那。。。那就来一发吧。

首先下载了国际版的 9se 的线刷固件,然后下了最新版的 twrp ,不过吧,xiaomi.eu 发布的固件呼声也很高嘛,所以一起下了个最新版的周更版固件,当然还下了其它的一些,最新周更版的是 miui12,android11 的,gapps 也是必不可少的嘛,刷了安卓,没有刷 gapp 是没有灵魂的,没有 root 也是没有灵魂的,所以下了 magisk v21,没有 google now 怎么行?

折腾 1:

我目前用的是苹果电脑,所以得安装 ADB 吧,根据 Installing ADB on macOS 所说的也就完事了:

#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:

fastboot flash recovery twrp-3.5.0.img

网上说的各种姿势防止回到 原厂 recovery:

  1. 用上面的命令完了后再用下面命令重启
fastboot boot twrp-3.5.0.img

然而,我的手机会重启到系统,并不会重启到 recovery,所以失败了

  1. 刷完 twrp 用 音量+ 和 电源键 长按进入 recovery,然后用 twrp 的安装功能再刷一次 twrp-3.5.0.img 然而我重启了之后依然是回到了原产。

  2. 我改一下刷机包,线刷的时候直接刷 twrp 试试,然而还是失败了。

所以一度想要放弃 android 11 ,我以为吧,是固件的锅,最后想起以前下载的旧版,针对 mi9se 做的 twrp , 刷了之后发现里面有一个 boot 签名的功能,果断运行一下,还真给固定了,所以是 boot 没有重签,导致系统验证恢复到 原厂 recovery, 然后再刷 3.5.0 的 twrp 就好了。

折腾 2

当然是把 GAPPS 给刷进去,我下载的是 NikGApps 完整版的,opengapps 没有 android 11 的,嗯,刷不进去,提示空间不足,首先我想到的是不安装一些吧。但是失败了,行吧,那就删 system 里面的我觉得不要的软件吧。

为此我还整的一个 shell 脚本用来删不要的软件,过程很是酸爽啊。

以下:

#!/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 里面都有。所以我全都把下面几个改了:

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:

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 这应用没显示,行吧,我清除数据,出来了。

今天下午开了一下又来了,这下我不敢清数据了,万一又不行了。所以我又加了下面的,还没用就是了。

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"

希望是有用的吧。

附一张截图:

提示截图应用中止了,算了不管了。

毕竟现在天冷。

Like this post? Share on:


doobom Avatar doobom is write a bug.
Comments

So what do you think? Did I miss something? Is any part unclear? Leave your comments below.

comments powered by Disqus

Keep Reading


Published

Category

android

Tags

Stay in Touch

Get New Release Alert