Android Nougat 7.0 auf Centos 7.2

Nach dem es auf dem MAC bisher nicht geklappt hat bzw. der Source fehlte, habe ich es auf Centos 7.2 einmal Probiert.

# fetch source
sudo yum install git
sudo yum install wget
# to compile
# Lolipop & Marschmallow
sudo yum install java-1.7.0-openjdk
sudo yum install java-1.7.0-openjdk-devel
# Nougat
sudo yum install java-1.8.0-openjdk
sudo yum install java-1.8.0-openjdk-devel
sudo yum install java-1.8.0-openjdk sudo yum install java-1.8.0-openjdk-devel sudo yum install glibc.i686 sudo yum install libstdc++.i686 sudo yum install bison sudo yum install zip sudo yum install unzip

gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4)

openjdk version “1.8.0_101”

i7-3770K 32 GByte RAM, SSD 270MB/s

#### make completed successfully (01:15:40 (hh:mm:ss)) ####

Und ja es klappte auf anhiebt. Zuerst hatte ich Java OpenJDK 1.7… eingestellt, aber Android Nougat wollte das aktuelle JDK (zum heutigen Zeitpunkt).

Ansonsten liessen sich alle 3 Varianten übersetzten Android 5.0-7.0.

Cheers..

PS: Mal sehen wie es auf dem MAC funktioniert…

Android:Clean up the board … mal den Mac ein bischen sauber halten für Entwicklung….

Also die elf.h von /usr/include nach /usr/local/include/

Mac Ports hat meine .bash_profile geändert. Daher kommentier ich

##

# Your previous /Users/andy/.bash_profile file was backed up as /Users/andy/.bash_profile.macports-saved_2016-08-17_at_11:04:01

##

# MacPorts Installer addition on 2016-08-17_at_11:04:01: adding an appropriate PATH variable for use with MacPorts.

#export PATH=”/opt/local/bin:/opt/local/sbin:$PATH”

# Finished adapting your PATH environment variable for use with MacPorts.

den Pfad aus.

in das Kernel Build.sh Skript füge ich die Zeilen:

export PATH=/Developer/Xcode5.1.1.app/Contents/Developer/usr/bin/:$PATH

source /opt/local/share/macports/setupenv.bash

Damit ist schon mal der Kernel build aussen vor.

Mit dem Android bauen haut das leider nicht so hin.

daher ist ein Wechsel immer noch von nöten.

source /opt/local/share/macports/setupenv.bash

sudo xcode-select -s /Developer/Xcode5.1.1.app

und danach wieder zurück

sudo xcode-select -s /Applications/Xcode.app

PS: Unter der Annahme das wir Immer auf Xcode5.1.1.app setzten, kann die elf.h Datei auch in das Verzeichnis:

mv /usr/local/include/elf.h /Developer/Xcode5.1.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include

Um die Standard include Pfade auszugeben für Apple CLANG

gcc -x c -v -E /dev/null

Damit braucht das Kernel build.sh Skript kein

export PATH=/Developer/Xcode5.1.1.app/Contents/Developer/usr/bin/:$PATH

 

 

Android Kernel für m7 zum Spass auf dem Mac übersetzten

Ups.. und wenn wir gerade bei Android sind bauen wir den Kernel für HTC one M7.

Was quer läuft:

elf.h fehlt daher:

cp

/Volumes/Develop/Android/lolipop/external/elfutils/0.153/libelf/elf.h /usr/include

Bäh! Das mag ich eigentlich garnicht, ist aber das einfachste.

sudo port install md5sha1sum gsed

sudo ln -s /opt/local/bin/gsed /opt/local/bin/sed

Und das mag ich auch nicht mit dem sed, ist aber … den Rest kennt ihr.

Für den Kernel 3.4 von HTC brauchen wir noch einen Patch

imac-andy:extract34 andy$ cat timeconst.patch

— kernel/kernel/timeconst.pl.org 2016-08-18 17:26:46.000000000 +0200

