หากคุณรู้ชื่อไฟล์ที่ติดตั้งของ apk (ซึ่งในอุปกรณ์บางอย่างอาจเป็น myapp-1.apk หรือ myapp-2.apk แทนที่จะเป็นเพียง myapp.apk) คุณสามารถเข้าถึงได้โดยตรงในฐานะผู้ใช้ทั่วไปรวมถึง adb หนึ่งตัวที่ทำงานเป็น บนอุปกรณ์ที่ปลอดภัยดังนั้นคุณควรจะสามารถดึงมันได้ แต่ถ้าคุณไม่รู้ชื่อ apk ที่ติดตั้งคุณจะไม่สามารถเรียกดูไดเรกทอรี / data / app โดยไม่ต้องเป็น root หรือระบบช่วยเหลือ
มันอาจจะคุ้มค่าที่จะคาดเดาจากชื่อที่ติดตั้ง - ลองใช้แบบธรรมดาลองด้วย -1.apk และ -2.apk เป็นต้น
อาจมีวิธีอื่น: ฉันเชื่อว่าสิ่งต่อไปนี้จะทำงานบนอุปกรณ์ที่มีความปลอดภัย แต่ไม่มีอุปกรณ์ต่อหน้าฉันในขณะนี้เพื่อทดสอบ
แก้ไข: แนวคิดใหม่สำหรับการพิจารณาชื่อไฟล์ APK ที่แน่นอน
1) adb pull /data/system/packages.xml
2) ดูผ่านรายการ codePath ของแอปพลิเคชันของคุณ
3) adb ดึงมัน
แก้ไข: ตามแนวคิดเก่าด้านล่างแมทธิวค้นพบว่าในขณะที่ไฟล์ต่อกระบวนการภายใต้ / proc ได้รับอนุญาตให้อ่านบนอุปกรณ์ที่มีการรักษาความปลอดภัยพวกเขาจะว่างเปล่าเมื่ออ่านโดย uid ที่ไม่มีสิทธิ์อื่นนอกเหนือจากเจ้าของ ดังนั้นสิ่งนี้จะไม่ทำงาน
1) ทำให้แอปของคุณทำงาน คุณจะต้องใช้เครื่องที่มี adb
2) ประเภท
adb shell ps
และมองหาบรรทัดที่มีชื่อแอปของคุณ:
app_1 11959 907 112984 27580 ffffffff afd0c5bc S com.clevername.myapp
3) ใช้ตัวเลขในคอลัมน์ที่สองซึ่งเป็นรหัสกระบวนการและดูว่าเป็นแผนที่หน่วยความจำเสมือนในกรณีนี้ฉันจะพิมพ์
adb shell cat /proc/11959/maps
และมองหาบรรทัดที่มีการแม็พไฟล์ apk ของตัวเองเข้าไปในหน่วยความจำ
43e9c000-43ea3000 r--s 001f4000 b3:06 15393 /data/app/com.clevername.myapp-1.apk
4) นั่นคือชื่อไฟล์ที่คุณจะต้องดึง adb
adb pull /data/app/com.clevername.myapp-1.apk .
การตรวจสอบการอนุญาตของไดเรกทอรีใน / proc แนะนำว่าสิ่งนี้ควรใช้กับผู้ใช้ที่ไม่มีสิทธิพิเศษขอโทษด้วยถ้าไม่ได้รับ หากคุณคุ้นเคยกับการใช้งาน 'grep' คุณสามารถใช้เพื่อหลีกเลี่ยงการสแกนเอาต์พุตด้วยตนเอง
ภาคผนวก: ฉันไม่แน่ใจจริงๆว่าเรื่องราวในแอพที่ติดตั้งลงในการ์ด SD คืออะไร
adb shell cat /proc/####/maps
ไม่มีอะไรน่าเสียดาย