Làm cách nào để xem AndroidManifest.xml từ tệp APK?


309

Có thể xem Androidmanifest.xmltập tin?

Tôi chỉ thay đổi phần mở rộng của apktập tin thành zip. Tập ziptin này chứa Androidmanifest.xmltập tin. Nhưng tôi không thể xem nội dung của Androidmanifest.xml. Nó được mã hóa hoàn toàn.

Làm thế nào tôi có thể xem các Androidmanifest.xmltập tin?


Tôi có một tệp APK. Tôi cần xem tệp Androidmanifest.xml. bởi vì tôi đã sử dụng một khung Tệp APK đó cũng được sử dụng cùng một khung. Vì vậy, tôi cần xem cách định cấu hình tệp Androidmanifest từ tệp APK đó.
bharath

@Jason Rogers: AFAIK bạn có thể xem thông tin đó. Xem cái này
Vikas Patidar

Câu trả lời:


220

Có, bạn có thể xem XMLcác tập tin của một Android APKtập tin. Có một công cụ cho việc này:android-apktool

Nó là một công cụ cho các ứng dụng Android thứ ba, đóng, nhị phân

Cách thực hiện việc này trên Hệ thống Windows của bạn:

  1. Tải xuống tập tin apktool-install-windows- *
  2. Tải xuống tập tin apktool- *
  3. Giải nén cả hai vào thư mục Windows của bạn

Bây giờ sao chép APKtệp cũng trong thư mục đó và chạy lệnh sau trong dấu nhắc lệnh của bạn:

apktool d HelloWorld.apk ./HelloWorld

Điều này sẽ tạo một thư mục " HelloWorld" trong thư mục hiện tại của bạn. Trong đó, bạn có thể tìm thấy AndroidManifest.xmltệp ở định dạng được giải mã và bạn cũng có thể tìm thấy các XMLtệp khác trong "HelloWorld/res/layout"thư mục.

Đây HelloWorld.apklà tập tin APK Android của bạn.

Xem ảnh chụp màn hình dưới đây để biết thêm thông tin: văn bản thay thế


15
Điều này thật tuyệt, nhưng tôi muốn biết làm thế nào chỉ cần nhìn vào AndroidManifest.xml mà không phải tải xuống tất cả những điều này. Nó được mã hóa hay nén?
JohnnyLambada

1
@JohnnyLambada : Có, bạn có thể mở và xem nó trong một công cụ lưu trữ như: WinRar / WinZip / 7Zip nhưng nó không có ý nghĩa gì vì nó ở dạng được mã hóa.
Vikas Patidar

9
Các apktool không được chấp nhận. Tốt hơn nên tham khảo trang chủ dự án của họ cho phiên bản mới nhất.
De Khánh

1
Tôi nhận được: Ngoại lệ trong luồng "chính" brut.androlib.AndrolibException: Nhiều tài nguyên: tại brut.androlib.res.data.ResConfig.addResource (Nguồn không xác định)
WindRider

3
Bây giờ lệnh đã thay đổi cho phiên bản mới nhấtapktool d your_destination youraApk.apk
Pranoy Sarkar

109

Android Studio hiện có thể hiển thị điều này. Đi đến Build> Analyze APK...và chọn apk của bạn. Sau đó, bạn có thể xem nội dung của tệp AndroidManifset.


3
Tính năng này đã được thêm vào gần đây và tôi cũng muốn đề xuất điều này trừ khi bạn quan tâm đến việc sử dụng dòng lệnh và bạn có các công cụ nền tảng trong đường dẫn của mình được thiết lập.
anthonymousonori

8
điều này nên được nêu lên để trở thành câu trả lời tốt nhất, các phương pháp khác hiện đang phức tạp không cần thiết.
Sébastien

3
Cũng có một phiên bản dòng lệnh của tích hợp này: stackoverflow.com/a/54874783/89818
caw 25/2/19

46

aapt d xmltree com.package.apk AndroidManifest.xml

sẽ kết xuất AndroidManifest.xmltừ APK được chỉ định. Nó không ở dạng XML, nhưng bạn vẫn có thể đọc nó.

aapt (Công cụ đóng gói tài sản Android) là một công cụ tích hợp đi kèm với SDK Android.


45

Trong chủ đề này , Dianne Hackborn nói với chúng ta rằng chúng ta có thể lấy thông tin ra khỏi AndroidManifest bằng cách sử dụng aapt.

Tôi đã thực hiện lệnh unix nhanh này để lấy thông tin phiên bản:

aapt dump badging my.apk | sed -n "s/.*versionName='\([^']*\).*/\1/p"

Có thể làm điều đó ngay cả trong một ứng dụng Android? Ngoài ra, có thể lấy tất cả các tệp kê khai và không chỉ tên phiên bản không?
nhà phát triển Android

36

Google vừa phát hành một công cụ mã nguồn mở đa nền tảng để kiểm tra APK (trong số nhiều định dạng nhị phân Android khác):

ClassyShark là một công cụ kiểm tra nhị phân độc lập cho các nhà phát triển Android. Nó có thể duyệt một cách đáng tin cậy bất kỳ thực thi Android nào và hiển thị thông tin quan trọng như giao diện lớp và thành viên, số lượng dex và phụ thuộc. ClassyShark hỗ trợ nhiều định dạng bao gồm các thư viện (.dex, .aar, .so), các tệp thực thi (.apk, .jar,. Class) và tất cả các XML nhị phân của Android: AndroidManifest, tài nguyên, bố cục, v.v.

