2010-08-21 38 views
5

Làm cách nào để thêm tệp theo cách thủ công vào gói APK của Android?Android: Cách thêm tệp vào apk theo cách thủ công?

+0

Tôi không nghĩ rằng điều đó có thể xảy ra vì bạn cần đăng ký lại apk. cũng. Bạn có nghĩa là từ bên trong ứng dụng của bạn theo chương trình, đúng - hoặc vào gói ứng dụng đã có mà không cần phải xây dựng lại mọi thứ? –

+0

Tôi có nghĩa là sau đó chèn thủ công tệp vào APK được xây dựng – zer0stimulus

Trả lời

6

Gói ứng dụng là một lọ là mã zip. Vì vậy, bạn có thể sử dụng bất kỳ công cụ nào điều khiển các khóa kéo.

Tuy nhiên, có thêm một sự phức tạp: nền tảng Android yêu cầu tất cả các tệp trong apk (ngoại trừ các tệp trong thư mục META-INF) sẽ được ký. Vì vậy, bạn cần gọi lại jarsigner để ký tất cả các gói. Sau đó, bạn cũng nên gọi lại số zipalign.

Bạn phải ký APK đã sửa đổi với cùng khóa được sử dụng để ký APK gốc. Đây là toàn bộ điểm của chữ ký: nó cho biết rằng gói không bị giả mạo mà không có sự chấp thuận của người ký. (Trên thực tế, bạn có thể đăng nhập bằng một khóa khác, nhưng sau đó bạn sẽ không thể truy cập bất kỳ dữ liệu nào được tạo bởi ứng dụng gốc hoặc ngược lại.)

Tập lệnh kiến ​​cung cấp với bộ phát triển Android chứa tự động hóa để chạy jarsigner và zipalign.

+0

Thư mục 'META-INF' sẽ bị bỏ qua, chứ không phải MANIFEST. Việc xác minh được thực hiện trong PackageParser.collectCertificates() –

7

Có một công cụ gọi là aapt đi kèm với Android SDK. Bạn có thể sử dụng nó để thêm/xóa/liệt kê các tệp trong một gói ứng dụng hiện có. Chạy aapt mà không có bất kỳ thông số nào và nó sẽ in hướng dẫn sử dụng. Để thêm một sử dụng file:

aapt add MyApp.apk file1 file2 ... 
+1

Bạn có cần phải ký lại hoặc sử dụng zip align với điều này không ?? – zezba9000

+0

@ zezba9000 Có, bạn cần phải ký lại và zipalign apk. – naXa

0

hoặc bạn chỉ có thể mở nó, chèn tập tin, goto

META-INF>MANIFEST.MF 

Lấy tập tin bạn muốn chèn

SHA1 - Checksum 

Thêm nó vào Manifest.

Các vấn đề liên quan