Decompile ve Tema Android APK'ları Nasıl

Bir Android uygulamasını hiç açtınız ve kullandığınız renk temasını beğenmediniz mi? Örneğin, bir uygulamadaki beyaz bir arka planı siyah olarak değiştirmek isterseniz, örneğin? Bugün size bir .APK dosyasının nasıl derleneceğini göstereceğim, böylece içindeki dosyaları düzenleyebilir, sonra yeniden derleyip Android telefonunuza kurabilirsiniz.

Not: Bazı uygulamaların teması diğerlerinden daha zordur. Örneğin Facebook Messenger'ın teması çok zor. Bir örnek olarak Dropbox uygulamasını kullanarak bu kılavuzda size eşlik edeceğim, çünkü en kolay düzenleme arasında.

Gereksinimler

  1. Notepad ++
  2. APKTool + en son AAPT
  3. APKMulti Araç Komut Dosyası
  4. Photoshop / GIMP gibi bir fotoğraf düzenleyici
  5. [İsteğe Bağlı] Dropbox .apk (bu kılavuzu takip etmek için)

Gerekli tüm araçları indirin ve yukarıda sağlanan test.apk dahil olmak üzere bunları bilgisayarınıza yükleyin. Dropbox, teması kolay uygulamalardan biridir, bu yüzden bu eğitim için kullanacağız.

Framework-res.apk dosyasını da telefonunuzdan PC'nize aktarmalısınız, dahili depolama alanınızda / system / framework / dizinindedir.

APK Çok Aracı'nın ana dizininin içindeki Diğer klasör içindeki APKTool ve AAPT'yi bırakın.

Test.apk dosyasını, APK Multi Tool dizinindeki Yer-apk-here-for-modding klasörüne sürükleyin ve bir komut terminali ile karşılaşacaksınız.

Devam etmek için herhangi bir tuşa basın ve bir grup seçenek içeren bir terminal menüsü göreceksiniz. Seçenek 24'ü seçin.

Ana terminal ekranına geri döneceksiniz, ancak test.app projeniz olacak. Bu yüzden, apk'yı yeniden derlemek için 9'a basın ve ardından bir test oluşturmayı çalıştırmak için 12'ye basın. Bu, bir şeyin yanlış ayarlanmış olup olmadığını görmek için iyi bir uygulamadır. Uygulama doğru oluşturuyorsa, 2'ye basın ve görünen komut dosyasını en aza indirin.

Test kurulumu kontrol edildiğinden, apk'nin XML kodunu düzenlemeye başlayalım. Lütfen dikkatli bir şekilde takip edin.

Ayıklanan .apk klasörünün içinde, res klasörüne gidin ve AndroidManifest.xml dosyasını Notepad ++ ile açın. Şimdi aşağıdaki dizeyi bulmak için CTRL + F tuşlarına basın:

android: Arka plan

Tümünü Bul seçeneğini kullanın ve 190 karakter dizisinin bulunması gerekir. Şimdi, uygulamanın arka plan rengini değiştirdiğimizde hiçbir şeyi kaçırmamanızı sağlamak için, vurgulanan her dizeden geçmeniz gerekiyor.

Android: background = @ * android: color / white dizesini içeren Camera_upload_grid.xml dosyasını buluncaya kadar ilerleyin. Tüm dizeyi kopyalayın ve Değiştir iletişim kutusu açılır, böylece CTRL + H tuşlarına basın. Dizeyi üst ve alt satırlara yapıştırın, ancak değiştirmemiz gerekecek.

Decompiled .apk klasörünün içinde /res/values/colors.xml dosyasına gidin ve Notepad ++ içinde açın. Kesinlikle bir arka plan olan abs__background_holo_dark satırına bakın. Şimdi bu dizeyi kopyalayın ve değiştirdiğimiz ilk XML dosyasına geri dönün, Değiştir kutusu hala açık ve alt satırda kopyaladığınız dizeyi yapıştırın. Şimdi, Değiştir iletişiminin alt satırında bulunmalısınız:

robot: arka plan = @ renkli / abs__background_holo_dark

Şimdi Tümünü Değiştir'e basın ve bunun yerine, @android: color / white öğelerinin tümünü değiştirerek background_holo_dark değerini kullanın. Şimdi tüm .xml boyunca kaydırma yapmaya devam edin, android arıyor: hex değeri (#fffffff) kullanan bir arka plan dizgisi veya yeni değiştirdiğimiz şeyden başka bir şey. Bulduğunuz olanlar için, yeni olanı kullanmak için dizeleri değiştirin (abs__background_holo_dark).

Bu yüzden arka planı değiştirdik, şimdi metin rengini değiştireceğiz. Öyleyse, yaptığımız prosedürün aynısını izleyin, ancak bu sefer android için bir CTRL + F yapın: textColor. Bulunan yaklaşık 166 satır alırsınız.

