So portieren (kompilieren) Sie MIUI aus dem Quellcode

Erstellen Sie MIUI aus dem Quellcode.

neu in der Entwicklung, machen Sie sich keine Sorgen um diese Anleitung, hier ist eine Schritt-für-Schritt-Anleitung zum Erstellen oder Kompilieren von MIUI 8,7 ROM für jedes Android-Telefon unter Verwendung von Quellcode und Patchrom-Methode.

Anforderungen:-

  1. Ubuntu 14.04 64-Bit. (Eine Installation als virtuelle Maschine wie in VMware funktioniert auch)
  2. Basis-ROM für Ihr Gerät.
    NOTIZ- Verwenden Sie als Basis-ROM vorzugsweise reines AOSP, das für Ihr Gerät erstellt wurde, und nicht CyanogenMod. Beim Patchen des MIUI-Frameworks erhalten Sie weniger Ablehnungen. Aber CM funktioniert auch! Deine Entscheidung..
  3. Apktool. Sie können verwenden Erweitertes Apktool von BDFreak. Es ist einfacher zu verwenden.
  4. Funktionierendes Gehirn und viel Geduld!!

Voraussetzungen:-

  • Nehmen Sie zunächst einmal Framework-res.apk, Framework.jar, Framework2.jar, Services.jar, Android.policy.jar Und telephony-common.jar aus Ihrer Basis-ROM-Zip-Datei.
  • Dekompilieren Sie nun mit apktool alle oben genannten Dateien.
  • Wenn Sie das erweiterte apktool verwenden, gehen Sie zum Ordner 3-Out und benennen Sie die entsprechenden Ordner um in:
    PHP-Code:
    framework-res
    framework.jar.out
    framework2.jar.out
    services.jar.out
    android.policy.jar.out
    telephony-common.jar.out
  • Wir benötigen diese Ordner weiterhin für das Patchen des MIUI-Frameworks.

