Tôi có thể lấy tập tin .apk của một ứng dụng đã cài đặt không?


9

Tôi đã triển khai tệp .apk ứng dụng của mình trên thiết bị Qualcomm. Bây giờ do không may mắn, máy tính xách tay của tôi đã phát triển ứng dụng này đã bị đánh cắp. Vì vậy, tôi không có mã ứng dụng bên mình. Tuy nhiên tôi có thiết bị mà trước đó tôi đã cài đặt ứng dụng của mình.

Vì vậy, câu hỏi của tôi là, tôi có thể lấy tệp .apk ứng dụng của mình từ thiết bị này không? Nếu có, xin vui lòng cho tôi biết làm thế nào để có được điều đó.

Bất kỳ trợ giúp là đánh giá cao.

Cảm ơn, bò tót

Câu trả lời:



4

Nếu bạn biết tên tệp đã cài đặt của apk (trên một số thiết bị có thể là myapp-1.apk hoặc myapp-2.apk chứ không chỉ myapp.apk), bạn có thể truy cập trực tiếp như một người dùng thông thường bao gồm một adb chạy như trên một thiết bị được bảo mật, vì vậy bạn sẽ có thể adb kéo nó. Nhưng nếu bạn không biết tên apk đã cài đặt , bạn không thể duyệt thư mục / data / app mà không cần root hoặc Aid_system.

Có thể đáng để đoán tên đã cài đặt - thử đơn giản, thử với -1.apk và -2.apk, v.v.

Có thể có một cách khác: Tôi tin rằng những điều sau đây sẽ hoạt động trên một thiết bị được bảo mật nhưng không có sẵn trước mặt tôi để kiểm tra nó.

EDIT: Ý tưởng mới để xác định tên tệp APK chính xác

1) adb pull /data/system/packages.xml

2) Xem qua nó cho mục nhập codePath của ứng dụng của bạn

3) adb kéo mà

EDIT: Liên quan đến ý tưởng cũ bên dưới, Matthew phát hiện ra rằng trong khi các tệp theo quy trình dưới / Proc đã đọc quyền trên thiết bị được bảo mật, chúng sẽ trống khi được đọc bởi một uid không có đặc quyền khác với chủ sở hữu của chúng. Vì vậy, điều này sẽ không làm việc.


1) Tải ứng dụng của bạn. Bạn cũng sẽ cần một máy có adb.

2) loại

adb shell ps 

và tìm dòng có tên ứng dụng của bạn:

app_1     11959 907   112984 27580 ffffffff afd0c5bc S com.clevername.myapp

3) lấy số trong cột thứ hai là id quá trình và xem bản đồ bộ nhớ ảo, trong trường hợp này tôi sẽ nhập

adb shell cat /proc/11959/maps

và tìm kiếm một dòng nơi nó đã ánh xạ tệp apk của riêng mình vào bộ nhớ

43e9c000-43ea3000 r--s 001f4000 b3:06 15393      /data/app/com.clevername.myapp-1.apk

4) Đó là tên tập tin bạn cần để kéo adb

adb pull /data/app/com.clevername.myapp-1.apk .

Việc kiểm tra các quyền của thư mục trong / Proc cho thấy điều này sẽ hoạt động đối với người dùng không có đặc quyền, tôi xin lỗi nếu không. Nếu bạn quen thuộc với việc sử dụng 'grep', bạn có thể sử dụng điều đó để tránh quét đầu ra theo cách thủ công.

Phụ lục: Tôi không thực sự chắc chắn câu chuyện trên các ứng dụng được cài đặt vào thẻ SD là gì.


Tôi vừa thử trên thiết bị an toàn của mình; adb shell cat /proc/####/mapskhông có gì trả lại
Matthew đọc

@Matthew ... lẻ, tôi đang mô phỏng trường hợp bảo mật và thấy hầu hết các tệp trong Proc có kích thước bằng 0, nhưng có thể đọc được. Trước đây tôi chỉ kiểm tra rằng họ sẽ có quyền đọc. Có thể nó được thực hiện bằng cách vô hiệu hóa chúng chứ không phải là quyền để các công cụ đọc / Proc không gặp phải lỗi truy cập liên tục. Oh well ... đoán ở biến thể tên apk cài đặt có thể là tốt nhất.
Chris Stratton

Tên tệp apk của tôi hoàn toàn điên rồ và không thể tin được, nhưng bằng cách sử dụng các gói DOM làm việc để tìm ra tên thật. :)
paleozogt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.