Android 14被指使用不可靠的邏輯計算智能手機空間使用量
雖然現代智能手機的嵌入式存儲空間已大幅增長,但軟件方面仍傾向於對可用空間進行奇怪或完全錯誤的計算。這個問題也影響到即將發布的Android系統版本,以及大多數第三方改頭換面的操作系統版本。
舊版本和當前版本的Android系統都受到了操作系統計算移動設備存儲空間使用情況的一個奇特錯誤的影響。Android專家米沙爾-拉赫曼(Mishaal Rahman)今年早些時候發現了這個問題,他指出,即使在即將發布的Android14版本中,Android計算操作系統”系統”文件所佔存儲空間的方式仍然存在重大缺陷。
正如Twitter/X 所解釋的那樣,Google操作系統計算”系統”文件的方式完全不合邏輯。當新文件被添加到智能手機的集成存儲空間時,如果它們不能被歸入圖片、視頻、文檔等其他類別,Android系統就會把它們歸類為”系統”文件夾的一部分。拉赫曼指出,簡單地說,Android系統計算”系統”部分的方法是,從當前使用的總存儲空間中減去歸屬於其他一切的存儲空間。
即使是駐留在/data/media 目錄中的用戶創建文件(這些文件根本不可能是系統文件),也會被Android 歸類為”系統”的一部分。拉赫曼通過執行一個shell 命令來生成一個3GB 的文件,其中充滿了隨機數據,從而展示了這個漏洞。文件創建後,”系統”類別增加了3GB。
除了錯誤報告可用空間外,該漏洞還影響了”文件”文件資源管理器應用程序計算存儲空間的方式,這很可能是因為它採用了與操作系統相同的錯誤邏輯。第三方”改頭換面”的Android 版本也受到了該錯誤的影響,但有一個明顯的例外: 據拉赫曼稱,三星的One UI 6 可以準確報告移動設備上文件的空間消耗情況。
Android系統在存儲空間報告方面還存在另一個問題。Google在計算存儲空間時使用了”gibibyte”單位,相當於1024^3 字節。相比之下,OEM 廠商在宣傳存儲容量時使用的是”gigabytes”單位,在1998 年國際電工委員會(IEC)正式採用新的前綴標准後,”gigabytes”單位等於1000^3 字節。
“gibibyte”是表示存儲單元實際可用空間的正確定義,但會誤導用戶對手機製造商所宣傳空間的理解。拉赫曼指出,這個問題在Android 14 系統中依然存在,有可能導致用戶不必要地執行出廠重置程序,試圖重新獲得實際上根本不存在的額外空間。