Các nhân phổ biến của Android

Hạt nhân chung AOSP (còn được gọi là hạt nhân chung Android hoặc ACK ) là phần cuối của hạt nhân kernel.org và bao gồm các bản vá mà cộng đồng Android quan tâm chưa được hợp nhất vào hạt nhân chính hoặc hạt nhân được hỗ trợ dài hạn (LTS). Những bản vá này có thể bao gồm:

  • Cần có bản sao lưu và các lựa chọn sơ bộ về chức năng ngược dòng cho các tính năng của Android
  • Các tính năng đã sẵn sàng cho thiết bị Android nhưng vẫn đang được phát triển ngược dòng (ví dụ: tối ưu hóa vị trí tác vụ của Trình lập lịch nhận biết năng lượng).
  • Các tính năng của nhà cung cấp/OEM hữu ích cho các đối tác hệ sinh thái khác (ví dụ: sdcardfs).

android-mainline là nhánh phát triển chính cho các tính năng của Android. Dòng chính của Linux được hợp nhất thành android-mainline bất cứ khi nào Linus Torvalds đăng một bản phát hành hoặc ứng cử viên phát hành. Trước năm 2019, các nhân phổ biến của Android được xây dựng bằng cách sao chép nhân LTS được khai báo gần đây và thêm các bản vá dành riêng cho Android. Quá trình này đã thay đổi vào năm 2019 để phân nhánh hạt nhân chung Android mới từ android-mainline . Mô hình mới này tránh được nỗ lực đáng kể để chuyển tiếp cổng và kiểm tra các bản vá Android bằng cách hoàn thành cùng một kết quả theo từng bước. android-mainline trải qua quá trình thử nghiệm liên tục đáng kể, mô hình này đảm bảo hạt nhân chất lượng cao kể từ ngày nó được xuất bản.

Khi một LTS mới được khai báo ngược dòng, hạt nhân chung tương ứng sẽ được phân nhánh từ android-mainline . Điều này cho phép các đối tác bắt đầu dự án trước khi khai báo phiên bản LTS, bằng cách hợp nhất từ android-mainline . Sau khi nhánh hạt nhân chung mới được tạo, các đối tác có thể thay đổi liền mạch nguồn hợp nhất sang nhánh mới.

Các nhánh hạt nhân phổ biến khác nhận được sự hợp nhất thường xuyên từ hạt nhân LTS liên quan của chúng. Việc hợp nhất này thường được thực hiện ngay sau khi bản phát hành LTS được đăng. Ví dụ: khi Linux 4.19.64 được đăng, nó đã được hợp nhất vào các hạt nhân phổ biến 4.19 (ví dụ: android-4.19-q ). Các đối tác được khuyến khích thường xuyên hợp nhất các hạt nhân phổ biến vào hạt nhân sản phẩm của họ để luôn cập nhật các bản sửa lỗi dành riêng cho LTS và Android.

Nhánh hạt nhân ACK KMI

Hạt nhân GKI có Giao diện mô-đun hạt nhân ổn định. KMI được xác định duy nhất bởi phiên bản kernel và bản phát hành nền tảng Android, vì vậy các nhánh được đặt tên <androidRelease>-<kernel version> . Ví dụ: kernel 5.4 GKI cho Android 11 có tên android11-5.4. Đối với Android 12, có hai nhân GKI bổ sung là android12-5.4android12-5.10 .

Nhánh nhân tráng miệng kế thừa

Hạt nhân món tráng miệng cũ được tạo ra để đảm bảo rằng việc phát triển tính năng mới không cản trở việc hợp nhất từ ​​hạt nhân chung của Android. Các nhánh được tạo trước khi phát hành món tráng miệng liên quan và nhận được sự hợp nhất thường xuyên từ LTS, nhưng không có tính năng mới. Ví dụ: android-4.9-q nhận được sự hợp nhất từ ​​nhánh LTS 4.9.y.

Nếu phiên bản kernel không phải là kernel khởi chạy thì không có kernel tráng miệng nào được tạo nhưng kernel liên quan đến bản phát hành nền tảng gần đây nhất có giá trị để nâng cấp lên các bản phát hành nền tảng Android trong tương lai. Ví dụ: android-4.9-q là nhánh cuối cùng của nhánh tráng miệng android-4.9* , vì vậy, nó được hỗ trợ và thử nghiệm với bản phát hành nền tảng ban đầu, Android 10. Nó cũng được hỗ trợ và thử nghiệm với các bản phát hành nền tảng hỗ trợ nâng cấp thiết bị chạy 4.9 hạt nhân: Android 11 và Android 12.

Do sơ đồ đặt tên món tráng miệng cho các bản phát hành nền tảng Android đã bị loại bỏ cùng với Android 10 nên các bản phát hành món tráng miệng cuối cùng được gọi là android-4.14-randroid-4.19-r thay vào đó được gọi là android-4.14-stableandroid-4.19-stable .

Hạt tráng miệng được thay thế bằng hạt nhân GKI bắt đầu từ Android 11, vì vậy danh sách đầy đủ các hạt tráng miệng được hỗ trợ có trong bảng này.

Phát hành nền tảng Android hạt nhân Được hỗ trợ cho đến khi
Android 10 android-4.9-q
android-4.14-q
android-4.19-q
tháng 1 năm 2023
Android 11 android-4.14-stable
android-4.19-stable
tháng 1 năm 2024
tháng 12 năm 2024

Các nhánh kernel phát hành kế thừa

Hạt nhân phát hành được duy trì để cung cấp bản sao lưu của các bản vá được trích dẫn trong Bản tin bảo mật Android hàng tháng. Chúng được tạo cho mỗi hạt nhân khởi chạy khi có bản phát hành nền tảng Android mới. Chúng không được dùng nữa khi bản phát hành nền tảng hoặc hạt nhân liên quan không được dùng nữa như được mô tả trong Thời gian hỗ trợ và bản vá bảo mật .

Hàng tháng khi Bản tin bảo mật Android được xuất bản, các hạt nhân này được cập nhật kèm theo bản sao lưu của các bản vá được trích dẫn trong bản tin có liên quan đến các hạt nhân ngược dòng và hạt nhân phổ biến của Android. Họ không nhận được bản vá LTS nên số phiên bản phụ không bao giờ thay đổi. Chúng không chứa backport cho các bản vá dành riêng cho nhà cung cấp.

