Rất nhiều flagship như Xperia Z3 của Sony, One M8 của HTC hay Nexus 5 của Google đều không được cập nhật phiên bản Andoid mới nhất – Android 7 Nougat. Vì sao vậy?
Cuối cùng sau bao chờ đợi phiên bản Android mới nhất - Android 7.0 Nougat đã được Google chính thức ra mắt. Điều này đồng nghĩa các OEM Android không sớm thì muộn sẽ phải nâng cấp bản cập nhật Android mới nhất cho người sử dụng. Sony đã xác nhận các thiết bị như Xperia Z3+, Xperia Z5 cùng Xperia X và XA sẽ được nâng cấp lên Android 7.0, trong khi đó HTC cũng thông báo Android Nougat sẽ có mặt ở các smartphone như HTC 10, HTC One M9 cùng One A9. Và tất nhiên "con đẻ" của Google: Nexus 5X, Nexus 6P và General Mobile 4G (Android One) đều được cập nhật lên Android 7.0 như các smartphone khác.
Tuy nhiên, không phải thiết bị nào cũng nhận được sự hỗ trợ này. Smartphone Xperia Z3 của Sony hay One M8 của HTC đều không có bản cập nhật lên Android 7. Nhưng đây không phải là những trường hợp duy nhất, bởi ngay cả Nexus 5 của Google cũng có số phận tương tự. Xem xét kỹ cả ba thiết bị trên, theo Android Authority, chúng đều có 2 điểm chung: Đầu tiên là mốc thời gian, cả ba thiết bị được ra mắt cách đây 2 năm, vào khoảng năm 2013/2014; Cả ba máy sử dụng vi xử lý Snapdragon 800/ 801.
Qualcomm
Suy đoán về việc Android 7.0 không hỗ trợ các vi xử lý Snapdragon 800/801 càng được khẳng định chắc chắn hơn nữa nhờ vào tweet của LlabTooFeR, vốn là nhà phát triển đứng đằng sau các ROM MaximusHD nói rằng: "Qualcomm sẽ không phát hành card đồ họa cho các CPU 800/801. Chính vì thế HTC One M8 hay các thiết bị sử dụng chip này đều không nhận được bản cập nhật Android 7.0."
Không những vậy chính Qualcomm cũng trả lời về vấn đề này như sau:
"Qualcomm chúng tôi luôn làm việc chặt chẽ với khách hàng OEM để bổ sung và hỗ trợ nhiều phiên bản khác nhau của hệ điều hành Android đối với chip Snapdragon. Thời gian để các vi xử lý được hỗ trợ và nâng cấp lên phiên bản Android mới nhất đều phải tuân theo vòng đời của mỗi sản phẩm OEM. Chúng tôi khuyên các bạn nên liên hệ tới nhà sản xuất để biết thêm thông tin về các sản phẩm được nâng cấp lên Android 7.0 Nougat."
Như vậy, theo Qualcomm đó là vấn đề về năm sản xuất, chẳng hạn các OEM (LG, Sony, HTC...) đã xác định các thiết bị chạy chip Snapdragon 800/801 đã kết thúc vòng đời của mình. Điều đáng nói, tuyên bố của Qualcomm và LlabTooFeR dường như đang mâu thuẫn nhau. Vậy nếu các nhà sản xuất OEM vẫn muốn phát hành Android Nougat 7.0 trên các thiết bị chạy chip Snapdragon 800/801 thì có được không?
Sony
Sony là một trong những công ty cập nhật phiên bản Android 7 nhanh nhất cho sản phẩm của họ. Và chính Sony đã rất tích cực phát triển Android 7.0 (phiên bản thử nghiệm) dành cho Xperia Z3, nhờ vào một chương trình có tên gọi Android N Developer Preview được Sony sử dụng và đã update máy lên đến giai đoạn Developer Preview 4 của bản cập nhật. Vậy Android 7.0 hoàn toàn chạy được trên Snapdragon 800/801, chính vì thế lỗi do vi xử lý quá yếu, không đủ sức nhận bản cập nhật là cực kỳ vô lý. Nhưng Developer Preview 5 (hay DP5 là giai đoạn thử nghiệm cuối cùng của Android 7 chứa nhiều tính năng mới, đặc biệt là tính năng bộ giả lập giúp các nhà phát triển kiểm tra ứng dụng của họ trước khi ra mắt) sẽ không bao giờ được phát hành. Theo Sony, nguyên nhân đến từ " kỹ thuật và vấn đề pháp lý".
Kỹ sư trưởng Sony, ông Ola Olsson, đã bình luận trên Google + như sau: "Chúng tôi không hề muốn chơi trò chơi này, chúng tôi cũng không thể nói rõ ràng hơn nữa về chuyện giới hạn kỹ thuật. Dù rất muốn cập nhật Android N cho Z3 nhưng chúng tôi cũng không thể làm khác được. Chúng tôi buộc phải tuân theo Google CTS"
Vậy Google CTS là gì mà lại có sức mạnh đến như vậy? Để được Google cấp phép quyền truy cập vào Google Play Store, ngoài việc phải tuân thủ đầy đủ những quy chuẩn có trong Android Compatibility Definition Document (CDD) gồm những hướng dẫn mà OEM phải thực hiện khi sản xuất thiết bị Android do Google đặt ra. Ngoài ra, mỗi một sản phẩm của OEM cũng cần phải vượt qua bài kiểm tra Compatibility Test Suite hay CTS là một công cụ kiểm tra sự kết hợp các API được cài đặt trên thiết bị, độ bền của thiết bị khi tải nặng cũng như hiệu năng khi làm việc theo tiêu chuẩn của Google.
Từ đây có thể đặt ra câu hỏi có phải Nexus 5, HTC One (M8) và Xperia Z3 đã không đạt đủ điều kiện theo tiêu chuẩn CDD và CTS của Google dành cho Android 7? Khi nói đến vi xử lý, chúng ta có thể mô tả chúng theo 3 tiêu chí sau: thiết lập hỗ trợ các loại lệnh, GPU và hiệu năng.
Xem xét danh sách các thiết bị được cập nhật Android 7 chúng ta có thể thấy rằng:
· Các thiết bị này sử dụng các loại GPU như: Adreno 306, Adreno 430 và Mali-T860.
· Những thiết bị này nằm trong phạm vi rộng từ các loại chip tầm trung như MediaTek Helio P10 cho đến Snapdragon 410 và thậm chí là Snapdragon 820.
· Hầu hết các thiết bị đều sử dụng vi xử lý 64-bit.
Như vậy GPU không liên quan gì tới vấn đề này. Các thiết bị sử dụng GPU Adreno 306 cũng đủ khả năng update lên Android 7, và theo như GPU Mali của ARM, Android 7 không yêu cầu sử dụng các tập lệnh đồ họa Vulka, hoàn toàn có thể thay thế bằng tập lệnh Open GL ES. Với các GPU của ARM, ngoài những thiết bị cao cấp dựa trên Mali-T880 hoặc Mali-G71, Vulkan cũng nhận hỗ trợ từ GPU Mali-T760 trở đi. Vậy sự xác nhận của Qualcomm về việc "không phát hành card đồ họa" chỉ là một hình thức "đánh trống lảng".
Ngoài ra, hiệu năng cũng không phải là vấn đề chính ở đây. Bởi những thiết bị có hiệu năng thấp như Snapdragon 410 hay chip MediaTek P1 vẫn được cập nhật lên Android 7, vậy không lí do nào để những thiết bị sử dụng vi xử lý đời cao lại không thể update lên phiên bản mới nhất được .
Hầu hết các thiết bị được cập nhật đều sử dụng nhân 64 bit hay đặc biệt hơn là ARMv8. Như vậy, Snapdragon 800/801 đều không đủ tiêu chuẩn bởi chúng không được hỗ trợ 64-bit. Nhưng, Snapdragon 805 vi xử lý 32-bit của Nexus 6 vẫn lên được Android 7 đó thôi? Như vậy vấn đề không nằm ở GPU. Không nằm ở hiệu năng. Càng không phải vì bộ nhớ RAM giới hạn không đạt 4GB. Vậy đó là vì cái gì?
ARMv8 và Advanced Encryption Standard
Android Authority cho rằng đó là do ARMv8 và Advanced Encryption Standard. Google càng ngày càng quan tâm đến việc ủy thác sử dụng mã hóa lưu trữ. Với Android 6.0, CDD của Google tuyên bố rằng: "Nếu thiết bị được hỗ trợ mở khóa màn hình... Thì thiết bị này nhất định cũng phải hỗ trợ mã hóa toàn bộ ổ đĩa" và " mã hóa toàn bộ ổ đĩa này phải được kích hoạt theo mặc định tại thời điểm người dùng hoàn thành quá trình thiết lập các tính năng trong điện thoại ngay lần đầu tiên."
Tuy nhiên, vẫn có một số ngoại lệ cho phép những thiết bị cũ đủ khả năng chạy mà không cần mã hóa lưu trữ. CDD cũng quy định mức hiệu năng cho các mã hóa này "với những thiết bị hỗ trợ bổ sung mã hóa toàn đĩa và với các mã hóa chuẩn nâng cao (AES) với hiệu năng mã hóa phải trên 50MiB/giây."
Android 7 thực hiện mã hóa dựa trên tập tin, đúng hơn là các file cá nhân được mã hóa chứ không phải toàn bộ file hệ thống. Mã hóa dựa trên tập tin cho phép Android sử dụng chính sách mã hóa chi tiết hơn và nó cũng có thể sử dụng cả Direct Boot. Dù vẫn chưa biết đích xác CDD dành cho Android 7 như thế nào, nhưng chắc chắn Google sẽ phải đưa ra một mức hiệu năng mã hóa AES nào đó và để công cụ CTS sẽ kiểm tra vấn đề này.
Một trong những bổ sung đến từ ARMv8 là việc thêm các lệnh cho việc mã hóa phần cứng. Điều này có nghĩa, SoC của ARMv8 sẽ giống như Helio P10 và Snapdragon 820 đều sử dụng phần cứng đặc biệt trong các vi xử lý, để mã hóa dữ liệu bằng cách sử dụng AES và sẽ hoạt động nhanh hơn nhiều so với việc sử dụng một giải pháp dựa trên phần mềm.
Vậy lí do "liên quan đến cả kỹ thuật và pháp lý" mà Sony đề cập có thể hiểu rằng Snapdragon 800/801 không phù hợp với tốc độ mã hóa của chip ARMv8 bời vì chúng không được mã hóa phần cứng. Dường như phần cứng của Snapdragon 805 đạt yêu cầu là nhờ Qualcomm đã thêm một cái gì đó rất đặc biệt vào chip này.
Các lợi ích được liệt kê cho Snapdragon 805 gồm: "Mã mã hóa toàn bộ ổ đĩa và chức năng mã hóa cho các ứng dụng của Android". Điều này có thể hiểu tại sao Nexus 6 được nâng cấp lên Android 7 trong khi những chip Snapdragon 32-bit khác lại không thể.
Điểm mấu chốt là: vấn đề kỹ thuật của Snapdragon 800/801 không liên quan đến việc có được lên; Nougat hay là không. Sony, ARM hay Qualcomm đã cho thấy điều đó. Mà do Google yêu cầu mã hóa tốc độ cao cho Snapdragon 800/801 nên không thể vượt qua được thử nghiệm CTS và dẫn đến không thể tuân thủ CDD được.
Tổng kết
Nếu tìm hiểu sâu thêm chút nữa có thể thấy vi xử lý Cortex-A32 cũng là một vi xử lý ARMv8 chỉ chạy được ở chế độ 32-bit, tuy nhiên nó vẫn được hưởng lợi từ các lệnh bổ xung bao gồm các lệnh mã hóa.
Điều này, theo suy đoán của Tech Crunch, chúng ta vẫn có thể thấy các phiên bản 32-bit khác, ngoài Snapdragon 805 được nâng cấp lên Android Nougat.
Nhưng tất cả chỉ là giả thuyết. Mọi thứ chỉ rõ ràng khi Google phát hành Android CDD cho Android 7 và khi các OEM khác thông báo kế hoạch nâng cấp hệ điều hành mới cho sản phẩm của họ. Tuy nhiên, vì các ROM cook không phải phải trải qua bất kỳ CTS nào của Google, nên người sử dụng vẫn có thể thấy nhiều ROM tùy biến chạy Android 7 cho các thiết bị trên.
Hạnh Nhi