Erstellen Sie Ihre eigene Android-Firmware. Benötigte Software. Ändern der Firmware von Drittanbietern in einem Zip-Archiv

Fast jeder Benutzer des Android-Smartphones hatte den Wunsch, die Firmware nach seinen Bedürfnissen und Wünschen zu erstellen oder zu bearbeiten. In diesem Artikel betrachten wir das Prinzip der Bearbeitung von Firmware für CWM (im zip-Format).

Vorbereitung:

Zuerst müssen Sie entscheiden, welche Firmware wir als Grundlage nehmen werden. Es ist besser, aus zu verwenden. Firmware in zip. Für fast jedes gängige Gerät gibt es eine saubere Firmware + Root.
Wenn die Firmware ausgewählt ist, müssen Sie sie an einem beliebigen Ort auf dem PC herunterladen (Sie sollten sie nicht entpacken).
Wir brauchen auch einen Archivierer, ich rate Ihnen zu verwenden 7 Zip  und der beste seiner Art Texteditor Notizblock ++.

Snowblast überprüft dein shh. Sobald Sie fertig sind, wird Ihre Firmware auf Ihrem Desktop sein! Entdecken Sie unsere Auswahl der modischsten Module im Moment. Dieser Code kann viele Funktionen übernehmen, z. B. 10, die wir unten bereitstellen. Denken wir zunächst daran, dass diese Änderungen nicht ohne Gefahr sind. Daher ist es notwendig, eine vorläufige Sicherung Ihrer Daten durchzuführen. Außerdem muss das Gerät gekürzt werden, damit die Module auf Systemebene zugreifen können. Menschliche Fehler sollten niemals vernachlässigt werden.

Firmware-Struktur:

Wenn Sie das Archiv mit der Firmware öffnen, sehen Sie Folgendes:
META-INF  - Der Ordner enthält die Firmware-Installationsskripts.
system  - Ordner mit allen Firmware-Dateien (Anwendungen, Tweaks, Skripte, etc.).
boot.img  - Der Kern des Systems.

Fast alle Manipulationen werden im Ordner ausgeführt systemseine Struktur:
app  - Systemanwendungen.
bin  - Ressourcen des Systems selbst.
usw  - Skripte, Optimierungen, Konfigurationen, Profile und Systemeinstellungen.
schriftarten  - Systemschriften.
rahmen  - Hauptsystemdateien werden hier gespeichert (Grafiken, Einstellungen für Textanimationen usw.).
lib  - Systembibliotheken
medien  - Multimedia-Dateien (Benachrichtigungsmelodien, Download-Animationen, Hintergrundbilder usw.).
usr  - Die Einstellungen werden vom System nicht verändert (sie arbeiten im "read only" Modus).
xbin  - wieder, Systemkonfigurationen und andere Optimierungen.
build.prop  - Informationen über das System, Gebietsschemaeinstellungen und Systemleistung.

Dies gilt jedoch nur für die Anwendung und nicht für die Videos, die im Browser angezeigt werden. Bitte beachten Sie, dass dies auch funktioniert, wenn sich das Telefon im Standby-Modus befindet. Es erfordert Immersion, um die vielen Optionen zu verstehen, aber erlaubt das Finale, die Farbe von fast jedem Element des Systems zu ändern, die Uhr zu verbergen, den Text des Bedieners zu ändern, einen Effekt hinzuzufügen, wenn der Bildschirm ausgeschaltet ist, die Schaltfläche "Alle schließen" zum letzten Aufgabenmenü hinzuzufügen und vieles mehr . Mit anderen Worten, unverzichtbar!

Zu diesem Zweck löst es die Berechtigungen von Anwendungen auf, statt sie zu löschen, wie es normalerweise der Fall ist, und liefert falsche Informationen, um Fehler zu vermeiden. Mit diesem Modul kann die Anwendung annehmen, dass Ihre Kontaktliste leer ist oder dass sich Ihr geografischer Standort vollständig von dem unterscheidet, was er tatsächlich ist.

Anwendungen:

