Once, I was playing with a number of Chinese tablets and trying different ROMs on them as they are technically the same hardware (HSG X5A variants).
I've had some problems getting the hard buttons to work though, so I wrote this application to detect key events and print them out. It will print out the following:
KeyEvents: The KeyEvents as Android understands them (KeyUp, KeyDown, KeyLongPress, KeyMultiple)
LogCat: Any relevant messages in logcat. Its filtered based on keywords declared in arrays.xml
Kernel: Any relevant messages in the kernel log. Its filtered based on keywords declared in arrays.xml. Kernel log parsing needs root.
The three checkboxes at the top control what information will be displayed.
This is a personal debug tool, but I hope it will be of some use to someone else.
No Ads.
Notes
--------------
While the application is running, the only "hard" keys which should work is "Home" and power. All others will produce their keycodes.
The SU request is to read the kernel log, so I can check if any keyevents are thrown by the kernel.
The location of keylayout files in Android is /system/usr/keylayout.
Kernel log parsing needs root
Both logcat and kernel log monitoring will only display lines containing words from two arrays in arrays.xml (i.e. you need to recompile the app to change them at the moment)
Currently the filters are:
Logcat:
|-HwGPIOE->GPDA
|-keycode
|-keycharacter
Kernel:
|-HwGPIOE->GPDA
|-keycode
|-keycharacter
Permissions
--------------
READ_LOGS: Used to access the Logcat log.
WRITE_EXTERNAL_STORAGE: Used to write the exported data to the SD card.
</div> <div jsname="WJz9Hc" style="display:none">เมื่อผมเล่นกับจำนวนของแท็บเล็ตจีนและพยายามรอมแตกต่างกันในขณะที่พวกเขามีเทคนิคฮาร์ดแวร์เดียวกัน (HSG X5A พันธุ์)
ผมเคยมีปัญหาบางอย่างได้รับปุ่มยากที่จะทำงานแม้ว่าดังนั้นผมเขียนโปรแกรมนี้ในการตรวจสอบเหตุการณ์ที่เกิดขึ้นที่สำคัญและพิมพ์ออก มันจะพิมพ์ออกมาดังต่อไปนี้:
KeyEvents: KeyEvents เป็น Android เข้าใจพวกเขา (KeyUp, KeyDown, KeyLongPress, KeyMultiple)
logcat: ข้อความใด ๆ ที่เกี่ยวข้องใน logcat กรองมันขึ้นอยู่กับคำหลักที่ประกาศใน arrays.xml
เคอร์เนล: ข้อความใด ๆ ที่เกี่ยวข้องในการเข้าสู่ระบบเคอร์เนล กรองมันขึ้นอยู่กับคำหลักที่ประกาศใน arrays.xml บันทึกการแยกเคอร์เนลต้องการราก
สามช่องทำเครื่องหมายที่ควบคุมด้านบนข้อมูลที่จะแสดง
นี้เป็นเครื่องมือแก้ปัญหาส่วนบุคคล แต่ผมหวังว่ามันจะเป็นของใช้บางอย่างเพื่อคนอื่น
ไม่มีโฆษณา
หมายเหตุ
--------------
ในขณะที่โปรแกรมกำลังทำงานเท่านั้น "ยาก" คีย์ซึ่งควรจะทำงานเป็น "บ้าน" และอำนาจ คนอื่น ๆ ทั้งหมดจะผลิตการพิมพ์ซ้ำของพวกเขา
คำขอ SU คือการอ่านบันทึก kernel เพื่อให้สามารถตรวจสอบว่า keyevents ใด ๆ ถูกโยนโดย kernel
ตำแหน่งของไฟล์ keylayout ใน Android เป็นระบบ / / usr / keylayout
บันทึกการแยกเคอร์เนลต้องการราก
ทั้งสอง logcat และการตรวจสอบบันทึกเคอร์เนลจะแสดงเฉพาะบรรทัดที่มีคำจากสองอาร์เรย์ใน arrays.xml (เช่นคุณจะต้องคอมไพล์ app ที่จะเปลี่ยนพวกเขาในขณะนี้)
ปัจจุบันตัวกรองที่มี:
logcat:
| -HwGPIOE-> GPDA
| -keycode
| -keycharacter
เคอร์เนล:
| -HwGPIOE-> GPDA
| -keycode
| -keycharacter
สิทธิ์
--------------
READ_LOGS: ใช้เพื่อเข้าถึงบันทึก Logcat
WRITE_EXTERNAL_STORAG E ที่: ใช้ในการเขียนข้อมูลที่ส่งออกไปยังการ์ด SD</div> <div class="show-more-end">