Trong các bản phát hành nền tảng Android 11 trở lên, các đối tác phải hợp nhất từ ​​nhân dessert hoặc nhân GKI để áp dụng các bản vá được trích dẫn trong Bản tin bảo mật Android. Sẽ không có hạt nhân phát hành nào được tạo cho các bản phát hành nền tảng Android 11 trở lên.

Do đó, danh sách đầy đủ 14 hạt nhân phát hành được hiển thị trong bảng này và sẽ không có hạt nhân nào được thêm vào.

Phát hành nền tảng Android hạt nhân Được hỗ trợ cho đến khi
Android 10 android-4.9-q-release
android-4.14-q-release
android-4.19-q-release
tháng 1 năm 2023

Tính năng và khởi chạy hạt nhân

Mỗi bản phát hành nền tảng Android đều hỗ trợ khởi chạy các thiết bị mới dựa trên bất kỳ phiên bản nhân Linux nào trong số ba phiên bản. Như được hiển thị trong bảng bên dưới, các hạt nhân khởi chạy cho Android 11 là android-4.14-stable , android-4.19-stableandroid11-5.4 .

Vì thường không cần nâng cấp kernel khi cập nhật bản phát hành nền tảng nên các kernel thiếu các tính năng mới nhất cho bản phát hành nền tảng vẫn có thể được sử dụng để khởi chạy thiết bị. Do đó, các hạt nhân được thiết kế cho Android 10, như android-4.19-q , có thể được sử dụng trên các thiết bị ngay cả sau khi nâng cấp bản phát hành nền tảng lên Android 11. Bắt đầu từ Android 12, sẽ có ít hạt nhân tính năng hơn hạt nhân khởi chạy để hạn chế số lượng hạt nhân KMI ổn định phải được hỗ trợ.

Phát hành nền tảng Android Khởi chạy hạt nhân Hạt nhân tính năng
Android 14 (2023) android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10 1
android14-6.1
android14-5.15
Android 13 (2022) android13-5.15
android13-5.10
android12-5.10 1
android12-5.4 1
android11-5.4 1
android13-5.15
android13-5.10
Android 12 (2021) android12-5.10
android12-5.4
android11-5.4 1
android-4.19-stable
android12-5.10
android12-5.4
Android 11 (2020) android11-5.4
android-4.19-stable
android-4.14-stable
android11-5.4
android-4.19-stable
android-4.14-stable
Android 10 (2019) android-4.19-q
android-4.14-q
android-4.9-q

android-4.19-q
android-4.14-q
android-4.9-q

1 Các hạn chế bổ sung có thể được áp dụng nếu BSP liên quan đã được cập nhật cho bản phát hành nền tảng. Nói một cách tổng quát hơn, số Bản phát hành Android của hạt nhân phải cao hơn hoặc bằng phiên bản FCM mục tiêu . Xem Đối tượng giao diện nhà cung cấp - khớp các nhánh hạt nhân để biết chi tiết.

Hệ thống phân cấp hạt nhân chung

Chi nhánh từ android-mainline

Cấp cao nhất của hệ thống phân cấp kernel chung được hiển thị trong Hình 1.

Tạo hạt nhân chung từ hạt nhân chính của Android

Hình 1. Tạo kernel chung từ kernel android-mainline

Lưu ý rằng hạt nhân chung Android mới android12-5.10 đã được phân nhánh từ android-mainline vào năm 2020. Vào năm 2021, khi LTS tiếp theo được khai báo, android13-5.15 đã được phân nhánh từ android-mainline .

Như được hiển thị trong Hình 1, mỗi phiên bản kernel là cơ sở cho hai kernel GKI. Ví dụ: hai hạt nhân v5.4 là android11-5.4android12-5.4 , cả hai đều là hạt nhân tính năng cho các bản phát hành nền tảng tương ứng của chúng. Điều này cũng sẽ xảy ra với phiên bản 5.10; android12-5.10 được tạo khi LTS được khai báo và android13-5.10 sẽ phân nhánh từ android12-5.10 ở cột mốc hoàn thành tính năng kernel vào mùa xuân năm 2021 để cho phép phát triển các tính năng cho Android 13.

Vòng đời của chi nhánh ACK KMI

Vòng đời của nhánh ACK KMI được hiển thị bên dưới trong Hình 2.

5.10 Vòng đời của nhánh ACK KMI

Hình 2. 5.10 Vòng đời của nhánh ACK KMI

Để làm rõ quá trình phát triển và vòng đời của nhánh, Hình 2 tập trung vào các nhánh ACK KMI cho phiên bản 5.10.

Mỗi nhánh ACK KMI quay vòng qua ba giai đoạn được biểu thị trong Hình 2 bằng các màu khác nhau trong mỗi nhánh. Như được hiển thị, LTS thường xuyên được hợp nhất bất kể giai đoạn nào.

Giai đoạn phát triển

Khi được tạo, nhánh ACK KMI sẽ bước vào giai đoạn phát triển ( dev trong Hình 2) và sẵn sàng đóng góp tính năng cho bản phát hành nền tảng Android tiếp theo. Trong Hình 2, android12-5.10 được tạo khi 5.10 được khai báo là hạt nhân LTS ngược dòng mới. Nhánh ACK KMI thứ hai cho phiên bản kernel có thể được tạo sớm hơn để cho phép phát triển bản phát hành tiếp theo. Trong Hình 2, android13-5.10 được tạo khi android12-5.10 chuyển ra khỏi giai đoạn phát triển.

Giai đoạn ổn định

Khi nhánh ACK KMI được khai báo tính năng hoàn chỉnh, nó sẽ chuyển sang giai đoạn ổn định , được gắn nhãn là ổn định trong Hình 2. Các tính năng của đối tác và bản sửa lỗi vẫn được chấp nhận, nhưng tính năng theo dõi KMI được bật để phát hiện bất kỳ thay đổi nào ảnh hưởng đến giao diện. Trong giai đoạn này, những thay đổi có thể phá vỡ KMI được chấp nhận nhưng định nghĩa KMI phải được cập nhật khi cần thiết. Xem tổng quan về GKI để biết chi tiết về giám sát KMI.

Pha đông lạnh KMI

