Kendi android firmware oluşturun. Gerekli yazılım Bir zip arşivindeki üçüncü taraf ürün yazılımı değiştirme

Android akıllı telefonun hemen hemen her kullanıcısı, ihtiyaçlarını ve isteklerini karşılamak için ürün yazılımını oluşturma veya düzenleme isteğine sahipti. Bu yazıda, CWM (zip formatında) için ürün yazılımı düzenleme ilkesini dikkate alıyoruz.

hazırlık:

Her şeyden önce, temel olarak hangi firmware'in alacağımıza karar vermelisiniz. Kullanmak daha iyidir. Zip içinde firmware. Hemen hemen her ortak cihaz için temiz bir firmware + root var.
Ürün yazılımı seçildiğinde, PC'nizde size uygun olan herhangi bir yere indirmeniz gerekir (paketinden çıkarmamalısınız).
Ayrıca bir arşivleyiciye ihtiyacımız var, kullanmanızı tavsiye ederim 7zip   ve türünün en iyi metin editörü Not Defteri +.

Snowblast senin shh kontrol eder. İşiniz bittiğinde, yazılımınız masaüstünüzde olacak! Şu anda en moda modülleri seçtik. Bu kod, aşağıda verdiğimiz 10 gibi birçok işlevi üstlenebilir. Öncelikle, bu değişikliklerin tehlikesiz olmadığını hatırlayalım. Bu nedenle, verilerinizin ön yedeklemesini yapmak gereklidir. Ek olarak, cihazın kısaltılması, modüllerin sistem seviyesine erişebilmesi için gereklidir. İnsan hatası asla ihmal edilmemelidir.

Firmware yapısı:

Firmware ile arşivi açtığınızda aşağıdakileri görürsünüz:
META-INF   - Klasör, ürün yazılımı yükleme komut dosyalarını içerir.
sistem   - Tüm yazılım dosyalarını içeren dosyalar (uygulamalar, ince ayarlar, komut dosyaları vb.).
boot.img   - Sistemin çekirdeği.

Hemen hemen tüm manipülasyonlar klasörde gerçekleştirilir sistemyapısı:
uygulamanın   - sistem uygulamaları.
çöp kutusu   - Sistemin kendi kaynakları.
vs   - Komut dosyaları, tweaks, yapılandırmalar, profiller ve sistem ayarları.
yazı   - Sistem yazı tipleri.
iskelet   - Ana sistem dosyaları burada saklanır (grafikler, metin animasyonu ayarları, vb.).
lib   - sistem kütüphaneleri.
medya   - Multimedya dosyaları (bildirim melodileri, indirme animasyonları, duvar kağıtları, vb.).
usr   - ayarlar sistem tarafından daha fazla değiştirilmez ("salt okunur" modunda çalışırlar).
xBIN   - Yine, sistem yapılandırmaları ve diğer tweaks.
build.prop   - Sistem, yerel ayarlar ve sistem performansı hakkında bilgi.

Ancak, bu yalnızca uygulamada geçerlidir ve tarayıcıda görüntülenen videolara uygulanmaz. Bu, telefon bekleme modundayken de çalışır. Sunucunun sunduğu birçok seçeneği anlamak için daldırma gerektirir, ancak sistemin hemen hemen tüm öğelerinin rengini değiştirmeye, saati gizlemeye, operatörün metnini değiştirmeye, ekran kapalıyken efekt ekleme, son işlem menüsüne “tümünü kapat” düğmesine ve çok daha fazlasını eklemenize olanak tanır. . Başka bir deyişle, vazgeçilmez!

Bunu yapmak için, uygulamaların izinlerini, genellikle olduğu gibi silme yerine, çözer, ancak herhangi bir hatayı önlemek için yanlış bilgi sağlar. Bu modül, uygulamanın kişi listenizin boş olduğunu veya coğrafi konumunuzun gerçekte olduğundan tamamen farklı olduğunu varsaymasına izin verir.

uygulamalar:

