Làm cách nào tôi có thể truy cập các tệp nhật ký Android trên Nexus 7 mà không cần truy cập root?


9

aLogcat hiện không còn hoạt động với Jelly Bean , làm cách nào tôi có thể truy cập các tệp nhật ký hệ thống trên thiết bị của mình mà không cần truy cập root hoặc gắn nó vào máy tính?

Tôi đã thử sử dụng adb logcattừ PC của mình và nó hoạt động tốt, vì vậy tôi biết rằng có rất nhiều tin nhắn đang được ghi lại.

Sử dụng logcattừ Trình mô phỏng đầu cuối Android trên Nexus 7 của tôi cho thấy hầu như không có đầu ra nào và adb logcattừ Trình mô phỏng đầu cuối Android , khởi động trình nền nhưng sau đó chỉ nói - waiting for device -và không có gì xuất hiện nữa.

Vì vậy, có thể truy cập các tệp nhật ký Android trên Nexus 7 của tôi mà không cần truy cập root không ?


có thể trùng lặp các sự cố khi truy cập nhật ký tin nhắn trên Jelly Bean với aLogcat
Izzy

@Izzy - Điểm của câu hỏi này là tất cả các giải pháp trong câu hỏi khác của tôi (mà tôi liên kết đến trong câu hỏi này) đều yêu cầu quyền truy cập root. Mặc dù các giải pháp này hữu ích cho những người đã root thiết bị của họ, tôi muốn một giải pháp cụ thể hơn cho những người chưa root thiết bị của họ.
Đánh dấu gian hàng

Bạn có thể thấy PhoneHome đáng xem
Dori

Câu trả lời:


12

Không, vì lý do bảo mật, không thể truy cập các tệp nhật ký Android trên Nexus 7 (hoặc bất kỳ thiết bị nào khác chạy Jelly Bean trở lên) mà không có quyền truy cập root. Google đã thay đổi điều đó với Jelly Bean.

Tôi khuyên bạn nên đợi cho đến khi các trình đọc logcat như aLogCat và như vậy được sửa chữa (nghĩa là chúng sẽ yêu cầu quyền truy cập root để hiển thị tất cả các bản ghi sau đó).

Từ AISEC-TR-2012-001-Android-OS-Security.pdf - Mô hình cấp phép Android 3.3 :

Quyền READ_LOGS có thể thay thế các mục sau trên nhiều thiết bị, tùy thuộc vào phiên bản Android và do đó, các phiên bản ứng dụng tiêu chuẩn được cài đặt:

  • ĐỌC

  • GET_TASKS - mọi hoạt động bắt đầu được liệt kê trong nhật ký của hệ thống

  • READ_HISTORY_BOOKWORS - mở các trang web mới là một hoạt động của trình duyệt và do đó đã đăng nhập

  • READ_SMS

Tất cả các giải pháp dưới đây yêu cầu quyền truy cập root :

Bạn cần chạy logcat với quyền root trong shell hoặc cấp thủ công thông qua lệnh shell pm (yêu cầu root) cũng hoạt động (xem XDA , trao đổi org.jtb.alogcat.donate với tên pkg của ứng dụng):

pm grant org.jtb.alogcat.donate android.permission.READ_LOGS

Điều này dành cho những người lười biếng và không được đề xuất: Nếu bạn tuyệt vọng, bất cẩn và lười biếng, bạn có thể khắc phục bằng cách cấp cho mọi ứng dụng quyền READ_LOGS bằng cách áp dụng bản hack xấu xí và không an toàn này ( Chainfire qua twitter ):

chmod 04755 /system/bin/logcat

Để trích dẫn bài đăng G + của nhà phát triển CyanogenMod Koushik Dutta :

Các quyền / hành vi của Nhật ký Android có thay đổi trong JellyBean không?

Có vẻ như nếu một ứng dụng chạy "logcat" bây giờ, nó chỉ có thể thấy các mục nhật ký được tạo bởi UID của nó. Các dòng nhật ký từ các UID khác không được hiển thị. Về cơ bản, nó dường như được lọc ngay bây giờ.

Tôi có quyền như bình thường. Cũng xác nhận điều tương tự đang xảy ra trong các ứng dụng thu thập nhật ký khác.


Không có cách nào mà không có root mà tôi biết. Vì lợi ích của an ninh. Bắt đầu với JellyBean, quyền read_logs không còn phải được cấp nữa (mỗi ứng dụng chỉ có thể xem nhật ký của chính nó).
ce4

Cảm ơn đã chỉnh sửa và liên kết đến xda, tôi đã tích hợp nó.
ce4

Cảm ơn đã thêm vào pm granttùy chọn. Lưu ý rằng như tôi đã nói trong câu trả lời khác của tôi , bạn cần chỉ định gói hơi khác nếu bạn không sử dụng phiên bản quyên góp của aLogcat :pm grant org.jtb.alogcat android.permission.READ_LOGS
Đánh dấu gian hàng

Các tài liệu tham khảo làm để giải thích làm thế nào READ_LOGSlà bằng READ_CONTACTStrên một số nền tảng. Tôi đoán có nghĩa là một số ứng dụng đưa dữ liệu liên lạc vào nhật ký, nhưng điều đó không thực sự giống như READ_CONTACTS. Nhưng sau đó tôi sẽ nói rằng bài báo được viết với giọng điệu báo động.
Lưu lượng

READ_LOGS rò rỉ nhiều thông tin hơn là dữ liệu liên lạc. Có tên người dùng, có thể là địa chỉ gmail, địa điểm, ứng dụng đã cài đặt (thậm chí sử dụng ứng dụng), v.v. Thêm vào đó, nó đã được sử dụng để đọc và trích xuất địa chỉ từ các đống stack của hệ thống trong những ngày trước ASLR bằng cách khai thác root. Bây giờ họ đã tắt một phần lớn (4,1 ±), bạn có thể được bảo vệ bầy đàn (so sánh nó với việc không tiêm phòng cho con bạn trong một quần thể được tiêm phòng không có bệnh). Các vấn đề xuất hiện và Google đã làm đúng.
ce4

1

Tôi bối rối bởi điều này mặc dù nó sẽ giải thích một số điều.

Chạy cùng một ứng dụng trên nexus7 và galaxy nexus của tôi, cả trên Jellybean, điện thoại sẽ thấy đầu ra nhật ký từ tất cả các ứng dụng, máy tính bảng thì không. Điều này sẽ nói rằng nó không phải là sứa mà là nexus7. Sao lưu điều này, tôi vừa kiểm tra và cả hai đều có nhân khác nhau. Máy tính bảng, với một cái mới hơn.

Có lẽ đó là kernel đã cập nhật, có nghĩa là các bản ghi không xuất hiện.

Đoán xem tôi sẽ phải root sau tất cả: (


Đó là điều thú vị của Nga, cảm ơn vì thông tin thêm.
Đánh dấu gian hàng

Trên thực tế, giờ đây tôi đã được thông báo một cách đáng tin cậy rằng đó là vì ứng dụng tôi đang sử dụng để xem nhật ký, đã được cài đặt trên máy của tôi khi tôi có ICS nên nó vẫn giữ quyền để xem nhật ký.
Russ Wheeler

1

Tôi đã phát triển một ứng dụng Logcat sử dụng phương pháp thay thế. Nó sử dụng tính năng sửa lỗi từ xa. Bạn cần kích hoạt nó trên điện thoại trước, nhưng nó chỉ phải được thực hiện một lần và sau đó bạn có thể sử dụng ứng dụng để truy xuất tất cả các nhật ký.

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.