SCHRITT 1: Vorbereiten der Build-Umgebung

  • Wechseln Sie zu Ubuntu 14.04. Wir müssen die ROM-Building-Umgebung vorbereiten.
  • Der nächste Schritt besteht darin, Android SDK einzurichten. Folgen DAS Führung. (Sehen Sie sich die grafische Bilderklärung der zweiten Antwort an. Folgen Sie bis Schritt 5.)
  • Führen Sie nun die folgenden Befehle als Superuser vom Terminal aus aus:
    PHP-Code:
    sudo apt-get update

    Dann, nachdem ich das ausgeführt habe-

    Zitieren:

    sudo apt-get install bison build-essential curl flex git git-core gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop openjdk-7-jdk openjdk-7-jre pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev unzip lib32readline-gplv2-dev lib32z1-dev make python-networkx zlib1g-dev:i386 phablet-tools

  • Alle notwendigen Pakete sind nun installiert. Der nächste Schritt besteht nun darin, das Repository zu konfigurieren.
  • Führen Sie im Terminal die folgenden Befehle aus:
    PHP-Code:
    mkdir -p ~/bin
    PHP-Code:
    PATH=~/bin:$PATH
    PHP-Code:
    cd ~/bin
    PHP-Code:
    curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    PHP-Code:
    chmod a+x ~/bin/repo
    PHP-Code:
    mkdir ~/patchrom
    PHP-Code:
    cd ~/patchrom
    PHP-Code:
    repo init -u git://github.com/MiCode/patchrom.git -b miui-7 -m android-4.4.4.xml
  • Jetzt müssen Sie Git konfigurieren. Führen Sie die folgenden Befehle im Terminal aus:
    Code:
    git config --global user.email ENTER_YOUR_EMAIL_ID_HERE
    Code:
    git config --global user.name ENTER_YOUR_REAL_NAME_HERE
  • Jetzt ist es Zeit, den MIUI-Quellcode herunterzuladen! Führen Sie den folgenden Befehl im Terminal aus:
    PHP-Code:
    repo init -u git://github.com/MiCode/patchrom.git -b miui-7 -m android-4.4.4.xml
    PHP-Code:
    repo sync
  • Schnappen Sie sich jetzt eine Tasse Kaffee, während die MIUI-Quelle heruntergeladen wird. Die benötigte Zeit hängt von der Geschwindigkeit Ihrer Internetverbindung ab. Die MIUI-Quelle ist etwa 600–700 MB groß (mit .repo beträgt die Gesamtgröße 1,5 GB).
  • Erstellen Sie nach dem Herunterladen der Quelle ein neues Verzeichnis in /home. Nennen Sie es, wie Sie wollen. (Vorzugsweise Codename Ihres Geräts) In meinem Fall ist es Taoshan.
    PHP-Code:
    cd /home/stryder/
    PHP-Code:
    mkdir taoshan
    PHP-Code:
    cd taoshan
  • Erstellen Sie nun ein Makefile für Ihr Gerät. Wenn Sie möchten, können Sie Änderungen an diesem Makefile vornehmen und verwenden.
    PHP-Code:
    gedit makefile

    Sie können den folgenden Inhalt in das Makefile kopieren (vergessen Sie nicht, entsprechend Ihrem Gerät Änderungen daran vorzunehmen) und speichern.

    Code:
    #
    # Makefile for taoshan
    #
    
    # The original zip file, MUST be specified by each product
    local-zip-file     := stockrom.zip
    
    # The output zip file of MIUI rom, the default is porting_miui.zip if not specified
    local-out-zip-file := MIUI7_taoshan.zip
    
    # All apps from original ZIP, but has smali files chanded
    local-modified-apps :=
    
    local-modified-priv-apps := 
    
    local-modified-jars := 
    
    # All apks from MIUI
    local-miui-removed-apps := 
    
    local-miui-removed-priv-apps := 
    
    local-miui-modified-apps := 
    
    # All apps need to be removed from original ZIP file
    local-remove-apps   := Gallery2 Exchange2
    
    # Config density for co-developers to use the aaps with HDPI or XHDPI resource,
    # Default configrations are HDPI for ics branch and XHDPI for jellybean branch
    local-density := XHDPI
    
    PORT_PRODUCT := taoshan
    
    # To include the local targets before and after zip the final ZIP file, 
    # and the local-targets should:
    # (1) be defined after including porting.mk if using any global variable(see porting.mk)
    # (2) the name should be leaded with local- to prevent any conflict with global targets
    #local-pre-zip := local-pre-zip-misc
    #local-after-zip:= local-put-to-phone
    
    # The local targets after the zip file is generated, could include 'zip2sd' to 
    # deliver the zip file to phone, or to customize other actions
    
    #include phoneapps.mk
    
    include $(PORT_BUILD)/porting.mk
    
    local-pre-zip-misc:
    	@echo Update boot.img
    	cp other/boot.img $(ZIP_DIR)/boot.img
    	
    	@echo Update build.prop
    	cp other/build.prop $(ZIP_DIR)/system/build.prop
    
    	@echo Delete some unneeded files
    	rm -rf $(ZIP_DIR)/system/etc/.has_su_daemon
    
    	rm -rf $(ZIP_DIR)/system/priv-app/Dialer.apk
    
    	rm -rf $(ZIP_DIR)/system/priv-app/Keyguard.apk
    
    	rm -rf $(ZIP_DIR)/system/priv-app/SystemUI.apk
    
    	rm -rf $(ZIP_DIR)/system/priv-app/VoiceDialer.apk
    
    	rm -rf $(ZIP_DIR)/system/priv-app/Launcher3.apk
    
    	rm -rf $(ZIP_DIR)/system/priv-app/ParanoidOTA.apk
    
    	rm -rf $(ZIP_DIR)/system/priv-app/ThemeChooser.apk
    
    	rm -rf $(ZIP_DIR)/system/priv-app/ThemesProvider.apk

    Erläuterungen:-

  • 'local-zip-file' = Name Ihrer ursprünglichen Base-ROM-Zip-Datei
  • 'local-out-zip-file' = Name für Ihr fertiges MIUI-ROM
  • 'local-modified-apps' = Apps, die geändert werden, damit sie in das Framework passen. Sie müssen geändert werden, da sie mit dem System in Kontakt kommen
  • 'local-remove-apps' = Apps, die aus dem Original-ROM entfernt werden
  • 'local-pre-zip' = Bezieht sich auf den Codeblock, der ausgeführt werden sollte, bevor die Zip-Datei fertig ist.
  • 'local-after-zip' = Bezieht sich auf den Codeblock, der nach Abschluss der Zip-Datei ausgeführt wird
  • 'local-zip-misc' = Der gerade unter 'local-pre-zip' beschriebene Codeblock. Es fügt einige Google Apps und eine build.prop hinzu
  • 'local-test' = Ein weiterer Codeblock
  • Kopieren Sie nun manuell die zuvor dekompilierten Framework-Ordner in Ihren Geräteordner.
    PHP-Code:
    framework-res
    framework.jar.out
    framework2.jar.out
    services.jar.out
    android.policy.jar.out
    telephony-common.jar.out
  • Kopieren Sie als Nächstes Ihre Base-ROM-ZIP-Datei in Ihren Geräteordner.
  • Wechseln Sie nun in den Patchrom-Ordner.
    PHP-Code:
    cd ~/patchrom
    PHP-Code:
    source build/envsetup.sh
  • Wechseln Sie erneut in Ihren Geräteordner und starten Sie das Patchen des MIUI-Frameworks.
    PHP-Code:
    cd /home/stryder/taoshan
    PHP-Code:
    make firstpatch
  • Jetzt ein neuer Ordnerordner Temp wird erstellt. Darin finden Sie die ablehnen Ordner, in dem es Ausschuss gibt, den Sie manuell beheben müssen. Folgen DAS ausgezeichneter Führer von @javieralonso Ausschuss zu beheben. Siehe auch DAS Führung.
  • Nachdem Sie alle Ablehnungen behoben haben, geben Sie den folgenden Befehl ein, um eine flashbare Zip-Datei Ihres MIUI ROM zu erstellen.
    PHP-Code:
    make fullota

    oder Sie können auch verwenden

    PHP-Code:
    make zipfile
  • Damit wird die flashbare ZIP-Datei erstellt. Jetzt Folgen Sie dem Tutorial aus dem nächsten Beitrag um Ihre boot.img zu ändern und diese neue boot.img in Ihre flashbare MIUI ROM-Zip-Datei aufzunehmen. Dann flashen Sie die Zip-Datei aus der Wiederherstellung und genießen Sie Ihr im Quellcode erstelltes MIUI-ROM!
  • Manchmal kann es vorkommen, dass Ihr Gerät bei der Bootanimation hängen bleibt. Nehmen Sie es also in diesem Fall LOGCAT und suchen Sie nach dem Fehler und beheben Sie ihn. Sie können einige Tools wie Advanced Logcat Viewer verwenden, um das Protokoll zu lesen.

