2014年9月26日 星期五

關於 Xperia Z/ZL/ZR 的 baidu 問題

相信很多眼尖的使用者在更新到10.5.1.A.0.283
發現自己的內建儲存空間被建立了一個「baidu」資料夾
而且不管怎麼刪除,重新開機後還是會再出現

大家應該跟這個「baidu」應該並不陌生
他就是惡名昭彰的「百度」


百度是中國的一家大公司
在中國的地位相當於我們國際上的Google, Inc.
其公司為中國大陸地區提供相當多的服務,諸如Blog、網路硬碟、搜尋引擎等等
而近年來該公司積極收購許多中國的軟體公司以擴大其規模、勢力及技術

但百度公司經常經由他們公司旗下的軟體來綁架使用者的瀏覽器首頁
或是在未經允許的情況下在使用者的電腦裡安裝垃圾、廣告軟體
並暗中傳電腦相關資料回他們的伺服器
這樣的一家公司我想我們也無法100%安心的使用他們的產品,對吧?

當然,這篇文章可不是用來介紹百度的
耿鬼今天要教大家怎麼解決這個「baidu」資料夾的問題!



首先要先說明為什麼會有這個baidu資料夾出現

根據耿鬼的調查以及測試結果,這是更新後的「my Xperia」搞的鬼
關於my Xperia的說明,請點這裡
SONY在提供給Xperia Z/ZL/ZR10.5.1.A.0.283更新中
包含了my Xperia 0.0.A.0.63版的更新
而這個更新後的my XperiaSONY不知道為什麼把它設計成使用百度的PushService
根據APK裡面的AndroidManifest.xml紀載有關百度的內容:

<receiver enabled="true" exported="false" name="com.sonymobile.mx.android.c2dm.BaiduPushRetryAlarmReceiver">
<intent-filter>
<action name="com.sonymobile.mx.android.BAIDU_PUSH_REGISTRATION_RETRY">
</action>
</intent-filter>
</receiver>

<service name=".services.BaiduFindService">
</service>

<receiver name=".c2dm.BaiduPushMessageReceiver">
<intent-filter>
<action name="com.baidu.android.pushservice.action.MESSAGE">
</action>
<action name="com.baidu.android.pushservice.action.RECEIVE">
</action>
<action name="com.baidu.android.pushservice.action.notification.CLICK">
</action>
</intent-filter>
</receiver>

<receiver process=":bdservice_v1" name="com.baidu.android.pushservice.PushServiceReceiver">
<intent-filter>
<action name="android.intent.action.BOOT_COMPLETED">
</action>
<action name="android.net.conn.CONNECTIVITY_CHANGE">
</action>
<action name="com.baidu.android.pushservice.action.notification.SHOW">
</action>
<action name="com.baidu.android.pushservice.action.media.CLICK">
</action>
</intent-filter>
</receiver>

<receiver process=":bdservice_v1" name="com.baidu.android.pushservice.RegistrationReceiver">
<intent-filter>
<action name="com.baidu.android.pushservice.action.METHOD">
</action>
<action name="com.baidu.android.pushservice.action.BIND_SYNC">
</action>
</intent-filter>
<intent-filter>
<action name="android.intent.action.PACKAGE_REMOVED">
</action>
<data scheme="package">
</data>
</intent-filter>
</receiver>

<service process=":bdservice_v1" exported="true" name="com.baidu.android.pushservice.PushService">
<intent-filter>
<action name="com.baidu.android.pushservice.action.PUSH_SERVICE">
</action>
</intent-filter>
</service>

<service process=":remote" enabled="true" name="com.baidu.location.f">
</service>

<meta-data value="sYGgDOKusdtkglzSKgKauM9S" name="com.baidu.lbsapi.API_KEY">
</meta-data>

而之前的版本0.0.A.0.52並沒有任何有關百度的內容



既然已經知道是my Xperia的問題,那麼就針對my Xperia來解決吧
我們現在有兩個方向:
一、停用或移除my Xperia
二、換回較舊版的my Xperia
針對已經root的裝置和未root的裝置有不同的解決方法

root的裝置解法:

開啟Root Explorer等可以取得root的檔案管理器
system\priv-app下的MyXperia.apkMyXperia.odex(如果有)刪除
system\lib下的libbdpush_V2_0.so刪除  重要!!
如果不需要my Xperia的話,到這邊重新開機後就算完成了

如果需要my Xperia的話,再進行以下步驟:
0.0.A.0.52MyXperia.apk複製到system\priv-app
MyXperia.apk的權限改為644(rw-r--r--)
重新開機後就完成了



root的裝置解法:

由於my Xperia並不能透過一般apk檔的方式安裝
所以我們只能透過將my Xperia停用來解決這個問題
可是my Xperia也不能直接從設定裡面停用
必須借助adb shell的幫助,相當的麻煩

準備工作:
下載adb shell
安裝PC Companion
(用意為安裝手機的adb Driver,如果你確定已經有安裝驅動程式或是已安裝PCC則可省略)
將手機啟用USB偵錯

執行adb環境(cmd的路徑指向adb shell的解壓資料夾下)
如圖所示:


將手機接上電腦,並輸入以下指令:
adb shell

待這個畫面出現後


輸入以下指令:
pm block com.sonymobile.android.mx
exit adb
reboot


之後手機會重新開機,重新開機後就完成了

這樣一來把baidu資料夾刪除後就不會再一直出現了

沒有留言:

張貼留言