Ảnh chụp màn hình ClassyShark


3
Điều này dễ hơn 10000 lần so với Apktool!
Guilherme Campos Hazan

18

Bạn có thể sử dụng apkanalyzer, phiên bản dòng lệnh của Trình phân tích APK đi kèm với SDK Android. Chỉ cần thực hiện lệnh sau trên CLI:

/path/to/android-sdk/tools/bin/apkanalyzer manifest print /path/to/app.apk

Bạn chỉ phải thay thế /path/to/android-sdkbằng đường dẫn chính xác tới phiên bản SDK Android của bạn và /path/to/app.apkvới đường dẫn đến tệp APK của bạn.


8
Đây phải là câu trả lời được chấp nhận vì nó không yêu cầu cài đặt bất cứ thứ gì từ các nguồn chưa được xác minh.
c4k

lưu ý rằng điều này dường như không hoạt động trên Windows :( stackoverflow.com/a/54593118/997940
Yoav Feuerstein

Tôi gặp lỗi: Ngoại lệ trong luồng "chính" java.lang.IllegalStateException: Thuộc tính thư mục công cụ chưa được đặt, vui lòng đảm bảo bạn đang thực thi apkanalyzer, tôi không biết cách giải quyết
jk2K

Đây rất có thể là con đường bạn cần nếu bạn đang sử dụng macOS:~/Library/Android/sdk/tools/bin/apkanalyzer manifest print <apk>
Frederik

15

Bạn có thể sử dụng lệnh này: save vào file AndroidManifest.txt

aapt dump xmltree gmail.apk AndroidManifest.xml > AndroidManifest.txt

2
dlà một từ viết tắt cho dump, làm cho câu trả lời này giống hệt với câu trả lời này , đã được đăng hơn một năm trước.
Dan Dascalescu

4
Có, nhưng mã này lưu trong tập tin > AndroidManifest.txt.
Ahmad Aghazadeh

lol, đó là cùng một câu trả lời, việc bỏ tập tin không tạo ra sự khác biệt
Leonardo Sapuy


7

Có một công cụ trực tuyến cho phép bạn tải lên APK Nó dịch ngược nó và cuối cùng cho phép bạn tải xuống một zip với tất cả các nguồn, tệp XML biểu hiện, v.v., tất cả điều đó mà không phải cài đặt bất kỳ chương trình nào trên máy tính của bạn: http: / /www.javadecompilers.com/apk

Ngoài ra nếu bạn chỉ muốn kiểm tra một số thông số bạn có thể, bằng giao diện người dùng của họ


Đã làm việc trên APK vào tháng 8, không hoạt động trên một cái khác vào tháng 11
Dan Dascalescu

apktools dường như không tạo ra một thư mục cho tôi với đầu ra và aapt không hiển thị kết quả ở định dạng XML. Trang web này hoạt động như một lá bùa.
kregus

6

Để giải mã AndroidManifest.xmltập tin bằng axmldec :

axmldec -o output.xml AndroidManifest.xml

hoặc là

axmldec -o output.xml AndroidApp.apk

Điều này hoạt động và có thể dễ dàng cài đặt qua Homebrew:brew tap ytsutano/toolbox brew install axmldec
gmoz22

5

Aapt2, được bao gồm trong các công cụ xây dựng SDK Android có thể làm điều này - không cần công cụ của bên thứ ba.

$(ANDROID_SDK)/build-tools/28.0.3/aapt2 d --file AndroidManifest.xml app-foo-release.apk

Bắt đầu với công cụ xây dựng v29, bạn phải thêm lệnh xmltree:

$(ANDROID_SDK)/build-tools/29.0.3/aapt2 d xmltree --file AndroidManifest.xml app-foo-release.apk

Điều này không tạo ra XML gốc, nhưng thật gọn gàng nếu tôi chỉ cần nhìn vào một giá trị trong đó mà không phải trích xuất APK hoặc ghi vào một tệp tạm thời.
Raziel

2

Bạn cũng có thể sử dụng ứng dụng của tôi, Thám tử ứng dụng để xem tệp kê khai của bất kỳ ứng dụng nào bạn đã cài đặt trên thiết bị của mình.


0

Đây là một chủ đề cũ, nhưng tôi nghĩ tôi sẽ đề cập, trong điện thoại của bạn đã root, bạn có thể xem nó trực tiếp trên điện thoại của mình bằng ứng dụng thám hiểm root. Bạn thậm chí không phải giải nén nó để xem.


-1

Các tập tin cần phải được dịch ngược (hoặc deodex'd không chắc chắn cái nào). Nhưng đây là một cách khác để làm điều đó:

-Download free Tickle My Android tool on XDA: https://forum.xda-developers.com/showthread.php?t=1633333https://forum.xda-developers.com/showthread.php?t=1633333
-Unzip
-Copy APK into \_WorkArea1\_in\ folder
-Open "Tickle My Android.exe"
-Theming Menu
-Decompile Files->Any key to continue (ignore warning)
-Decompile Files->1->[Enter]->y[Enter]
-Wait for it to decompile in new window... Done when new window closes
-Decompiled/viewable files will be here: \_WorkArea3\_working\[App]\

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.