Vì sao Android 7.0 không được update cho One M8, Xperia Z3, Nexus 5...?

Vì sao Android 7.0 không được update cho One M8, Xperia Z3, Nexus 5...?

Android 7.0 đã chính thức ra mắt, các hãng cũng đã bắt đầu công bố lộ trình cập nhật cho sản phẩm của họ. Tuy nhiên, có một số thiết bị không xuất hiện trong lộ trình này: Sony không để cập tới Xperia Z3, HTC thì không update cho One M8, còn Google thì không cho Nexus 5 được xài phiên bản hệ điều hành mới nhất. Những thiết bị này có 2 điểm chung: chúng đều là những sản phẩm ra mắt trong giai đoạn 2013 - 2014, tức là đã khá cũ, và tất cả đều chạy chip Snapdragon 800 hoặc 801.

Phía Qualcomm: chúng tôi vẫn làm việc với OEM

LlabTooFeR, một nhà phát triển thường rò rỉ chính xác thông tin về các sản phẩm HTC và cũng là người từng "ăn nằm" với các thiết bị Sony trong thời gian dài, post lên Twitter một dòng tweet rằng "Qualcomm sẽ không ra mắt driver đồ họa dành cho Snapdragon 800 / 801, vậy nên One M8 và những thiết bị khác dùng CPU này sẽ không được update Android 7.0 chính thức". Thế là trang Android Central mới đi hỏi Qualcomm và nhận được câu trả lời như sau:

Ở Qualcomm, chúng tôi làm việc chặt chẽ với các khác hàng OEM để triển khai và hỗ trợ nhiều phiên bản Android xuyên suốt các chipset Snapdragon. Thời gian mà một chipset được hỗ trợ và phiên bản OS có thể cập nhật lên phụ thuộc vào vòng đời sản phẩm của OEM. Chúng tôi khuyên bạn nên liên hệ nhà sản xuất của bạn hoặc nhà mạng để có thêm thông tin về Android 7.0 Nougat
Bấm để mở rộng...
Một câu trả lời khá là chung chung và gần như không có thêm thông tin gì mới cho người dùng chúng ta. Tuy nhiên, kết hợp giữa phát ngôn của Qualcomm với thông báo từ các OEM, chúng ta có thể ngầm hiểu rằng những thiết bị chạy chip Snapdragon 800/801 đã chấm dứt vòng đời của mình. Nhưng lỡ như một hãng nào đó vẫn muốn ra mắt Android 7.0 cho các thiết bị cũ của mình thì liệu có được hay không?

Snapdragon_800.jpg

Sony: có giới hạn kĩ thuật và pháp lý!

Kể từ đầu năm nay Sony đã bắt đầu tích cực tham gia vào việc phát triễn Android 7.0 cho chiếc Xperia Z3. Thậm chí Z3 còn là một trong những sản phẩm không phải Nexus đầu tiên được trải nghiệm Android N khi nó còn trong giai đoạn beta 4. Android 7.0 rõ ràng chạy tốt trên Snapdragon 800 hoặc 801, vậy nên về lý thuyết thì không có giới hạn kĩ thuật nào về phần cứng có thể cản trở điều đó.

Nhưng khi bản beta 5 xuất hiện, theo Sony, có những "lý do kĩ thuật và pháp lý" xuất hiện. Ola Olsson, đến từ Sony Mobile, nói thêm trên Google+: "Thật buồn vì chúng tôi cũng không muốn chơi trò này, có nghĩa là chúng tôi không thể nói thêm về các giới hạn kĩ thuật. Ngay cả khi chúng tôi thật sự muốn cho bạn chạy Android N trên Z3, chúng tôi cũng không thể làm được. Không thể, nếu chúng tôi muốn vượt qua Google CTS".

Nếu bạn chưa biết thì Google CTS là Compatibility Test Suite - một hệ thống đánh giá cài trên máy tính để chạy các test case cho thiết bị Android để đưa ra những báo cáo đánh giá về việc tương thích phần cứng, phần mềm. Trong các bài test, ngoài việc chạy một số script để thực thi các lệnh hệ thống, CTS còn đóng gói và thử nghiệm một số ứng dụng ở dạng APK. CTS được các hãng sử dụng trong suốt quá trình phát triển sản phẩm nhằm đảm bảo thiết bị của họ luôn tương thích với Android.