Bevor Sie Software zum System hinzufügen / entfernen, müssen Sie überprüfen, ob Ihre Firmware dexiert ist (dh, ob im Ordner ".dex" Dateien vorhanden sind. Wenn Dateien vorhanden sind, müssen Sie sie hier entfernen.) anweisungen .
Fügen Sie Software zur Firmware hinzu:
Zuallererst müssen Sie in Ihre Smart die Programme installieren, die Sie der Assembly hinzufügen möchten. Nach der Installation holen wir sie mit dem System aus dem System Wurzelexporteur  und seine Analoga, sie sind auf dem Daten / App-Pfad, also werden wir sie entweder brauchen (wenn es natürlich gibt) sie sind auf dem Daten / Datenpfad. Sie sind im Anwendungsordner mit dem gleichen Namen und haben die Erweiterung .so  . Dann ergriffen .apk  Dateien werden im System / App-Pfad und Dateien mit der Erweiterung in das Archiv gestellt .so  (lib "s) entlang des Pfadsystems / lib.
Entfernen Sie die Software von der Firmware:
Alles ist einfach, gehe zum Ordner app  - Wir bestimmen, was wir nicht brauchen und entfernen alle unnötige Software (das System soll besser nicht anfassen).

Die Lösung für das schlimmste Desaster von Smartphone-Nutzern verstärken: schlechte Autonomie. Indem Sie die Häufigkeit einstellen, mit der die verschiedenen Prozesse auf dem Telefon "aufwachen" und den Prozessor anrufen, können Sie wertvolle Minuten der Aktivität erhalten. Ideal für die Feinabstimmung des Sounds Ihres Smartphones, wenn Sie es als tragbaren Media Player verwenden.

Diejenigen, die viele Anwendungen herunterladen, werden eine Tendenz bemerken, ihre Arbeit zu verlangsamen. Dies liegt daran, dass Anwendungen beim Systemstart im Hintergrund ausgeführt werden, auch wenn sie nicht daran interessiert sind. Viele Funktionen, wie das Freigeben von Fotos aus der Galerie, das Auftauchen neuer Zeichenwerkzeuge, das Hinzufügen von Filtern oder die Möglichkeit, den Timer beim Lesen eines Fotos zu löschen. Es gibt natürlich Hunderte von Modulen, und diese Liste sollte nicht erschöpfend sein. Fühlen Sie sich frei, Ihre Lieblingsmodule mit uns zu teilen.

Sprache und Firmware-Version:

Kopieren Sie die Datei build.prop auf den Desktop. Öffne es mit einem Notebook und finde die Zeilen:

ro.product.locale.language = de
ro.product.locale.region = USA

für die russische Sprache müssen Sie Folgendes tun:

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

wir geben den Namen unserer Mod in die Zeichenfolge ein

in derselben build.prop

Grafiken:

Der gesamte grafische Teil der Firmware wird in zwei Datei-framework-res.apk Dateipfad gespeichert systemrahmen  und SystemUI.apk auf dem Weg systemapp. Und der grafische Teil der Einstellungen wird natürlich in der Anwendung Settings.apk gespeichert.

Für andere Anwendungen ist dies ein Streit am Anfang und am Ende, so dass kein Link zu finden ist. Hinzufügen eines Standorts zu Anzeigenblockierungsausnahmen In jedem Fall respektieren wir Ihre Wahl: Wenn Sie sich entschließen, die Blockierung nicht aufzuheben, können Sie die Site trotzdem uneingeschränkt nutzen.

In diesem Artikel sehen wir eine einfache Prozedur, die ausgeführt wird. Der Schlüssel dazu ist die Sicherung der Systempartition des Smartphones. Im ersten Abschnitt werden wir aufgefordert, Abschnitte auszuwählen, die in das Backup aufgenommen werden sollen. Wenn sie vorhanden sind, müssen sie ausgewählt werden, um das aktuelle Betriebssystem erfolgreich wiederherzustellen. Im unwahrscheinlichen Fall von Korruption können wir immer. . Wenn es andere Abschnitte gibt, empfiehlt die offizielle Dokumentation dringend, sie von der Sicherung auszuschließen.

Skripte und Tweaks (Beschleunigung und Optimierung des Systems):

Die meisten Einstellungen befinden sich in der Datei. build.propDu kannst darüber lesen. Auch wenn dein Kernel dies unterstützt

Hallo Habr!

Vor ein paar Jahren, als ich Android zum ersten Mal traf, hörte ich von meinem Arbeitskollegen, dass Android die Möglichkeit bietet, modifizierte oder selbst erstellte Firmware zu installieren. Ehrlich gesagt, war ich weit davon entfernt. Und vor einem halben Jahr war ich an solchen Dingen kaum interessiert. Tief unter der Dusche war ich mir sicher, dass das, was der Hersteller tat, bereits für den normalen Gebrauch gedacht war.

Bevor Sie fortfahren, ist es sicherlich sinnvoll, den Namen der Backup-Datei anzupassen, indem Sie oben auf das Feld "Name" klicken. Backup-Zeit wird verlängert, aber das Ergebnis ist ein kleineres Archiv im Gigabyte-Format. Ziehen Sie den Schieberegler nach rechts, um mit dem Erstellen einer Sicherung zu beginnen.

Schritt 5: Im ausgewählten Archiv ist nicht genügend freier Speicherplatz vorhanden.

In einigen Fällen erhalten Sie möglicherweise einen Fehler. Der ausgewählte freie Archivplatz ist nicht ausreichend. Dies liegt daran, dass das Backup standardmäßig im internen Speicher des Geräts gespeichert wird, genau wie die Anwendungen und Daten. Wenn nicht genügend Speicherplatz vorhanden ist, tritt ein Fehler auf.

Was war meine Enttäuschung, als ich ein Telefon aus China kaufte, wo die Verwendung von Google, Skype, Facebook und anderen Anwendungen durch die Werkseinstellungen verboten war. Im Prinzip war es möglich, meine Augen für einige Dinge zu schließen, aber als mein Telefon nicht die Verwendung eines Google-Kontos impliziert, machte ich ein Versprechen, um sicherzustellen, dass ich nicht musste.

Um dieses Problem zu lösen, haben Sie mehrere Alternativen, bevor Sie es erneut versuchen. Da der größte Speicherplatz zur Verfügung steht, reicht möglicherweise der verfügbare Speicherplatz aus, um nur die Systemdaten zu sichern. Somit wird das Backup direkt auf den Schlüssel geschrieben. . Verschieben Sie alles auf die Festplatte Ihres Computers, um Speicherplatz auf Ihrem mobilen Gerät freizugeben, und überprüfen Sie den Inhalt: Es sollte einen dritten Unterordner mit dem Namen "Gerätekennung und im letzten Verzeichnis" geben, dessen Name der Sicherung zugewiesen ist.

Ein halbes Jahr ist vergangen und meine eigene Firmware wurde erfolgreich auf der ganzen Welt verwendet.

In dieser Artikelserie wird erläutert, wie Sie die umgekehrte Programmierung für Android durchführen, Patches, Tweaks und Mods implementieren.

Präambel

  Und so! Lassen Sie uns zuerst die Konzepte definieren, die in verwendet werden gegeben  Artikel. Ihr übliches Verständnis kann jedoch sehr unterschiedlich sein.

Patch  - Ändern oder Ersetzen von bestehendem Programmcode, um den Programmalgorithmus zu modifizieren.
Mod  - In der Regel fügen Sie einem vorhandenen Programmcode zusätzliche Funktionalität hinzu, ohne den Algorithmus zu ändern.
Tweak  - Verbesserung der Funktionalität des Programms, um den Zugriff auf Systemparameter zu erleichtern.

Schritt 7: Vorsicht vor Fotos, Dokumenten und anderen Daten!

Bitte fügen Sie Ihrem Werbeblocker einen Standort hinzu. Wir sind ein gemeinnütziges Projekt und Werbung ist notwendig, um Ausgaben zu bezahlen. Um alle Fragen zu beantworten, haben wir die zweite Ausgabe unseres Buches. Viele Benutzer werden zu Superbenutzern, um Viren loszuwerden, das System ihres Geräts zu aktualisieren und neue Anwendungen zu öffnen. Jeder Hersteller fügt spezielle Anwendungen und Funktionen hinzu, die die Marke charakterisieren. Diese Einstellungen mit den gleichen Geräten können die Leistung verbessern, die Akkulaufzeit verlängern, flüssige Animationen liefern und das Design fesseln und natürlich innovative Funktionen oder, warum nicht, einzigartige Funktionen bieten, die insbesondere vom besten Smartphone inspiriert sind.

Ich möchte auch anmerken, dass alle Beispiele für das HTC-Telefon genommen werden, aber das bedeutet nicht, dass diese Information nicht auf anderen Telefonen verwendet werden kann.

Ich weise Sie darauf hin, dass ich als Autor nicht für den möglichen Verlust von Daten auf Ihrem Telefon verantwortlich bin, der durch die Verwendung der folgenden Informationen entstanden ist.

Umwelt Vorbereitung

  Ich kann auf detaillierte Anweisungen zur Verwendung dieser oder jener Software verzichten. Wenn Sie an diesem Artikel interessiert sind und diese Zeilen gelesen haben, dann hoffe ich, dass Sie bereits ein erfahrener Benutzer sind und Erfahrung in diesem Bereich haben, gut oder zumindest experimentieren. Anweisungen, Artikel und Testergebnisse sind jedoch vollständig verfügbar, wie in Habré. Ich werde auch ohne eine Beschreibung einiger Begriffe auskommen, sonst wird der Artikel sehr groß und langwierig. Wir werden nur in dem Fall schreiben. Ich bin mir sicher, dass Ihre Umwelt lange Bestand hat. Wenn nicht, schlage ich vor, herunterzuladen und zu installieren.

1 . Android SDK  . Dies ist eine Anwendungsentwicklungsumgebung für Android. Um Änderungen vornehmen zu können, müssen wir unbedingt unseren Programmcode überprüfen. Die Entwicklungsumgebung ist das Beste, was wir verwenden können.
2 . Android Küche  . Mit diesem Dienstprogramm können Sie mit Bildern der Systempartitionen der offiziellen oder inoffiziellen Firmware arbeiten.
3 . Jd-gui  . Java-Code-Dekompiler. Sofort stelle ich fest, dass dies der beste Decompiler in Bezug auf die Benutzerfreundlichkeit ist.
4 . DJ Java Decompiler  . Ein anderer Decompiler oder Disassembler, wie man ihn gerne nennt, ist Java-Programmiercode. Nicht praktisch in Bezug auf die Verwendung, aber analysiert den Code, der manchmal die JD-GUI nicht versteht.
5 . smali . Ein anderer Disassembler, aber schon Dalvik-Code. Smali wird für das Zerlegen und Backsmali für das Zusammenstellen des Codes benötigt.
6 . dex2jar  . Ein Dienstprogramm zum Konvertieren von ausführbaren Dateien Dalvik-Code.

Die Vorteile, die Sie mit diesem Verfahren erzielen können, sind unterschiedlich. Zunächst können Sie Ihren Wunsch nach Personalisierung durch die Wahl minimalistischer Oberflächen, neuer Animationen und bunter Themen und origineller Effekte erfüllen. Dann denken Sie über die Installation einer neuen Firmware nach - dies ist eine Prozedur, die grundlegende Konsolen erfordert und daher nur für die erfahrenste Geduld empfohlen wird und bereit ist, Probleme zu lösen, die während der Installation auftreten können.




Hast du dich entschieden, einen großen Sprung zu machen? Jeder "durchschnittliche Nutzer" kennt den Namen dieses Entwicklungsteams, der für die außergewöhnliche Qualität seiner Produkte bekannt geworden ist. Der Unterschied zwischen ihnen ist die Erholung. Diese Option ist leider aus den Entwickleroptionen verschwunden.


Mit erweiterten Profilen können Sie Ihr Smartphone ausschalten oder andere Bedingungen für die Audioeingabe festlegen.

Firmware-Konvertierung

  Natürlich ist die Firmware, die Sie auf dem Telefon vom Hersteller haben, optimiert, um den Energieverbrauch zu reduzieren. Um die Firmware ändern zu können, müssen Sie sie in ein Format konvertieren, in dem Sie den Code ändern können. Es nutzt Android Küche. Sie können natürlich mit Ihren Händen, wie ich es vorher getan habe, bis ich diese sehr "Küche" gefunden habe. Wie man den Systembereich aus dem Telefon zieht, die Umgebung einstellt, DEODEX Firmware macht, kann man im Internet lesen. Wenn du noch nichts verstehst, solltest du den Artikel verschieben, bis du genug Erfahrung gesammelt hast.

Nachdem die Firmware von der optimierten Ansicht (ODEX - optimierter dalvik ausführbarer Code, wenn Speicher mich nicht verändert) zu DEODEX wurde (dh NICHT optimiert), sind alle ausführbaren Dateien zur Modifikation bereit.







Sein Vorteil ist die Häufigkeit von Updates.





Wenige Systeme sind so leicht und sogar die Anwendungsübersicht ist optimiert: Sie können alle auf einmal schließen. Leider hat er nur wenige Vorschläge und Updates sind selten. Das Projekt wurde für ein Jahr aufgegeben, kehrte aber seit dem Sommer von einem Konzert zurück.


Der Funktionsumfang wird auf Knochen reduziert. Selbst der Root-Code ist nicht in der Berufung.

Direkte Änderungen

Patches erstellen
Wie ich bereits sagte, hatte mein Telefon zunächst ein Verbot der Verwendung von Google. Nun, zumindest platzen Sie, gehen Sie nicht zum Playstore, konfigurieren Sie Ihr Konto nicht, das Telefonbuch synchronisiert nicht wirklich. Warum brauchst du so ein Android? Ich habe lange in die Protokolle (logcat) des Geräts gegraben und dabei festgestellt, dass die Verwendung von Google verboten ist. Das unbequemste in Android, Sie sehen das Protokoll, wissen aber nicht, welche Systemanwendung es erzeugt. Um herauszufinden, wo die Beine wachsen, musste ich alle Systemanwendungen auf den disassemblierten Java-Code aufteilen. Das hat eine ganze Weile gedauert, aber ich benutze immer noch die Arbeit, um den notwendigen Code zu analysieren und zu suchen. Die Schritte, um dieses Werkzeug zu bekommen, sind wie folgt:
1 . Machen Sie alle Firmware deodex
2 . Ihre neue DEODEX-Firmware muss zusammengebaut und auf Ihr Telefon übertragen werden. Wie das gemacht wird, ist das Thema eines anderen Artikels.
3 . Ziehen Sie aus jeder Datei in / system / framework die Datei classes.dex heraus und konvertieren Sie sie mit dex2jar in JAR.
4 . Öffnen Sie jedes JAR in JD-GUI und speichern Sie es erneut im Quellcode.
5 . Entpacken Sie den Quellcode aus dem Archiv.

Als Ergebnis erhielt ich so viele Ordner, wie JAR-Dateien im Verzeichnis / system / enthalten waren, und jeder Ordner hatte eine Struktur von Java-Quellcodes.
  Durch einfache Manipulationen fand ich schnell den Ort, an dem die Logcat-Einträge generiert wurden.




Die Gemeinden sind jedoch zurückgegangen und entsprechen nicht immer der Nachfrage. Bevor Sie fortfahren, stellen Sie sicher, dass Sie wissen, wohin Sie Ihre Hände legen müssen. Der Artikel wurde in Zusammenarbeit mit Eric Hermann neu geschrieben. Es gibt normalerweise zwei Möglichkeiten, Ihr Gerät zu aktualisieren: automatisch oder manuell, was etwas komplizierter ist.

Wie man automatische Updates macht

In diesem Fall erhalten Sie eine Benachrichtigung, dass das Update für die Installation bereit ist, und Sie müssen lediglich auf die Nachricht klicken. Der erste Schritt zur manuellen Aktualisierung besteht darin, nach dem zu suchen, den Sie auf Ihrem Gerät installieren müssen. Es wird nach Software-Updates gesucht, aber nur offizielle Updates stehen Ihnen zur Verfügung.

Wir werden nicht die ganze Logik des Verbots berücksichtigen, da es für jeden Fall eine separate Geschichte ist. Ich musste ein paar Stunden warten, bis ich herausfand, wo die Checks gemacht wurden, in meinem Kopf ein Blockdiagramm des Algorithmus erstellen und verstehen, wohin ich gehen musste, um den Algorithmus ein wenig "verdorben" zu machen.

Es stellte sich alles einfach heraus. Es gibt ein Unterprogramm, das auf der Basis von vorbestimmten Konstanten auf den Anruf reagiert, wenn das Telefon zu China gehört oder nicht.

Nachdem Sie das Programm installiert haben, klicken Sie einfach auf den Button "Telefonnummer prüfen". Das Programm installiert offizielle Updates für Ihr Gerät. Benutzerdefinierte Wiederherstellung Wenn Sie nicht über ein kompatibles Programm unten angegebenen für Ihr Gerät oder Hersteller sehen, die beste Wahl ist eine benutzerdefinierte Wiederherstellung auf Ihrem Gerät zu installieren.

Vielleicht hat jeder immer die Display-Anwendungen und „eingefroren“ worden zu blockieren, keine Hähne und Fingerbewegungen zu erkennen. Dies kann sehr unangenehm sein, besonders wenn Sie schnell etwas unternehmen müssen. Klicken Sie auf die Schaltfläche "Letzte Anwendungen" auf Ihrem Smartphone, um ein Multitasking-Menü für offene Anwendungen zu starten. In den meisten Fällen können Sie dies mithilfe der quadratischen Schaltfläche auf der rechten Seite der Navigationsleiste tun. Wenn Ihr Gerät nicht über eine verfügt, müssen Sie die Home-Taste lange gedrückt halten, um denselben Effekt zu erzielen.

Der Code war in der Datei HTCExtension.jarund die Klasse, in der diese Subroutine enthalten war

Entpacke und analysiere die Originaldatei
1 . Zuerst müssen wir die originale DEODEX JAR-Datei nehmen, die für den Teil des Codes verantwortlich ist, den wir brauchen. In unserem Fall HTCExtension.jar.
2 . Öffnen Sie mit jedem Archiver und ziehen Sie classes.dex von dort
3 . Konvertieren Sie den Konverter mit dex2jar in eine JAR-Datei. Mannschaft: dex2jar.bat classes.dex
4 . Zeigen Sie die empfangene Datei classes_dex2jar.jar in der JD-GUI an.
5 . Ja, die meisten von JD-GUI decompile der Code ist nicht, wie es im Original aussieht, ist es verständlich ist, aber es ist möglich zu lesen. Im Quellcode sehen wir, dass das Unterprogramm die Projektparameter und das Sprachflag der Firmware überprüft. In unserem unglücklichen Fall ist der Rückgabewert TRUE.
  public static boolean isChina () (if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return true; return false;)
6 . Um einen Patch zu erstellen, müssen wir den Dalvik-Code selbst zerlegen. Dafür verwenden wir Baksami. Am einfachsten ist es, einen separaten Ordner zu erstellen und drei Dateien dort zusammenzufügen: HTCExtension.jar, smali.jar  und baksmali.jar. Wir geben den Befehl java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

Dies ist die API Ihrer Android-Version. Für JB ist 16
   - Ordner, in dem sich alle Firmware-Frameworks befinden.

Streichen Sie mit dem Finger über die Anwendung, die Sie links oder rechts schließen möchten. Dann verschwindet die Anwendung vom Bildschirm und hört auf, im Hintergrund zu arbeiten. Führende Hersteller bieten auch eine zusätzliche Schaltfläche, die alle geöffneten Programme blockiert. Wenn Sie zu häufig Probleme mit dem Programm haben, versuchen Sie, es zu aktualisieren, zu entfernen und neu zu installieren. Wenn Sie jemals auf einem großen Parkplatz mit vielen geparkten Autos gewesen sind, müssen Sie wahrscheinlich nach einem Platz suchen, wo Sie Ihr Auto geparkt haben.

Wenn Sie nicht mit einem fotografischen Gedächtnis gesegnet sind, ist es nicht einfach, Ihr geparktes Auto auf einem großen Parkplatz zu finden. Glücklicherweise kann Technologie Ihnen helfen. Die kostenlose Version der Anwendung verwendet Satellitenpositionierung, um den Standort Ihres Autos im Speicher Ihres Telefons zu halten. Wenn Sie nach Ihrem Auto suchen, können Sie durch Drücken der Taste "Auto suchen" den Anwendungskompass herausziehen, dh einen animierten Pfeil, der die Richtung Ihres geparkten Autos anzeigt.

In meinem Fall war es ein Team.
  java -Xmx512m -jar baksmali.jar -a 16 -d S: \\ dev \\ Android \\ Android-Küche \\ WORKING_JB_15 \\ system \\ framework -o HTCExtension -x HTCExtension.jar
7 . In unserem neu erstellten Ordner befand sich ein Ordner HTCExtension und darin unsere Dateien mit Dalvik-Code.
8 . Finde die Datei auf dem Weg \\ com \\ htc \\ util \\ Kontakte \\ BuildUtils $ Customization.java  und schau dir den Code an:
  .method public statisch isChina () Z .register 3.prolog const / 4 v0, 0x1 .line 276 sget-kurz v1, Lcom / htc / htcjavaflag / HtcBuildFlag; -\u003e Htc_PROJECT_flag: S const / 16 v2, 0xd8 if-eqq , v2 ,: cond_13 sget-kurze v1, Lcom / htc / htcjavaflag / HtcBuildFlag; -\u003e Htc_PROJECT_flag: S const / 16 v2, 0xda wenn-eq v1, v2; ; -\u003e Htc_PROJECT_flag: S const / 16 v2, 0x17 wenn-ne v1, v2 ,: cond_14 .line 297: cond_13: goto_13 zurück v0 .line 283: cond_14 sget-kurz v1, Lcom / htc / htcjavaflag / HtcBuild; f; Htc_PROJECT_flag: S wenn-ne v1, v0; 291: cond_1d sget-short v1, Lcom / htc / htcjavaflag / HtcBuildFlag; -\u003e Htc_PROJECT_flag: S const / 16 v2, 0x1b wenn-eq v1, v2 ,: cond_13 .line 297 const / 4 v0, 0x0; Methode
9 . Scary, nicht wahr? Nichts ist klar. Aber das ist eine fixierbare Angelegenheit. Nachdem Sie mehrere Ihrer Patches erstellt und Ihre Hand gefüllt haben, können Sie den Code problemlos ohne Tools von Drittanbietern ändern. In unserem Fall in diesem Code
  .prologue const / 4 v0, 0x1 weist der Variablen v0 den Wert 1 zu, dh TRUE. Dann gibt es alle Arten von Prüfungen, und wenn das Telefon nicht Chinesisch ist, ändert sich der Wert der Variablen:
  .line 297 const / 4 v0, 0x0 gehe zu: goto_13
10 . Der einfachste Weg, den Vater der russischen Demokratie zu retten, ist, den Code wie folgt zu ändern:
  .prologue const / 4 v0, 0x0, das heißt, den Wert einer Variablen von 1 auf 0 ändern. Das heißt, was immer es war, der Wert würde immer FALSE zurückgeben und im JD-GUI Code würde wie ein öffentlicher static boolean isChina () (if (((( Htcbuildflag.at || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false;)
11 . Ja, die Methode wird funktionieren. Aber wir suchen nicht nach einfachen Wegen - dieses Mal. Zweitens, nicht ganz schön. Ich möchte etwas codieren
  public static boolean isChina () (return false;)
12 . Und wie erhalten wir den Dalvik-Code für diesen Quellcode? Für Anfänger werden wir einen kleinen Trick machen.

Dalvik-Code erstellen
1 . Öffnen Sie das Android SDK.
2 . Erstellen Sie ein neues Projekt, und in unserer einzigen Testklasse schreiben wir den folgenden Code
  Paket ru.habrahabr.test; Öffentlicher Klassentest (public static boolean isChina () (return false;))
3 . Wir kompilieren unser Projekt und nehmen dann die zusammengestellte Anwendung aus dem Arbeitsbereich.
4 . Wir legen die gesammelte Anwendung in den Ordner, in dem wir die JAR-Datei entkernt haben.
5 . Geben Sie den Befehl java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk ein
6 . Wir haben die neu erstellte Anwendung in Dalvik-Code zerlegt.
7 . Öffnen Sie unsere Datei test.smali und sehen Sie sich dort den Code an
  .method public statisch isChina () Z .register 1 .prolog .line 7 const / 4 v0, 0x0 return v0 .end-Methode
8 . Alles, der Code zum Patchen ist fertig.
Einen Patch rollen
1 . Der Dalvik-Code ist mit Markern übersät, die eine Codezeile in der ursprünglichen Quelldatei anzeigen. Dies ist notwendig, wenn Fehler in Ihrem Programm angezeigt werden. Ohne Strings funktioniert der Code auch super.
2 . Löschen Sie Zeilen mit Zeilennummerierung, kopieren und ersetzen Sie die Methode (Subroutine) in unserem \\ com \\ htc \\ util \\ Kontakte \\ BuildUtils $ Customization.java  Datei.
  .method public static isChina () Z .register 1 .prolog const / 4 v0, 0x0 return v0 .end-Methode
3 . Speichern Sie die Datei. Ja, ich habe vergessen zu sagen, dass der Editor ein normales benötigt, zum Beispiel Notepad ++ oder EditPlus. Wer mag was?
Kompilieren und Erstellen einer gepatchten JAR-Datei
1 . Mit Hilfe von Backsmali haben wir unsere JAR-Datei entkernt, und jetzt müssen wir sie wieder aufbauen.
2 . Wir geben den Befehl java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . Die Datei classes.dex erscheint in unserem Daddy
4 . Erneut öffnen HTCExtension.jar  Datei mit dem Archivierer und ersetzen Sie den vorhandenen klassen.dex  auf unserem neu geschaffenen.
5 . Alle unsere HTCExtension.jar  enthält modifizierten Programmcode.
Ersetzen der ursprünglichen Datei durch eine gepatchte Datei
  Normalerweise werden für normale Benutzer spezielle Skripts erstellt, die durch die Wiederherstellung ersetzt werden. Aber wir sind nicht interessiert. Erstens ist es lang und langwierig, zweitens sind wir erfahrene Benutzer und können uns einige Feinheiten leisten.

1 . Sie können die aktuelle Arbeitsdatei durch die folgenden Befehle ersetzen, wenn Sie bereits die DEODEX-Firmware besitzen und Root-Zugriff haben:

Adb schieben HTCExtension.jar /sdcard/HTCExtension.jar adb shell su -o Remount -RW- / system dd montieren if = / System / Rahmen / HTCExtension.jar von = / System / Rahmen / HTCExtension.jar.back dd if = / sdcard /HTCExtension.jar = / system / framework / HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm / data / dalvik-cache / [E-Mail geschützt]@[E-Mail geschützt]  neu starten

Das 1. Team lädt die gepatchte Datei auf den USB-Stick hoch
  2. Befehl öffnet die Shell
  Der 3. Befehl gibt Root-Zugriff
  Der 4. Befehl aktiviert das System im Lese- / Schreibmodus
  Team 5 erstellt eine Sicherungsdatei
  Der 6. Befehl überschreibt die bestehende Datei mit der neuen gepatchten.
  7. Team setzt Berechtigungen
  Der 8. Befehl löscht den Cache
  Team 9 startet das Gerät neu.

2 . Danke für das Lesen dieses Punktes, es bleibt ein bisschen.
3 . Nach dem Neustart wird der neue Patch-Code wirksam.
4 . Wenn der Code nicht funktioniert oder ein Fehler auftritt, können Sie die Sicherung durch nicht komplizierte Kombinationen wiederherstellen.
  adb shell su -o Remount -RW- / system dd montieren if = / System / Rahmen / HTCExtension.jar.back von = / System / Rahmen / HTCExtension.jar rm / data / Dalvik-Cache / [E-Mail geschützt]@[E-Mail geschützt]  neu starten

Epilog

  Ja, dieser Artikel schien jemandem zu spezifisch zu sein, zu jemandem, der nicht sehr klar war, aber zu jemandem, der nutzlos war. Ich verzichtete bewusst auf detaillierte Details und Illustrationen, wie alles live und in der Praxis aussieht. Erstens wird diese Arbeit undankbar sein und nur noch mehr Fragen aufwerfen. Zweitens möchte ich nicht eine Armee von Benutzern in Foren sehen, die sich beschweren, dass sie ihr Telefon getötet haben.

Mit dem nächsten Artikel werde ich dir sagen, wie man tviki macht. Es wird ein Beispiel für die Verwendung der automatischen Aufzeichnung von Telefonanrufen durch die nativen Mittel des Telefons geben. Vielen Dank für Ihre Aufmerksamkeit.

P.S. Wenn etwas nicht klar oder verwirrend ist, stellen Sie Fragen - ich werde immer gerne antworten und erklären.

Fortsetzung des Themas:
Intelligenter Fernseher

Wenn sich das Samsung-Fernsehgerät nicht einschaltet, können Sie vor dem Aufrufen des Assistenten versuchen, das Gerät selbst zu reparieren. Zuerst musst du produzieren ...