經檢視10月23日早上推出下載的最新版 Galaxy Note20 Ultra 5G firmware(港版,N9860ZSU1ATJ6,10月20日),已解決所有已知將 HK 視為 isChineseIso()的問題。
不過一如所料,三星始終沒有正面回應,承認或否認有關問題(即使旗艦機款已就同屬 9 月的 security patch level 收到第 3 次更新)。
Part 2 及 Part 3 所列的isChineseIso()已被改回只包括 cn 而不包括 hk 及 mo。因此香港的 firmware 在香港網絡運作不會再被特別處理,除非是 Part 3 所述 Wifi-only 平板的情況,更新到 10月20日 的 firmware 後不會再自動查詢或連接 qq.com 及 baidu.com 等。
WifiConnectivityMonitor 及 NetworkMonitor
private boolean isChineseIso(String countryIso) {
return "cn".equalsIgnoreCase(countryIso);
}
而 Part 3 提及的 checkCountryCodeFromScanResults() 亦已改為只對 CN 的 Accsss Point 作特別處理。
int winnerCount = 0;
if (countryCodeMap.containsKey("CN")) {
cnCount = countryCodeMap.get("CN").intValue();
}
String pollWinner = "";
String stat = "";
for (String c : countryCodeMap.keySet()) {
stat = (stat + c + ": " + countryCodeMap.get(c)) + " ";
if (countryCodeMap.get(c).intValue() > winnerCount || (countryCodeMap.get(c).intValue() >= winnerCount && "CN".equals(c))) {
pollWinner = c;
winnerCount = countryCodeMap.get(c).intValue();
}
}
String currentTime = "" + (System.currentTimeMillis() / 1000);
try {
currentTime = new SimpleDateFormat("MM-dd HH:mm:ss.SSS", Locale.US).format(new Date());
} catch (RuntimeException e) {
}
...
if (winnerCount >= 5) {
if ("CN".equals(pollWinner)) {
mLastChinaConfirmedTime = System.currentTimeMillis();
}
if ("CN".equals(this.mCountryCodeFromScanResult) && !"CN".equals(pollWinner)) {
long remainingTime = 86400000 - (System.currentTimeMillis() - mLastChinaConfirmedTime);
if (remainingTime < 0) { sb.append(" | Updated [CN 24 hours expired] - CN -> " + pollWinner);
mCountryCodeFromScanResult = pollWinner;
Settings.Global.putString(this.mContext.getContentResolver(), "wifi_wcm_country_code_from_scan_result", mCountryCodeFromScanResult);
} else {
sb.append(" | Country Code changed but not updated - CN -X-> " + pollWinner + " , maintain CN for next " + (remainingTime / 1000) + " seconds");
}
} else if (!pollWinner.equals(this.mCountryCodeFromScanResult)) {
sb.append(" | Updated - " + this.mCountryCodeFromScanResult + "->" + pollWinner);
mCountryCodeFromScanResult = pollWinner;
Settings.Global.putString(mContext.getContentResolver(), "wifi_wcm_country_code_from_scan_result", mCountryCodeFromScanResult);
}
}
但注意若附近有較多來自大陸的 access point 的話,用 WiFi-only 的 Galaxy Tab 仍有可能受 Part 3 所指的問題影響。
在〈三星新版 firmware 已解決將 HK 視為 isChineseIso() 的問題〉中有 2 則留言
感謝headuck CHing keep住跟進呢件事,但由始至終Samsung都冇正面或者積極地回應,而係用冷處理嘅方式,令我有啲失望。點都好,有修正返起碼好過咩都唔做,亦都希望其他手機廠商唔好犯同樣嘅錯誤。
這事的重點在於三星背後有沒有刻意的取向,但不能因她冰冷的態度就斷然判斷,畢竟那可能真的是她自以為恰當的錯誤處理手法,源自於她內部的官僚或不認錯的文件。但要問的是: 這類程式碼有其需要性嗎???
如果用戶沒有指定DNS,那按系統默認設定,讓手機自動從當地電訊商取得DNS就可以了。若然因用戶設定了自己的DNS,以致進入大陸時上不了網,這也是用戶自己問題,三星不用理會。未知有沒有其他真實需要讓她引入這類程式碼?!