ปัญหาในการเข้าถึงบันทึกข้อความใน Jelly Bean ด้วย aLogcat


12

สรุป

ฉันมีปัญหาในการเข้าถึงข้อความบันทึก K9 โดยใช้ aLogcat ดูรายละเอียดเพิ่มเติมที่ด้านล่าง สิ่งที่ฉันอยากรู้คือ:

  • ทำไมไม่มีข้อความบันทึกจาก K9 ปรากฏใน aLogcat log Viewer?
  • ใครบ้างมีคำแนะนำเกี่ยวกับวิธีที่ฉันสามารถดูข้อความเต็มของข้อผิดพลาดที่เกิดขึ้นเมื่อพยายามซิงค์โฟลเดอร์ K9 ของฉัน
  • มีบางสิ่งเปลี่ยนแปลงใน Jelly Bean ซึ่งนำไปสู่การบันทึกของ K9 เพื่อหยุดทำงานหรือไม่
  • เนื่องจากดูเหมือนจะมีข้อความน้อยมากที่แสดงโดย aLogcat โดยทั่วไปมีบางสิ่งที่เปลี่ยนไปใน Jelly Bean ซึ่งอาจหมายความว่ามันไม่สามารถเข้าถึงข้อความทั้งหมดได้อีกต่อไป?

รายละเอียด

ฉันเพิ่งมีปัญหาการเชื่อมต่อกับ K9 โฟลเดอร์ของฉันไม่สามารถซิงค์และรายการโฟลเดอร์จบลงด้วยข้อผิดพลาดซ็อกเก็ต ( libcore.io.ErrnoException:) หรือข้อผิดพลาด ssl ( javex.net.ssl.SSLException:) ฯลฯ ที่ควรตรวจสอบเวลาล่าสุด ฉันได้รับข้อความต่าง ๆ ขึ้นอยู่กับปัญหาที่เกิดขึ้นในเวลานั้น แต่ฉันไม่เห็นข้อความเต็มของข้อความแสดงข้อผิดพลาดดังนั้นจึงเป็นการยากที่จะคาดเดาสาเหตุที่อาจเป็น

เมื่อคิดว่าไฟล์บันทึกอาจมีข้อมูลเพิ่มเติมฉันทำตามคำแนะนำในการบันทึกบันทึกการดีบักเปิดใช้งานการบันทึกการดีบักใน K9 ติดตั้งaLogcatและพยายามดูบันทึก น่าเสียดายที่ฉันเลือกบัฟเฟอร์การบันทึก ( หลัก , กิจกรรมหรือวิทยุ ) ดูเหมือนจะไม่มีข้อความจาก K9

หากฉันเพิ่ม(k9|AndroidRuntime)ตัวกรอง regex ที่แนะนำฉันก็ไม่เห็นอะไรเลยในบันทึกใด ๆ ถ้าผมเอามันออกไปแล้วหลักส่วนใหญ่มีข้อความเก็บขยะเหตุการณ์ดูเหมือนจะมีส่วนใหญ่ข้อความจาก aLogcat ตัวเองและฉันไม่ได้เห็นข้อความเข้าสู่ระบบในวิทยุเลย

ถ้ามันสร้างความแตกต่างฉันใช้ Nexus 7 แต่ฉันคิดว่าการบันทึกจะต้องอยู่ในตำแหน่งมาตรฐานซึ่งจะไม่เปลี่ยนแปลงระหว่าง Android เวอร์ชัน

คำตอบ:


24

ใครบ้างมีคำแนะนำเกี่ยวกับวิธีที่ฉันสามารถดูข้อความเต็มของข้อผิดพลาดที่เกิดขึ้นเมื่อพยายามซิงค์โฟลเดอร์ K9 ของฉัน

ดูเหมือนว่าไม่มีทางที่จะเห็นข้อความบันทึกเหล่านี้บนอุปกรณ์ที่ไม่มีการเข้าถึงรูท แต่ถ้าคุณมีการเข้าถึงรูทมีตัวเลือกสองทางให้สิทธิ์ที่จำเป็นแก่aLogcatหรือพิจารณาใช้แฮ็คTM ที่น่ากลัวเพื่อดู พวกเขาโดยตรง

ดูล็อกไฟล์บนพีซีหรือเวิร์กสเตชันของคุณผ่าน adb

หากคุณสามารถเชื่อมต่ออุปกรณ์ Android ของคุณกับพีซีหรือเวิร์กสเตชันคุณสามารถเข้าถึงบันทึกผ่านadbคำสั่ง

การทำเช่นนี้ใน Windows แรกที่คุณจะต้องติดตั้งSDK Android (ซึ่งจะต้องใช้Java SE SDK ) และเพิ่มandroid-sdk\toolsและandroid-sdk\platform-toolsเพื่อเส้นทางของระบบ จากนั้นเปิดใช้งานการแก้ไขข้อบกพร่อง USB บน Nexus 7 ของคุณเชื่อมต่อผ่าน USB และติดตั้งAndroid Composite ADB Interfaceจากandroid-sdk\extras\google\usb_driver(ฉันต้องบังคับให้ Windows XP ดูที่นี่ไม่พบไดรเวอร์ของตัวเอง)