Boot.img ändern

Jetzt ändern wir die Datei boot.img aus der ZIP-Datei des Basis-ROMs, um sie mit unserem MIUI-ROM kompatibel zu machen.

  • Laden Sie zunächst ein beliebiges Boot-Image von Kitchen oder Editor herunter. Ich habe Android Image Kitchen für Windows verwendet.
  • Vorausgesetzt, Sie verwenden dieselbe Küche, extrahieren Sie die Dateien aus Android Image Kitchen in einen separaten Ordner. Kopieren Sie Ihr Basis-ROM boot.img in diesen Ordner.
  • Ziehen Sie nun die boot.img per Drag & Drop auf auspacken. Die Kerneldateien werden extrahiert Ramdisk Und split_img Ordner.
  • Wir müssen das ändern Ramdisk Gehen Sie also dorthin. Im Sbin-Ordner sehen Sie die extrahierten Dateien.
  • Jetzt gibt es zwei Möglichkeiten: Erstens ist Ihre Ramdisk bereits mit verschiedenen Ordnern und Dateien entpackt. Ignorieren Sie in diesem Fall die nächsten Schritte und ändern Sie die entsprechenden Dateien direkt mit Notepad++.
  • Im zweiten Fall erhalten Sie die Ramdisk als ramdisk.cpio Datei. Wenn Sie dies erhalten, müssen Sie erneut zu Ubuntu wechseln, um es zu extrahieren.
  • Kopieren Sie jetzt in Ubuntu Ihre ramdisk.cpio in einem separaten Ordner (z. B. im Stryder-Ordner) in Ihrem Home-Verzeichnis.
  • Öffnen Sie nun das Terminal und führen Sie den folgenden Befehl aus: (Kein Superuser erforderlich)
    PHP-Code:
    cd stryder
    PHP-Code:
    cpio -i -F ramdisk.cpio
  • Einige Ausgaben werden im Terminal als 2320 Blöcke oder so ähnlich angezeigt!
  • Jetzt sehen Sie in Ihrem Ordner die extrahierten Ramdisk-Dateien.
  • Jetzt kommt die eigentliche Modifikation.
  • Laden Sie zunächst die angehängte Zip-Datei herunter und extrahieren Sie die Dateien in die entsprechenden Ordner. (Wenn der Ordner nicht vorhanden ist, fügen Sie ihn hinzu.)
  • Offen default.prop und bearbeiten Sie die Zeilen wie folgt:
    PHP-Code:
    #
    # ADDITIONAL_DEFAULT_PROPERTIES
    #
    ro.adb.secure=0
    ro.secure=0
    ro.allow.mock.location=0
    ro.debuggable=1
    persist.sys.usb.config=mtp,adb
    persist.service.adb.enable=1
    persist.service.debuggable=1
  • Speichern Sie die Änderungen und öffnen Sie sie init.cm.rc (Im Fall von CyanogenMod) oder init.pa.rc (Im Falle von AOSPA). Fügen Sie # wie folgt vor der Importzeile hinzu:
    PHP-Code:
    # Superuser
    #import /init.superuser.rc
  • Speichern Sie diese Datei und öffnen Sie sie jetzt init.rc.
  • Am Ende von init.rc Datei, fügen Sie diese Zeilen hinzu-
    PHP-Code:
    #service for shelld
    service shelld /system/xbin/shelld
    class main
    #service für su
    Dienst su_daemon /system/xbin/su –daemon
    Hauptklasse
    OneshotDienst lbesec /system/xbin/lbesec
    Hauptklasse
    Oneshot
  • Speichern Sie diese Datei und öffnen Sie sie dann seapp_contexts.
  • Fügen Sie in dieser Datei am Ende Folgendes hinzu:
    PHP-Code:
    user=theme seinfo=platform domain=platform_app type=platform_app_data_file
    user=backup seinfo=platform domain=platform_app type=platform_app_data_file
    user=updater seinfo=platform domain=platform_app type=platform_app_data_file
    user=theme_man domain=system_app type=system_data_file
  • Ändern Sie diese Zeilen (falls vorhanden) auch so, dass sie wie folgt aussehen:
    PHP-Code:
    user=_app domain=untrusted_app type=app_data_file
    user=_app seinfo=platform domain=platform_app type=app_data_file
    user=_app seinfo=shared domain=shared_app type=app_data_file
    user=_app seinfo=media domain=media_app type=app_data_file
    user=_app seinfo=release domain=release_app type=app_data_file
  • Speichern Sie diese Datei und öffnen Sie sie, falls vorhanden init.qcom.rc.
  • Und vor dieser Zeile (am Ende)-
    PHP-Code:
    on property:sys.boot_completed=1
  • Fügen Sie diese Zeilen hinzu:
    PHP-Code:
    service shelld /system/xbin/shelld
    class main
  • Speicher die Datei. Jetzt ist es an der Zeit, Ihre Ramdisk neu zu packen.
  • Verschieben Sie zunächst Ihr Original ramdisk.cpio aus dem extrahierten Ordner nach /home. Das heißt, wenn Ihre extrahierte Ramdisk vorhanden ist
    PHP-Code:
    /home/stryder/

    Umzug Original ramdisk.cpio Datei an-

    PHP-Code:
    /home/
  • Führen Sie anschließend diesen Befehl im Terminal aus.
    PHP-Code:
    cpio -i -t -F ../ramdisk.cpio | cpio -o -H newc -O ../ramdisk_new.cpio
  • Jetzt eine neue Datei ramdisk_new.cpio wird erstellt. Schauen Sie, ob es die gleiche Größe wie das Original hat, nur ein paar Bytes Unterschied.
  • Öffnen Sie auch dieses ramdisk_new.cpio und stellen Sie sicher, dass Sie die neu hinzugefügten Dateien darin haben. (Bsp. otad im bin-Ordner usw.)
  • Verschieben Sie dies nun ramdisk_new.cpio zur zuvor extrahierten Android Image-Küche ramdisk/sbin/Verzeichnis.
  • Löschen Sie die Original ramdisk.cpio daraus entfernen und umbenennen ramdisk_new.cpio Zu ramdisk.cpio.
  • Jetzt komm zurück und renne direkt Umpacken. Die modifizierte image_new wird generiert. Benennen Sie es um in Stiefel und fügen Sie diese geändert ein boot.img in Ihrer MIUI ROM-Zip-Datei. Jetzt können Sie mit dem Flashen Ihres MIUI ROM fortfahren!

Dank an @KRIEGER~007

Demodatei- ramdisk_files.zip

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *