Có lý do tại sao không có lớp trừu tượng phần cứng theo nghĩa thông thường trên các thiết bị Android
Lý do kinh tế:
Các thiết bị Android thường là các thiết bị dựa trên ARM một bảng với tất cả phần cứng được nhúng và phần cứng đó sẽ không thay đổi theo thời gian sử dụng của thiết bị. Người dùng thường sẽ chỉ mua một thiết bị mới.
Android là một loại hệ điều hành "nhúng". Phần cứng chạy Android thường không được mong đợi hỗ trợ hoặc chạy bất kỳ hệ điều hành nào khác.
ACPI là một tiêu chuẩn phức tạp khó thực hiện.
Đối với những thứ như điện thoại, thời gian để tiếp thị có giá trị hơn cho các công ty hơn là phát triển các tiêu chuẩn mà các công ty khác sử dụng. Windows, muốn bán các hệ điều hành hoạt động trên các nhà cung cấp phần cứng đa dạng dựa trên Intel, rõ ràng thích có tiêu chuẩn (và cả Intel và Microsoft đều có tay trong thiết kế ACPI.)
Lý do kỹ thuật:
nhưng khi một người cố gắng flash ROM trên thiết bị Android khác, nó không hoạt động
Bộ tải khởi động trong các thiết bị Android thường được cấu hình để chỉ tải một hình ảnh đã ký - nếu hình ảnh chứa HĐH không được ký thì nó sẽ không hoạt động.
Bộ tải khởi động thường rất đặc biệt về phần cứng và được xây dựng cho một bảng cụ thể. . Nếu hình ảnh ROM chứa bộ tải khởi động và bạn cố chạy nó trên nền tảng sai, nó có thể sẽ không hoạt động.
Trình điều khiển Linux cho các thiết bị phần cứng trong nhiều thiết bị Android không phải là nguồn mở. Bao gồm những thứ như màn hình, Wifi, di động. Vì vậy, họ sẽ không làm việc với các phiên bản kernel sau này. Có thể đây là lý do chính khiến các ROM khác nhau không hoạt động, vì phiên bản kernel là phiên bản mới hơn, tốt hơn, nhưng không có trình điều khiển mới hơn (và không thể xây dựng trình điều khiển mà không có mã nguồn).
Các tùy chọn dòng lệnh được truyền cho kernel khởi động có thể rất quan trọng - ví dụ: các tùy chọn đó có thể cho kernel biết để tránh các phạm vi bộ nhớ nhất định khiến hệ thống bị khóa nếu được truy cập.