Trước khi bản phát hành nền tảng mới được đẩy lên AOSP, nhánh ACK KMI bị đóng băng và vẫn bị đóng băng trong suốt vòng đời của nhánh. Điều này có nghĩa là không có thay đổi vi phạm KMI nào được chấp nhận trừ khi xác định được vấn đề bảo mật nghiêm trọng không thể giảm thiểu mà không ảnh hưởng đến KMI ổn định. Để tránh sự cố KMI, một số bản vá được hợp nhất từ ​​LTS có thể được sửa đổi hoặc loại bỏ nếu bản sửa lỗi không bắt buộc đối với thiết bị Android.

Khi một nhánh ACK KMI bị đóng băng, các bản sửa lỗi và tính năng của đối tác có thể được chấp nhận miễn là hạt nhân chung KMI hiện tại không bị hỏng. KMI có thể được mở rộng bằng các ký hiệu được xuất mới miễn là các giao diện bao gồm KMI hiện tại không bị ảnh hưởng. Khi các giao diện mới được thêm vào KMI, chúng sẽ ngay lập tức trở nên ổn định và không thể bị phá vỡ bởi những thay đổi trong tương lai.

Ví dụ: không được phép thay đổi thêm trường vào cấu trúc được hạt nhân chung của giao diện KMI sử dụng vì nó thay đổi định nghĩa giao diện:

struct foo {
  int original_field1;
  int original_field2;
  int new_field;  // Not allowed
};

int do_foo(struct foo &myarg)
{
  do_stuff(myarg);
}
EXPORT_SYMBOL_GPL(do_foo);

Tuy nhiên, thêm một chức năng mới là tốt:

struct foo2 {
  struct foo orig_foo;
  int new_field;
};

int do_foo2(struct foo2 &myarg)
{
  do_stuff2(myarg);
}
EXPORT_SYMBOL_GPL(do_foo2);

Trong suốt thời gian tồn tại của hạt nhân GKI, khả năng tương thích ngược với không gian người dùng được duy trì để hạt nhân có thể được sử dụng một cách an toàn cho bản phát hành nền tảng Android mà thiết bị đã chạy cùng. Thử nghiệm liên tục với các bản phát hành trước đảm bảo duy trì khả năng tương thích. Vì vậy, trong Hình 2, kernel android12-5.10 có thể được sử dụng cho các thiết bị Android 12 và thiết bị Android 13. Vì bản phát hành nền tảng Android cũng tương thích với các phiên bản trước nên nhân android12-5.4 có thể được sử dụng cho các thiết bị Android 13 để khởi chạy hoặc nâng cấp.

Khi bước vào giai đoạn đóng băng, nhánh được gắn thẻ git với chuỗi phiên bản KMI chứa số tạo KMI. Ví dụ: khi android11-5.4 bị đóng băng, nó được gắn thẻ với chuỗi phiên bản KMI 5.4-android11-0 trong đó số 0 ở cuối là số thế hệ KMI. Nếu có vấn đề bảo mật hoặc sự kiện khác yêu cầu chấp nhận bản vá thay đổi KMI, số lượng tạo KMI sẽ tăng lên và chi nhánh được gắn thẻ lại. Ví dụ: nếu thay đổi đó được chấp nhận vào android11-5.4 thì nhánh sẽ được gắn thẻ với phiên bản KMI mới, 5.4-android11-1 . Thế hệ KMI hiện tại có thể được tìm thấy bằng lệnh uname :

$ uname -r
5.4.61-android11-0-00153-ga972f59040e4

Con số sau khi phát hành nền tảng là thế hệ KMI (0 trong trường hợp này).

Nếu thế hệ KMI thay đổi, hạt nhân không tương thích với các mô-đun của nhà cung cấp phù hợp với thế hệ KMI trước đó, do đó, các mô-đun phải được xây dựng lại và cập nhật đồng bộ với hạt nhân. Những thay đổi về thế hệ KMI dự kiến ​​sẽ rất hiếm.

Khả năng tương thích giữa các hạt nhân

Các yêu cầu về khả năng tương thích giữa các hạt nhân trong cùng họ LTS đang thay đổi bắt đầu từ các hạt nhân GKI mới.

hạt nhân GKI

Hạt nhân GKI duy trì khả năng tương thích ngược với tất cả các bản phát hành nền tảng Android hỗ trợ phiên bản hạt nhân. Ngoài ra, các bản phát hành nền tảng Android tương thích ngược với nhân GKI từ các bản phát hành trước. Vì vậy, bạn có thể sử dụng nhân android12-5.4 được phát triển cho Android 12 một cách an toàn trên các thiết bị chạy Android 13. Khả năng tương thích được xác minh thông qua thử nghiệm VTS và CTS liên tục của nhân GKI với tất cả các bản phát hành được hỗ trợ.

KMI ổn định để có thể cập nhật hạt nhân mà không yêu cầu xây dựng lại các mô-đun hạt nhân trong hình ảnh nhà cung cấp.

Khả năng tương thích KMI không được duy trì giữa các hạt nhân GKI khác nhau. Vì vậy, ví dụ: không thể thay thế android12-5.10 bằng hạt nhân android13-5.10 nếu không xây dựng lại tất cả các mô-đun.

Hạt nhân GKI chỉ được hỗ trợ cho các bản phát hành đầu tiên và tiếp theo. Chúng không được hỗ trợ cho các bản phát hành cũ hơn. Vì vậy, kernel android13-5.10 không được hỗ trợ trên các thiết bị Android 12.

Hạt nhân kế thừa

Các hạt nhân tráng miệng cũ ( *-q*-stable ) không tương thích ngược trên các bản phát hành nền tảng Android, nhưng các hạt nhân từ hai bản phát hành nền tảng Android trước đó được hỗ trợ để nâng cấp. Do đó, một thiết bị khởi chạy Android 10 sử dụng kernel dựa trên android-4.19-q có thể tiếp tục sử dụng kernel android-4.19-q khi nâng cấp lên Android 2020 hoặc cập nhật mã dành riêng cho nhà cung cấp để hỗ trợ android-4.19-stable .

Ma trận tương thích

Bảng này hiển thị các phiên bản kernel được hỗ trợ và thử nghiệm với mỗi bản phát hành nền tảng Android.

