Trích xuất tệp APK từ ứng dụng Android đã cài đặt của bạn

A smartphone with app icons and a tray pulling out an app, illustrating extracting APKs

Thông báo pháp lý & an toàn: Bài viết này chỉ dành cho mục đích giáo dục. Việc trích xuất APK từ thiết bị nhằm mục đích sao lưu cá nhân các ứng dụng bạn đã được cài đặt hợp pháp trên thiết bị mà bạn sở hữu. XAPK to APK không lưu trữ, phân phối, liên kết đến hoặc tạo điều kiện truy cập vào các ứng dụng có bản quyền, trả phí hoặc vi phạm bản quyền. Không được phép phân phối lại APK đã trích xuất của ứng dụng trả phí hoặc có bản quyền. Xem Tuyên bố miễn trừ trách nhiệm của chúng tôi để biết các điều khoản đầy đủ.

Bạn có một ứng dụng tuyệt vời trên điện thoại mà bạn đã dành hàng giờ để thiết lập nhưng phát hiện ra rằng ứng dụng này đã bị xóa khỏi Cửa hàng Play. Hoặc có thể bạn đang chuyển sang một thiết bị mới và muốn có bản sao ngoại tuyến của các công cụ yêu thích của mình để đề phòng. Giải nén tập tin APK từ các ứng dụng hiện được cài đặt của bạn là giải pháp.

Dưới đây, chúng tôi hướng dẫn cách kéo APK ra khỏi điện thoại của bạn mà không cần root, tính năng này hữu ích cho việc sao lưu và cách kiểm tra tệp được giải nén sau đó bằng công cụ phân tích trực tuyến của chúng tôi.

Bài học chính

  • Bạn có thể trích xuất hầu hết mọi tệp APK của ứng dụng trực tiếp từ bộ nhớ trong của thiết bị.
  • Các ứng dụng hiện đại thường sử dụng Chia APK, yêu cầu trình giải nén chuyên dụng.
  • Quyền truy cập root (Superuser) nói chung là không bắt buộc để sao lưu các ứng dụng tiêu chuẩn.
  • Sau khi giải nén, bạn có thể chuyển tệp sang thẻ SD, PC hoặc bộ lưu trữ đám mây.

Tại sao phải trích xuất APK?

Trước khi chuyển sang phần "làm thế nào", đây là lý do tại sao bạn nên duy trì thư viện sao lưu APK:

Cách 1: Sử dụng ứng dụng giải nén APK (Không cần root)

Cách dễ nhất là sử dụng một tiện ích chuyên dụng. Có hàng tá ứng dụng "Trình giải nén APK" có sẵn trên Cửa hàng Play. Các công cụ này hoạt động bằng cách tìm đường dẫn cài đặt của ứng dụng trong /data/app/ (có thể đọc được nhưng thường bị ẩn) và sao chép base.apk vào thư mục Tải xuống công khai của bạn.

Các bước:

  1. Cài đặt Trình trích xuất APK uy tín.
  2. Mở ứng dụng và cấp "Quyền lưu trữ" nếu được yêu cầu.
  3. Cuộn qua danh sách tất cả các ứng dụng đã cài đặt.
  4. Nhấn vào ứng dụng bạn muốn lưu.
  5. Công cụ sẽ ngay lập tức sao chép APK vào bộ nhớ trong của bạn.

Xử lý APK phân chia

Nếu bạn trích xuất một ứng dụng phức tạp như Facebook hoặc WhatsApp, bạn có thể tìm thấy một số tệp .apk thay vì một tệp. Đây là Chia APK. Để sử dụng chúng, bạn sẽ cần Công cụ hợp nhất APKS/APKM của chúng tôi để kết hợp chúng thành một tệp duy nhất.

Cách 2: Trích xuất thủ công qua ADB (Nâng cao)

Nếu không muốn cài thêm ứng dụng trên điện thoại, bạn có thể sử dụng PC có Cầu gỡ lỗi Android (ADB):

  1. Kết nối điện thoại của bạn với PC qua USB và bật Gỡ lỗi USB.
  2. Mở terminal và gõ: adb shell pm path com.example.app
  3. Điều này sẽ hiển thị đường dẫn. Ví dụ: package:/data/app/com.example.app/base.apk
  4. Loại: adb pull /data/app/com.example.app/base.apk ./backup.apk
  5. Tệp hiện đã có trên PC của bạn!

Những gì bạn thực sự nhận được khi giải nén

Ứng dụng Android "đã cài đặt" không còn được lưu trữ trên thiết bị dưới dạng một APK duy nhất nữa, đặc biệt nếu ứng dụng đó đến từ Cửa hàng Play dưới dạng Android App Bundle. Khi giải nén, bạn có thể nhận được một hoặc nhiều tệp và việc biết được sự khác biệt sẽ giúp bạn quyết định nên giữ những gì:

Nếu mục tiêu của bạn là một bản sao lưu di động sẽ cài đặt trên một thiết bị khác, bạn thường muốn (a) một "APK phổ quát" hợp nhất được tạo bằng Hợp nhất APKS thành APK của chúng tôi hoặc (b) tất cả các phần tách được lưu trữ cùng nhau để trình cài đặt APK chia nhỏ như SAI có thể khôi phục chúng dưới dạng một đơn vị.

