ฉันกำลังมองหาความเป็นไปได้ที่จะดึงทั้งชื่อแพคเกจและชื่อสามัญของแอพที่ติดตั้งบนอุปกรณ์ Android ผ่าน ADB - หรืออย่างน้อยก็จะเรียกชื่อสามัญได้ถ้ารู้ชื่อแพ็คเกจ การค้นหาอย่างรวดเร็วในเว็บไซต์ของเราทำให้เกิดคำถามที่เกี่ยวข้องสองข้อ แต่พวกเขาไม่สามารถแก้ปัญหาของฉันได้:
- ฉันจะรับชื่อสามัญของแอพที่มีชื่อแพ็คเกจได้อย่างไร (เช่น com.android.blabla) (บรรทัดคำสั่งหรือแอปที่รวมอยู่)ไม่ทำงานผ่าน ADB (แต่ใช้แอพที่คุณต้องค้นหาด้วยตนเอง) ตรงกับคำขอของ OP
- วิธีค้นหาแอพตามชื่อแพ็คเกจ เพิ่งเปลี่ยนเป็นการค้นหา URL ที่Google Playซึ่งไม่เหมาะเสมอไป
ฉันกำลังมองหาวิธีที่จะดึงข้อมูลโดยตรงจากอุปกรณ์หากเป็นไปได้ไม่ใช่วิธี "ใด ๆ " (รวมถึง "การค้นหาเว็บ" หรือ "ผ่านแอพ") เนื่องจากเป็นคำถามสองข้อ
ฉันรู้ว่ามีเครื่องมือหลายอย่างเพื่อรับรายละเอียดแพ็คเกจ:
adb dumpsys package
: แม้ว่ารายการนี้จะแสดงรายการแพ็คเกจทั้งหมดพร้อมรายละเอียดมากมาย แต่ชื่อ "สามัญ" จะไม่ปรากฏขึ้นadb shell pm list
: ให้ชื่อแพ็คเกจเท่านั้นaapt
จะสามารถรับชื่อสามัญได้ แต่จะต้องดึง.apk
ไฟล์จากอุปกรณ์ก่อนซึ่งไม่สะดวกจริงๆ (และแน่นอนว่าจะค่อนข้างช้าเมื่อติดตั้งแอพจำนวนมากและ / หรือแอปขนาดใหญ่)
ฉันพลาดอะไรไปหรือเปล่า? ฉันรู้ว่าข้อมูลจะต้องอยู่บนอุปกรณ์ (จะมีวิธีอื่นที่จะแสดงชื่อแอพใน GUI หรือไม่ฉันสงสัยว่า Android แยกวิเคราะห์.apk
ไฟล์ทุกครั้งที่ GUI ต้องการ "ชื่อสามัญ") ดังนั้นมีวิธีที่จะได้รับมันโดยใช้ ADB โดยตรงหรือไม่
TL; DR
พื้นหลัง (หากมีใครอยากรู้อยากเห็น): ฉันต้องการได้รับรายชื่อผู้ใช้แอพจากอุปกรณ์ใด ๆ ของฉันได้อย่างรวดเร็วโดยไม่ต้องเปลี่ยนกลับเป็นกายกรรม รายการชื่อแพคเกจของพวกเขาที่ฉันสามารถเรียกคืนได้โดยใช้adb shell pm list -3
แต่เป็นชื่อแพ็กเกจเท่านั้นการรู้จักแอปเป็นงานที่คาดเดาได้ ดังนั้นหากมีคำสั่ง ADB บางตัวเพื่อเรียกชื่อสามัญสำหรับชื่อแพ็คเกจที่กำหนดฉันสามารถใช้ลูปเช่นfor pkg in $(adb shell pm list -3); do echo "- $(adb <whatever_the_command_is> $pkg) ($pkg)"; done
- และรับรายการของแอพผู้ใช้ที่ติดตั้งทั้งหมดใน "รูปแบบที่มนุษย์สามารถอ่านได้" พร้อมกับชื่อแพ็คเกจ
กรณีการใช้งาน:
- ดูว่ามีแอพพลิเคชั่น "ฟุ่มเฟือย" ติดตั้งอะไรบ้าง (ซึ่งฉันสามารถลบได้)
- รายการตรวจสอบข้ามจากอุปกรณ์หลายเครื่อง
- เอกสารประกอบ);
- และอาจมากกว่า (แต่เหนือ 3 เป็นสิ่งที่ฉันต้องการ)