Làm thế nào để dịch ngược và Theme Android APK

Bạn đã bao giờ mở một ứng dụng Android và không thích chủ đề màu sắc được sử dụng? Điều gì sẽ xảy ra nếu bạn muốn thay đổi nền trắng trong ứng dụng thành màu đen chẳng hạn? Hôm nay tôi sẽ chỉ cho bạn cách biên dịch một tệp .APK để bạn có thể chỉnh sửa các tệp bên trong, sau đó biên dịch lại và cài đặt nó trên điện thoại Android của bạn.

Lưu ý: Một số ứng dụng khó chủ đề hơn các ứng dụng khác. Ví dụ như Facebook Messenger nổi tiếng là một chủ đề khó. Tôi sẽ hướng dẫn bạn qua hướng dẫn này bằng cách sử dụng ứng dụng Dropbox làm ví dụ, vì đây là một trong những ứng dụng dễ chỉnh sửa nhất.

Yêu cầu

  1. Notepad ++
  2. APKTool + AAPT mới nhất
  3. Tập lệnh công cụ APKMulti
  4. Trình chỉnh sửa ảnh như Photoshop / GIMP
  5. [Tùy chọn] Dropbox .apk (để làm theo hướng dẫn này)

Tải xuống tất cả các công cụ cần thiết và cài đặt chúng trên PC của bạn, bao gồm cả test.apk được cung cấp ở trên. Dropbox là một trong những ứng dụng dễ dàng hơn cho chủ đề, vì vậy chúng tôi sẽ sử dụng nó cho hướng dẫn này.

Bạn cũng nên chuyển framework-res.apk từ điện thoại sang PC, nó nằm trong / system / framework / trên bộ nhớ trong của bạn.

Thả APKTool và AAPT bên trong thư mục Khác bên trong thư mục chính của APK Multi Tool.

Kéo test.apk vào thư mục Place-apk-here-for-modding bên trong thư mục APK Multi Tool, và bạn sẽ được chào đón bằng một terminal lệnh.

Nhấn phím bất kỳ để tiếp tục, và bạn sẽ thấy một menu đầu cuối với một loạt các tùy chọn. Chọn tùy chọn 24.

Bạn sẽ quay trở lại màn hình thiết bị đầu cuối chính, nhưng test.app sẽ là dự án của bạn. Vì vậy, nhấn 9 để dịch ngược gói ứng dụng, sau đó nhấn 12 để chạy thử nghiệm. Đây là một thực hành tốt để xem liệu có điều gì đó được thiết lập sai hay không. Nếu ứng dụng xây dựng chính xác, hãy nhấn 2 và thu nhỏ tập lệnh xuất hiện.

Kể từ khi xây dựng kiểm tra kiểm tra, chúng ta hãy đi sâu vào chỉnh sửa mã XML của gói ứng dụng. Vui lòng theo dõi cẩn thận.

Bên trong thư mục .apk được trích xuất, vào thư mục res và mở AndroidManifest.xml bằng Notepad ++. Bây giờ nhấn CTRL + F để tìm chuỗi sau:

android: nền

Sử dụng tùy chọn Tìm tất cả và sẽ có khoảng 190 chuỗi được tìm thấy. Vì vậy, bây giờ bạn cần phải đi qua từng chuỗi được đánh dấu, để đảm bảo bạn không bỏ lỡ bất kỳ khi nào chúng tôi thay đổi màu nền của ứng dụng.

Cuộn qua cho đến khi bạn tìm thấy Camera_upload_grid.xml chứa chuỗi android: background = @ * android: color / white. Sao chép toàn bộ chuỗi đó và nhấn CTRL + H để hộp thoại Thay thế bật lên. Dán chuỗi vào các dòng trên cùng và dưới cùng, nhưng chúng tôi sẽ cần phải thay đổi nó.

Bên trong thư mục .apk đã biên dịch, vào /res/values/colors.xml và mở nó trong Notepad ++. Hãy tìm dòng abs__background_holo_dark, đó chắc chắn là một nền tảng. Vì vậy, bây giờ sao chép chuỗi đó và quay trở lại tệp XML đầu tiên mà chúng tôi đã mở, với hộp Thay thế vẫn mở và dòng dưới cùng dán chuỗi bạn vừa sao chép. Vì vậy, bây giờ bạn sẽ có trong dòng dưới cùng của cuộc đối thoại Thay thế:

android: background = @ color / abs__background_holo_dark

Bây giờ nhấn Replace All, và nó sẽ thay đổi tất cả các @android: color / white's để sử dụng background_holo_dark để thay thế. Bây giờ hãy tiếp tục cuộn qua toàn bộ .xml, tìm kiếm bất kỳ chuỗi android: background nào đang sử dụng giá trị hex (#fffffff) hoặc bất kỳ thứ gì khác ngoài những gì chúng tôi vừa thay thế chúng bằng. Đối với những cái bạn tìm thấy, thay đổi các chuỗi để sử dụng cái mới (abs__background_holo_dark).