Phát hành nền tảng Android Hạt nhân được hỗ trợ để nâng cấp Hạt nhân được hỗ trợ để khởi chạy
Android 14 (2023) android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android-4.14-stable
android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
Android 13 (2022) android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android-4.14-stable
android-4.19-q (EOL)
android-4.14-q (EOL)
android-4.9-q (EOL)
android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
Android 12 (2021) android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android-4.14-stable
android-4.19-q (EOL)
android-4.14-q (EOL)
android-4.14-p (EOL)
android-4.9-q (EOL)
android-4.9-p (EOL)
android-4.9-o (EOL)
android-4.19-stable
android11-5.4
android12-5.4
android12-5.10
Android 11 (2020) android11-5.4
android-4.19-stable
android-4.14-stable
android-4.19-q (EOL)
android-4.14-q (EOL)
android-4.14-p (EOL)
android-4.9-q (EOL)
android-4.9-p (EOL)
android-4.9-o (EOL)
android-4.4-p (EOL)
android-4.4-o (EOL)
android11-5.4
android-4.19-stable
android-4.14-stable
Android 10 (2019) android-4.14-stable
android-4.14-p (EOL)
android-4.9-p (EOL)
android-4.9-o (EOL)
android-4.4-p (EOL)
android-4.4-o (EOL)
android-3.18 (EOL)
android-4.14-stable
android-4.19-q (EOL)
android-4.14-q (EOL)
android-4.9-q (EOL)

Hỗ trợ trọn đời và các bản vá bảo mật

Các hạt nhân phổ biến của Android được hỗ trợ cho đến khi hạt nhân LTS liên quan hoặc bản phát hành Nền tảng Android không còn được hỗ trợ. Mặc dù hạt nhân được hỗ trợ nhưng nó vẫn tiếp tục nhận được sự hợp nhất LTS từ thượng nguồn và sửa lỗi cho mã dành riêng cho Android. Các bản sửa lỗi này bao gồm tất cả các bản vá bảo mật hạt nhân được trích dẫn trong Bản tin bảo mật Android hàng tháng có liên quan đến các hạt nhân phổ biến của Android.

Các đối tác có thể tin tưởng rằng bằng cách thường xuyên hợp nhất các nhân phổ biến của Android, họ sẽ nhận được tất cả các bản vá bảo mật nhân có thể.

Kiểm tra hạt nhân thông thường

Các hạt nhân phổ biến được thử nghiệm với một số hệ thống CI ngoài việc thử nghiệm tiếp theo của các nhà cung cấp.

Kiểm tra chức năng hạt nhân Linux

Các thử nghiệm Kiểm tra chức năng hạt nhân Linux (LKFT) bắt đầu các bộ thử nghiệm khác nhau bao gồm kselftest, LTP, VTS và CTS trên một bộ thiết bị arm32 và arm64 vật lý. Kết quả kiểm tra gần đây có thể được tìm thấy ở đây .

Kiểm tra KernelCI

Các thử nghiệm xây dựng và khởi động KernelCI được bắt đầu bất cứ khi nào một bản vá mới được cam kết cho một nhánh kernel chung. Hàng trăm cấu hình bản dựng đã được thử nghiệm và khởi động trên nhiều bảng khác nhau. Các kết quả gần đây về nhân Android có thể được tìm thấy ở đây .

Thử nghiệm gửi trước và gửi sau của Android

Các bài kiểm tra gửi trước được sử dụng để ngăn chặn các lỗi được đưa vào các hạt nhân phổ biến của Android. Bạn có thể tìm thấy tóm tắt kết quả kiểm tra trong tab 'Kiểm tra' về thay đổi mã trong gerrit kernel phổ biến của Android.

Thử nghiệm gửi đi của Android được thực hiện trên các bản dựng mới được xuất bản trong các nhánh hạt nhân chung của Android khi các bản vá mới được cam kết cho nhánh hạt nhân chung của Android trong ci.android.com . Bằng cách nhập aosp_kernel làm tên nhánh một phần trong ci.android.com , bạn sẽ thấy danh sách các nhánh kernel với kết quả có sẵn. Ví dụ: bạn có thể tìm thấy kết quả cho android-mainline tại đây . Khi nhấp vào một bản dựng cụ thể, bạn sẽ tìm thấy trạng thái kiểm tra trong tab Test Results .

Các thử nghiệm được xác định bằng cách ánh xạ thử nghiệm với kernel-presubmit của nhóm thử nghiệm trong cây nguồn nền tảng Android sẽ được chạy dưới dạng gửi trước cho các nhánh hạt nhân Android. Ví dụ: cấu hình sau trong test/vts/tests/kernel_proc_file_api_test/TEST_MAPPING sẽ kích hoạt vts_kernel_proc_file_api_test làm thử nghiệm presbumit khi đăng ký mã hạt nhân chung của Android.

{
  "kernel-presubmit": [
    {
      "name": "vts_kernel_proc_file_api_test"
    }
  ]
}

thử nghiệm 0 ngày

Thử nghiệm 0 ngày thực hiện thử nghiệm từng bản vá trên tất cả các nhánh nhân phổ biến của Android khi các bản vá mới được cam kết. Nhiều bài kiểm tra khởi động, chức năng và hiệu suất khác nhau được chạy. Tham gia nhóm công khai báo cáo xây dựng chéo hạt nhân

Ma trận thử nghiệm

Hạt nhân chung của Android Bản phát hành nền tảng Android Bộ thử nghiệm
Chủ yếu 14 13 12 11 10 LKFT hạt nhânCI Gửi trước Đăng bài Gửi 0 ngày
android-mainline
android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android-4.19-stable
android-4.14-stable

Đóng góp cho các hạt nhân phổ biến của Android

Nói chung, việc phát triển tính năng nên được thực hiện trên Linux chính thống chứ không phải trên các nhân phổ biến của Android. Sự phát triển ngược dòng được khuyến khích mạnh mẽ và sau khi sự phát triển được chấp nhận ở đó, nó có thể dễ dàng được đưa trở lại nhánh ACK cụ thể nếu cần. Nhóm hạt nhân Android rất vui được hỗ trợ các nỗ lực nâng cấp vì lợi ích của hệ sinh thái Android.

Gửi các bản vá tới Gerrit và tuân thủ các nguyên tắc đóng góp này.

