在非MIUI手機系統上使用MiPushFramework小米推送服務接收app推送消息
在小米6使用miui EU版系統時,由於FCM和MiPush同時存在所以無論國內的應用還是國外的應用,消息接收都還是很及時的,後面刷了PixelExperience系統,國內的微信等騰訊系app都沒有使用FCM和MiPush,為此還專門研究了一下微信開啟FCM的方法,最後感覺也是無用。後面也就沒有在意過這些東西,唯一需要比較及時通知的app是米家,主要是看一下什麼時候家裡有人,小米6使用PE系統后,就把這個應用主要放到Iphone7上面了。再次關注國內這些app的推送問題是因為昨天把iphone7寄回家,讓家裡人使用,之前一直使用的是紅米note4,現在屏幕亂跳,不行了。
雖然從Google應用商店下載的米家app在綠色守護裏面有FCM的圖標,卻沒有接到過從FCM來的通知,只能把米家不限制電量才能接收消息。在查看米家怎麼走FCM時無意中又看到了在非MIUI系統中使用MiPushFramework接收小米推送的回覆。之前也看到過這樣的帖子,但是需要刷入小米服務等,操作複雜,這次看到是直接安裝兩個app就行了,並且不需要root,於是在三星S10+上面試了一下,發現只有拼多多能夠註冊通知成功,其他app都不行。估計是其他app只有檢測到是在miui系統時才啟動MiPush的消息通知,所以手機需要root然後偽裝才行了。
使用方法,下載https://github.com/MiPushFramework/MiPushFramework/releases <span class="pl-2 flex-auto min-width-0 text-bold">manager.apk </span><span class="pl-2 flex-auto min-width-0 text-bold">xmsf_service.apk 這兩個app,安裝到手機上,手機需要root,我的是使用magisk來root的。</span>
先下載Riru Core,https://github.com/RikkaApps/Riru/releases 這個模塊也可以直接在magisk中下載安裝,然後重啟手機。
再下載 https://github.com/MiPushFramework/MiPushFakeForRiru/releases安裝,這個主要是偽裝手機為小米設備,這個模塊好像是全局偽裝,xposed的一個模塊可以偽裝單個應用。
上面這些好了以後就可以打開小米推送服務這個軟件了(就是剛才安裝的<span class="pl-2 flex-auto min-width-0 text-bold">manager.apk)</span>
這個app會把手機裏面的所有有MiPushFramework的app都列出來,第一次使用時會和下面截圖的最後幾個應用顯示的一樣,使用小米推送,但尚未註冊。
我們進入到設置裏面,點擊全局偽裝小米設備,授予root權限后,就可以去開啟app了。開啟app后就會自動註冊小米推送,註冊成功的就會顯示已註冊。
也會有顯示註冊異常等問題的,解決辦法請參考https://github.com/MiPushFramework/MiPushFramework/wiki
註冊成功的app就可以在綠色守護中把這些app休眠掉,我一般是選擇淺度休眠。休眠后這些app一樣能及時有消息推送。但是從消息上可以看到,顯示的是Push,代表是通過小米推送接收到的消息
接收到消息后,再去綠色守護裏面看,剛剛收到消息的應用還是在休眠狀態。這樣就即能及時接收消息,又不用一直後臺,達到了省電的目的。
下圖是米家接收到推送消息。
綠色守護中,米家還是處於休眠狀態。
後面只有無限期等待美版S10+能夠root。
经过几天的使用遇到的问题:有些APP的推送通知在通知栏无显示,但是在这个软件的记录里面显示有收到推送,遇到这个问题的主要是米家这个app。其他的有时候会没有通知,这也是个问题,感觉这个软件不是很完善,估计是作者没有太多时间去Debug。耗电量的话大概在2%左右,这样的耗电量还可以接受,总体来说还是不错的。