Cách thức hoạt động của quá trình trích xuất (Không cần root, hậu trường)

Hầu hết các ứng dụng "giải nén APK" không thực sự cần root vì Android hiển thị các tệp gói đã cài đặt thông qua đường dẫn đọc cấp hệ thống. Dòng chảy tiêu chuẩn là:

  1. Ứng dụng giải nén gọi PackageManager.getPackageInfo(package, ...) để lấy danh sách các ứng dụng đã cài đặt.
  2. Đối với ứng dụng đã chọn, nó sẽ đọc ApplicationInfo.sourceDir (đường dẫn của APK cơ sở, thường là /data/app/<package>-<hash>/base.apk và splitSourceDirs (đường dẫn của bất kỳ phần tách cấu hình nào)).
  3. Trình giải nén do người dùng cài đặt không thể đọc trực tiếp các đường dẫn này nhưng cơ chế FileProvider trong Android cho phép các thành phần hệ thống cấp quyền truy cập đọc tạm thời vào các URI cụ thể. OS làm cho phép mọi ứng dụng mở APK sở hữu của nó và APK của các ứng dụng khác bằng URI; đây là cố ý vì đường dẫn cài đặt luôn có nghĩa là mọi người đều có thể đọc được đối với các tác vụ như gỡ cài đặt và cập nhật.
  4. Trình trích xuất sao chép các byte vào thư mục người dùng có thể ghi (Tải xuống, thư mục bộ đệm trong ứng dụng hoặc bộ nhớ ngoài) và trình bày chúng dưới dạng tệp để chia sẻ hoặc cài đặt.

Các phương thức chỉ root (su; cp /data/app/..). bỏ qua API và đọc trực tiếp các đường dẫn thô. Chúng không nhanh hơn và không cần thiết đối với các ứng dụng không thuộc hệ thống.

Giải nén qua ADB (Được khuyến nghị để sao lưu)

Quy trình làm việc không phải ứng dụng rõ ràng nhất là ADB, quy trình mà hầu hết các nhà phát triển đã thiết lập. Hai lệnh thực hiện toàn bộ công việc:

# 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 ./

Đối với các ứng dụng APK phân tách, hãy lặp lại adb pull cho từng đường dẫn. Để có được một tệp có thể cài đặt duy nhất, hãy thả tất cả chúng vào Hợp nhất APKS thành APK của chúng tôi.

Những gì không thể được trích xuất

Giải nén trả về các tập tin cài đặt của ứng dụng. Nó trả về không:

Do đó, việc trích xuất phù hợp với các trường hợp sử dụng "Tôi muốn giữ lại một bản sao của trình cài đặt", nhưng không thể thay thế cho các bản sao lưu toàn bộ thiết bị thích hợp (yêu cầu công cụ gốc hoặc công cụ của nhà cung cấp).

Phân tích APK đã trích xuất của bạn

Sau khi bạn sao lưu ứng dụng của mình, hãy sử dụng bộ phần mềm trực tuyến của chúng tôi để kiểm tra siêu dữ liệu, biểu tượng và quyền của chúng.

Bắt đầu phân tích APK

Câu hỏi thường gặp (FAQ)

Việc giải nén một ứng dụng có bao gồm dữ liệu đăng nhập của tôi không?

Không. Việc trích xuất chỉ sao chép mã ứng dụng và tài nguyên. Nó không bao gồm dữ liệu tài khoản cá nhân, mật khẩu hoặc cài đặt của bạn vì lý do bảo mật.

Tôi có thể trích xuất các ứng dụng hệ thống như YouTube không?

Đúng. Tuy nhiên, một số ứng dụng hệ thống có thể phụ thuộc sâu sắc vào các phiên bản hệ điều hành cụ thể và có thể không cài đặt đúng cách trên các thiết bị khác.

APK được trích xuất sẽ đi đâu?

Hầu hết các ứng dụng giải nén đều lưu tệp vào thư mục có tên APK đã trích xuất hoặc Tải xuống trong bộ nhớ trong của điện thoại.

Sao lưu các ứng dụng đã cài đặt mà không làm mất cấu hình phân chia

Xây dựng kho ứng dụng cục bộ của riêng bạn là cách chắc chắn nhất để không bao giờ mất quyền truy cập vào các công cụ bạn yêu thích. Cả ứng dụng thân thiện với thao tác nhấn và thiết bị đầu cuối ADB đều đưa bạn đến đó và giải nén tập tin APK là cách an toàn, thiết thực để quản lý thiết bị Android của bạn. Sau khi sao lưu thư viện của mình, hãy dành chút thời gian xem xác minh chữ ký của các bản sao lưu đó để bạn biết rằng chúng không bị giả mạo theo thời gian.

Được thiết kế và ghi lại bởi Mst Shaefale Nhà phát triển chính và Kiến trúc sư gói Android • Đã xác minh trên Android 12–15

Bà Shaefale duy trì việc hợp nhất XAPK/APKS phía máy khách, trình phân tích cú pháp tệp kê khai nhị phân và các công cụ ký APK v1+v2 tại xapktoapk.com. Phát hiện lệnh đã lỗi thời hoặc thay đổi hệ điều hành? Gửi một ghi chú biên tập.