,

Hạt nhân chung AOSP (còn được gọi là hạt nhân chung Android hoặc ACK ) là phần cuối của hạt nhân kernel.org và bao gồm các bản vá mà cộng đồng Android quan tâm chưa được hợp nhất vào hạt nhân chính hoặc hạt nhân được hỗ trợ dài hạn (LTS). Những bản vá này có thể bao gồm:

  • Cần có bản sao lưu và các lựa chọn sơ bộ về chức năng ngược dòng cho các tính năng của Android
  • Các tính năng đã sẵn sàng cho thiết bị Android nhưng vẫn đang được phát triển ngược dòng (ví dụ: tối ưu hóa vị trí tác vụ của Trình lập lịch nhận biết năng lượng).
  • Các tính năng của nhà cung cấp/OEM hữu ích cho các đối tác hệ sinh thái khác (ví dụ: sdcardfs).

android-mainline là nhánh phát triển chính cho các tính năng của Android. Dòng chính của Linux được hợp nhất thành android-mainline bất cứ khi nào Linus Torvalds đăng một bản phát hành hoặc ứng cử viên phát hành. Trước năm 2019, các nhân phổ biến của Android được xây dựng bằng cách sao chép nhân LTS được khai báo gần đây và thêm các bản vá dành riêng cho Android. Quá trình này đã thay đổi vào năm 2019 để phân nhánh hạt nhân chung Android mới từ android-mainline . Mô hình mới này tránh được nỗ lực đáng kể để chuyển tiếp cổng và kiểm tra các bản vá Android bằng cách hoàn thành cùng một kết quả theo từng bước. android-mainline trải qua quá trình thử nghiệm liên tục đáng kể, mô hình này đảm bảo hạt nhân chất lượng cao kể từ ngày nó được xuất bản.

Khi một LTS mới được khai báo ngược dòng, hạt nhân chung tương ứng sẽ được phân nhánh từ android-mainline . Điều này cho phép các đối tác bắt đầu dự án trước khi khai báo phiên bản LTS, bằng cách hợp nhất từ android-mainline . Sau khi nhánh hạt nhân chung mới được tạo, các đối tác có thể thay đổi liền mạch nguồn hợp nhất sang nhánh mới.

Các nhánh hạt nhân phổ biến khác nhận được sự hợp nhất thường xuyên từ hạt nhân LTS liên quan của chúng. Việc hợp nhất này thường được thực hiện ngay sau khi bản phát hành LTS được đăng. Ví dụ: khi Linux 4.19.64 được đăng, nó đã được hợp nhất vào các hạt nhân phổ biến 4.19 (ví dụ: android-4.19-q ). Các đối tác được khuyến khích thường xuyên hợp nhất các hạt nhân phổ biến vào hạt nhân sản phẩm của họ để luôn cập nhật các bản sửa lỗi dành riêng cho LTS và Android.

Nhánh hạt nhân ACK KMI

Hạt nhân GKI có Giao diện mô-đun hạt nhân ổn định. KMI được xác định duy nhất bởi phiên bản kernel và bản phát hành nền tảng Android, vì vậy các nhánh được đặt tên <androidRelease>-<kernel version> . Ví dụ: kernel 5.4 GKI cho Android 11 có tên android11-5.4. Đối với Android 12, có hai nhân GKI bổ sung là android12-5.4android12-5.10 .

Nhánh nhân tráng miệng kế thừa

Hạt nhân món tráng miệng cũ được tạo ra để đảm bảo rằng việc phát triển tính năng mới không cản trở việc hợp nhất từ ​​hạt nhân chung của Android. Các nhánh được tạo trước khi phát hành món tráng miệng liên quan và nhận được sự hợp nhất thường xuyên từ LTS, nhưng không có tính năng mới. Ví dụ: android-4.9-q nhận được sự hợp nhất từ ​​nhánh LTS 4.9.y.

Nếu phiên bản kernel không phải là kernel khởi chạy thì không có kernel tráng miệng nào được tạo nhưng kernel liên quan đến bản phát hành nền tảng gần đây nhất có giá trị để nâng cấp lên các bản phát hành nền tảng Android trong tương lai. Ví dụ: android-4.9-q là nhánh cuối cùng của nhánh tráng miệng android-4.9* , vì vậy, nó được hỗ trợ và thử nghiệm với bản phát hành nền tảng ban đầu, Android 10. Nó cũng được hỗ trợ và thử nghiệm với các bản phát hành nền tảng hỗ trợ nâng cấp thiết bị chạy 4.9 hạt nhân: Android 11 và Android 12.

Do sơ đồ đặt tên món tráng miệng cho các bản phát hành nền tảng Android đã bị loại bỏ cùng với Android 10 nên các bản phát hành món tráng miệng cuối cùng được gọi là android-4.14-randroid-4.19-r thay vào đó được gọi là android-4.14-stableandroid-4.19-stable .

Hạt tráng miệng được thay thế bằng hạt nhân GKI bắt đầu từ Android 11, vì vậy danh sách đầy đủ các hạt tráng miệng được hỗ trợ có trong bảng này.

Phát hành nền tảng Android hạt nhân Được hỗ trợ cho đến khi
Android 10 android-4.9-q
android-4.14-q
android-4.19-q
tháng 1 năm 2023
Android 11 android-4.14-stable
android-4.19-stable
tháng 1 năm 2024
tháng 12 năm 2024

Các nhánh kernel phát hành kế thừa

Hạt nhân phát hành được duy trì để cung cấp bản sao lưu của các bản vá được trích dẫn trong Bản tin bảo mật Android hàng tháng. Chúng được tạo cho mỗi hạt nhân khởi chạy khi có bản phát hành nền tảng Android mới. Chúng không được dùng nữa khi bản phát hành nền tảng hoặc hạt nhân liên quan không được dùng nữa như được mô tả trong Thời gian hỗ trợ và bản vá bảo mật .

Hàng tháng khi Bản tin bảo mật Android được xuất bản, các hạt nhân này được cập nhật kèm theo bản sao lưu của các bản vá được trích dẫn trong bản tin có liên quan đến các hạt nhân ngược dòng và hạt nhân phổ biến của Android. Họ không nhận được bản vá LTS nên số phiên bản phụ không bao giờ thay đổi. Chúng không chứa backport cho các bản vá dành riêng cho nhà cung cấp.

