以下內容涉及暴力殺 App 及不當系統行為,敬請留意。
續上回,用 Nokia 品牌的 HMD Android 9 手機,預裝 Evenwell 的殺 App 程式,粗略看過其源碼,發覺似乎無時無刻都在尋找殺戮對象,包括手機啟動,任何程序啟動,網絡環境變更等,都會檢查是否要大開殺戒。
基本上,所有背景啟動,都會即時考慮是否要立即殺死(不是禁止啟動,而是出世後觸發該程式,檢查是後才殺死), 但亦有不會殺死的種類或情況,包括 :
- 最近曾開啟(在 Recent List 頭)的幾個 App
- 預設的 SMS App (但沒有 Dialer App)
- NFC 服務觸發的 App
- 正在有來電響鈴時,不殺任何 App
- 取得audio focus (正播放音樂) 的App
- 正在用 network 的 App
- Live wallpaper App
- 有顯示 widget 的 App
- 預設 launcher
- 預先指定的內置白名單App
- 進程(process)名稱包含冒號,即App的非主要進程
追查一下內置白名單有什麼(國際版),發覺有一系列的第三方 App (來源,源碼已被2月7日的 2 個 commit 移除,不過若懂git的話…):
ru.megafon.mlk kz.beeline.odp ru.tele2.mytele2 net.seddev.callerunknownlocation com.app5.rakem.wahmi com.KatlinDev.fblikes com.nttdocomo.android.remotelock jp.softbank.mb.tether com.nexon.nxplay com.opplysning180.no no.intellicom.app1881 com.ms1881 com.hthk.ThreeShortCode nl.addcomm.afvalwijzer de.eplus.mappecc.client.android.alditalk au.com.aldi.android com.google.android.apps.messaging com.anytag.android com.azarlive.android com.bbm com.bell.ptt com.turkcell.bip com.touchtalent.bobbleapp de.knabedesign.bosfrequenz com.bt.voiceapps.homeaway net.nanabit.callconfirm com.studiokuma.callfilter com.smartone.callguard com.eyecon.global com.vladlee.easyblacklist com.eupheme.callrecorder com.plugmind.cbtest com.chaatz hu.sanomabp.citromail com.clanplay.clanchat mobi.drupe.app com.bluebeam no.digipost.android jp.co.nttdocomo.saigaiban com.discord com.dw.contacts.free com.blogspot.acesandroiddevelopment.easywalkietalkie.free com.threesixtyentertainment.nesn com.modoohut.dialer.theme.dark com.modoohut.dialer.plugin.geocoder primiprog.waw com.oakley.fon com.fongo.dellvoice fr.freemobile.android.vvm com.freedompop.phone pl.gadugadu com.google.android.gm com.jb.gosms.da com.jb.gosms.it com.jb.gosms com.jb.gosms.pl com.jb.gosms.sv com.google.android.apps.fireball com.android.chrome com.google.android.apps.tachyon appinventor.ai_appsgeniet.MessageGift com.handcent.lang.nextsms.hu com.google.android.talk com.imo.android.imoimbeta com.imo.android.imoim com.androidintercom org.woltage.irssiconnectbot com.jio.join com.pccw.mobile.sip02 net.fidanov.landroid it.italiaonline.mail jp.naver.line.android com.uplus.lps.agent pl.tmobile.miboa de.telekom.android.customercenter ru.mail.mailapp com.orange.vvm msgplus.jibe.sca com.facebook.orca com.facebook.mlite es.ono.MiOno com.movistar.android.mimovistar.es es.vodafone.mobile.mivodafone net.bfgnet.miandroigo nl.simyo.mijnsimyo com.nosnaj.missatsamtal com.yogi.operadora ru.beeline.services com.putitonline.mmm uk.co.o2.android.mynetwork com.vodafone.android ca.bell.selfserve.mybellmobile com.ChinaMobile com.conzebit.myplan Uxpp.UC pt.zon.fon mobisocial.omlet com.camerum.android.app.operadora fi.mobilive.vayrynen nu.firetech.android.pactrack nl.politie.consumentenapp com.motorola.ptt.prip.br com.psiphon3 com.psiphon3.subscription se.tactel.reach com.ready.android com.rediff.mail.and com.rts.ic.ym com.Rogers.phonebookrogers com.sfr.android.sfrmail com.sfr.android.vvm org.mistergroup.muzutozvednout org.thoughtcrime.securesms com.skype.raider net.daum.android.solmail jp.co.nttdocomo.carriermail com.surya.STDCodes com.reyvilo.android.suiviconso pl.netox.supersms de.tubs.ibr.dtn.dtalkie me.talkyou.app.im nl.apps4us.nummerinfo org.telegram.messenger no.telenor.dekningskart dk.shape.teliacontacts com.hutchison3g.threeintouch br.com.conception.timwidget.timmusic com.tokensapp com.truecaller com.uplus.ipagent com.motorola.visualvoicemail com.viber.voip ca.virginmobile.myaccount.virginmobile com.vodafone.messaging com.vodafone.mbb.wifimonitor de.telekom.mds.mbp ru.atrant.worldcallplaceandtime_db_russian org.herrlado.websms.connector.arcor com.tencent.mm com.orderlysoftware com.whatsapp com.clone.multipleap com.gregdev.whirldroid com.whooming.WhoomingMobile gogolook.callgogolook2 com.andr.evine.who com.sourcebt.android.wifitalkie com.mywispi.wispiapp jp.co.yahoo.android.ymobile.mail com.yahoo.mobile.client.android.mail ru.yandex.mail com.zing.zalo com.microsoft.office.lync15 us.zoom.videomeetings com.Slack com.cisco.webex.meetings com.microsoft.teams com.afwsamples.testdpc
當中有即時通訊的 WhatsApp、Telegram、WeChat (com.tencent.mm) 、FB Messenger (com.facebook.orca) 、Line (jp.naver.line.android)、瀏覽器 Chrome,而攔截 App 則包括數碼通「來電管家」(com.smartone.callguard)、小熊來電 (com.studiokuma.callfilter)、Whoscall (gogolook.callgogolook2) ,也有 TrueCaller (com.truecaller)、Calls Blacklist (com.vladlee.easyblacklist)。其他主要是須在背景運作的通訊或VoIP等,主流的程式。
當然沒有「小鴨幹線」這類小開發者的程式。
即是說,Nokia 已預先內訂保護「小熊來電」,「Whoscall」,「WhatsApp」之類主流程式,以及音樂播放,widget等種類的背景服務,在原生標準之上,限制用戶只能使用某種行為或名單指定的程式,而限制的條件毫不透明,這點和其他「深度訂製」大陸牌子機的所謂省電功能,並沒有分別。
而更甚者,用戶似乎無法簡單地關閉該功能,或自行將 App 加入白名單防止被殺,根據 Don’t kill my app 的 Nokia 分頁及其他地方的討論 (如這個),把 App 放入原生 Android 設定的 doze 白名單,是沒有用的。雖然該殺手程式源碼,看來似乎有自訂白名單機制,來讓用戶防止殺 App,但似乎沒有人提及設定方法,未知是否為保持近似原生的設定界面,而將之隱藏。
以上為根據 Don’t kill my app 在 Github 公開的源碼分析,不排除 Evenwell 更新該程式,以致現時或日後的效果有所不同。
對小鴨的影響
上述 Evenwell 殺 App 程式與以往其他同類 App killer不同之處,是既不等待一段較長時間才殺 App,又不一開始時便禁止啟動(或許是因為要視乎 App 行為而決定)。這種方式及 timing,恰恰使要在背景起動的 App,啟動了卻無法完成 Android 8 以上顯示 Icon 要求,而被系統報錯彈 App。
因此,HMD 用戶在升級 Android 9 後,會發覺開機後,WhatsApp 之類主流通訊程式,音樂播放程式,widget 等背景服務運作正常,而小鴨則在啟動後立即死掉或凍結,觸發了錯誤,系統更會耗用數據,向 Google 提交錯誤報告…
即使 HMD / Nokia 用戶屬少數,亦令小鴨自12月起,在Google Play Console 整體表現,ANR (當機彈App) 率大幅提升,已去到會被 Google 處罰的「Bad behaviour threshold」邊緣徘徊。
所以,希望 小鴨用戶若用 HMD / Nokia 手機並使用 Android 9 ,為免耗用電力及數據,請刪除「小鴨幹線」,轉用上述「小熊來電」等,HMD / Evenwell 指定名單內的 App。
小鴨已將部份 Nokia 機種列為不兼容,以反映事實。
順帶一提,起動失敗後,用戶若手動開啟小鴨 App 再關閉再重啟攔截,小鴨是會如常啟動及運作的,但這完全是幸運(?)的巧合,因為 (1) 前景 App 相關的運作不會被殺,因此開啟小鴨 App 再啟動攔動沒有問題,(2) 之後因為小鴨攔截服務的特別設計(使用了另一非主要進程 :resident 專負責攔截,減少平時佔用空間),也在殺手 App 的例外,所以服務候命時沒有問題,(3) 處理來電時會啟用主要進程,但殺手App 剛好不會在有來電時殺App,小鴨再避過一劫。
若小鴨沿用一般使用單一進程的設計,應會在一段時間後(如主程式關閉後一段時間)被清除。這也突顯這類 App 殺手準則的隨意性,若非查看源碼,完全不會知道為什麼某些 App 不能運作而其他類似 App 沒有問題的原因。
胡亂殺 App 或得不償失
一般來說,由於這類殺手 App 一直在背景運作,每當執行新程式或其他觸發其啟動的條件符合時,都會被啟動去檢查一次是否要殺 App,本身會耗用電力,因此在一般情況,省電效果成疑,在 Android 8 以上,系統本身已嚴格規管背景運作的前提下,只會防礙獲用戶同意的後台服務的運作,同時更可能耗用更多電力。
更何况,當一個品牌,以所謂「100%」、「原生」、「pure」Android 為賣點, 但消費者得到的,卻是在原生之上,特別加料的手機,令部份依足標準而製,在真 · 原生系統能運作無誤的 App,無法正常運作,更無法改變設定,變相限制用戶的選擇。用家若事先不知情,或難免有被商品說明誤導的感覺。
當然可能亦有用戶,喜歡原生介面,快人一步的更生速度,而使用 App 的習慣完全與殺手 App 的預設準則一致,又不介意日後 App 選擇被限制,這項「額外」功能,帶來了意想不到的驚喜 … 那麼,我真係恭喜你呀。
HMD「越獄」方法
警告 : 以下內容有危險動作,除非有專人指導、或本身是專人,否則切勿模倣
若使用 Android 9 的 HMD 手機,又希望突破限制,使用沒有在白名單的背景軟件,包括小鴨,在網上找到了方法,可以透過 adb 在自己 user 刪除該 App 殺手 :
pm uninstall --user 0 com.evenwell.powersaving.g3
這方法是不用root的,據悉不會影響 OTA (参考) ,但會不會影響保用便不得而知。
事實上,Evenwell 有大量其他 App 在 HMD 手機背景運作,負責追蹤使用情況及更新。有用戶試過以相同方法刪除了亦沒有問題,參見這頁。
再戴一次頭盔,後果自負,若不熟悉 Android adb 及相關工具,請改用指定的背景 App。