Xperia_Z3.jpg

Google: thiết bị Android phải vượt qua bài test của chúng tôi

Đọc đến đây nhiều khả năng bạn sẽ đổ lỗi cho Google. Google buộc các nhà sản xuất phải vượt qua CTS và đảm bảo mọi thứ đều tương thích theo bộ quy chuẩn Compatibility Definition Document của mình trước khi "cấp phép" cho thiết bị cũng như mở quyền truy cập vào Google Play Store. Vậy trong CTS và CDD, có gì liên quan tới Android 7.0 mà Nexus 5, One M8 và Xperia Z3 không thể đáp ứng?

Nói về các bộ xử lý dùng trên di động hiện nay là phải nhắc tới 3 thứ: tập lệnh là gì, GPU là gì, và hiệu năng ra sao. Ngó một vòng sang những thiết bị sẽ được update lên Android 7.0, chúng ta có thể thấy một vài điểm chung như sau:
  • Chúng sử dụng nhiều loại GPU khác nhau, từ Adreno 306, Adreno 430 cho đến Mali-T860.
  • Những thiết bị này cũng có mức hiệu năng khác nhau, trải dài từ thấp đến rất cao, từ chip MediaTek Helio P10 cho đến Snapdragon 410 hay thậm chí là Snapdragon 820.
  • Hầu hết các thiết bị đều dùng chip hỗ trợ tập lệnh 64-bit.
Nhìn vào dải GPU nói trên, chúng ta có thể tạm nghĩ rằng GPU không phải là vấn đề. Những thiết bị chạy Android 7.0 có thể hoạt động được trên cả GPU Adreno 306, vậy thì GPU Adreno 330 của Snapdragon 800 sẽ không phải là vấn đề. Android 7.0 cũng không yêu cầu GPU phải hỗ trợ tập lệnh đồ họa mới Vulkan nên cũng không sao vì vẫn còn tập lệnh Open GL ES cũ hơn. Như vậy, việc "Qualcomm không hỗ trợ driver đồ họa" nghe có vẻ dễ gây hiểu lầm.

Thứ hai, hiệu năng cũng không phải là vấn đề. Chip Snapdragon 410 hay MediaTek P1, vốn là những con chip giá rẻ hiệu năng thấp, vẫn có thể chạy Android 7.0 thì lý do gì khiến Snapdragon 800 mạnh mẽ không thể chạy được hệ điều hành mới này. Không có bằng chứng rõ ràng nào cho thấy điều đó.

Thứ ba, về tập lệnh, đồng ý rằng Snapdragon 800 không hỗ trợ 64-bit mà chỉ dừng ở con số 32-bit mà thôi. Tuy vậy, Nexus 6 chạy Snapdragon 805, vốn cũng dùng chip 32-bit, vẫn được lên 7.0. Vậy hẳn là tập lệnh và kiến trúc cũng không phải là vấn đề rồi.

Không phải GPU, không phải hiệu năng, cũng không phải 32-bit hay 64-bit. Vậy rốt cuộc, "giới hạn kĩ thuật" mà Sony đề cập tới một cách bóng gió là gì?

ARMv8 và chuẩn mã hóa AES

Trang Android Central đặt ra giả thiết như sau: Google đang yêu cầu các thiết bị phải hỗ trợ mã hóa bộ nhớ trong mặc định. Với Android 6.0, CDD của hãng nói rằng "Nếu một thiết bị hỗ trợ màn hình khóa bảo mật... thì thiết bị này cũng phải hỗ trợ full-disk encryption" và "full-disk encryption phải được kích hoạt mặc định vào thời điểm người dùng hoàn tất quá trình thiết lập khi mới sử dụng máy lần đầu tiên (out-of-box setup)".

Tuy nhiên, Google vẫn cho phép một số thiết bị cũ được phép chạy Android 6.0 mà không cần phải có full-disk encryption. Hãng nói yêu cầu này chỉ bắt buộc với những thiết bị hỗ trợ chuẩn mã hóa Advanced Encryption Standard (AES) với hiệu năng trên 50MiB/s. MiB là Mebibyte, trong đó chữ mebi có nghĩa là 2^20, vậy nên 1 MiB tương đương với 1048576bytes. Mebi thường được dùng để diễn tả chính xác dữ liệu tới từng bit thay vì chữ phổ biến hơn là megabyte.