Trong các bản phát hành nền tảng Android 11 trở lên, các đối tác phải hợp nhất từ ​​nhân dessert hoặc nhân GKI để áp dụng các bản vá được trích dẫn trong Bản tin bảo mật Android. Sẽ không có hạt nhân phát hành nào được tạo cho các bản phát hành nền tảng Android 11 trở lên.

Do đó, danh sách đầy đủ 14 hạt nhân phát hành được hiển thị trong bảng này và sẽ không có hạt nhân nào được thêm vào.

Phát hành nền tảng Android hạt nhân Được hỗ trợ cho đến khi
Android 10 android-4.9-q-release
android-4.14-q-release
android-4.19-q-release
tháng 1 năm 2023

Tính năng và khởi chạy hạt nhân

Mỗi bản phát hành nền tảng Android đều hỗ trợ khởi chạy các thiết bị mới dựa trên bất kỳ phiên bản nhân Linux nào trong số ba phiên bản. Như được hiển thị trong bảng bên dưới, các hạt nhân khởi chạy cho Android 11 là android-4.14-stable , android-4.19-stableandroid11-5.4 .

Vì thường không cần nâng cấp kernel khi cập nhật bản phát hành nền tảng nên các kernel thiếu các tính năng mới nhất cho bản phát hành nền tảng vẫn có thể được sử dụng để khởi chạy thiết bị. Do đó, các hạt nhân được thiết kế cho Android 10, như android-4.19-q , có thể được sử dụng trên các thiết bị ngay cả sau khi nâng cấp bản phát hành nền tảng lên Android 11. Bắt đầu từ Android 12, sẽ có ít hạt nhân tính năng hơn hạt nhân khởi chạy để hạn chế số lượng hạt nhân KMI ổn định phải được hỗ trợ.

Phát hành nền tảng Android Khởi chạy hạt nhân Hạt nhân tính năng
Android 14 (2023) android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10 1
android14-6.1
android14-5.15
Android 13 (2022) android13-5.15
android13-5.10
android12-5.10 1
android12-5.4 1
android11-5.4 1
android13-5.15
android13-5.10
Android 12 (2021) android12-5.10
android12-5.4
android11-5.4 1
android-4.19-stable
android12-5.10
android12-5.4
Android 11 (2020) android11-5.4
android-4.19-stable
android-4.14-stable
android11-5.4
android-4.19-stable
android-4.14-stable
Android 10 (2019) android-4.19-q
android-4.14-q
android-4.9-q

android-4.19-q
android-4.14-q
android-4.9-q

1 Các hạn chế bổ sung có thể được áp dụng nếu BSP liên quan đã được cập nhật cho bản phát hành nền tảng. Nói một cách tổng quát hơn, số Bản phát hành Android của hạt nhân phải cao hơn hoặc bằng phiên bản FCM mục tiêu . Xem Đối tượng giao diện nhà cung cấp - khớp các nhánh hạt nhân để biết chi tiết.

Hệ thống phân cấp hạt nhân chung

Chi nhánh từ android-mainline

Cấp cao nhất của hệ thống phân cấp kernel chung được hiển thị trong Hình 1.

Tạo hạt nhân chung từ hạt nhân chính của Android

Hình 1. Tạo kernel chung từ kernel android-mainline

Lưu ý rằng hạt nhân chung Android mới android12-5.10 đã được phân nhánh từ android-mainline vào năm 2020. Vào năm 2021, khi LTS tiếp theo được khai báo, android13-5.15 đã được phân nhánh từ android-mainline .

Như được hiển thị trong Hình 1, mỗi phiên bản kernel là cơ sở cho hai kernel GKI. Ví dụ: hai hạt nhân v5.4 là android11-5.4android12-5.4 , cả hai đều là hạt nhân tính năng cho các bản phát hành nền tảng tương ứng của chúng. Điều này cũng sẽ xảy ra với phiên bản 5.10; android12-5.10 được tạo khi LTS được khai báo và android13-5.10 sẽ phân nhánh từ android12-5.10 ở cột mốc hoàn thành tính năng kernel vào mùa xuân năm 2021 để cho phép phát triển các tính năng cho Android 13.

Vòng đời của chi nhánh ACK KMI

Vòng đời của nhánh ACK KMI được hiển thị bên dưới trong Hình 2.

5.10 Vòng đời của nhánh ACK KMI

Hình 2. 5.10 Vòng đời của nhánh ACK KMI

Để làm rõ quá trình phát triển và vòng đời của nhánh, Hình 2 tập trung vào các nhánh ACK KMI cho phiên bản 5.10.

Mỗi nhánh ACK KMI quay vòng qua ba giai đoạn được biểu thị trong Hình 2 bằng các màu khác nhau trong mỗi nhánh. Như được hiển thị, LTS thường xuyên được hợp nhất bất kể giai đoạn nào.

Giai đoạn phát triển

Khi được tạo, nhánh ACK KMI sẽ bước vào giai đoạn phát triển ( dev trong Hình 2) và sẵn sàng đóng góp tính năng cho bản phát hành nền tảng Android tiếp theo. Trong Hình 2, android12-5.10 được tạo khi 5.10 được khai báo là hạt nhân LTS ngược dòng mới. Nhánh ACK KMI thứ hai cho phiên bản kernel có thể được tạo sớm hơn để cho phép phát triển bản phát hành tiếp theo. Trong Hình 2, android13-5.10 được tạo khi android12-5.10 chuyển ra khỏi giai đoạn phát triển.

Giai đoạn ổn định

Khi nhánh ACK KMI được khai báo tính năng hoàn chỉnh, nó sẽ chuyển sang giai đoạn ổn định , được gắn nhãn là ổn định trong Hình 2. Các tính năng của đối tác và bản sửa lỗi vẫn được chấp nhận, nhưng tính năng theo dõi KMI được bật để phát hiện bất kỳ thay đổi nào ảnh hưởng đến giao diện. Trong giai đoạn này, những thay đổi có thể phá vỡ KMI được chấp nhận nhưng định nghĩa KMI phải được cập nhật khi cần thiết. Xem tổng quan về GKI để biết chi tiết về giám sát KMI.

Pha đông lạnh KMI

