Bảo Ngô SoT
Búa Gỗ
Trước khi định nghĩa "root" là gì, ta cần tìm hiểu một số khía cạnh đặc trưng của hệ điều hành Android. Tôi sẽ cố gắng dịch một cách sát nghĩa nhất những thuật ngữ chuyên ngành, tuy nhiên tôi cũng xin mạn phép giữ lại các từ (mà theo tôi) không thể dịch.
Permission
Android là tên gọi của một hệ điều hành di động dựa trên nhân Linux. Nó sử dụng một cơ chế phân quyền hệ thống tập tin gọi là Permission. Mỗi phân vùng, mỗi thư mục cũng như mỗi tệp tin đều được thiết lập một tập các permission. Các permission này quy định ai có thể đọc một tập tin (liệt kê nội dung bên trong một thư mục), ai có thể ghi hoặc tạo tập tin mới, ai có quyền thực thi một binary. Permission cùng với hệ thống người dùng (user) giúp quản lý một cách hiệu quả các truy cập vào hệ thống tập tin.
Khi bạn lần đầu khởi động một thiết bị Android (khi bạn mới mua về hoặc mới xóa hết dữ liệu người dùng), bạn sẽ được gán một userID. Khi bạn cài đặt một ứng dụng, nó cũng được gán userID của bạn (để xác định ứng dụng này thuộc sở hữu của bạn). Khi ứng dụng cần truy xuất dữ liệu (ví dụ như bộ nhớ, danh bạ), nó sẽ yêu cầu bạn; và khi bạn đồng ý, quyền truy xuất tương ứng sẽ được cấp cho ứng dụng đó. Bản thân hệ thống (system) cũng là một user và các ứng dụng được cài sẵn trên thiết bị thuộc sở hữu của system. Tóm lại, những "thứ" có thể tác động đến bất cứ tập tin nào đều là user.
Đến đây chắc bạn đã nhận ra vì sao mình không thể gỡ bỏ các ứng dụng cài sẵn hay truy cập vào toàn bộ các phân vùng của thiết bị.
Switching user
Windows có Administrator, vậy thì Android có gì? Nếu bạn từng sử dụng Linux, hẳn bạn đã quá quen thuộc với "root". Cho các bạn chưa biết, "root" là định danh của một user với userID là 0 và có quyền lực gần như cao nhất trong hệ thống Unix/Linux. Chỉ cần gõ "su" và nhập password, bạn sẽ được chuyển sang người dùng "root". Một khi là "root", bạn có toàn quyền quản trị hệ thống ở cấp độ "lõi" (core).
Đối với Android, mặc định "root" bị tắt. Để "bật" nó trở lại, bạn cần chèn tập lệnh "su" vào đâu đó trong hệ thống (thường là /system/xbin/ đối với các thiết bị đời cũ), cấp quyền thực thi và thiết lập tự khởi động cho tập lệnh "daemonsu". Toàn bộ quá trình này gọi là "rooting" (người Việt ta quen gọi là "root"). Việc "rooting" như thế nào thì tùy thuộc vào phiên bản của Android và model thiết bị, tôi không có ý định đi sâu vào phần này (có thể để dành cho các bài viết sau chẳng hạn). Tất nhiên hành động này "được" xem là hack vì phải lợi dụng những lỗ hổng của Android để cài đặt thành công và bị từ chối bảo hành. Tuy nhiên hiện nay các hãng sản xuất có vẻ rộng lượng hơn khi vẫn chấp nhận bảo hành phần mềm cho các thiết bị "rooted".
Cũng xin nói thêm là bản thân việc "rooting" KHÔNG làm ảnh hưởng đến thiết bị, nó chỉ giúp người dùng lấy lại quyền quản trị "tối cao" đối với thiết bị của họ, quyền mà đáng lẽ ra họ phải có (vì chúng ta bỏ tiền ra mua về cơ mà). Việc brick, hư hỏng là do bạn đã làm sai quy trình chứ không liên quan gì đến "rooting".
Before ending
Trong bài viết này, tôi đã làm rõ một số khía cạnh đặc trưng cơ bản của Android. Các bạn còn đang phân vân giữa "root" hay không "root" có thể tham khảo để đưa ra quyết định phù hợp. Loạt bài sau tôi sẽ tổng hợp những nguyên tắc "rooting" đối với các phiên bản Android và các dòng thiết bị khác nhau.
Permission
Android là tên gọi của một hệ điều hành di động dựa trên nhân Linux. Nó sử dụng một cơ chế phân quyền hệ thống tập tin gọi là Permission. Mỗi phân vùng, mỗi thư mục cũng như mỗi tệp tin đều được thiết lập một tập các permission. Các permission này quy định ai có thể đọc một tập tin (liệt kê nội dung bên trong một thư mục), ai có thể ghi hoặc tạo tập tin mới, ai có quyền thực thi một binary. Permission cùng với hệ thống người dùng (user) giúp quản lý một cách hiệu quả các truy cập vào hệ thống tập tin.
Khi bạn lần đầu khởi động một thiết bị Android (khi bạn mới mua về hoặc mới xóa hết dữ liệu người dùng), bạn sẽ được gán một userID. Khi bạn cài đặt một ứng dụng, nó cũng được gán userID của bạn (để xác định ứng dụng này thuộc sở hữu của bạn). Khi ứng dụng cần truy xuất dữ liệu (ví dụ như bộ nhớ, danh bạ), nó sẽ yêu cầu bạn; và khi bạn đồng ý, quyền truy xuất tương ứng sẽ được cấp cho ứng dụng đó. Bản thân hệ thống (system) cũng là một user và các ứng dụng được cài sẵn trên thiết bị thuộc sở hữu của system. Tóm lại, những "thứ" có thể tác động đến bất cứ tập tin nào đều là user.
Đến đây chắc bạn đã nhận ra vì sao mình không thể gỡ bỏ các ứng dụng cài sẵn hay truy cập vào toàn bộ các phân vùng của thiết bị.
Switching user
Windows có Administrator, vậy thì Android có gì? Nếu bạn từng sử dụng Linux, hẳn bạn đã quá quen thuộc với "root". Cho các bạn chưa biết, "root" là định danh của một user với userID là 0 và có quyền lực gần như cao nhất trong hệ thống Unix/Linux. Chỉ cần gõ "su" và nhập password, bạn sẽ được chuyển sang người dùng "root". Một khi là "root", bạn có toàn quyền quản trị hệ thống ở cấp độ "lõi" (core).
Đối với Android, mặc định "root" bị tắt. Để "bật" nó trở lại, bạn cần chèn tập lệnh "su" vào đâu đó trong hệ thống (thường là /system/xbin/ đối với các thiết bị đời cũ), cấp quyền thực thi và thiết lập tự khởi động cho tập lệnh "daemonsu". Toàn bộ quá trình này gọi là "rooting" (người Việt ta quen gọi là "root"). Việc "rooting" như thế nào thì tùy thuộc vào phiên bản của Android và model thiết bị, tôi không có ý định đi sâu vào phần này (có thể để dành cho các bài viết sau chẳng hạn). Tất nhiên hành động này "được" xem là hack vì phải lợi dụng những lỗ hổng của Android để cài đặt thành công và bị từ chối bảo hành. Tuy nhiên hiện nay các hãng sản xuất có vẻ rộng lượng hơn khi vẫn chấp nhận bảo hành phần mềm cho các thiết bị "rooted".
Cũng xin nói thêm là bản thân việc "rooting" KHÔNG làm ảnh hưởng đến thiết bị, nó chỉ giúp người dùng lấy lại quyền quản trị "tối cao" đối với thiết bị của họ, quyền mà đáng lẽ ra họ phải có (vì chúng ta bỏ tiền ra mua về cơ mà). Việc brick, hư hỏng là do bạn đã làm sai quy trình chứ không liên quan gì đến "rooting".
Before ending
Trong bài viết này, tôi đã làm rõ một số khía cạnh đặc trưng cơ bản của Android. Các bạn còn đang phân vân giữa "root" hay không "root" có thể tham khảo để đưa ra quyết định phù hợp. Loạt bài sau tôi sẽ tổng hợp những nguyên tắc "rooting" đối với các phiên bản Android và các dòng thiết bị khác nhau.