Vì vậy, chúng tôi đã thay đổi nền, bây giờ chúng tôi sẽ thay đổi màu văn bản. Vì vậy, hãy làm theo các thủ tục tương tự như chúng tôi đã làm, nhưng lần này làm một CTRL + F cho android: textColor. Bạn sẽ nhận được khoảng 166 dòng được tìm thấy.

Bạn sẽ thấy những thứ như android: textColor = # ffbbbbbb, v.v. Vì vậy, hãy nhìn vào bên trong Colors.xml một lần nữa và chúng ta cần tìm ra những dòng để thay thế cho màu văn bản.

Bạn có thể thấy android: textColor = # ffbbbbbb, #ffffffff, # ff717171 và #ffcccccc trong ảnh chụp màn hình và trong kết quả tìm kiếm của bạn trong Note ++. Mở lại tệp Colors.xml của bạn ngay bây giờ để tìm dòng nào chúng tôi muốn sử dụng cho màu văn bản.

Vì vậy, hãy quay lại tệp .xml đầu tiên và thực hiện CTRL + H cho cuộc hội thoại Thay thế lần nữa. Bây giờ copypaste chuỗi android: textColor = # ffbbbbbb vào trên cùng và dưới cùng, và thay đổi dòng dưới cùng thành android: textColor = @ color / text.

Bây giờ một lần nữa, tìm kiếm thông qua tất cả các dòng android: textColor và thay đổi bất kỳ thứ gì có giá trị hex trong chuỗi. Cuối cùng, khi bạn nhận được tệp styles.xml, bạn muốn loại bỏ nghịch đảo từ một vài dòng, bắt đầu từ dòng 260 và tiếp tục xuống dưới cho một vài dòng. Vì vậy, xóa Inverse từ những chuỗi đó.