Android gibi şeyler göreceksiniz: textColor = # ffbbbbbb, vb. Yine Colors.xml içine bakmak ve metin rengi için hangi satırları değiştirmek gerektiğini anlamaya ihtiyacımız var.

Ekran görüntüsünde ve arama sonuçlarında Not ++ 'da android: textColor = # ffbbbbbb, #ffffffff, # ff717171 ve #ffcccccc' i görebilirsiniz. Metin rengi için kullanmak istediğimiz satırı bulmak için şimdi Colors.xml'nizi tekrar açın.

Bu yüzden ilk .xml'ye geri dönün ve Replace diyaloğu için tekrar CTRL + H yapın. Şimdi android: textColor = # ffbbbbbb dizesini yukarı ve aşağıya kopyalayıp android için alt çizgiyi değiştirin: textColor = @ color / text.

Şimdi bir kez daha, tüm android: textColor satırlarında arama yapın ve dizede bir hex değeri olan her şeyi değiştirin. Son olarak, styles.xml dosyasına gittiğinizde, tersi birkaç satırdan kaldırmak, 260 satırından başlayıp birkaç satır için aşağı doğru devam etmek istersiniz. Yani bu dizelerden Tersi'yi silin.

Ardından, satırlarda 527, 536, 573, 579, 585, 601 ve diğer bazılarında yaklaşık onaltılık değerler göreceksiniz. (#ffffffff) 'dan (@ color / text)' e değiştirin.

CacheColorHint, bölücü, @ * android: color / ve Inverse için Notepad ++ içinde arama yapmak için CTRL + F tuşlarına basın.

CacheColorHint kaydırma arka planıdır, bu yüzden arka plan rengimizi kullandığından emin olmamız gerekir. Bölücüler kendiliğinden açıklayıcıdır ve isterseniz onaltılık değerlerini değiştirebiliriz. Tek sorun şudur: @Drawable'a işaret eden herhangi bir şeye dokunmamalısınız. Bunlar, .apk klasörünün başka bir yerinde .png dosyaları olarak depolanan tipik görüntülerdir.

Tersini ararken, textAppearanceInverse'a başvurular görüntülenir. Bunların her birini çift tıklatmanız ve bu dizelerden Tersi'ni silmeniz gerekir.

Son olarak, herhangi bir çerçeve düzenlemesini kaçırdığımızda @ * android: color / araması yalnızca iki kez kontrol edecektir. Eğer android: popupBackground> @ * android: renk / beyaz diyor bir şey bulursanız, android için değiştirmeniz gerekir: popupBackground> @ color / abs__background_holo_dark. Bu, kafa karıştırıcı olabilecek 911 hattını içerir çünkü zaten android'e işaret eder: renkli / siyah.

Ardından res / values ​​/ colors.xml dosyasını açacağız ve buna benzer şekilde değiştireceğiz:

Sonraki res / values ​​/ styles.xml ve 328 çizgisine ilerleyin. Bunu şöyle değiştirin:

PRO TIP: Sorun bilgisayarınız veya dizüstü bilgisayar / dizüstü bilgisayar ile yapılmışsa, depoları tarayabilen ve bozuk ve eksik dosyaları değiştirebilen Reimage Plus Yazılımı'nı kullanmayı denemeniz gerekir. Bu, çoğu durumda, sorunun sistem bozulmasından kaynaklandığı yerlerde çalışır. Reimage Plus'ı tıklayarak buraya tıklayarak indirebilirsiniz.

(), () olarak değiştirilmelidir

Işığı siyah olarak değiştirmek için 479 numaralı çizgi için de aynısını yapın.

Şimdi res / values-v11 / styles.xml dosyasına gidin ve ışığı Holo.Light yazdığı yerden çıkarın.

Ardından, bir çok dizeyi içeren res / values-v14 / styles'leri şimdi açacaksınız. Yani ilk 46 satırda, herhangi bir Işık ve Ters referansı kaldırmak ve ardından 53 ve 54 numaralı hatlarda ebeveynleri @ * android: style / Theme.Holo.

69 numaralı çizgi üzerinde, sağ taraftaki ebeveyn, @ * android: style / Theme.Holo.Light.Dialog ebeveyinden Işık'ı kaldırın.

Bu çok iş, değil mi? Belki bundan sonra uygulama temaları ve derileri daha takdire değer olacak!

Ardından res / color klasörüne gideceğiz. Orada siyah işaret eden bazı metin dosyaları var. Res / colors / action_mode_item_text_color_state_list.xml dosyasını açın

Hisse senedi böyle görünüyor. Nasıl yapman gerektiği aşağıda.

/s / colors klasörünün içindeki şu xml dosyalarına şu isimleri değiştirmelisiniz: 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.

Onlarla bitirdiğinizde, açık / res / çekilebilir ve arka plan rengini kontrol eden xmls'ler vardır. Onları gözden geçirin ve onlara şöyle görünmelerini sağlayın:

Tüm diğer drawable.xml dosyalarına aynı değişiklikleri uygulayın.

Şimdi, test.apk dosyasını açın ve smali ve AndroidManifest öğelerini vurgulamak için CTRL + sol tıklama tuşlarına basın, ardından sağ tıklayın ve Notepad ++ ile tekrar düzenleyin. Tüm 1999 smali dosyalarını kabul ediyorum. Yüklendiğinde, -0x100 (siyah) için bir CTRL + F araması yapın

Yaklaşık 8 isabet elde edersiniz ve istediğinizi smali / com / dropbox / android / activity / TextEditActivity.smali, satır 599. Bu satıra çift tıklayın.

Satır 599 içinde -0x100 ve satır 601 SetTextColor içerir. Ayrıca 599 çizgisine uyan bir değişken de var. Kısaca açıklamak gerekirse, -0x100, -0x1000000 ve hatta 0x0 siyah, -0x1000000 de siyah ve hatta 0x0. İki 0'ı 100'den çıkararak ve / high16'yı şu şekilde kaldırarak satırı 599 değiştirin:

Ardından @ * android: style, ama smali'de arama yapalım. Xml, x'den sonra fazladan 0 içerir, ancak smali'de onu kullanmayız. 0x0103004f yerine 0x103004f olması gerekiyor.

@ * Android için Notepad ++ içinde bir arama yapın: style / içerdiği 0x103.

İkinci vuruş, const v7, 0x1030073. Bunu public.xml dosyasında framework-res.apk dosyasından tekrar arayın. Theme.Holo.Light.Dialog için id olduğunu göreceksiniz. Ters tema stilinin genel kimliğine değiştirmeniz gerekecek.

Bu bir Theme.Holo.Light.Dialog olduğundan, Theme.Holo.Dialog yapmak istiyorum. Theme.Holo.Dialog'un 0x103006f bir kimliği vardır. Bu, daha açık bir Holo.Light tabanlı tema yerine koyu bir Holo tabanlı temayı kullanmak için bir açılır iletişim kutusu uyarı kutusunu değiştirecektir.

Değiştirmemiz gereken bir sonraki tema, Theme.Holo.Light olan 0x103006e'dir. Öyleyse devam edin ve karşıt tema stili yapın. Public.xml dosyasında framework-res.apk dosyasında Theme.Holo'nun 0x0103006b olduğunu görürsünüz. bu yüzden bu çizgiyi şöyle değiştirelim:

Bunlardan sadece 2 tane daha var. Bir sonraki, public.xml içinde Theme.Light için olan 0x103000c'dir. Bunun tersi Theme.Black, ThemeHolo değil. Yani public.xml içinde Theme.Black için bir kimlik göreceksiniz 0x01030008 - bu gibi görünmek için değiştirin:

Diğer uygulamalarda, düzenlenecek ve değiştirilecek başka şeyler de olacak ve yeterli uygulama ile neredeyse her şeyi yeniden tanımlayabileceksiniz. Ama şimdilik, tüm kod bitleriyle işimiz bitti ( sonunda!) .

Şimdi komut dosyasını Apk Multi Tool'dan açabilir ve uygulamayı derlemek için 12'ye basabilirsiniz. Herhangi bir hata görüntüleniyorsa, yanlış yazılanlar için hata günlüğüne bakmayı deneyebilirsiniz, ancak büyük ihtimalle kod düzenleme sırasında yazım hatası veya başka bir hata yaptınız.

Yapı tamamlandığında, uygulamayı yeniden imzalamak için 2'ye ve 13'e basın.

Stok uygulamasında Şablonlar adlı bir klasör var - bunu 7zip gibi bir şey kullanarak imzasız APK'nıza sürüklemeniz gerekiyor. Unsigned.apk dosyasını Apk Multi Tool içindeki yer-apk-here-for-for -inging klasörüne kopyalayın. Şimdi bu klasördeki uygulamaları toplu olarak imzalamak için terminal komut dosyasına 18 basın. Bittiğinde, komut dosyası otomatik olarak kendiliğinden çıkar. Şimdi .apk'ı cihazınıza yükleyebilirsiniz!

PRO TIP: Sorun bilgisayarınız veya dizüstü bilgisayar / dizüstü bilgisayar ile yapılmışsa, depoları tarayabilen ve bozuk ve eksik dosyaları değiştirebilen Reimage Plus Yazılımı'nı kullanmayı denemeniz gerekir. Bu, çoğu durumda, sorunun sistem bozulmasından kaynaklandığı yerlerde çalışır. Reimage Plus'ı tıklayarak buraya tıklayarak indirebilirsiniz.

Facebook Twitter Google Plus Pinterest