Android_full_disk_encryption.png

Ở thời điểm viết bài này, CDD dành cho thiết bị Android 7.0 vẫn chưa được Google công bố, tuy nhiên chắc chắn sẽ có một mức hiệu năng AES nào đó được đề ra và công cụ CTS sẽ kiểm tra điều đó.

Đề cập một chút về full-disk encryption, tính năng này sẽ mã hóa từng file trong hệ thống chứ không phải là mã hóa cả một file system. Việc mã hóa dựa trên từng file cho phép Android thực thi những chính sách mã hóa khác nhau, cũng như mở đường cho tính năng Direct Boot (cho phép một số app thực thi ngay khi máy vừa boot xong nhưng chưa unlock, tức là chưa được giải mã).

Khi một thiết bị đã được khởi động lên, dữ liệu trên máy vẫn còn được mã hóa cho đến khi bạn nhập password, mã PIN, pattern hay dùng vân tay quét vào. Nếu bạn không nhập mật mã, máy vẫn còn khóa và dữ liệu vẫn sẽ được mã hóa. Các ứng dụng không thể hoạt động bình thường nếu dữ liệu chưa được giải mã, vậy nên trong giai đoạn này các app không thể thực hiện những tác vụ cơ bản như nhận cuộc gọi, email hoặc tin nhắn. Điều này cũng có nghĩa là app không thể hiện thông báo hay nhắc nhở gì cả.
Bấm để mở rộng...
Quay trở lại với các con chipsetta, kiến trúc ARMv8 có một số tập lệnh mới hỗ trợ tốt hơn cho việc mã hóa phần cứng. Chính vì thế, những SoC như Helio P10, Snapdragon 410 hay Snapdragon 820 có khả năng chạy mã hóa AES với tốc độ nhanh hơn nhiều so với việc chỉ dùng phần mềm. ARMv8 cũng là kiến trúc đầu tiên hỗ trợ 64-bit của ARM.

Còn Snapdragon 800? Nó chỉ dùng kiến trúc ARMv7 mà thôi, mà kiến trúc này lại không hỗ trợ các tập lệnh encryption mới. Chính vì thế, có khả năng Snapdragon 800 và 801 không thể chạy mã hóa đủ nhanh để vượt qua bài test của Google. Nếu giải thuyết này đúng thì đây chính là giới hạn "kĩ thuật và pháp lý" mà Sony đề cập.

fips-graphic.jpg
Slide nói về Snapdragon 805 và module mã hóa mới

Snapdragon 805 cũng là SoC 32-bit giống như Snapdragon 800, nó cũng dùng kiến trúc ARMv7. Tuy nhiên, trên con chip này Qualcomm đã bổ sung một module mã hóa với khả năng hỗ trợ full-disk encryption và các hệ thống mã hóa ứng dụng của Android. Đây nhiều khả năng là sự khác biệt khiến Nexus 6 chạy Snapdragon 805 được lên Android 7.0 trong khi Nexus 5 dùng Snapdragon 800 thì chỉ biết đứng ngó thèm thuồng.

Kết luận

Nói tóm lại: không có lý do kĩ thuật nào khiến Snapdragon 800 và 801 không thể chạy Android 7.0. Nhưng vì những yêu cầu của Google liên quan đến tốc độ mã hóa, các máy Snapdragon 800 và 801 không thể vượt qua những bài kiểm tra về tính tương thích, vì vậy mà bản update không thể được phân phối đến tay người dùng.

Xin nhắc lại, ở trên chỉ là một giả thuyết, nhưng là một giải thuyết rất có lý. Tất cả mọi chuyện sẽ rõ ràng hơn khi Google ra mắt CDD dành cho Android 7.0. Có một tin vui cho các bạn: ROM cook không cần phải pass CTS, vậy nên chúng ta vẫn có thể thấy những ROM tùy biến chạy Android 7.0 cho những thiết bị nói trên.

Thêm giả thuyết nữa: các máy trên đã quá cũ, và các nhà sản xuất không muốn tiếp tục hỗ trợ nó. Chỉ đơn giản vậy thôi! Theo anh em thì sao?

Tham khảo: Android Central, Qualcomm (1), (2), ARM, Google+, Google
 

Cập nhật tin tức công nghệ mới nhất tại fanpage Công nghệ & Cuộc sống

Nguồn tin:

 

Tham gia bình luận