Mitglieder surfen ohne Werbung: Jetzt kostenlos registrieren!

[GUIDE] ParanoidAndroid fürs N4 mit Ubuntu 13.10 selbst compilieren

  • 99 Antworten
  • Neuester Beitrag
Diskutiere [GUIDE] ParanoidAndroid fürs N4 mit Ubuntu 13.10 selbst compilieren im Anleitungen für Google Nexus 4 im Bereich Root / Custom-ROMs / Modding für Google Nexus 4.
vetzki

vetzki

Guru
Entweder: evtl. gibts im tools Ordner ein "repopick.py" python script dann mit dem (müsste dann so python repopick.py CommitId)
oder:
du gehst auf Download -> Cherry-pick, kopierst die Adresse ( git fetch https://gerrit.omnirom.org/android_packages_services_Telephony refs/changes/74/4974/1 && git cherry-pick FETCH_HEAD ) und gibst sie im entsprechenden pfad (packages/services/Telephony) ein.


(Falls von einem git dann im entsprechenden Ordner erst git remote add Name Adresse
(z. b. in frameworks/base git remote add cm https://github.com/CyanogenMod/android_frameworks_base.git ,evtl. noch add mit -t branch, dann git fetch cm , dann git cherry-pick CommitId)
 
S

sockxo

Ambitioniertes Mitglied
ah ok, ich hoffe ich habs verstanden :) muss jetzt nur mal warten , bis der mal fertig gesynct hat... ist seit 11h dran...
Danke dir
 
S

sockxo

Ambitioniertes Mitglied
Ich bin immer noch am syncen...
ist die Zeit normal? habe eine 16k Leitung

 
vetzki

vetzki

Guru
man sieht auf dem Bild leider nix, aber dauert schon ein bisschen (mit repo sync -j6 oder so geht's evtl. etwas schneller und/oder -c, also repo sync -cj6).
 
S

sockxo

Ambitioniertes Mitglied
Oh okay, bin jetzt 39h dran
 
vetzki

vetzki

Guru
39h scheint schon arg lang, aber wird schon fertig werden.
 
S

sockxo

Ambitioniertes Mitglied
Dann lasse ich den noch etwas laufen ^^
 
K

kamanu

Neues Mitglied
Wo ist eigentlich der Unterschied zwischen diesen beiden Dateien?

hammerhead.PNG
 
vetzki

vetzki

Guru
vmtl. gleich, hast du evtl. einmal mit make otapackage das andere mal mit brunch mako gebaut?
 
K

kamanu

Neues Mitglied
Ich baue immer mit "./rom-build.sh hammerhead" (baue mittlerweile für mein Nexus 5. Aber das läuft ja komplett analog zum bauen fürs N4). Und ich krieg halt jedes mal beide Dateien beim bauen...
 
vetzki

vetzki

Guru
was steht den in dem rom-build script drin?
 
K

kamanu

Neues Mitglied
Bitte sehr :)

Code:
#!/bin/bash

# Version 2.0.4, Adapted for AOSPA.

# We don't allow scrollback buffer
echo -e '\0033\0143'
clear

# Get current path
DIR="$(cd `dirname $0`; pwd)"
OUT="$(readlink $DIR/out)"
[ -z "${OUT}" ] && OUT="${DIR}/out"

# Prepare output customization commands
red=$(tput setaf 1)             #  red
grn=$(tput setaf 2)             #  green
blu=$(tput setaf 4)             #  blue
cya=$(tput setaf 6)             #  cyan
txtbld=$(tput bold)             # Bold
bldred=${txtbld}$(tput setaf 1) #  red
bldgrn=${txtbld}$(tput setaf 2) #  green
bldblu=${txtbld}$(tput setaf 4) #  blue
bldcya=${txtbld}$(tput setaf 6) #  cyan
txtrst=$(tput sgr0)             # Reset

# Local defaults, can be overriden by environment
: ${PREFS_FROM_SOURCE:="false"}
: ${THREADS:="$(cat /proc/cpuinfo | grep "^processor" | wc -l)"}

# If there is more than one jdk installed, use latest 6.x
if [ "`update-alternatives --list javac | wc -l`" -gt 1 ]; then
        JDK6=$(dirname `update-alternatives --list javac | grep "\-6\-"` | tail -n1)
        JRE6=$(dirname ${JDK6}/../jre/bin/java)
        export PATH=${JDK6}:${JRE6}:$PATH
fi
JVER=$(javac -version  2>&1 | head -n1 | cut -f2 -d' ')

# Import command line parameters
DEVICE="$1"
EXTRAS="$2"

# Get build version
MAJOR=$(cat $DIR/vendor/pa/vendor.mk | grep 'ROM_VERSION_MAJOR := *' | sed  's/ROM_VERSION_MAJOR := //g')
MINOR=$(cat $DIR/vendor/pa/vendor.mk | grep 'ROM_VERSION_MINOR := *' | sed  's/ROM_VERSION_MINOR := //g')
MAINTENANCE=$(cat $DIR/vendor/pa/vendor.mk | grep 'ROM_VERSION_MAINTENANCE := *' | sed  's/ROM_VERSION_MAINTENANCE := //g')
TAG=$(cat $DIR/vendor/pa/vendor.mk | grep 'ROM_VERSION_TAG := *' | sed  's/ROM_VERSION_TAG := //g')

if [ -n "$TAG" ]; then
        VERSION=$MAJOR.$MINOR$MAINTENANCE-$TAG
else
        VERSION=$MAJOR.$MINOR$MAINTENANCE
fi

# If there is no extra parameter, reduce parameters index by 1
if [ "$EXTRAS" == "true" ] || [ "$EXTRAS" == "false" ]; then
        SYNC="$2"
        UPLOAD="$3"
else
        SYNC="$3"
        UPLOAD="$4"
fi

# Get start time
res1=$(date +%s.%N)

echo -e "${cya}Building ${bldcya}AOSPA $VERSION for $DEVICE ${txtrst}";
echo -e "${bldgrn}Start time: $(date) ${txtrst}"

# Decide what command to execute
case "$EXTRAS" in
        threads)
                echo -e "${bldblu}Please enter desired building/syncing threads number followed by [ENTER]${txtrst}"
                read threads
                THREADS=$threads
        ;;
        clean|cclean)
                echo -e "${bldblu}Cleaning intermediates and output files${txtrst}"
                export CLEAN_BUILD="true"
                [ -d "${DIR}/out" ] && rm -Rf ${DIR}/out/*
        ;;
esac

echo -e ""

export DEVICE=$DEVICE

# Fetch latest sources
if [ "$SYNC" == "true" ]; then
        echo -e ""
        echo -e "${bldblu}Fetching latest sources${txtrst}"
        repo sync -j"$THREADS"
        echo -e ""
fi

if [ ! -r "${DIR}/out/versions_checked.mk" ] && [ -n "$(java -version 2>&1 | grep -i openjdk)" ]; then
        echo -e "${bldcya}Your java version still not checked and is candidate to fail, masquerading.${txtrst}"
        JAVA_VERSION="java_version=${JVER}"
fi

if [ -n "${INTERACTIVE}" ]; then
        echo -e "${bldblu}Dropping to interactive shell${txtrst}"
        echo -en "${bldblu}Remeber to lunch you device:"
        if [ "${VENDOR}" == "pa" ]; then
                echo -e "[${bldgrn}lunch pa_$DEVICE-userdebug${bldblu}]${txtrst}"
        else
                echo -e "[${bldgrn}lunch full_$DEVICE-userdebug${bldblu}]${txtrst}"
        fi
        bash --init-file build/envsetup.sh -i
else
        # Setup environment
        echo -e ""
        echo -e "${bldblu}Setting up environment${txtrst}"
        . build/envsetup.sh
        echo -e ""

        # lunch/brunch device
        echo -e "${bldblu}Lunching device [$DEVICE] ${cya}(Includes dependencies sync)${txtrst}"
        export PREFS_FROM_SOURCE
        lunch "pa_$DEVICE-userdebug";

        echo -e "${bldblu}Starting compilation${txtrst}"
        mka bacon
fi
echo -e ""

# Get elapsed time
res2=$(date +%s.%N)
echo -e "${bldgrn}Total time elapsed: ${txtrst}${grn}$(echo "($res2 - $res1) / 60"|bc ) minutes ($(echo "$res2 - $res1"|bc ) seconds)${txtrst}"
 
freibergisch

freibergisch

Fortgeschrittenes Mitglied
Nur eine kurze Frage..

Bei mir während des Syncens brichts irgendwann ab mit der Meldung, es sei kein Speicherplatz mehr vorhanden.. (bei etwa 200GB freiem Speicher..)

Mittlerweile kommt diese Zeile:

error: unable to create file Source/core/page/UserContentTypes.h (Auf dem Ger?t ist kein Speicherplatz mehr verf?gbar)

Das ist aber nur eine von vielen Zeilen, die mir sagen, es sei kein Platz vorhanden..

Vorher kam immer IOError: [Errno 28] No space left on device..
Vielleicht sollte ich Ubuntu mal neustarten..

"OSError: [Errno 28] No space left on device: '/host/android/aospa/external/chromium_org/third_party/angle_dx11/.git'"

Die komplette Zeile, die er mir gerade wieder ausspuckte..

Kann ich das Syncen nicht von einer ext. HDD machen? Habe Wubi Ubuntu drauf, 30GB auf ner ext. HD und wollte im Host-Verzeichnis, also auf der richtigen Partition installieren. Nicht, dass er temporär die Files im 30GB-Wubi-File ablegen will und deswegen an seine Grenzen kommt.

Irgend ne Idee?

Viele Grüße

Marcus
 
crian

crian

Stammgast
30GB?! Das ist viel zu wenig. Du brauchst eine größere Festplatte.
Leg einfach auf auf deiner internen Festplatte den Android Ordner an und öffne dort den terminal.

Ich habe Linux auf einer SSD mit 120GB installiert und der Android Ordner liegt auf einer zweiten HDD mit 1TB.
 
Zuletzt bearbeitet:
freibergisch

freibergisch

Fortgeschrittenes Mitglied
Hab ich ja gemacht, hab im root der externen hdd, also außerhalb der wubi disk (32gb) ... Da sind noch etwa 200gb frei gewesen.. Und trotzdem gehts nicht.. Ich versuchs mit ner anderen Partition jetzt,...
 
crian

crian

Stammgast
Wie sieht deine interne Festplatten Konfiguration denn aus?
 
freibergisch

freibergisch

Fortgeschrittenes Mitglied
Ich hab es folgendermaßen gemacht:

Interne Hdd (windows 8.1 lw, home lw)
Externe hdd (lw mit wubi - 200gb frei, aber die wubi-disk nur 32gb groß)
Darum versuchte ich android außerhalb der wubi disk zu ziehen, im root der ext hdd in dem auch die wubi disk liegt.. Aber auch da meckert er rum.. Ich muss mal versuchen, die ganze hdd einfach mit ubuntu zu befeuern und gut. Derzeit startet es nämlich nicht mal..
 
crian

crian

Stammgast
Sonst Versuch mal ubuntu auf einer freien partition der internen HDD zu installieren, so dass du Windows und ubuntu im dual boot hast.
Ich nutze nur Linux an meinem laptop, habe aber auch noch win 7 auf der zweiten HDD installiert zur Sicherheit.
 
freibergisch

freibergisch

Fortgeschrittenes Mitglied
Ich hab mit 320GB nicht die größte interne Platte,... Bei nem 700eu Notebook vor 2 Jahren irgendwie merkwürdig.. :) ich hab nur noch ein paar GB frei auf den beiden internen LW.. Wenn ich mal groß bin, sollte ich mal die Platte ersetzen. Bisher habe ich das durch ext. Platten kompensieren können, aber 320gb intern sind schon recht wenig... ich versuchs mal mit so einem USB-Installer.. Ansonsten muss die erste Partition der externen HDD (200gb) dran glauben :)
 
freibergisch

freibergisch

Fortgeschrittenes Mitglied
Habs gedownloaded.. :) war gar nicht so viel an GB... Nun muss ic noch herausfinden wie man es portiert.. :) hab da ja die CM Anleitung. Dürfte ja das Gleiche sein