Làm cách nào tôi có thể thay đổi SELinux từ Thực thi thành Cho phép trên Samsung Galaxy Note 3?


7

Thiết bị của tôi là Samsung Galaxy Note 3 SM-N9005.

Điện thoại này đi kèm với Selinux được đặt thành Thực thi theo mặc định.

Tôi đã cố gắng thay đổi điều này thành cho phép nhưng không có kết quả.

Tôi đã xây dựng kernel từ mã nguồn theo hướng dẫn của Samsung và thêm một dòng vào tệp init.rc trong ramdisk: "setenforce 0" và điều này đã hoạt động, tuy nhiên WiFi đã bị hỏng và tôi không theo kịp quá trình phát triển kernel.

Tôi đã thử, với quyền root, chạy "setenforce 0" trong terminal và qua adb. Không có lỗi, tuy nhiên nó vẫn thực thi.

Tôi đang chạy ra khỏi các tùy chọn đã xem qua các tệp init trong mã nguồn của Samsung và không thể tìm thấy bất cứ nơi nào mà Samsung đặt SELinux thành Thực thi.

Bất kỳ trợ giúp sẽ được đánh giá rất cao!


Tôi đã thử "su setenforce 0" trong thiết bị đầu cuối hoạt động tạm thời nhưng tệp init.rc có vẻ như làm mới trên mỗi lần khởi động và lệnh "setenforce 0" sẽ không vĩnh viễn. Tuy nhiên, tôi đang sử dụng i9505 MI8 android 4.3 Lệnh CF-Rooted và setenforce hoạt động trong thiết bị đầu cuối, điều đó có nghĩa là SElinux không bị khóa trên thiết bị của tôi. Tôi hy vọng Note3 sẽ giống như vậy

2
setenforcechỉ thay đổi chế độ thời gian chạy, vì vậy nếu bạn muốn thay đổi tiếp tục khởi động lại, hãy thêm setenforce 0vào tệp init.rc của bạn hoặc chỉnh sửa giá trị của ro.boot.selinux
onik

1
Tôi không chắc làm thế nào điều này trả lời câu hỏi.
ale

Bạn không thể lấy shell gốc từ ADB trên kho và các thiết bị được thực thi kể từ 4.2.2, mà không cần boot.imghack thêm . Điều này tạo ra một mớ hỗn độn khủng khiếp cho mọi người, nhưng bạn có thể làm điều đó từ một vỏ thiết bị đầu cuối cục bộ .
not2qubit

Câu trả lời:


6

Nếu bạn đã root, hãy cài đặt Android Terminal Emulatortừ Play Store và mở shell root. Ngoài ra, hãy đảm bảo bạn sử dụng mới nhất (> 2,00) SuperSUđể xử lý SELinux. Sau đó gõ: su 0 setenforce 0và xem những gì xảy ra. Kiểm tra với id. Nếu điều đó không hiệu quả, hãy thử với : su system setenforce 0. Trong AOS > 4.3 , không đủ để chỉ là "root" (uid = 0), bạn cũng phải sử dụng đúng ngữ cảnh .

EDIT : 2015-11-06

Rõ ràng, kể từ AOS > 4.4 , Google đã bắt đầu sử dụng chế độ thực thi vĩnh viễn, thực sự thực thi chính sách SELinux. Những điện thoại này đã vô hiệu hóa tùy chọn Permissive thông qua DCONFIG_ALWAYS_ENFORCE=truecờ cấu hình kernel trong Kernels của chúng. Bạn cần flash Kernel không an toàn (ví dụ CF_Root) hoặc kernel hoàn toàn mới nơi cờ này đã bị vô hiệu hóa.

Google viết ở đây :

Trong bản phát hành Android 5.0 (L), Android chuyển sang thực thi toàn bộ SELinux. Điều này được xây dựng dựa trên việc phát hành cho phép 4.3 và thực thi một phần 4.4. Nói tóm lại, Android đang chuyển từ thực thi trên một tập hợp giới hạn các tên miền quan trọng (installd, netd, vold và zygote) sang mọi thứ (hơn 60 tên miền). Điều này có nghĩa là các nhà sản xuất sẽ phải hiểu rõ hơn và mở rộng quy mô triển khai SELinux của họ để cung cấp các thiết bị tương thích. Hiểu rằng:

  • Mọi thứ đều ở chế độ thực thi trong phiên bản 5.0
  • Không có quy trình nào khác ngoài init nên chạy trong miền init
  • Bất kỳ sự từ chối chung chung nào (đối với block_device, socket_device, default_service, v.v.) chỉ ra rằng thiết bị cần một miền đặc biệt

Để biết thêm thông tin về cách biên dịch lại kernel của bạn, hãy xem tại đây .


không hoạt động trên S5 của tôi, vẫn thi hành: - /
Matthias Urlichs
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.