Trước khi bản phát hành nền tảng mới được đẩy lên AOSP, nhánh ACK KMI bị đóng băng và vẫn bị đóng băng trong suốt vòng đời của nhánh. Điều này có nghĩa là không có thay đổi vi phạm KMI nào được chấp nhận trừ khi xác định được vấn đề bảo mật nghiêm trọng không thể giảm thiểu mà không ảnh hưởng đến KMI ổn định. Để tránh sự cố KMI, một số bản vá được hợp nhất từ ​​LTS có thể được sửa đổi hoặc loại bỏ nếu bản sửa lỗi không bắt buộc đối với thiết bị Android.

Khi một nhánh ACK KMI bị đóng băng, các bản sửa lỗi và tính năng của đối tác có thể được chấp nhận miễn là hạt nhân chung KMI hiện tại không bị hỏng. KMI có thể được mở rộng bằng các ký hiệu được xuất mới miễn là các giao diện bao gồm KMI hiện tại không bị ảnh hưởng. Khi các giao diện mới được thêm vào KMI, chúng sẽ ngay lập tức trở nên ổn định và không thể bị phá vỡ bởi những thay đổi trong tương lai.

Ví dụ: không được phép thay đổi thêm trường vào cấu trúc được hạt nhân chung của giao diện KMI sử dụng vì nó thay đổi định nghĩa giao diện:

struct foo {
  int original_field1;
  int original_field2;
  int new_field;  // Not allowed
};

int do_foo(struct foo &myarg)
{
  do_stuff(myarg);
}
EXPORT_SYMBOL_GPL(do_foo);

Tuy nhiên, thêm một chức năng mới là tốt:

struct foo2 {
  struct foo orig_foo;
  int new_field;
};

int do_foo2(struct foo2 &myarg)
{
  do_stuff2(myarg);
}
EXPORT_SYMBOL_GPL(do_foo2);

Trong suốt thời gian tồn tại của hạt nhân GKI, khả năng tương thích ngược với không gian người dùng được duy trì để hạt nhân có thể được sử dụng một cách an toàn cho bản phát hành nền tảng Android mà thiết bị đã chạy cùng. Thử nghiệm liên tục với các bản phát hành trước đảm bảo duy trì khả năng tương thích. Vì vậy, trong Hình 2, kernel android12-5.10 có thể được sử dụng cho các thiết bị Android 12 và thiết bị Android 13. Vì bản phát hành nền tảng Android cũng tương thích với các phiên bản trước nên nhân android12-5.4 có thể được sử dụng cho các thiết bị Android 13 để khởi chạy hoặc nâng cấp.

Khi bước vào giai đoạn đóng băng, nhánh được gắn thẻ git với chuỗi phiên bản KMI chứa số tạo KMI. Ví dụ: khi android11-5.4 bị đóng băng, nó được gắn thẻ với chuỗi phiên bản KMI 5.4-android11-0 trong đó số 0 ở cuối là số thế hệ KMI. Nếu có vấn đề bảo mật hoặc sự kiện khác yêu cầu chấp nhận bản vá thay đổi KMI, số lượng tạo KMI sẽ tăng lên và chi nhánh được gắn thẻ lại. Ví dụ: nếu thay đổi đó được chấp nhận vào android11-5.4 thì nhánh sẽ được gắn thẻ với phiên bản KMI mới, 5.4-android11-1 . Thế hệ KMI hiện tại có thể được tìm thấy bằng lệnh uname :

$ uname -r
5.4.61-android11-0-00153-ga972f59040e4

Con số sau khi phát hành nền tảng là thế hệ KMI (0 trong trường hợp này).

Nếu thế hệ KMI thay đổi, hạt nhân không tương thích với các mô-đun của nhà cung cấp phù hợp với thế hệ KMI trước đó, do đó, các mô-đun phải được xây dựng lại và cập nhật đồng bộ với hạt nhân. Những thay đổi về thế hệ KMI dự kiến ​​sẽ rất hiếm.

Khả năng tương thích giữa các hạt nhân

Các yêu cầu về khả năng tương thích giữa các hạt nhân trong cùng họ LTS đang thay đổi bắt đầu từ các hạt nhân GKI mới.

hạt nhân GKI

Hạt nhân GKI duy trì khả năng tương thích ngược với tất cả các bản phát hành nền tảng Android hỗ trợ phiên bản hạt nhân. Ngoài ra, các bản phát hành nền tảng Android tương thích ngược với nhân GKI từ các bản phát hành trước. Vì vậy, bạn có thể sử dụng nhân android12-5.4 được phát triển cho Android 12 một cách an toàn trên các thiết bị chạy Android 13. Khả năng tương thích được xác minh thông qua thử nghiệm VTS và CTS liên tục của nhân GKI với tất cả các bản phát hành được hỗ trợ.

KMI ổn định để có thể cập nhật hạt nhân mà không yêu cầu xây dựng lại các mô-đun hạt nhân trong hình ảnh nhà cung cấp.

Khả năng tương thích KMI không được duy trì giữa các hạt nhân GKI khác nhau. Vì vậy, ví dụ: không thể thay thế android12-5.10 bằng hạt nhân android13-5.10 nếu không xây dựng lại tất cả các mô-đun.

Hạt nhân GKI chỉ được hỗ trợ cho các bản phát hành đầu tiên và tiếp theo. Chúng không được hỗ trợ cho các bản phát hành cũ hơn. Vì vậy, kernel android13-5.10 không được hỗ trợ trên các thiết bị Android 12.

Hạt nhân kế thừa

Các hạt nhân tráng miệng cũ ( *-q*-stable ) không tương thích ngược trên các bản phát hành nền tảng Android, nhưng các hạt nhân từ hai bản phát hành nền tảng Android trước đó được hỗ trợ để nâng cấp. Do đó, một thiết bị khởi chạy Android 10 sử dụng kernel dựa trên android-4.19-q có thể tiếp tục sử dụng kernel android-4.19-q khi nâng cấp lên Android 2020 hoặc cập nhật mã dành riêng cho nhà cung cấp để hỗ trợ android-4.19-stable .

Ma trận tương thích

Bảng này hiển thị các phiên bản kernel được hỗ trợ và thử nghiệm với mỗi bản phát hành nền tảng Android.