Yazılımı sisteme eklemeden / kaldırmadan önce, aygıt yazılımınızın deodex olup olmadığını kontrol etmelisiniz (yani, uygulama klasöründeki .odex dosyalarının olup olmadığını kontrol etmelisiniz. Herhangi bir dosya varsa, buradan kurtulmanız gerekir. talimatlar .
Firmware'e yazılım ekle:
Her şeyden önce, montajınıza eklemek istediğiniz akıllı programlarınıza yüklemeniz gerekir. Kurulumdan sonra bunları sistemden çıkarırız Kök exporer   ve onların analogları, veri / uygulama yolundadır, yani onlara gerek duyarız (eğer varsa) veri / veri yolundadırlar. Aynı ada sahip uygulama klasöründedir ve uzantıya sahiptirler. .bu   . Sonra ele geçirildi .apk   Dosyalar, sistem / uygulama yolundaki arşive ve uzantıya sahip dosyalara yerleştirilir .bu   (lib "s) yol sistemi / lib.
Yazılımı ürün yazılımından kaldırın:
Her şey basit, klasöre git uygulamanın   - Ne ihtiyacımız olmadığını belirler ve gereksiz tüm yazılımları kaldırırız (sistem dokunmamak için daha iyidir).

Akıllı telefon kullanıcılarının en kötü felaketi için çözümün güçlendirilmesi: zayıf özerklik. Telefonda çeşitli işlemlerin “uyanacağı” frekansı ayarlayarak ve işlemciyi arayarak değerli etkinlik dakikalarını alabilirsiniz. Taşınabilir bir medya oynatıcı olarak kullandığınızda akıllı telefonunuzun sesini hassas şekilde ayarlamak için idealdir.

Birçok uygulamayı indirenler, çalışmalarını yavaşlatma eğilimi göreceklerdir. Bunun nedeni, sistem başlangıcında arka planda çalışan uygulamaları ilgilendirmiyor olsa bile. Galeriden fotoğraf paylaşımı, yeni çizim araçlarının ortaya çıkması, filtreler eklenmesi veya fotoğraf okurken zamanlayıcıyı silme yeteneği gibi birçok özellik. Elbette yüzlerce modül var ve bu liste kapsamlı olmamalı. Favori modüllerinizi bizimle paylaşmaktan çekinmeyin.

Dil ve firmware sürümü:

Build.prop dosyasını masaüstüne kopyalayın. Bir not defteri ile açın ve satırları bulun:

ro.product.locale.language = tr
ro.product.locale.region = ABD

rus dili için şunu yapmalısınız:

ro.product.locale.language = tr
ro.product.locale.region = RU

dizimizin adını string’e giriyoruz

aynı build.prop içinde

Grafik:

Ürün yazılımının tüm grafiksel kısmı, framework-res.apk dosya yolunda iki dosyada saklanır. systemframework   ve SystemUI.apk yol boyunca systemapp. Ayarlar uygulamasının grafik kısmı da doğal olarak Settings.apk uygulamasında saklanır.

Ek olarak, diğer uygulamalar için, bu başlangıçta ve sonunda bir anlaşmazlıktır, bu yüzden bulmak için hiçbir bağlantı yoktur. Reklamı engelleyen istisnalara yer ekleyin. Her durumda, seçiminize saygı duyuyoruz: engeli kaldırmamaya karar verirseniz, siteyi herhangi bir kısıtlama olmaksızın kullanabilirsiniz.

Bu makalede, yürütülecek basit bir prosedür göreceğiz. Bunların arasında anahtar, akıllı telefonun sistem bölümünü yedeklemek. Açılış bölümünde, yedekte yer alacak bölümleri seçmeye davet ediyoruz. Varsa, geçerli işletim sistemini başarıyla geri yüklemek için seçilmelidir. Olumsuz yolsuzluk durumunda, her zaman yapabiliriz. . Başka bölümler varsa, resmi belgeler bunları yedeklemeden hariç tutmanızı önerir.

Scripts ve tweaks (sistemin hızlanması ve optimizasyonu):

Ayarların çoğu dosyadadır. build.propbunu okuyabilirsin. Ayrıca, çekirdeğiniz destekliyorsa

Merhaba Habr!

Birkaç yıl önce, Android'le ilk tanıştığımda, iş arkadaşımdan Android'in değiştirilmiş veya kendi yapım yazılımını yükleme yeteneği sağladığını duydum. Açıkçası ben ondan uzaktayım. Ve hatta yarım yıl önce bile böyle şeylerle ilgilenmiyordum. Duşun derinliklerinde, üreticinin yaptığı şeyin normal kullanım için tasarlandığından emindim.

Devam etmeden önce, üst kısımdaki "Ad" alanını tıklayarak yedekleme dosyasının adını özelleştirmek kesinlikle mantıklı bir fikirdir. Yedekleme süresi uzar, ancak sonuç gigabayt formatında daha küçük bir arşivdir. Son olarak, bir yedek oluşturmaya başlamak için kaydırıcıyı sağa sürükleyin.

Adım 5: seçilen arşivde yeterli boş alan yok.

Bazı durumlarda bir hatayla karşılaşabilirsiniz. Seçilen arşiv alanı yetersiz. Bunun nedeni, uygulamanın tıpkı uygulamalar ve veriler gibi, cihazın dahili belleğinde varsayılan olarak kaydedilmiş olmasıdır. Yeterli alan yoksa, bir hata oluşur.

Çin, Google, Skype, Facebook ve diğer uygulamaların kullanımının fabrika ayarlarıyla yasaklandığı bir telefon satın aldığımda hayal kırıklığım neydi? Prensip olarak, gözlerimi bazı şeylere kapamak mümkündü, ancak telefonum bir Google hesabının kullanımını ima etmediğinde, yapmak zorunda olmadığımdan emin olmak için bir söz verdim.

Bu sorunu çözmek için, tekrar denemeden önce birkaç alternatifiniz var. En büyük olmak, sadece sistem verilerini yedeklemek için yeterli alan olabilir. Böylece yedekleme doğrudan anahtara yazılacaktır. . Her şeyi mobil sürücünüzdeki alanı boşaltmak ve içeriğini kontrol etmek için bilgisayarınızın sabit sürücüsüne taşıyın: “aygıt tanımlayıcısı ve sonuncu” dizini ile yedeklemeye atanan adı içeren üçüncü bir alt klasör bulunmalıdır.

Yarım yıl geçti ve özel yazılımım dünya çapında başarıyla kullanılıyor.

Bu makale dizisi Android için ters programlamanın nasıl yapılacağını, yamaları, düzeltmeleri ve modları nasıl yapacağını tartışacak.

önsöz

  Ve böylece! Önce kullanılacak kavramları tanımlayalım bu   makale. Bununla birlikte, her zamanki anlayışınız çok farklı olabilir.

yama   - Program algoritmasını değiştirmek için mevcut program kodunun değiştirilmesi veya değiştirilmesi.
Maud   - Kural olarak, algoritmayı değiştirmeden mevcut bir program koduna ek işlevler eklemek.
Tweek   - Sistem parametrelerine erişimi kolaylaştırmak için programın işlevselliğini geliştirmek.

Adım 7: Fotoğraf, belge ve diğer verilere dikkat edin!

Lütfen reklam engelleyici bloğunuza bir yer ekleyin. Kâr amacı gütmeyen bir projemiz var ve masrafları ödemek için reklam yapmak gerekiyor. Bütün sorulara cevap vermek için kitabımızın ikinci baskısına sahibiz. Birçok kullanıcı virüslerden kurtulmak, cihazlarının sistemini güncellemek ve yeni uygulamalar açmak için süper kullanıcılara dönüşür. Her üretici, markayı karakterize eden özel uygulamalar ve özellikler ekler. Aynı ekipmanı kullanan bu ayarlar performansı artırabilir, pil ömrünü uzatabilir, akışkan animasyonu sağlayabilir ve tasarımı büyütebilir ve doğal olarak yenilikçi özellikleri ya da neden olmasın, özellikle de en iyi akıllı telefondan özgürce esinlenen benzersiz özellikleri getirebilir.

HTC telefon için tüm örneklerin alınacağını da belirtmek isterim, fakat bu, bu bilgilerin diğer telefonlarda kullanılamayacağı anlamına gelmez.

Bir yazar olarak, aşağıdaki bilgileri kullanarak telefonunuzdaki olası veri kaybından sorumlu değilim.

Çevre hazırlık

  Bu yazılımı veya bu yazılımı kullanma konusunda ayrıntılı talimatlar olmadan yapabilirim. Eğer bu makaleyle ilgileniyorsanız ve bu satırları okumayı bitirdiyseniz, o zaman tecrübeli bir kullanıcı olduğunuzu ve bu alanda iyi deneyimler yaptığınızı ya da en azından deneyimlediğinizi umarsınız. Bununla birlikte, talimatlar, makaleler ve test sonuçları, Habré'de olduğu gibi tamamen kullanılabilir. Bazı terimlerin tanımı olmadan da yöneteceğim, aksi halde makale çok büyük ve can sıkıcı olacak. Sadece davada yazacağız. Eminim ki çevreniz uzun zamandır ayakta duruyor. Değilse, indirip yüklemenizi öneririm.

1 . Android SDK'sı   . Bu, Android için bir uygulama geliştirme ortamıdır. Değişiklikler yapmak için program kodumuzu mutlaka kontrol etmeliyiz. Geliştirme ortamı, kullanabileceğimiz en iyisidir.
2 . Android Mutfak   . Bu yardımcı program resmi iyi veya gayri resmi ürün yazılımının sistem bölümlerinin görüntüleri ile çalışmanıza izin verecektir.
3 . JD-GUI   . Java dil kodu decompiler. Hemen, bu kullanım kolaylığı açısından en iyi decompiler olduğunu unutmayın.
4 . DJ Java Decompiler   . Başka bir decompiler veya disassembler, onu aramak gibi, Java programlama kodudur. Kullanım açısından uygun değil, ancak bazen JD-GUI'yi anlamayan kodu ayrıştırır.
5 . olarak ufak . Bir başka disassembler, ama dalvik kodu zaten. smali, demonte etmek için ve kodun oluşturulması için backsmali gereklidir.
6 . dex2jar   . Yürütülebilir dosya Dalvik kodu dönüştürmek için bir yardımcı programdır.

Bu prosedürden alabileceğiniz faydalar farklıdır. İlk olarak, minimalist arayüzleri, yeni animasyonları ve renkli temaları ve orijinal efektleri seçerek kişiselleştirme isteğinizi verebilirsiniz. Daha sonra yeni bir ürün yazılımı yüklemeyi düşünün - bu, temel konsollar gerektiren bir prosedürdür ve bu nedenle sadece en deneyimli silahlı sabır için önerilir ve kurulum prosedürü sırasında ortaya çıkabilecek sorunları çözmeye hazırdır.




Büyük bir sıçrama yapmaya karar verdin mi? Herhangi bir "ortalama kullanıcı", ürünlerinin olağanüstü kalitesiyle tanınan bu geliştirme ekibinin adını bilir. Aralarındaki fark kurtarmadır. Maalesef bu seçenek geliştirici seçeneklerinden kayboldu.


Genişletilmiş profiller, akıllı telefonunuzu kapatmanıza veya ses girişi için diğer koşulları ayarlamanıza olanak tanır.

Firmware dönüşümü

  Elbette, enerji tüketimini azaltmak için üreticiden aldığınız ürün yazılımı optimize edilmiştir. Ürün yazılımını değiştirebilmek için kodu değiştirmenize izin veren bir biçime dönüştürmek gerekir. Android Kitchen kullanıyor. Tabii ki, daha önce yaptığım gibi, bu “mutfak” ı bulana kadar ellerinle yapabilirsin. Sistem bölgesini telefondan nasıl çıkaracağınız, ortamı nasıl ayarlayacağınız, DEODEX ürün yazılımı nasıl yapılacağı, internette okuyabileceğiniz bir özellik. Henüz bir şey anlamadıysanız, yeterli deneyim kazanana kadar makaleyi ertelemeniz gerektiğini düşünüyorum.

En iyi duruma getirilmiş görünümden (ODEX - optimize edilmiş dalvik yürütülebilir kodu) bellenimden sonra, DEODEX (yani, optimize edilmemiş) oldu, tüm çalıştırılabilir dosyalar değişiklik için hazır.







Avantajı güncellemelerin sıklığıdır.





Çok az sistem çok hafiftir ve uygulama genel görünümü optimize edilmiştir: hepsini bir kerede kapatabilirsiniz. Ne yazık ki, birkaç öneri var ve güncellemeler nadirdir. Proje bir yıllığına terk edildi, ancak yaz aylarından beri bir konserden döndü.


Sunulan fonksiyonların aralığı kemiğe indirgenmiştir. Kök kod bile temyizde değildir.

Doğrudan değişiklikler

Yamalar oluşturma
Daha önce söylediğim gibi, telefonumun başlangıçta Google’ı kullanma yasağı vardı. En azından patladıysanız, Playstore'a gitmeyin, hesabınızı yapılandırmayın, telefon rehberi gerçekten senkronize edilmez. Neden böyle bir Android'e ihtiyacınız var? Cihazın kayıtlarına (logcat) uzunca bir sürede kazarak, Google'ın kullanılmasının yasak olduğunu belirten kayıtları buldum. Android'deki en rahatsız edici, günlüğü görüyorsunuz, ancak hangi sistem uygulamasının onu ürettiğini bilmiyorsunuz. Bacakların nereden büyüdüğünü bulmak için, tüm sistem uygulamalarını sökülmüş Java koduna bölmek zorunda kaldım. Bu biraz zaman aldı, ama hala gerekli kodu analiz etmek ve aramak için yapılan çalışmaları kullanıyorum. Bu aracı edinme adımları aşağıdaki gibidir:
1 . Tüm firmware deodex yapın
2 . Yeni DEODEX ürününüzün telefonunuza monte edilmesi ve parlatılması gerekecektir. Bu nasıl yapılır başka bir makalenin konusu.
3 . / System / framework'de bulunan her dosyadan classes.dex dosyasını dışarı çekin ve dex2jar kullanarak JAR'a dönüştürün.
4 . Her JAR'ı JD-GUI'de açın ve kaynak koduna yeniden kaydedin.
5 . Kaynak kodunu arşivden çıkarın.

Sonuç olarak, / system / framework'te JAR dosyaları olduğu kadar çok klasörüm var ve her klasörün Java kaynak kodlarının bir yapısı vardı.
  Basit manipülasyonlarla, logcat girişlerini oluşturan yeri hızla buldum.




Ancak, topluluklar reddetti ve her zaman talebi karşılamıyor. Devam etmeden önce ellerinizi nereye koyacağınızı bildiğinizden emin olun. Makale Eric Hermann ile birlikte yeniden yazılmıştır. Cihazınızı güncellemenin genellikle iki yolu vardır: otomatik veya manuel olarak, ki bu biraz daha karmaşıktır.

Otomatik güncellemeler nasıl yapılır?

Bu durumda, güncellemenin kurulum için hazır olduğuna dair bir bildirim alacaksınız ve yapmanız gereken tek şey mesaja tıklamaktır. Manuel olarak güncellemenin ilk adımı, cihazınıza yüklemeniz gereken olanı aramaktır. Yazılım güncellemelerini arayacak, ancak sadece resmi güncellemeler size sunulacaktır.

Her bir durum için ayrı bir hikaye olduğu için, yasağın tüm mantığını dikkate almayacağız. Kontrollerin nerede yapıldığını bulmamdan birkaç saatimi geçirdim, kafamda algoritmanın bir blok diyagramını oluşturdum ve algoritmayı biraz “şımarık” almak için nereye gideceğimi anladım.

Her şey yolunda çıktı. Önceden belirlenmiş sabitler temelinde, telefon Çin'e aitse veya olmasaydı aramaya cevap veren bir altprogram var.

Programı kurduktan sonra, “Telefon numarasını kontrol et” düğmesine tıklamanız yeterlidir. Program cihazınız için resmi güncellemeleri yükleyecektir. Özel kurtarma. Cihazınız veya üreticiniz için aşağıda listelenen uyumlu bir program görmüyorsanız, en iyi seçenek cihazınıza özel bir kurtarma yüklemektir.

Herkesin herhangi bir dokunma ve parmak hareketlerini algılamaması nedeniyle ekranda engelleme ve “donma” ihtimali vardı. Bu özellikle çok hızlı bir şey yapmanız gerektiğinde çok hoş olmayabilir. Açık uygulamalar için çoklu görev menüsü başlatmak için akıllı telefonunuzdaki "Son Uygulamalar" düğmesini tıklayın. Çoğu durumda, bunu gezinme çubuğunun sağ tarafındaki kare düğmeyi kullanarak yapabilirsiniz. Cihazınızda bir tane yoksa, aynı efekti elde etmek için Ana Sayfa düğmesini uzun süre basılı tutmanız gerekir.

Kod dosyadaydı HTCExtension.jarve bu alt yordamı içeren sınıftaydı.

Orijinal dosyayı açma ve analiz etme
1 . İlk olarak, ihtiyacımız olan kodun parçası olan orijinal DEODEX JAR dosyasını almamız gerekiyor. Bizim durumda HTCExtension.jar.
2 . Herhangi bir arşivle aç ve oradan classes.dex çek
3 . Dex2jar dönüştürücüyü kullanarak, bir JAR dosyasına dönüştürün. Takım: dex2jar.bat classes.dex
4 . JD-GUI'de alınan classes_dex2jar.jar dosyasını görüntüleyin.
5 . Evet, çoğu zaman JD-GUI kodu orijinalde göründüğü gibi değil, anlaşılabilir, fakat okumak oldukça mümkün. Kaynak kodunda, alt programın proje parametrelerini ve yazılımın dil bayrağını kontrol ettiğini görüyoruz. Talihsiz durumumuzda, dönüş değeri DOĞRU.
  public static boolean isChina () (if ((HtcBuildFlag.Htc_PROJECT_chapt; daugClake = 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23 hrc) = (23t) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) geri dönüş, yanlış döndürme;)
6 . Bir yama yapmak için Dalvik kodunun kendisini sökmemiz gerekiyor. Bunun için baksmali kullanıyoruz. En uygun yol ayrı bir klasör oluşturmak ve üç dosyayı birlikte koymaktır: HTCExtension.jar, smali.jar   ve baksmali.jar. Java komutu -Xmx512m -jar baksmali.jar-a -d -o HTCExtension -x HTCExtension.jar dosyasını verin.

Bu, Android sürümünüzün API'sidir. JB için 16
   - tüm yazılım çerçevelerinin bulunduğu klasör.

Sola veya sağa kapatmak istediğiniz uygulamada parmağınızı kaydırın. Ardından uygulama ekrandan kaybolur ve arka planda çalışmayı durdurur. Lider üreticiler ayrıca tüm açık programları engelleyen ek bir düğme sunar. Programla ilgili sık sık sorun yaşarsanız, güncellemeyi veya kaldırmayı ve yeniden yüklemeyi deneyin. Çok sayıda park edilmiş araba ile büyük bir otoparkta bulunmuşsanız, muhtemelen arabanızı park ettiğiniz bir yer aramak zorunda kalacaksınız.

Fotoğrafik bir hafıza ile kutsanmamışsanız, park etmiş arabanızı geniş bir park yerinde bulmak kolay bir iş değildir. Neyse ki, teknoloji size yardımcı olabilir. Uygulamanın ücretsiz sürümü, arabanızın yerini telefonunuzun belleğinde tutmak için uydu konumlandırmasını kullanır. Aracınızı aramaya başladığınızda, “Araba bul” düğmesine basmanız, uygulama pusulasını çıkarır; bu, park edilmiş aracınızın yönünü gösteren hareketli bir ok anlamına gelir.

Benim durumumda bir takımdı.
  java -Xmx512m -jar baksmali.jar -a 16 -d S: \\ dev \\ Android \\ Android-Mutfak \\ WORKING_JB_15 \\ system \\ framework -o HTCExtension -x HTCExtension.jar
7 . Yeni oluşturduğumuz klasörde bir klasör HTCExtension vardı ve dosyamızda Dalvik kodu vardı.
8 . Dosyayı yol boyunca bulun \\ com \\ htc \\ util \\ contacts \\ BuildUtils $ Özelleştirme.java   ve koda bakın:
  .method ortak statik isChina () Z, .registers 3 .prologue const / 4 v0, 0x1 satırlarda 276 sget kısa v1, Lcom / HTC / htcjavaflag / HtcBuildFlag; -\u003e Htc_PROJECT_flag: S const / 16 v2 0xd8 Eğer-eşdeğer v1 v2 ,: cond_13 sget-kısa v1, Lcom / htc / htcjavaflag / HtcBuildFlag; -\u003e Htc_PROJECT_flag: S const / 16 v2, 0xda ise -eq v1, v2; ; -\u003e Htc_PROJECT_flag: S const / 16 v2, 0x17 eğer-NE v1, v2 ,: cond_14 satırlarda 297: cond_13: geri goto_13 v0 satırlarda 283: cond_14 sget kısa v1, Lcom / HTC / htcjavaflag / HtcBuildFlag; -\u003e Htc_PROJECT_flag: S ise-NE v1, v0 ,: cond_1d satırlarda 285 const / 4 v1, 0x2 sget kısa v2 Lcom / HTC / htcjavaflag / HtcBuildFlag; -\u003e Htc_LANGUAGE_flag: S ise-eşdeğer v1, v2 ,: cond_13 satırlarda 291: cond_1d sget kısa v1, Lcom / HTC / htcjavaflag / HtcBuildFlag; -\u003e Htc_PROJECT_flag: S const / 16 v2 0x1b eğer-eşdeğer v1, v2 ,: cond_13 satırlarda 297 const / 4 v0, 0x0 Goto: goto_13 .end yöntem
9 . Korkutucu değil mi? Hiçbir şey net değil. Ama bu düzeltilebilir bir meseledir. Yamalarınızdan birkaç tane oluşturduktan ve böylece elinizi doldurduktan sonra, kodu üçüncü taraf araçları olmadan kolayca değiştirebilirsiniz. Bizim durumumuzda, bu kodda
  .prolog const / 4 v0, 0x1, v0 değişkenini 1 değerini, yani TRUE değerini atar. Sonra her türlü çek geçer ve eğer telefon Çince değilse, o zaman değişkenin değeri değişir:
  .line 297 const / 4 v0, 0x0 goto: goto_13
10 . Rus demokrasisinin babasını kurtarmanın en kolay yolu, kodu aşağıdaki şekilde değiştirmektir:
  .prologue const / 4 v0, 0x0, yani, 1'den 0'a kadar olan değişken değerini değiştirir. Yani, her neyse, değer her zaman FALSE döndürür ve JD-GUI kodunda public statik boolean isChina () (if (( HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)), süre (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) false değerini döndür; false;)
11 . Evet, yöntem işe yarayacak. Fakat kolay yollar aramıyoruz - bu sefer. İkincisi, pek güzel değil. Kod gibi bir şey istiyorum
  kamu statik boolean isChina () (false;)
12 . Ve bu kaynak kodu için Dalvik kodunu nasıl alabiliriz? Yeni başlayanlar için biraz hile yapacağız.

Dalvik Kodu Oluşturma
1 . Android SDK'yı açın.
2 . Yeni bir proje oluşturun ve tek test sınıfımızda aşağıdaki kodu yazıyoruz
  paket ru.habrahabr.test; Genel sınıf testi (public static boole isChina () (false;))
3 . Projemizi derledik ve ardından birleştirilmiş uygulamayı çalışma alanından aldık.
4 . Toplanan uygulamayı JAR dosyasına yapıştığımız klasöre koyduk.
5 . Java -Xmx512m -jar baksmali.jar -a -d -o test -x test komutunu verin.
6 . Yeni inşa edilen uygulamayı Dalvik koduna ayırdık.
7 . Test.smali dosyasını aç ve oradaki kodu gör
  .method kamu statik isChina () Z .registers 1. prolog .line 7 const / 4 v0, 0x0 dönüş v0.
8 . Her şey, yama için kod hazırdır.
Bir yama yuvarlama
1 . Dalvik kodu, orijinal kaynak dosyasında bir kod satırını belirten işaretleyicilerle doludur. Varsa, programınızda hatalar görüntülendiğinde bu gereklidir. Dizeleri olmadan, kod da harika çalışıyor.
2 . Satır numaralandırma ile satırları silme, kopyalama ve değiştirme yöntemi (altprogram) \\ com \\ htc \\ util \\ contacts \\ BuildUtils $ Özelleştirme.java   dosya.
  .method genel statik isChina () Z .registers 1.prolog const / 4 v0, 0x0 dönüş v0.
3 . Dosyayı kaydet. Evet, editörün normal bir dosyaya, örneğin Notepad ++ veya EditPlus'a ihtiyacı olduğunu söylemeyi unuttum. Kim neyi seviyor?
Düzeltilmiş bir JAR dosyası derlenmesi ve oluşturulması
1 . Backsmali'nin yardımıyla JAR dosyamızı kapattık ve şimdi onu tekrar inşa etmeliyiz.
2 . Java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex komutunu veriyoruz
3 . Classes.dex dosyası babamda görünür.
4 . Tekrar aç HTCExtension.jar   arşivleyiciyle dosyalayın ve mevcut olanı değiştirin classes.dex   yeni oluşturduğumuzda.
5 . Tüm bizim HTCExtension.jar   değiştirilmiş program kodunu içerir.
Orijinal dosyayı yamalanmış biriyle değiştirme
  Genellikle, sıradan kullanıcılar için kurtarma ile değiştirilen özel komut dosyaları oluşturulur. Ama ilgilenmiyoruz. Birincisi, uzun ve sıkıcı, ikincisi, biz tecrübeli kullanıcılar ve bazı inceliklerini göze alabiliriz.

1 . Mevcut çalışma dosyasını, şu anda DEODEX yazılımına sahipseniz ve kök erişiminiz varsa, aşağıdaki komutlarla değiştirebilirsiniz:

Adb push HTCExtension.jar /sdcard/HTCExtension.jar adb kabuk su mount -o remount -rw / sistem dd if = / system / framework / HTCExtension.jar = / sistem / framework / HTCExtension.jar.back dd if = / sdcard /HTCExtension.jar = / system / framework / HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm / veri / dalvik-önbellek / [E-korumalı]@[E-korumalı]   reboot

1. takım, yamalı dosyayı USB flash sürücüye yükler
  2. komut kabuğu açar
  Üçüncü komut, root erişimi veriyor
  4. komut, sistemi okuma / yazma modunda bağlar
  Ekip 5 bir yedekleme dosyası yapar
  6. komut, mevcut dosyayı yeni yamalı ile üzerine yazar.
  7. takım izinleri ayarlar
  8. komut önbelleği siler
  Ekip 9 cihazı yeniden başlatır.

2 . Bu noktayı okuduğunuz için teşekkür ederim, biraz kalıyor.
3 . Yeniden başlatmanın ardından yeni yama kodunuz yürürlüğe girecek.
4 . Kod çalışmazsa veya bir hata ortaya çıkarsa, zorlu kombinasyonlar değil, yedeklemeyi geri getirebilirsiniz.
  = / system / framework / HTCExtension.jar.back = / system / framework / HTCExtension.jar rm / data / dalvik-cache / dizinine yapıştırın [E-korumalı]@[E-korumalı]   reboot

son söz

  Evet, bu makale çok belirgin olmayan birine, çok net olmayan birine, ama işe yaramayan birine benziyordu. Kasıtlı olarak derinlemesine bir detaylandırma ve her şeyin nasıl ve nasıl göründüğüne dair illüstrasyonlar olmadan yaptım. İlk olarak, bu çalışma nankör olmayacak ve sadece daha fazla soru ortaya çıkaracaktır. İkincisi, forumlarında telefonlarını öldürdüklerinden şikayet eden bir kullanıcı ordusu görmek istemiyorum.

Bir sonraki yazıda tviki'nin nasıl yapılacağını anlatacağım. Telefonun yerel araçlarıyla telefon görüşmelerinin otomatik olarak kaydedilmesinin bir örneği olacaktır. İlginiz için teşekkür ederim.

Not; Bir şey açık ya da kafa karıştırıcı değilse, sorular sorun - Ben her zaman cevaplamak ve açıklamaktan mutluluk duyarım.

Teması devam ediyor:
Akıllı tv

Samsung TV açılmıyorsa, sihirbazı çağırmadan önce, ekipmanı kendiniz onarmaya çalışabilirsiniz. İlk önce üretmek gerekir ...