Sự cố khi truy cập nhật ký tin nhắn trên Jelly Bean với aLogcat


12

Tóm lược

Tôi đã gặp sự cố khi truy cập các thông điệp nhật ký K9 bằng aLogcat, xem bên dưới để biết thêm chi tiết. Những gì tôi muốn biết là:

  • Tại sao không có thông báo nhật ký từ K9 xuất hiện trong trình xem nhật ký aLogcat?
  • Có ai có bất kỳ đề xuất nào về cách tôi có thể xem toàn bộ văn bản của các lỗi xảy ra khi cố gắng đồng bộ hóa các thư mục K9 của mình không?
  • Có thể một cái gì đó đã thay đổi trong Jelly Bean dẫn đến việc đăng nhập của K9 ngừng hoạt động?
  • Vì dường như có rất ít thông báo được hiển thị bởi aLogcat nói chung, có điều gì đó đã thay đổi trong Jelly Bean, điều đó có nghĩa là nó không còn có thể truy cập tất cả các tin nhắn?

Chi tiết

Gần đây tôi đã gặp vấn đề kết nối với K9. Các thư mục của tôi không đồng bộ hóa và danh sách thư mục kết thúc đầy lỗi ổ cắm ( libcore.io.ErrnoException:) hoặc lỗi ssl ( javex.net.ssl.SSLException:), v.v. trong đó thời gian kiểm tra lần cuối sẽ là. Tôi nhận được các thông báo khác nhau tùy thuộc vào sự cố nào đang xảy ra vào thời điểm đó, nhưng tôi không thể thấy toàn văn thông báo lỗi, vì vậy thật khó để đoán nguyên nhân có thể là gì.

Nghĩ rằng các tệp nhật ký có thể chứa nhiều thông tin hơn, tôi đã làm theo hướng dẫn tại Ghi nhật ký gỡ lỗi , kích hoạt ghi nhật ký gỡ lỗi trong K9, cài đặt aLogcat và cố gắng xem nhật ký. Đáng buồn thay, bất kỳ bộ đệm nhật ký nào tôi chọn ( Chính , Sự kiện hoặc Radio ), dường như không có tin nhắn từ K9.

Nếu tôi thêm (k9|AndroidRuntime)bộ lọc regex được đề xuất thì tôi không thấy gì trong bất kỳ nhật ký nào. Nếu tôi xóa nó thì Main chứa hầu hết các tin nhắn thu gom rác, Sự kiện dường như chứa hầu hết các tin nhắn từ chính aLogcat và tôi chưa thấy thông báo nhật ký nào trong Radio .

Nếu nó có sự khác biệt, tôi đang sử dụng Nexus 7, nhưng tôi đã nghĩ rằng việc đăng nhập sẽ đến một vị trí tiêu chuẩn sẽ không thay đổi giữa các phiên bản Android.

Câu trả lời:


24

Có ai có bất kỳ đề xuất nào về cách tôi có thể xem toàn bộ văn bản của các lỗi xảy ra khi cố gắng đồng bộ hóa các thư mục K9 của mình không?

Dường như không có cách nào để xem các thông điệp ghi trên thiết bị mà không cần truy cập root , nhưng nếu bạn không có quyền truy cập root, có một vài lựa chọn, hoặc là cấp quyền truy cập cần thiết để aLogcat hoặc xem xét sử dụng một hack kinh khủng TM để xem họ trực tiếp.

Xem các tệp nhật ký trên PC hoặc máy trạm của bạn thông qua adb

Nếu bạn có thể kết nối thiết bị Android của mình với PC hoặc máy trạm, thì bạn có thể truy cập nhật ký thông qua adblệnh.

Để thực hiện điều này trên Windows, trước tiên, bạn sẽ cần cài đặt SDK Android (sẽ yêu cầu SDK Java SE ) và thêm android-sdk\toolsandroid-sdk\platform-toolsvào đường dẫn hệ thống . Sau đó kích hoạt gỡ lỗi USB trên Nexus 7 của bạn, cắm nó qua USB và cài đặt Giao diện ADB tổng hợp Android từ android-sdk\extras\google\usb_driver(Tôi phải buộc Windows XP nhìn vào đây, nó sẽ không tự tìm thấy trình điều khiển).

Để biết chi tiết về cách adbkhởi động và chạy mà không cần cài đặt SDK Android đầy đủ hoặc trên máy Mac hoặc Linux, hãy xem câu trả lời tuyệt vời của Izzy về việc có cài đặt ADB tối thiểu không?

Sau đó, bạn có thể mở một shell (tức là một cmdcửa sổ) và chạy lệnh:

adb logcat k9:V *:S AndroidRuntime:E
  • Tôi đã xác nhận rằng tính năng này hoạt động trên Nexus 7 chưa root của tôi.

Cấp quyền cho aLogcat

Nếu bạn có quyền truy cập root , bạn có thể xem xét cấp READ_LOGSquyền cho aLogcat , như được đề xuất trong bài đăng này aLogcat / CatLog / Lumberjack không hoạt động? Làm điều này ... trên diễn đàn xda-developers :

pm grant <pkg> android.permission.READ_LOGS

Để cấp quyền này cho alogcathoặc alogcat.donate, bạn sẽ sử dụng một trong các lệnh sau, tùy thuộc vào việc bạn có đang chạy phiên bản tặng hay không:

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

Theo một bài đăng trên các nhà phát triển Android , quyền cấp phép vẫn tồn tại khi khởi động lại và cập nhật, nhưng không gỡ cài đặt / cài đặt lại.

Đáng buồn thay vì điều này yêu cầu quyền truy cập root, cho dù tôi chạy nó trên thiết bị hay trên PC của tôi (tiền tố bởi adb shell) tôi chỉ nhận được lỗi:

Neither user 12345 nor current process has android.permission.GRANT_REVOKE_PERMISSION
  • Tôi không thể xác nhận rằng điều này hoạt động, vì Nexus 7 của tôi chưa được root.

Cân nhắc sử dụng hack TM khủng khiếp

Nếu bạn có quyền truy cập root , bạn có thể xem xét việc tạo logcat root setuid và chạy logcat từ vỏ thiết bị, như được đề xuất trong câu trả lời này cho tôi 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? câu hỏi:

chmod 04755 /system/bin/logcat
logcat k9:V *:S AndroidRuntime:E
  • Một lần nữa, tôi không thể xác nhận rằng điều này hoạt động và tôi có lẽ sẽ chỉ sử dụng nó như là phương sách cuối cùng , với ý nghĩa bảo mật.

Tại sao không có thông báo nhật ký từ K9 xuất hiện trong trình xem nhật ký aLogcat ?

Có thể một cái gì đó đã thay đổi trong Jelly Bean dẫn đến việc đăng nhập của K9 ngừng hoạt động?

Vì dường như có rất ít thông báo được hiển thị bởi aLogcat nói chung, có điều gì đó đã thay đổi trong Jelly Bean, điều đó có nghĩa là nó không còn có thể truy cập tất cả các tin nhắn?

Đây dường như là một thay đổi trong Jelly Bean, ảnh hưởng đến tất cả các ứng dụng có thể cố đọc các tệp nhật ký.

Rõ ràng quyền READ_LOGS không được cấp cho các ứng dụng bên thứ 3 trong Jelly Bean . Vì liên kết này dường như không đáng tin cậy:

Hôm nay tôi đã thử nghiệm ứng dụng của mình trên trình giả lập (api 16) mới nhất trước khi phát hành nó lên Google Play. Hóa ra Android hiện từ chối cấp quyền này cho các ứng dụng của bên thứ 3. Điều này thật kỳ lạ bởi vì tôi đã xem qua tất cả các thay đổi được ghi lại của Jelly Bean và không thể tìm thấy bất cứ điều gì đề cập đến quyền READ_LOGS.

và sau đó

Lớp bảo vệ cho READ_LOGS hiện là "chữ ký | hệ thống | phát triển". Cú pháp đường ống mới cho ProtectionLevel cũng không có giấy tờ (xem http://code.google.com.vn/p/android/issues/detail?id=34785 ).

Sự nghi ngờ của tôi là aLogcat chỉ nhìn thấy các tin nhắn do chính nó tạo ra và đó là vm.

Để biết thêm thông tin, hãy xem câu trả lời của Flow cho câu hỏi của tôi Tôi nên mong đợi tệp nhật ký hệ thống Jelly Bean của mình hoạt động như thế nào?


IIRC adb logcatvẫn có thể lấy nhật ký Android đầy đủ trên Jelly Bean.
Lưu lượng

Nó không yêu cầu root nhưng bạn cần kích hoạt adb trên thiết bị của mình (thường là dưới tùy chọn nhà phát triển).
Lưu lượng

@Flow - Bây giờ tôi đã xác nhận rằng tôi có thể xem nhật ký trên PC của mình bằng cách sử dụng adb logcattừ đó và đã cập nhật câu trả lời của tôi cho phù hợp. Tôi vẫn bực mình vì tôi không thể tìm thấy bất kỳ cách nào để truy cập nhật ký mà không cần quyền truy cập root từ chính thiết bị.
Đánh dấu gian hàng

Đó là toàn bộ điểm trong thay đổi nhật ký JB mà người dùng không phải root không thể truy cập nhật ký hệ thống đầy đủ.
Dòng chảy

@Flow - Vâng, và toàn bộ điểm của thông điệp tường trình là bạn có thể sử dụng chúng để tìm hiểu chuyện gì đang xảy ra. JB làm cho một ứng dụng như aLogcat trở nên vô nghĩa, vì giờ đây nó chỉ có thể truy cập các thông điệp tường trình mà nó đã tự tạo!
Đánh dấu gian hàng

0

Tôi đã thấy hành vi này trong K9 khi máy chủ thư của tôi cập nhật chứng chỉ SSL. Cách khắc phục là nhấn và giữ tài khoản, chọn Account settings -> Fetching mail -> Incoming servervà chỉ cần nhấn Nextqua các trang để xác nhận cài đặt của bạn cho đến khi bạn nhận được thông báo về chứng chỉ (điều này có thể không xuất hiện nếu mọi thứ đều ổn với chứng chỉ, tôi có vhost sai). Xác nhận chứng chỉ và chỉ cần thực hiện phần còn lại của cài đặt và tài khoản của bạn sẽ bắt đầu hoạt động.


@MarkBooth Có lẽ bạn nên hỏi rằng, chúng tôi thường thích những câu hỏi không giả định trước một giải pháp.
Matthew đọc

@MatthewRead Tôi phải đồng ý với Mark ở đây: 4 mục trong bản tóm tắt của anh ấy nói rõ rằng anh ấy muốn giúp đỡ về vấn đề đăng nhập và tôi cũng không thấy "vấn đề XY" ở đây (giải pháp giả định). K9 rõ ràng chỉ là ví dụ - nhưng có lẽ nên điều chỉnh tiêu đề câu hỏi để gạch chân nó: "Sử dụng logcat để xác định nguyên nhân của vấn đề" sẽ phù hợp hơn (và tập trung) tốt hơn;)
Izzy

@MarkBooth Yepp, tnx - bây giờ rõ ràng hơn nhiều. Ngoài ra tnx cho câu trả lời chi tiết! Hãy cập nhật cho chúng tôi về tiến trình của bạn.
Izzy

Tôi có nên xóa câu trả lời của mình không, vì nó hoàn toàn lạc đề sau khi chỉnh sửa và dễ bị hạ cấp?
onik

Tùy bạn onik. Như tôi đã nói ban đầu, tôi đánh giá cao việc bạn dành thời gian để đăng câu trả lời, nhưng bây giờ tôi đã cập nhật câu hỏi, câu trả lời của bạn thậm chí còn lạc lõng hơn. Tôi cho rằng bạn luôn có thể chờ xem liệu nó có được bình chọn dưới -3 để bạn có thể thu thập huy hiệu áp lực ngang hàng của mình không . * 8 ')
Đánh dấu gian hàng
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.