Tiếp theo bạn sẽ thấy một số giá trị hex xung quanh trên các dòng 527, 536, 573, 579, 585, 601 và một vài giá trị khác. Thay thế từ (#ffffffff) thành (@ color / text).

Nhấn CTRL + F để tìm kiếm trong Notepad ++ cho cacheColorHint, bộ chia, @ * android: color /, và Inverse .

Bộ nhớ cacheColorHint là nền cuộn, vì vậy chúng tôi cần đảm bảo rằng chúng đang sử dụng màu nền của chúng tôi. Các bộ chia là tự giải thích và chúng tôi có thể thay đổi giá trị hex của chúng nếu bạn muốn. Điều duy nhất là bạn không được chạm vào bất cứ thứ gì trỏ tới @drawable. Đó là những hình ảnh thường được lưu trữ dưới dạng tệp .png ở nơi khác trong thư mục .apk.

Khi bạn tìm kiếm nghịch đảo, nó sẽ hiển thị các tham chiếu đến textAppearanceInverse. Bạn cần phải bấm đúp vào mỗi một trong số này và xóa nghịch đảo từ những chuỗi đó.

Cuối cùng, tìm kiếm @ * android: color / sẽ chỉ kiểm tra lại nếu chúng tôi bỏ lỡ bất kỳ chỉnh sửa khung nào. Nếu bạn tìm thấy bất kỳ nội dung nào có nội dung android: popupBackground> @ * android: color / white, bạn cần thay đổi nó thành android: popupBackground> @ color / abs__background_holo_dark. Điều này bao gồm dòng 911, có thể gây nhầm lẫn vì nó đã trỏ đến android: color / black.

Tiếp theo, chúng ta sẽ mở res / values ​​/ colors.xml và thay đổi nó thành như sau:

Tiếp theo res / values ​​/ styles.xml và cuộn xuống dòng 328. Thay đổi nó như sau:

Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đây

() nên được thay đổi thành ()

Làm tương tự cho dòng 479, thay đổi ánh sáng thành màu đen .

Bây giờ đi vào res / values-v11 / styles.xml, và loại bỏ ánh sáng nơi nó nói Holo.Light .

Tiếp theo, bạn sẽ mở res / values-v14 / styles now, chứa rất nhiều chuỗi. Vì vậy, trên 46 dòng đầu tiên, bạn muốn loại bỏ bất kỳ tham chiếu Light and Inverse nào, và sau đó thay đổi cha mẹ trên dòng 53 và 54 thành @ * android: style / Theme.Holo.

Trên dòng 69, bên phải cha mẹ, loại bỏ ánh sáng từ @ * android: style / Theme.Holo.Light.Dialog cha mẹ.

Đây là rất nhiều công việc, phải không? Có lẽ từ bây giờ bạn sẽ được đánh giá cao hơn về các chủ đề và giao diện ứng dụng!

Tiếp theo, chúng ta sẽ đi vào thư mục res / color . Có một số tập tin văn bản trong đó đang trỏ đến màu đen. Mở res / colors / action_mode_item_text_color_state_list.xml

Đó là cách nó nhìn vào cổ phiếu. Dưới đây là cách bạn cần làm.

Bạn cần phải biến những thay đổi đó thành các tệp xml sau bên trong thư mục / res / colors: Bottom_button.xml, Button_update.xml, Filelist_text_name.xml, Filelist_text_small.xml, Link_button.xml, Local_filelist_text_name.xml, Local_filelist_text_small.xml, ss_bottom_bottom_text_color_dark. xml, ss_bottom_bottom_text_color_light.xml, tab_text_foreground.xml.

Khi bạn đã hoàn tất, mở / res / drawable và có các xml kiểm soát màu nền. Vì vậy, đi qua chúng và làm cho họ trông như thế này:

Áp dụng các thay đổi tương tự cho tất cả các tệp drawable.xml khác.

Bây giờ hãy mở test.apk và nhấn CTRL + nhấp trái để đánh dấu smali và AndroidManifest, sau đó nhấp chuột phải và chỉnh sửa bằng Notepad ++ lần nữa. Đồng ý với tất cả các tệp smali 1999. Khi tải, hãy thực hiện tìm kiếm CTRL + F cho -0x100 (màu đen)

Bạn sẽ nhận được khoảng 8 lượt truy cập và thứ bạn muốn là smali / com / dropbox / android / activity / TextEditActivity.smali, trên dòng 599. Nhấp đúp vào dòng đó.

Dòng 599 chứa -0x100 trong đó, và dòng 601 có SetTextColor. Ngoài ra còn có một biến phù hợp với dòng 599. Vì vậy, để giải thích ngắn gọn, -0x100, -0x1000000 và thậm chí 0x0 có nghĩa là màu đen, -0x1000000 cũng là màu đen và thậm chí 0x0. Thay đổi dòng 599 bằng cách loại bỏ hai 0 từ 100 và loại bỏ / high16 như thế này:

Tiếp theo, chúng ta sẽ tìm kiếm @ * android: style, nhưng trong smali. Các xml sẽ chứa thêm 0 sau x, nhưng trong smali chúng ta không sử dụng nó. Nó cần phải là 0x103004f thay vì 0x0103004f.

Thực hiện tìm kiếm trong Notepad ++ cho @ * android: style / có chứa 0x103.

Lần truy cập thứ hai là const v7, 0x1030073. Tìm kiếm trong tệp public.xml của bạn từ framework-res.apk một lần nữa. Bạn sẽ thấy rằng nó là id cho Theme.Holo.Light.Dialog. Bạn sẽ cần thay đổi nó thành id công khai của kiểu chủ đề đối diện.

Vì đây là Theme.Holo.Light.Dialog, bạn muốn làm cho nó Theme.Holo.Dialog. Theme.Holo.Dialog có id là 0x103006f. Điều đó sẽ thay đổi một hộp thoại cảnh báo bật lên để sử dụng chủ đề dựa trên Holo tối hơn thay vì chủ đề dựa trên Holo.Light nhẹ hơn.

Cái tiếp theo chúng ta cần thay đổi là 0x103006e là Theme.Holo.Light. Vì vậy, đi trước và làm cho nó theo phong cách chủ đề ngược lại. Trong tệp public.xml của bạn từ framework-res.apk, bạn sẽ thấy id cho Theme.Holo là 0x0103006b. vì vậy hãy thay đổi dòng đó để trông như thế này:

Chỉ có thêm 2 trong số này để trải qua. Tiếp theo là 0x103000c, dành cho Theme.Light trong tệp public.xml. Điều ngược lại là Theme.Black, không phải ThemeHolo. Vì vậy, trong public.xml bạn sẽ thấy id cho Theme.Black là 0x01030008 - thay đổi nó để trông như thế này:

Trong các ứng dụng khác, sẽ có những thứ khác để chỉnh sửa và thay đổi, và với đủ thực hành bạn sẽ có thể tái chủ đề gần như bất cứ điều gì. Nhưng hiện tại, chúng ta đã hoàn thành tất cả các bit mã ( cuối cùng!) .

Vì vậy, bây giờ bạn có thể mở tập lệnh từ Apk Multi Tool và nhấn 12 để biên dịch ứng dụng. Nếu bất kỳ lỗi nào được hiển thị, bạn có thể thử xem bên trong nhật ký lỗi cho những gì đã xảy ra, nhưng rất có thể bạn đã mắc lỗi đánh máy hoặc lỗi khác trong quá trình chỉnh sửa mã.

Khi xây dựng xong, nhấn 2 và sau đó 13 để ký lại ứng dụng.

Ứng dụng cổ phiếu chứa một thư mục có tên Mẫu - bạn cần phải kéo nó vào gói ứng dụng chưa ký của mình bằng cách sử dụng một cái gì đó như 7zip. Sao chép unsigned.apk vào thư mục place-apk-this-for-signed bên trong Apk Multi Tool. Bây giờ nhấn 18 trong tập lệnh đầu cuối để lô đăng ký các ứng dụng trong thư mục đó. Khi nó được thực hiện, kịch bản sẽ tự động thoát khỏi chính nó. Bây giờ bạn có thể tải .apk vào thiết bị của bạn!

Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đây

Facebook Twitter Google Plus Pinterest