แยกไฟล์ APK จากแอพ Android ที่คุณติดตั้ง
ประกาศทางกฎหมายและความปลอดภัย: บทความนี้มีวัตถุประสงค์เพื่อการศึกษาเท่านั้น การแยก APK ออกจากอุปกรณ์มีไว้สำหรับการสำรองข้อมูลส่วนบุคคลของแอปพลิเคชัน คุณได้ติดตั้งอย่างถูกกฎหมายบนอุปกรณ์ที่คุณเป็นเจ้าของแล้ว XAPK เป็น APK ไม่ได้โฮสต์ แจกจ่าย ลิงก์ไปยัง หรืออำนวยความสะดวกในการเข้าถึงแอปพลิเคชันที่มีลิขสิทธิ์ ชำระเงิน หรือละเมิดลิขสิทธิ์ ไม่อนุญาตให้เผยแพร่ APK ที่แยกออกมาของแอปที่ต้องชำระเงินหรือมีลิขสิทธิ์ซ้ำ ดู ข้อสงวนสิทธิ์ ของเราสำหรับข้อกำหนดทั้งหมด
คุณมีแอปที่น่าทึ่งในโทรศัพท์ซึ่งใช้เวลาตั้งค่าหลายชั่วโมง แต่กลับพบว่าแอปนั้นถูกลบออกจาก Play Store แล้ว หรือบางทีคุณอาจเปลี่ยนไปใช้อุปกรณ์ใหม่และต้องการสำเนาออฟไลน์ของเครื่องมือที่คุณชื่นชอบไว้เผื่อไว้ กำลังแตกไฟล์ APK จากแอปที่ติดตั้งอยู่ในปัจจุบันคือวิธีแก้ปัญหา
ด้านล่างนี้เราจะอธิบายขั้นตอนการดึง APK ออกจากโทรศัพท์ของคุณโดยไม่ต้องรูท ซึ่งมีประโยชน์สำหรับการสำรองข้อมูล และวิธีตรวจสอบไฟล์ที่แตกออกมาในภายหลังด้วย เครื่องมือวิเคราะห์ออนไลน์ ของเรา
ประเด็นสำคัญ
- คุณสามารถแยกไฟล์ APK ของแอปได้เกือบทั้งหมดจากที่จัดเก็บข้อมูลภายในอุปกรณ์ของคุณ
- แอปสมัยใหม่มักใช้ แยก APK ซึ่งต้องใช้โปรแกรมแยกข้อมูลแบบพิเศษ
- โดยทั่วไปการเข้าถึงรูท (Superuser) คือ ไม่จำเป็น เพื่อสำรองแอปพลิเคชันมาตรฐาน
- เมื่อแตกไฟล์แล้ว คุณสามารถถ่ายโอนไฟล์ไปยังการ์ด SD, PC หรือที่เก็บข้อมูลบนคลาวด์ได้
เหตุใดจึงต้องแยก APK
ก่อนที่จะข้ามไปที่ "วิธีการ" นี่คือเหตุผลที่คุณควรดูแลรักษาไลบรารีการสำรองข้อมูล APK:
- เก็บรักษาแอปที่เลิกใช้งานแล้ว: หากนักพัฒนาลบแอปของตนออกจากร้านค้า คุณจะยังคงมีสำเนาที่สามารถติดตั้งได้
- การสนับสนุนฮาร์ดแวร์รุ่นเก่า: เก็บเวอร์ชันที่ใช้งานได้บนแท็บเล็ตรุ่นเก่าของคุณไว้เมื่อแอปอย่างเป็นทางการอัปเดตเป็นเวอร์ชัน Android ที่ใหม่กว่า
- การย้อนกลับเวอร์ชัน: หากการอัปเดตทำให้เกิดข้อบกพร่อง คุณสามารถติดตั้งการสำรองข้อมูลที่แตกออกมาแล้วใหม่และกลับมาดำเนินธุรกิจได้
- การแชร์แอป: ส่งเวอร์ชันแอปเฉพาะให้เพื่อนผ่านบลูทูธหรือสายเคเบิลโดยไม่ต้องใช้ข้อมูลมือถือ
วิธีที่ 1: การใช้แอป APK Extractor (ไม่มีการรูท)
วิธีที่ง่ายที่สุดคือการใช้ยูทิลิตี้เฉพาะ มีแอป "APK Extractor" มากมายใน Play Store เครื่องมือเหล่านี้ทำงานโดยการค้นหาเส้นทางการติดตั้งแอปใน /data/app/ (ซึ่งสามารถอ่านได้แต่โดยปกติจะซ่อนไว้) และคัดลอก base.apk ไปยังโฟลเดอร์ดาวน์โหลดสาธารณะของคุณ
ขั้นตอน:
- ติดตั้ง APK Extractor ที่มีชื่อเสียง
- เปิดแอปและให้สิทธิ์ "สิทธิ์ในการจัดเก็บ" หากมีการร้องขอ
- เลื่อนดูรายการแอปพลิเคชันที่ติดตั้งทั้งหมด
- แตะที่แอพที่คุณต้องการบันทึก
- เครื่องมือจะคัดลอก APK ไปยังที่จัดเก็บข้อมูลภายในของคุณทันที
การจัดการ Split APK
หากคุณแยกแอปที่ซับซ้อน เช่น Facebook หรือ WhatsApp คุณอาจพบไฟล์ .apk หลายไฟล์แทนที่จะเป็นไฟล์เดียว นี่คือ แยก APK หากต้องการใช้งาน คุณจะต้องมี เครื่องมือรวม APKS/APKM ของเราเพื่อรวมเป็นไฟล์เดียว
วิธีที่ 2: การแตกข้อมูลด้วยตนเองผ่าน ADB (ขั้นสูง)
หากคุณไม่ต้องการติดตั้งแอปเพิ่มเติมบนโทรศัพท์ของคุณ คุณสามารถใช้พีซีที่มี สะพานดีบัก Android (ADB):
- เชื่อมต่อโทรศัพท์ของคุณกับพีซีผ่าน USB และเปิดใช้งานการแก้ไขจุดบกพร่อง USB
- เปิดเทอร์มินัลแล้วพิมพ์: adb shell pm path com.example.app
- นี่จะแสดงเส้นทาง ตัวอย่าง: package:/data/app/com.example.app/base.apk
- ประเภท: adb pull /data/app/com.example.app/base.apk ./backup.apk
- ขณะนี้ไฟล์อยู่ในพีซีของคุณแล้ว!
สิ่งที่คุณได้รับจริง ๆ เมื่อคุณแตกไฟล์
แอป Android ที่ "ติดตั้ง" จะไม่จัดเก็บไว้ในอุปกรณ์เป็น APK เดียวอีกต่อไป โดยเฉพาะอย่างยิ่งหากมาจาก Play Store ในรูปแบบ Android App Bundle เมื่อคุณแตกไฟล์ คุณอาจได้รับไฟล์เดียวหรือหลายไฟล์ และการทราบถึงความแตกต่างจะช่วยให้คุณตัดสินใจว่าจะเก็บไฟล์ใด:
- APK ฐานเดียว แอปเก่าหรือเล็กกว่าที่อัปโหลดไปยัง Play เป็น APK ธรรมดายังคงติดตั้งเป็นไฟล์เดียว การแยกส่งคืนหนึ่ง .apk ที่มีอยู่ในตัวเอง
- แอป APK ฐาน + การแยกการกำหนดค่าหลายรายการ ที่เผยแพร่เป็น AAB ได้รับการติดตั้งเป็น APK หลายรายการเคียงข้างกัน: base.apk บวก split_config.<abi>.apk (โค้ดเนทิฟสำหรับ CPU ของคุณ), split_config.<density>.apk (ทรัพยากรสำหรับหน้าจอของคุณ) และ split_config.<language>.apk (สตริงสำหรับภาษาของคุณ) การแตกไฟล์จะส่งคืนทั้งหมด หากต้องการติดตั้งแอปเดียวกันอีกครั้งบนอุปกรณ์เดียวกัน คุณต้องมีแอปทั้งหมด
- เกม ข้อมูลชุดสินทรัพย์ในบางครั้ง ยุคใหม่ที่ใช้ Play Asset Delivery จะจัดเก็บเนื้อหาการเล่นเกมขนาดใหญ่ไว้ในแคชส่วนตัวของแอปภายนอก APK โดยทั่วไปแล้วสิ่งเหล่านี้ไม่สามารถส่งออกด้วยตัวแยกข้อมูลปกติได้ ชุดเนื้อหาได้รับการออกแบบมาให้ดึงข้อมูลอีกครั้งเมื่อเปิดตัวครั้งแรก
หากเป้าหมายของคุณคือการสำรองข้อมูลแบบพกพาที่จะติดตั้งบนอุปกรณ์อื่น คุณมักจะต้องการ (ก) "APK สากล" ที่ผสานกันซึ่งสร้างด้วย การรวม APKS เป็น APK ของเรา หรือ (ข) การแยกไฟล์ทั้งหมดถูกเก็บถาวรไว้ด้วยกัน เพื่อให้ตัวติดตั้ง Split-APK เช่น SAI สามารถกู้คืนไฟล์เหล่านั้นเป็นหน่วยได้
วิธีการทำงานของการสกัด (ไม่มีการรูท เบื้องหลัง)
แอพ "APK extractor" ส่วนใหญ่ไม่จำเป็นต้องรูทจริงๆ เพราะ Android เปิดเผยไฟล์แพ็คเกจที่ติดตั้งผ่านพาธการอ่านระดับระบบ การไหลมาตรฐานคือ:
- แอปแยกไฟล์เรียก PackageManager.getPackageInfo(package, ...) เพื่อรับรายการแอปที่ติดตั้ง
- สำหรับแอปที่เลือก แอปจะอ่าน ApplicationInfo.sourceDir (เส้นทางของ APK พื้นฐาน โดยทั่วไปคือ /data/app/<package>-<hash>/base.apk) และ splitSourceDirs (เส้นทางของการแยกการกำหนดค่าใดๆ)
- ตัวแยกข้อมูลที่ผู้ใช้ติดตั้งไม่สามารถอ่านเส้นทางเหล่านี้ได้โดยตรง แต่กลไก FileProvider ใน Android ช่วยให้ส่วนประกอบของระบบให้สิทธิ์การเข้าถึงการอ่านชั่วคราวไปยัง URI ที่เฉพาะเจาะจง OS ทำ อนุญาตให้แอปใด ๆ เปิด APK ของ เป็นเจ้าของ และ APK ของแอปอื่น ๆ โดย URI; นี่เป็นการกระทำโดยเจตนา เนื่องจากเส้นทางการติดตั้งมีไว้เพื่อให้โลกสามารถอ่านได้เสมอสำหรับงานต่างๆ เช่น การถอนการติดตั้งและการอัปเดต
- ตัวแยกจะคัดลอกไบต์ไปยังไดเร็กทอรีผู้ใช้ที่เขียนได้ (ดาวน์โหลด โฟลเดอร์แคชในแอป หรือที่จัดเก็บข้อมูลภายนอก) และนำเสนอเป็นไฟล์ที่จะแชร์หรือติดตั้ง
วิธีการรูทเท่านั้น (su; cp /data/app/...) ข้าม API และอ่านเส้นทางดิบโดยตรง ไม่เร็วขึ้นและไม่จำเป็นสำหรับแอปที่ไม่ใช่ระบบ
แยกข้อมูลผ่าน ADB (แนะนำสำหรับการสำรองข้อมูล)
ขั้นตอนการทำงานที่ไม่ใช่แอปที่ชัดเจนที่สุดคือ ADB ซึ่งนักพัฒนาส่วนใหญ่ได้ตั้งค่าไว้แล้ว สองคำสั่งทำหน้าที่ทั้งหมด:
# 1. Find the on-device path(s) for the package
adb shell pm path com.example.app
# Output (single APK):
# package:/data/app/~~hash==/com.example.app-1/base.apk
#
# Output (split APKs):
# package:/data/app/~~hash==/com.example.app-1/base.apk
# package:/data/app/~~hash==/com.example.app-1/split_config.arm64_v8a.apk
# package:/data/app/~~hash==/com.example.app-1/split_config.xxhdpi.apk
# package:/data/app/~~hash==/com.example.app-1/split_config.en.apk
# 2. Pull each path
adb pull /data/app/~~hash==/com.example.app-1/base.apk ./
สำหรับแอปแยก APK ให้ทำซ้ำ adb pull สำหรับแต่ละเส้นทาง หากต้องการรับไฟล์เดียวที่สามารถติดตั้งได้ ให้วางไฟล์ทั้งหมดลงใน การรวม APKS เป็น APK ของเรา
สิ่งที่ไม่สามารถสกัดออกมาได้
การแตกไฟล์จะส่งคืนไฟล์การติดตั้งของแอปพลิเคชัน มันส่งคืน ไม่:
- ข้อมูลแอป: การตั้งค่า ฐานข้อมูล บันทึกไฟล์ สิ่งเหล่านี้อยู่ภายใต้ /data/data/<package>/ และได้รับการปกป้องจากการแตกไฟล์ที่ไม่ใช่รูทโดยแซนด์บ็อกซ์ข้อมูลผู้ใช้
- เล่นชุดเนื้อหาการจัดส่งสินทรัพย์: ดาวน์โหลดเมื่อเรียกใช้ครั้งแรก แคชแบบส่วนตัว และคาดว่าจะดึงข้อมูลอีกครั้งหากไม่มีหายไป
- ความคืบหน้าที่บันทึกไว้บนคลาวด์: หากแอปใช้ Google Play Games, Firebase หรือที่คล้ายกัน ส่วนที่จัดเก็บบนคลาวด์จะอยู่บนเซิร์ฟเวอร์ของผู้เผยแพร่ ไม่ใช่บนอุปกรณ์ของคุณเลย
ดังนั้นการแยกข้อมูลจึงดีสำหรับกรณีการใช้งาน "ฉันต้องการสำเนาของตัวติดตั้งเพื่อเก็บไว้" แต่ไม่สามารถทดแทนการสำรองข้อมูลอุปกรณ์แบบเต็มที่เหมาะสมได้ (ซึ่งต้องใช้เครื่องมือรูทหรือผู้จำหน่าย)
วิเคราะห์ APK ที่แยกออกมาของคุณ
เมื่อคุณสำรองข้อมูลแอปของคุณแล้ว ให้ใช้ชุดออนไลน์ของเราเพื่อตรวจสอบข้อมูลเมตา ไอคอน และการอนุญาต
เริ่มการวิเคราะห์ APKคำถามที่พบบ่อย (FAQ)
การแตกแอพมีข้อมูลการเข้าสู่ระบบของฉันด้วยหรือไม่?
ไม่ การแตกไฟล์จะคัดลอกเฉพาะ รหัสแอปพลิเคชันและทรัพยากร เท่านั้น ไม่รวมข้อมูลบัญชีส่วนตัว รหัสผ่าน หรือการตั้งค่าของคุณด้วยเหตุผลด้านความปลอดภัย
ฉันสามารถแยกแอประบบเช่น YouTube ได้หรือไม่
ใช่. อย่างไรก็ตาม แอพระบบบางตัวอาจมีการพึ่งพาเชิงลึกกับระบบปฏิบัติการเวอร์ชันเฉพาะ และอาจติดตั้งไม่ถูกต้องบนอุปกรณ์อื่น
APK ที่แยกออกมาจะไปอยู่ที่ไหน?
แอปแยกไฟล์ส่วนใหญ่จะบันทึกไฟล์ลงในโฟลเดอร์ชื่อ APK ที่แยกออกมา หรือ ดาวน์โหลด ในที่เก็บข้อมูลภายในของโทรศัพท์ของคุณ
การสำรองแอพที่ติดตั้งไว้โดยไม่สูญเสียการกำหนดค่าแบบแยกส่วน
การสร้างพื้นที่เก็บข้อมูลแอปในเครื่องของคุณเองเป็นวิธีที่แน่นอนที่สุดที่จะไม่สูญเสียการเข้าถึงเครื่องมือที่คุณชื่นชอบ แอพที่ใช้งานง่ายและเทอร์มินัล ADB ช่วยให้คุณไปถึงจุดนั้นได้ และไม่ว่าจะด้วยวิธีใด กำลังแตกไฟล์ APK ก็เป็นวิธีที่ปลอดภัยและใช้งานได้จริงในการจัดการอุปกรณ์ Android ของคุณ หลังจากที่คุณสำรองข้อมูลไลบรารีของคุณแล้ว ให้ใช้เวลาสักครู่ไปที่ ตรวจสอบลายเซ็น ของข้อมูลสำรองเหล่านั้น เพื่อให้คุณรู้ว่าข้อมูลสำรองเหล่านั้นจะไม่ถูกแก้ไขเมื่อเวลาผ่านไป