Phát hành nền tảng Android Hạt nhân được hỗ trợ để nâng cấp Hạt nhân được hỗ trợ để khởi chạy
Android 14 (2023) android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android-4.14-stable
android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
Android 13 (2022) android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android-4.14-stable
android-4.19-q (EOL)
android-4.14-q (EOL)
android-4.9-q (EOL)
android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
Android 12 (2021) android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android-4.14-stable
android-4.19-q (EOL)
android-4.14-q (EOL)
android-4.14-p (EOL)
android-4.9-q (EOL)
android-4.9-p (EOL)
android-4.9-o (EOL)
android-4.19-stable
android11-5.4
android12-5.4
android12-5.10
Android 11 (2020) android11-5.4
android-4.19-stable
android-4.14-stable
android-4.19-q (EOL)
android-4.14-q (EOL)
android-4.14-p (EOL)
android-4.9-q (EOL)
android-4.9-p (EOL)
android-4.9-o (EOL)
android-4.4-p (EOL)
android-4.4-o (EOL)
android11-5.4
android-4.19-stable
android-4.14-stable
Android 10 (2019) android-4.14-stable
android-4.14-p (EOL)
android-4.9-p (EOL)
android-4.9-o (EOL)
android-4.4-p (EOL)
android-4.4-o (EOL)
android-3.18 (EOL)
android-4.14-stable
android-4.19-q (EOL)
android-4.14-q (EOL)
android-4.9-q (EOL)

Hỗ trợ trọn đời và các bản vá bảo mật

Các hạt nhân phổ biến của Android được hỗ trợ cho đến khi hạt nhân LTS liên quan hoặc bản phát hành Nền tảng Android không còn được hỗ trợ. Mặc dù hạt nhân được hỗ trợ nhưng nó vẫn tiếp tục nhận được sự hợp nhất LTS từ thượng nguồn và sửa lỗi cho mã dành riêng cho Android. Các bản sửa lỗi này bao gồm tất cả các bản vá bảo mật hạt nhân được trích dẫn trong Bản tin bảo mật Android hàng tháng có liên quan đến các hạt nhân phổ biến của Android.

Các đối tác có thể tin tưởng rằng bằng cách thường xuyên hợp nhất các nhân phổ biến của Android, họ sẽ nhận được tất cả các bản vá bảo mật nhân có thể.

Kiểm tra hạt nhân thông thường

Các hạt nhân phổ biến được thử nghiệm với một số hệ thống CI ngoài việc thử nghiệm tiếp theo của các nhà cung cấp.

Kiểm tra chức năng hạt nhân Linux

Các thử nghiệm Kiểm tra chức năng hạt nhân Linux (LKFT) bắt đầu các bộ thử nghiệm khác nhau bao gồm kselftest, LTP, VTS và CTS trên một bộ thiết bị arm32 và arm64 vật lý. Kết quả kiểm tra gần đây có thể được tìm thấy ở đây .

Kiểm tra KernelCI

Các thử nghiệm xây dựng và khởi động KernelCI được bắt đầu bất cứ khi nào một bản vá mới được cam kết cho một nhánh kernel chung. Hàng trăm cấu hình bản dựng đã được thử nghiệm và khởi động trên nhiều bảng khác nhau. Các kết quả gần đây về nhân Android có thể được tìm thấy ở đây .

Thử nghiệm gửi trước và gửi sau của Android

Các bài kiểm tra gửi trước được sử dụng để ngăn chặn các lỗi được đưa vào các hạt nhân phổ biến của Android. Bạn có thể tìm thấy tóm tắt kết quả kiểm tra trong tab 'Kiểm tra' về thay đổi mã trong gerrit kernel phổ biến của Android.

Thử nghiệm gửi đi của Android được thực hiện trên các bản dựng mới được xuất bản trong các nhánh hạt nhân chung của Android khi các bản vá mới được cam kết cho nhánh hạt nhân chung của Android trong ci.android.com . Bằng cách nhập aosp_kernel làm tên nhánh một phần trong ci.android.com , bạn sẽ thấy danh sách các nhánh kernel với kết quả có sẵn. Ví dụ: bạn có thể tìm thấy kết quả cho android-mainline tại đây . Khi nhấp vào một bản dựng cụ thể, bạn sẽ tìm thấy trạng thái kiểm tra trong tab Test Results .

Các thử nghiệm được xác định bằng cách ánh xạ thử nghiệm với kernel-presubmit của nhóm thử nghiệm trong cây nguồn nền tảng Android sẽ được chạy dưới dạng gửi trước cho các nhánh hạt nhân Android. Ví dụ: cấu hình sau trong test/vts/tests/kernel_proc_file_api_test/TEST_MAPPING sẽ kích hoạt vts_kernel_proc_file_api_test làm thử nghiệm presbumit khi đăng ký mã hạt nhân chung của Android.

{
  "kernel-presubmit": [
    {
      "name": "vts_kernel_proc_file_api_test"
    }
  ]
}

thử nghiệm 0 ngày

Thử nghiệm 0 ngày thực hiện thử nghiệm từng bản vá trên tất cả các nhánh nhân phổ biến của Android khi các bản vá mới được cam kết. Nhiều bài kiểm tra khởi động, chức năng và hiệu suất khác nhau được chạy. Tham gia nhóm công khai báo cáo xây dựng chéo hạt nhân

Ma trận thử nghiệm

Hạt nhân chung của Android Bản phát hành nền tảng Android Bộ thử nghiệm
Chủ yếu 14 13 12 11 10 LKFT hạt nhânCI Gửi trước Đăng bài Gửi 0 ngày
android-mainline
android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android-4.19-stable
android-4.14-stable

Đóng góp cho các hạt nhân phổ biến của Android

Nói chung, việc phát triển tính năng nên được thực hiện trên Linux chính thống chứ không phải trên các nhân phổ biến của Android. Sự phát triển ngược dòng được khuyến khích mạnh mẽ và sau khi sự phát triển được chấp nhận ở đó, nó có thể dễ dàng được đưa trở lại nhánh ACK cụ thể nếu cần. Nhóm hạt nhân Android rất vui được hỗ trợ các nỗ lực nâng cấp vì lợi ích của hệ sinh thái Android.

Gửi các bản vá tới Gerrit và tuân thủ các nguyên tắc đóng góp này.