/dev/blog von TamCore

made with Linux.

cyanogenmod for sensation

OpenSensation unter ArchLinux kompilieren

| 3 Kommentare

Nachdem kmobs aus privaten Gründen mit der Arbeit am AOSP-Port fürs Sensation aufgehört und ein anderer Entwickler sein Sensation gebrickt hat, arbeitet nur noch Bumble-Bee daran. Aber von ihm kommen leider keine Infos. Deshalb bin ich wirklich froh, dass Vorbeth direkt zu Beginn seiner Arbeit am OpenSensation-ROM alle Sourcecodes offen gelegt hat.

Leider wirkt es zu Beginn etwas kompliziert, wenn man Android selbst kompilieren will. Weil die Anleitung von blahbl4hblah für ArchLinux Nutzer total ungeeignet ist, habe ich seine als Grundlage genommen und diese verfasst. Ich hoffe, sie ist nicht allzu unverständlich

Damit das fertig kompilierte ROM zum Schluss auf dem HTC Sensation läuft, muss vorher die aktuelle Firmware geflasht werden.

Wir benötigen:

  • Computer
  • ArchLinux (<3)
  • etwas Linux-Erfahrung
  • mindestens 4GB RAM
  • mindestens eine Dual Core CPU
  • mindestens 25GB freien Speicher

Zuerst muss sichergestellt werden, dass die Repositories core, extra, community, multilib und archlinuxfr in der /etc/pacman.conf eingetragen sind.

[core]
Include = /etc/pacman.d/mirrorlist

[extra]
Include = /etc/pacman.d/mirrorlist

[community]
Include = /etc/pacman.d/mirrorlist

[multilib]
Include = /etc/pacman.d/mirrorlist

[archlinuxfr]
Server = http://repo.archlinux.fr/$arch

Als nächstes installieren wir das Tool yaourt.

pacman -Sy yaourt

Jetzt können wir die benötigten Pakete installieren. 

yaourt -Sa base base-devel git gnupg python rar nawk gawk p7zip gperf sdl esound wxgtk squashfs-tools zip curl ncurses zlib pngcrush schedtool android-sdk android-sdk-platform-tools android-udev java-runtime xproto libx11 libgl mingw32-binutils dos2unix python-markdown libxml2 ccache

(Die Pakete android-sdk, android-sdk-platform-tools, android-udev, esound und pngcrush werden aus dem AUR und rar aus dem archlinuxfr Repository bezogen)

Auf 64-bit Systemen müssen noch weitere Pakete installiert werden. Abfragen, ob verschiedene Pakete entfernt werden dürfen, mit Ja bzw Yes bestätigen!

yaourt -Sa multilib-devel lib32-zlib lib32-ncurses lib32-readline

Jetzt erstellen wir die nötige Verzeichnisstruktur und laden uns das repo-Tool von Google. 

mkdir -p ~/bin ~/android/system
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo

Weil das repo-Tool nicht mit der python3 verträgt, muss es auf python2 geändert werden.

sed -i 's/python /python2 /' ~/bin/repo

Jetzt können wir das Repository initialisieren.

cd ~/android/system
~/bin/repo init -u git://github.com/OpenSensation/android.git -b ics

Wenn er mit der Fehlermeldung “SyntaxError: invalid syntax” abbricht, folgenden Befehl ausführen und anschließend nochmal versuchen.

sed -i 's/python /python2 /' ~/android/system/.repo/repo/{repo,main.py}

Jetzt muss der Sourcecode von Android heruntergeladen werden. Das kann je nach Internetanbindung einige Zeit dauern.

~/bin/repo sync

Sollten Fehlermeldungen wie “fatal: The remote end hung up unexpectedly” auftauchen, dann muss

sysctl -w net.ipv4.tcp_window_scaling=0

als root ausgeführt werden. (Troubleshooting network issues)

Für CyanogenMod werden noch proprietäre Dateien (koush’s RomManager und jackpal’s Android Terminal Emulator) benötigt.

sh vendor/cm/get-prebuilts

Jetzt laden wir uns das Build-Script von Vorbeth herunter.

wget http://tamcore.eu/wp-content/uploads/2012/02/build.sh -O ~/android/system/build.sh
chmod a+x ~/android/system/build.sh

Bevor Android jetzt kompiliert werden kann, müssen wieder diverse Scripte dazu gezwungen werden, python2 zu verwenden.

find . -type f -iname *.py -exec sed -i 's/^\#\!\/usr\/bin\/env python.*/\#\!\/usr\/bin\/env python2/' {} \;
find build/tools/ -type f -exec sed -i 's/^\#\!\/usr\/bin\/env python.*/\#\!\/usr\/bin\/env python2/' {} \;
find . -type f -iname *.mk -exec sed -i 's/python \$/python2 \$/' {} \;

Anschließend können wir Android kompilieren:

./build.sh

Autor: Philipp

Linuxer seit dem 14. März 2009 und Android-Fanboy seit 5. Juli 2010. Etwas kompliziert, schwäbisch und pessimistisch. Auch zu finden bei Twitter, und Facebook.

3 Kommentare

  1. HI und Danke für dein TUT,

    Leider klappt das Kompilieren nicht.

    Und zwar meckert er über das Java.

    build/core/config.mk:269: *** Error: could not find jdk tools.jar, please install JDK6, which you can download from java.sun.com. Schluss.

    Leider weiß ich nicht wie ich das beheben kann da ich komplett deinem tut gefolgt bin sollte das funktionieren.
    Ich habe dafür extra ein sauberes System neu installiert.

    ycronoy

    • Das oben angegebene Paket "java-runtime" sollte eigentlich "openjdk6" installieren. Dort ist die java.jar enthalten. Führ "source /etc/profile.d/openjdk6.sh" aus, bevor du die build.sh startest oder log dich neu ein. Sollte beides klappen, da in beiden Fällen die openjdk6.sh ausgeführt wird.

  2. Danke für deine Hilfe.

Hinterlasse eine Antwort

Pflichtfelder sind mit * markiert.