สำหรับรายละเอียดของวิธีการที่จะได้รับadbและทำงานได้โดยไม่ต้องเต็ม Android SDK ติดตั้งหรือบน Mac หรือ Linux เครื่องดูคำตอบที่ดีเยี่ยมของอิซซี่จะ มีการติดตั้งน้อยที่สุดของ ADB?

จากนั้นคุณสามารถเปิดเชลล์ (เช่นcmdหน้าต่าง) และเรียกใช้คำสั่ง:

adb logcat k9:V *:S AndroidRuntime:E
  • ฉันได้รับการยืนยันว่าใช้งานได้กับ Nexus 7 ที่ไม่ใช่รูทของฉัน

ให้สิทธิ์แก่aLogcat

หากคุณมีสิทธิ์เข้าถึงรูทคุณสามารถพิจารณาREAD_LOGSอนุญาตให้aLogcatตามที่แนะนำในโพสต์นี้aLogcat / CatLog / Lumberjack ไม่ทำงาน? ทำสิ่งนี้ ...บนฟอรัม xda-developers :

pm grant <pkg> android.permission.READ_LOGS

หากต้องการให้สิทธิ์นี้แก่alogcatหรือalogcat.donateคุณจะใช้หนึ่งในคำสั่งต่อไปนี้ขึ้นอยู่กับว่าคุณใช้รุ่นบริจาคหรือไม่:

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

อ้างอิงจากหนึ่งโพสต์ในนักพัฒนา Androidและตั๋วการอนุญาตให้ใช้สิทธิ์ยังคงมีอยู่ในการรีบูตและอัปเดต แต่ไม่ถอนการติดตั้ง / ติดตั้งใหม่

น่าเศร้าเนื่องจากต้องมีการเข้าถึงรูทไม่ว่าฉันจะรันบนอุปกรณ์หรือบนพีซีของฉัน (นำหน้าด้วยadb shell) ฉันเพิ่งได้รับข้อผิดพลาด:

Neither user 12345 nor current process has android.permission.GRANT_REVOKE_PERMISSION
  • ฉันไม่สามารถยืนยันได้ว่างานนี้ได้เนื่องจาก Nexus 7 ของฉันยังไม่ได้รับการรูท

พิจารณาใช้แฮ็คTM ที่น่ากลัว

หากคุณมีสิทธิ์เข้าถึงรูทคุณสามารถลองสร้างlogcat setuid รูทและเรียกใช้ logcat จากเชลล์อุปกรณ์ตามที่แนะนำในคำตอบของฉันฉันจะเข้าถึงไฟล์บันทึก android บน Nexus 7 โดยไม่ต้องเข้าถึงรูทได้อย่างไร คำถาม:

chmod 04755 /system/bin/logcat
logcat k9:V *:S AndroidRuntime:E
  • อีกครั้งฉันไม่สามารถยืนยันได้ว่างานนี้และฉันอาจจะใช้มันเป็นทางเลือกสุดท้ายที่ได้รับผลกระทบด้านความปลอดภัย

ทำไมไม่มีข้อความบันทึกจาก K9 ปรากฏในaLogcat log Viewer?

มีบางสิ่งเปลี่ยนแปลงใน Jelly Bean ซึ่งนำไปสู่การบันทึกของ K9 เพื่อหยุดทำงานหรือไม่

เนื่องจากดูเหมือนจะมีข้อความน้อยมากที่แสดงโดยaLogcatโดยทั่วไปมีบางสิ่งที่เปลี่ยนไปใน Jelly Bean ซึ่งอาจหมายความว่ามันไม่สามารถเข้าถึงข้อความทั้งหมดได้อีกต่อไป?

สิ่งนี้ดูเหมือนจะเป็นการเปลี่ยนแปลงใน Jelly Bean ซึ่งมีผลกับแอปพลิเคชันทั้งหมดซึ่งอาจพยายามอ่านไฟล์บันทึก

เห็นได้ชัดว่าได้รับอนุญาต READ_LOGS ไม่ได้รับอนุญาตให้มีการใช้งานของบุคคลที่ 3 ใน Jelly Bean เนื่องจากลิงค์นี้ดูเหมือนจะไม่น่าเชื่อถือ:

วันนี้ฉันได้ทดสอบแอปพลิเคชันของฉันกับอีมูเลเตอร์ล่าสุด (api 16) ก่อนที่จะปล่อยไปยัง Google Play ปรากฎว่าตอนนี้ Android ปฏิเสธที่จะให้สิทธิ์นี้กับแอปพลิเคชันบุคคลที่สาม นี่เป็นเรื่องแปลกเพราะฉันได้ตรวจสอบการเปลี่ยนแปลงที่บันทึกไว้ทั้งหมดของ Jelly Bean และไม่พบสิ่งใดที่กล่าวถึงการอนุญาต READ_LOGS

และหลังจากนั้น

protectionLevel สำหรับ READ_LOGS ขณะนี้เป็น "ลายเซ็น | ระบบ | การพัฒนา" ไปป์ไวยากรณ์ใหม่สำหรับ protectionLevel นั้นยังไม่มีเอกสาร (ดูhttp://code.google.com/p/android/issues/detail?id=34785 )

ความสงสัยของฉันคือaLogcatเห็นข้อความที่สร้างขึ้นเองเท่านั้นและเป็น vm

สำหรับข้อมูลเพิ่มเติมโปรดดูที่ไหลตอบคำถามของฉันฉันควรคาดหวังว่าไฟล์บันทึกการทำงานของระบบ Jelly Bean จะทำงานอย่างไร


IIRC adb logcatยังคงสามารถรับบันทึก Android แบบเต็มรูปแบบบน Jelly Bean
Flow

มันไม่จำเป็นต้องรูท แต่คุณต้องเปิดใช้ adb บนอุปกรณ์ของคุณ (มักจะอยู่ภายใต้ตัวเลือกของนักพัฒนา)
Flow

@ กระแส - ตอนนี้ฉันยืนยันแล้วว่าฉันสามารถดูบันทึกบนพีซีโดยใช้adb logcatจากที่นั่นและได้อัปเดตคำตอบของฉันตามนั้น มันน่าผิดหวังที่ฉันไม่สามารถหาวิธีใด ๆ ในการเข้าถึงบันทึกโดยไม่ต้องเข้าถึงรูทจากอุปกรณ์
Mark Booth

เป็นจุดทั้งหมดในบันทึกการเปลี่ยนแปลง JB ที่ผู้ใช้ที่ไม่ใช่รูทไม่สามารถเข้าถึงบันทึกระบบแบบเต็ม
Flow

@Flow - ใช่แล้วและข้อความล็อกทั้งหมดคือคุณสามารถใช้มันเพื่อค้นหาว่าเกิดอะไรขึ้น JB สร้างแอพอย่างaLogcatไร้จุดหมายเพราะตอนนี้มันสามารถเข้าถึงข้อความบันทึกที่สร้างขึ้นเองเท่านั้น!
Mark Booth

0

ฉันเห็นพฤติกรรมนี้ใน K9 เมื่อเมลเซิร์ฟเวอร์ของฉันอัปเดตเป็นใบรับรอง SSL การแก้ไขคือกดบัญชียาวเลือกAccount settings -> Fetching mail -> Incoming serverและกดNextหน้าต่างๆเพื่อยืนยันการตั้งค่าของคุณจนกว่าคุณจะได้รับป๊อปอัพเกี่ยวกับใบรับรอง (ซึ่งอาจไม่ปรากฏขึ้นหากทุกอย่างโอเคกับใบรับรอง ยืนยันใบรับรองและทำตามการตั้งค่าที่เหลือและบัญชีของคุณควรเริ่มทำงาน


@ MarkBooth บางทีคุณควรถามคำถามนี้โดยทั่วไปแล้วเราต้องการคำถามที่ไม่ได้ให้คำตอบล่วงหน้า
แมทธิวอ่าน

@MatthewRead ฉันต้องเห็นด้วยกับมาร์คที่นี่: 4 รายการในการสรุปของเขาอย่างชัดเจนว่าเขาต้องการความช่วยเหลือเกี่ยวกับปัญหาการบันทึกและฉันยังไม่เห็น "ปัญหา XY" ที่นี่ (วิธีแก้ปัญหาล่วงหน้า) K9 นั้นเป็นเพียงตัวอย่างเท่านั้น - แต่อาจมีการปรับชื่อคำถามเพื่อขีดเส้นใต้: "การใช้ logcat เพื่อหาสาเหตุของปัญหา" จะจับคู่ (และโฟกัส) ดีกว่า;)
Izzy

@ MarkBooth Yepp, tnx - ชัดเจนขึ้นแล้ว นอกจากนี้สำหรับคำตอบโดยละเอียด! โปรดแจ้งให้เราทราบเกี่ยวกับความคืบหน้าของคุณ
Izzy

ฉันควรลบคำตอบของฉันเนื่องจากเป็นหัวข้อที่ไม่สมบูรณ์หลังจากการแก้ไขและมีแนวโน้มที่จะถูกลดระดับลง?
onik

มันขึ้นอยู่กับคุณ onik ตามที่ฉันได้กล่าวไปแล้วฉันรู้สึกขอบคุณที่คุณสละเวลาในการโพสต์คำตอบ แต่ตอนนี้ฉันได้อัปเดตคำถามที่คำตอบของคุณดูออกนอกสถานที่มากขึ้น ฉันคิดว่าคุณสามารถรอและดูว่ามันได้รับคะแนนต่ำกว่า -3 หรือไม่เพื่อให้คุณสามารถรวบรวมตราสัญลักษณ์แรงกดดันจากเพื่อน * 8 ')
ทำเครื่องหมายบูธ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.