Mục lục
Thuộc trung tâm modding: Cách mod APK · Thay thế dùng dòng lệnh: hướng dẫn APKTool · Thay thế trên điện thoại: hướng dẫn MT Manager.
APK Studio là giao diện đồ họa mã nguồn mở, đa nền tảng để kiểm tra và chỉnh sửa dự án APK, với cây dự án, trình biên tập mã và console. Repository chính thức của nó liệt kê các khả năng hiện tại, nền tảng được hỗ trợ và bản tải về phát hành.
Nói thật ngay từ đầu: APK Studio không làm được điều gì mà APKTool không làm được. Nó thay đổi cách bạn tương tác với cùng các thao tác, điều quan trọng nếu cây dự án hợp với bạn hơn terminal. Hướng dẫn này bao gồm nó là gì, cách cài trên từng nền tảng, quy trình làm việc, giới hạn của nó, và cách nó so với các công cụ xung quanh.
APK Studio là gì?
APK Studio là ứng dụng desktop đa nền tảng giải mã APK thành một dự án có thể duyệt, cho phép bạn sửa Smali và tài nguyên trong một cửa sổ, rồi dựng lại gói khi bạn xong; pan console hiển thị output của công cụ nền tảng cho từng thao tác.
Thay thế đồ họa cho APKTool
Về kỹ thuật, các thao tác decode và build phản chiếu những gì APKTool làm từ dòng lệnh. Khác biệt nằm ở tiện ích thao tác: bấm để mở, sửa trong một pan, bấm để build, rồi xem output cuộn qua trong console bên dưới.
Nó làm được gì
Repository của dự án liệt kê decode APK, dựng lại, ký và cài đặt trong số các tính năng của nó, cùng trình biên tập và console; vì các công cụ và quy trình kèm theo có thể thay đổi, hãy xem ghi chú phát hành hiện tại và xác nhận phiên bản đã cài của bạn cung cấp tùy chọn ký nào.
Cách cài APK Studio
Cách cài khác nhau theo nền tảng, nên hãy lấy bản build phát hành từ repository chính thức của dự án và xác minh tệp đã tải về trước khi mở; cũng hãy kiểm tra hoạt động phát hành gần đây, vì một dự án không hoạt động có thể chậm hơn định dạng APK và những thay đổi của Android hiện tại.
Windows
Tải bản build phát hành, giải nén và chạy tệp thực thi. Không cần trình cài đặt. Nếu Windows SmartScreen cảnh báo một bản build chưa ký, điều đó là bình thường với các công cụ độc lập: hãy xác nhận repository nguồn trước khi cho phép nó.
Mac
Giải nén bản build phát hành và chuyển ứng dụng vào Applications. Gatekeeper có thể chặn ứng dụng chưa ký ở lần khởi chạy đầu tiên, bạn gỡ cảnh báo đó trong cài đặt Privacy & Security sau khi xác nhận tệp nhị phân đến từ đâu.
Linux
Giải nén bản phát hành và chạy tệp nhị phân, hoặc build từ nguồn nếu bản phân phối của bạn có đóng gói nó. Các phụ thuộc là tối thiểu, và cùng yêu cầu runtime Java mà APKTool có cũng áp dụng ở đây.
Tổng quan giao diện APK Studio
Giao diện xoay quanh ba pan: cây dự án bên trái, trình biên tập ở giữa và console bên dưới; cây định vị các tệp đã decode, trình biên tập sửa chúng, còn console báo cáo các thao tác decode và build có thành công hay không.
Trình duyệt dự án
Cây phản chiếu output đã decode: các thư mục Smali, tài nguyên, manifest và apktool.yml. Các thư mục mở rộng theo từng DEX với gói multidex, đây là cách nhanh nhất để thấy bạn đang đối mặt với bao nhiêu mã trước khi mở bất cứ thứ gì.
Trình biên tập
Bất kỳ tệp đã decode nào cũng mở trong pan giữa. Smali, XML và văn bản thuần đều hiển thị ở chế độ sửa được. Không có autocomplete hay kiểm tra hợp lệ cho Smali, nên ý kiến của trình biên dịch đến lúc build, không phải khi bạn gõ.
Console
Output thô của mọi lệnh decode và build xuất hiện ở đây. Khi build thất bại, pan này nêu tên tệp và dòng: hãy đọc nó trước khi đụng vào thứ khác, vì thông báo đó chính xác hơn bất kỳ phỏng đoán nào của bạn.
Menu build
Các hành động decode và build nằm trong thanh menu. Hành động decode nhận một đường dẫn APK, hành động build nhận một thư mục dự án, và cả hai chỉ cần một cú bấm khi dự án đã mở.
Cách giải mã bằng APK Studio
Mở một dự án, chọn tệp APK và chạy hành động decode; khi đó cây dự án sẽ được lấp bằng manifest, tài nguyên và các thư mục Smali của gói, với ứng dụng lớn mất nhiều thời gian hơn vì chứa nhiều tệp phải xử lý và hiển thị hơn.
Đọc dự án
Bắt đầu với manifest: quyền, activity và dải SDK cho bạn biết ứng dụng làm gì trước khi đọc một dòng mã. Rồi kiểm tra có bao nhiêu thư mục Smali tồn tại, điều cho biết cuộc tìm kiếm mã sẽ sâu đến đâu.
Tìm thứ bạn cần
Hãy tìm từ cây thay vì mở tệp một cách ngẫu nhiên. Các chuỗi hiển thị từ giao diện ứng dụng neo bạn vào đúng phương pháp chỉ trong một bước; việc đoán tên class hầu như không làm được điều đó.
Cách sửa bằng APK Studio
Sửa một tệp, lưu, build và thử trước khi đụng tệp tiếp theo; giữ một bản decode chưa sửa bên cạnh dự án đang làm để bạn so sánh các thay đổi và khôi phục một baseline đã biết là tốt nếu ứng dụng dựng lại thất bại trong lúc cài hoặc khởi chạy trên thiết bị thử nghiệm.
Sửa manifest
Quyền và các mục launcher ở đây là XML thuần. Xóa một quyền mà ứng dụng đang dùng thì ứng dụng sẽ crash trên đường mã đó, nên hãy xác minh sau mỗi lần xóa bằng tài liệu tham khảo quyền để kiểm tra mỗi mục thực sự làm gì.
Sửa Smali
Đổi một phép so sánh hoặc bỏ qua một nhánh, giữ nguyên số lượng register. Trình biên tập sẽ không cảnh báo bạn về register không khớp: build hoặc runtime sẽ cảnh báo, và đó là cách học cùng bài học chậm hơn và tốn kém hơn.
Sửa tài nguyên
Các chuỗi và giá trị dưới res/ là hạng mục an toàn nhất để thay đổi. Giá trị sai thì trông sai; chúng hiếm khi kéo sập cả ứng dụng theo.
Dựng lại và ký
Chạy hành động build và đọc output console để xác định điểm thành công hay tệp đã gây ra thất bại; dự án có nêu hỗ trợ ký, nên hãy xem các tùy chọn trong phiên bản đã cài của bạn và xác minh chứng chỉ kết quả trước khi cài, theo hướng dẫn ký.
Output console cho bạn biết gì
Log decode và build phản chiếu thông điệp của công cụ nền tảng, nên một thất bại đọc giống nhau tại đây như trong terminal. Dòng lỗi đầu tiên nêu tên tệp; mọi thứ sau đó thường chỉ là ngữ cảnh. Hãy sửa tệp được nêu tên và chạy lại thay vì đọc toàn bộ trace.
Output đi đâu
Các gói đã build được ghi vào thư mục output của dự án, theo quy ước là một thư mục con dist bên trong thư mục đã decode. Hãy giữ dự án đang làm và bản decode nguyên vẹn của bạn như hai dự án riêng, để một lần build không bao giờ ghi đè tệp mà bạn đang so sánh.
Khi nào dùng APK Studio thay vì dòng lệnh
APK Studio hợp với việc học, duyệt dự án trực quan và giữ tệp cùng log trong một cửa sổ; tự động hóa dòng lệnh hoặc truy cập decoder mới nhất có thể khiến công cụ khác hợp hơn, nên hãy so sánh những nhu cầu đó trước khi chọn một quy trình làm việc cho công việc thường xuyên.
Nó hữu ích khi
Bạn đang học, vì mỗi hành động đều có một nút nhìn thấy được và output của nó cuộn ngay bên dưới. Nó hữu ích khi bạn kiểm tra nhiều hơn build, vì duyệt một cây dự án hơn hẳn việc điều hướng các thư mục cho các tác vụ đọc. Và nó hữu ích khi bạn muốn một cửa sổ chứa cây, tệp và log.
Nó không hữu ích khi
Bạn viết script cho cùng chuỗi decode-build trên nhiều tệp, vì dòng lệnh ghép được còn GUI thì không. Và nó không hữu ích khi bạn cần logic decode mới nhất: bất kể APK Studio bọc lấy thứ gì, nó bọc một phiên bản cụ thể, và một decoder lỗi thời sẽ đọc sai các định dạng APK mới.
Các lỗi APK Studio thường gặp
Các thất bại build và decode thường xuất phát từ các thao tác APKTool nền tảng hoặc các tệp dự án, nên hãy kiểm tra console của APK Studio từ dòng lỗi đầu tiên; nó nêu tên giai đoạn và thường cả tệp cần được chú ý trước lần build tiếp theo.
Build thất bại ở Smali
Console nêu tên tệp và dòng. So sánh với bản decode nguyên vẹn của bạn, sửa lệnh bạn đã thay đổi, rồi build lại. Đừng bao giờ ký một build thất bại hay cố cài nó.
Console hiện lỗi công cụ
Có thể là runtime Java bị thiếu, hoặc một tệp framework mà bước decode cần. Hãy sửa môi trường thay vì dự án: chạy lại decode sau khi cài Java, và cài các framework bằng apktool if cho các gói hệ thống.
Dự án không mở được
Một thư mục dự án đã bị di chuyển, hoặc metadata do một phiên bản khác của công cụ ghi. Hãy tạo lại dự án từ APK gốc thay vì cố sửa thư mục; một lần decode mới mất ít thời gian hơn việc gỡ lỗi metadata cũ.
Decode tạo ra thư mục rỗng
Một lần decode bị gián đoạn, một tệp nguồn bị hỏng, hoặc một gói mà decoder nền tảng không hỗ trợ. Hãy trích lại APK từ thiết bị với hướng dẫn trích xuất và decode lại trước khi đi sâu điều tra bất cứ thứ gì.
Buổi làm việc đầu tiên, từng bước
Hãy dùng một gói bạn tự trích xuất cho buổi đầu tiên này, rồi theo sáu giai đoạn: decode, kiểm tra, sửa, build, ký và cài; điều này kiểm tra xem giao diện dự án có hợp với quy trình làm việc của bạn hay không mà không phụ thuộc một bản tải về chưa xác minh hay đổi ứng dụng chính của bạn.
- Mở ứng dụng và tạo một dự án trỏ vào tệp APK của bạn.
- Chạy decode và đợi cây được lấp đầy.
- Mở
AndroidManifest.xmlvà đọc danh sách quyền. - Đổi app label thành
My Test Build, lưu tệp. - Chạy build và xác nhận đường dẫn output trong console.
- Ký bản output, gỡ ứng dụng gốc và cài bản dựng lại.
Nếu cả sáu bước trôi chảy mà không có gì bí ẩn, công cụ đó thuộc về quy trình của bạn. Nếu bước 5 thất bại trên một tệp bạn không đụng tới, đó là vấn đề ở decoder chứ không phải ở sửa đổi của bạn, và phiên bản dòng lệnh trong hướng dẫn APKTool là phương án dự phòng.
APK Studio so với APKTool và MT Manager
APK Studio, APKTool và MT Manager bao phủ các thao tác gói tương tự nhau qua những giao diện khác nhau; hãy so sánh nền tảng, chỉnh sửa, ký và tự động hóa bên dưới để chọn công cụ khớp với giao diện desktop, build theo script hay quy trình chỉ dùng điện thoại cho dự án và trình độ của bạn.
| Tác vụ | APK Studio | APKTool | MT Manager |
|---|---|---|---|
| Nền tảng | Máy tính, GUI | Máy tính, CLI | Điện thoại, GUI |
| Giải mã và build | Có | Có | Có |
| Sửa Smali | Có, qua cửa sổ | Có, trong tệp | Có, trên thiết bị |
| Ký output | Bước riêng | Bước riêng | Tích hợp sẵn |
| Script và version control | Hạn chế | Hạng nhất | Không |
| Bảo trì | Cần kiểm tra hoạt động | Đang hoạt động | Đang hoạt động |
Hãy chọn APKTool khi bạn muốn script, version control hoặc chắc chắn luôn theo kịp các bản Android hiện tại. Chọn MT Manager khi điện thoại là thiết bị duy nhất bạn có. Chọn APK Studio khi một cây dự án đồ họa thực sự giúp bạn làm việc.
Cách nhanh nhất để đánh giá nó: decode một gói bạn đã trích với hướng dẫn trích xuất, đọc manifest trong trình biên tập, rồi dựng lại mà không thay đổi gì. Nếu vòng đó chạy sạch trên máy bạn, công cụ hợp với quy trình làm việc của bạn.
Điểm chính
- APK Studio là giao diện đồ họa bọc quanh cùng chu trình decode-build mà APKTool chạy từ dòng lệnh.
- Cây dự án, trình biên tập và console gói gọn trong một cửa sổ; không cần terminal.
- Hãy kiểm tra hoạt động của repository trước khi dùng, và giữ apksigner cho bước ký.
Các câu hỏi thường gặp
APK Studio là gì?
APK Studio là giao diện đồ họa đa nền tảng cho việc giải mã và biên dịch lại APK. Nó bọc chu trình decode-build trong một cửa sổ dự án kèm trình biên tập và console, nên bạn có được khả năng của APKTool mà không phải sống trong terminal. Hãy thử nó trước.
APK Studio có an toàn không?
Mã nguồn là công khai, và các bản bạn tự biên dịch từ repository là con đường an toàn nhất. Giống bất kỳ công cụ nào mở tệp của bên thứ ba, hãy quét thứ bạn tải về và chỉ giải mã những gói bạn có được một cách hợp lệ. Hãy tin vào repository.
Làm sao giải mã bằng APK Studio?
Tạo hoặc mở một dự án, trỏ nó vào tệp APK, rồi chạy hành động decode. Cây dự án sẽ đầy các thư mục Smali, manifest đã giải mã và tài nguyên mà bạn có thể mở và sửa trong trình biên tập tích hợp. Hãy đọc trước khi sửa.
APK Studio có tốt hơn APKTool không?
Nó dễ tiếp cận hơn, chứ không mạnh hơn. Mọi thứ APK Studio làm đều chạy qua cùng logic decode và build nền tảng, nên hãy chọn nó nếu cây dự án đồ họa hợp với bạn, và giữ dòng lệnh nếu script hay tự động hóa quan trọng.
APK Studio có cần root không?
Không. Nó thao tác trên các tệp trong máy tính của bạn, và APK bạn đưa cho nó có thể lấy ra từ điện thoại qua ADB mà không cần root. Root không đóng vai trò nào trong chu trình decode - sửa - dựng lại. Một tài khoản người dùng thường là đủ cho mọi bước.
APK Studio còn được duy trì không?
Tình trạng duy trì của APK Studio có thể thay đổi theo thời gian, nên hãy xem các bản phát hành và commit gần đây của repository chính thức trước khi phụ thuộc vào nó. Nếu các bản cập nhật đã chậm lại, logic decode kèm theo có thể lạc hậu so với định dạng APK hiện tại. Hãy so sánh phiên bản hiện tại với APKTool trước khi bắt tay vào dự án.
APK Studio có ký APK được không?
Nó có thể chạy hoặc hướng dẫn bước ký sau khi build, nhưng ký không phải công việc cốt lõi của nó. Bản dựng lại từ bất kỳ công cụ nào vẫn cần chứng chỉ trước khi Android cài được, nên hãy giữ apksigner hoặc trình ký trên điện thoại trong quy trình.
APK Studio và Android Studio khác nhau thế nào?
Android Studio dựng ứng dụng Android từ dự án nguồn, còn APK Studio mở các tệp APK hoàn chỉnh để kiểm tra và chỉnh sửa. Chúng phục vụ những giai đoạn phát triển khác nhau: build từ nguồn so với phân tích gói. Hãy chọn dựa trên việc bạn có mã nguồn dự án hay chỉ có một tệp APK để xem xét.