+++ kernel/kernel/timeconst.pl 2016-08-18 17:28:12.000000000 +0200

@@ -370,7 +370,7 @@

}

 

@val = @{$canned_values{$hz}};

– if (!defined(@val)) {

+ if (!@val) {

@val = compute_values($hz);

}

output($hz, @val);

Im entpackten Verzeichnis , in dem ebenso der  Kernel liegt mit der Bezeichnung “kernel”.

patch -Np1 -i ./timeconst.patch

Passenden arm gcc laut Readme.txt holen.

git clone https://android.googlesource.com/platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6

Jetzt noch schnell ein kleines Buildscript.sh

export TOP=/Volumes/Develop/Android/htc/m7/extract34

export PATH=$TOP/arm-eabi-4.6/bin:$PATH

export ARCH=arm

export SUBARCH=arm

export CROSS_COMPILE=arm-eabi-

cd kernel

make m7_defconfig

make clean

make -j8 2>&1 | tee ../build.log

hm …. ging dann auf anhieb…., muss gestehen das hab ich irgendwann schonmal gemacht.

Mein System ist Dank Linux und Google verhunzt, aber ich kann beides Android & Kernel Quellen übersetzten 🙂

Für den einen oder anderen ist vielleicht diese Seite hilfreich, nicht für mich – vielleicht wegen Xcode 5.1.1 oder HTC Linux Kernel Source.

http://algobardo.github.io/2014/10/Android-Kernel-MacOsX/

 

Android Nougat 7.0- Preview 5 unter El-Capitan übersetzten (kompilieren)

Was soll ich sagen ….

Gleiches Setup wie Lolipop 5.0 🙂

Hierfür habe ich die Quelle

repo init –depth=1 -u https://android.googlesource.com/platform/manifest -b  android-n-preview-5

benutzt.

“### make completed successfully (49:34 (mm:ss)) ####”

Terminal: emulator

und schon werd ich angemeckert… “emulator: UpdateCheck: current version ‘invalid’, last version ‘24.4.1’”

Laufen tut er trotzdem … was soll’s.

hm… Google klammert sich an das OS X 10.8 System … werd’s mal mit dem Standard Xcode 7.0 probieren…ganz sicher wird das nicht gehen .. das sagt mir mein Gefühlt.

Google hat mich reingelegt:

============================================

PLATFORM_VERSION_CODENAME=REL

PLATFORM_VERSION=6.0.1

TARGET_PRODUCT=aosp_arm

TARGET_BUILD_VARIANT=eng

TARGET_BUILD_TYPE=release

TARGET_BUILD_APPS=

TARGET_ARCH=arm

TARGET_ARCH_VARIANT=armv7-a

TARGET_CPU_VARIANT=generic

TARGET_2ND_ARCH=

TARGET_2ND_ARCH_VARIANT=

TARGET_2ND_CPU_VARIANT=

HOST_ARCH=x86_64

HOST_2ND_ARCH=x86

HOST_OS=darwin

HOST_OS_EXTRA=Darwin-15.6.0-x86_64-i386-64bit

HOST_CROSS_OS=

HOST_CROSS_ARCH=

HOST_CROSS_2ND_ARCH=

HOST_BUILD_TYPE=release

BUILD_ID=MASTER

OUT_DIR=out

============================================

Android Marschmallow 6.0 unter El-Capitan übersetzten (kompilieren)

Gleiches Setup wie Lolipop 5.0 🙂

.

.

.

mkdir -p /Volumes/Develop/Android/marschmallow (Mein Arbeitsverzeichnis HighDensity)
cd /Volumes/Develop/Android/marschmallow

repo init –depth=1 -u https://android.googlesource.com/platform/manifest -b android-6.0.1_r63

repo sync

.

.

.

make completed successfully (50:20 (mm:ss)) ####

mit einer Standard 7.200 rpm Festplatte und i7 4GHZ

Der Startbildschirm sieht lustig aus gelle…

AndroidFirstStart

Taschenrechner aus Lolipop unter Android Studio 2.1 über setzten und testen.

Oh je, Oh je…

Also gut … Android Studio 2.1 heruntergeladen und unter Applications abgelegt.

Damit der Code im Highdensity Laufwerk ohne Warnung akzeptiert wird

im terminal über:

echo “idea.case.sensitive.fs=true” >> /Applications/Android\ Studio.app/Contents/bin/idea.properties

hinzufügen.

cd ~/Library/Android/sdk

./tools/android update sdk -a -u -t 4

Damit wird “Android SDK Build-tools, revision 24.0.1” installiert, neben dem neuesten. Wir sind aber unter Lolipop; ansonsten meckert uns Gradle an.

Nun importieren wir.

/Volumes/Develop/Android/lolipop/packages/apps/Calculator

als Projekt.

Nach dem Import:

File -> Project Structur -> Module -> Calculator

Properties: Build tools Version 24.0.1 (Lolipop)

Flavors: Min Sdk Version API  21: Android 5.0 (Lolipop)

Danach kann man es einfache bauen und testen … chears…

…. so kompliziert können nur Java Entwickler sein … Darf’s noch ein Spoiler mehr sein….

 

 

Android Lolipop 5.0 unter El-Capitan übersetzten (kompilieren)

Weil mein Geschäfts iMac gerade nix zu tun hatte habe ich folgende Seite ausprobiert.
https://medium.com/@raminmahmoodi/build-android-5-0-lollipop-on-osx-10-10-yosemite-441bd00ee77a#.efgk9zb8h

Das Meiste funktioniert wie beschrieben, was bei mir anders ist:

El-Capitan 10.11.6 (wohl das letzte Update wenn’s um Apple geht…)
Xcode 7.3 (7D175)
sudo mkdir -p /Developer/SDK
Xcode 5.1.1 (Xcode.app) -> /Developer kopiert
Im Terminal:
xcode-select -install (command line tools von 7.3)
sudo cp -r /Developer/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk /Developer/SDK/
xcode-select -p /Developer/Xcode.app/Contents/Developer (über Xcode 7.3 Preferences nicht änderbar, daher über die Konsole)
java -version
“java version “1.7.0_79”

JDK 1.7 muss installiert sein. Parallel JDK 1.8 stört nicht. Durch den Befehlt “lunch” weiter unten, wird nach JDK 1.7 gesucht und gesetzt, kein Problem.

Eingene Partition (Groß & Kleinschreibung) /Volume/Develop/, da ich auch Webseiten pflege.
KEIN Brew !!! /usr/local/Cellar/….
MacPorts 2.3.4 für El-Capitan
Im Terminal:
ulimit -S (steht bei mir) = unlimited, ergo kein Problem.
POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg
sudo curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/local/bin/repo
sudo chmod +x /usr/local/bin/repo
mkdir -p /Volumes/Develop/Android/lolipop (Mein Arbeitsverzeichnis HighDensity)
cd /Volumes/Develop/Android/lolipop
repo init –depth=1 -u https://android.googlesource.com/platform/manifest -b android-5.0.0_r7.0.1 (einfach mal zum testen)

repo sync
source build/envsetup.sh
lunch
–> aosp_arm-eng Einfach mal lassen (ENTER).
make -j8 (iMac mit i7)
ca. 1 Std. später
emulator …

das wars…keine Ahnung warum, aber es ging einfach… 🙂

Cross Compiler unter OSX für Raspberry pi

Keine Ahnung was mich da geritten hat. Ich dachte es kann ja nicht kompliziert sein einen Crosscompiler auf OSX zu erstellen, aber weit gefehlt.
http://crosstool-ng.org gibt’s ja auch per “brew”. Mit dem Erfolg es geht nicht unter El Capitan. Na Mahlzeit. Nach über einer Woche ist es mir
dennoch gelungen und wie das verrate ich euch hier.

Also ohne “brew” kam ich nicht aus, da ein Sandbox verfahren, wie ich sonst verfahre, zu viel Zeit in Anspruch genommen hätte.

Na dann mal los: