Tag Archives: Android

AngularJS

Multi-Platform Mobile Apps via Ionic

Ionic ist ein Frontend-Framework, mit welchem man via HTML5 / JavaScript und CSS native Apps bauen kann. Diese Apps können via “Apache Cordova” auf native Funktionen (Kamera, GPS, etc.) der Geräte zugreifen. Zudem wird Google’s JavaScript Framework “AnguarJS” genutzt und natürlich wird auch “SASS” unterstützt.

Vorbereitung

Man kann Multi-Platform Mobile Apps sowohl unter Windows, Linux oder Mac OS X entwickeln, jedoch ist die Vorbereitung unter Linux / Mac OS X um einiges einfacher.

Ich empfehle an dieser Stelle mal wieder die “.dotfiles” zu installieren.

cd ~ 
git clone https://github.com/voku/dotfiles.git 
cd dotfiles 
source bootstrap.sh

# Standard- & Webworker-Tools installieren

~/dotfiles/firstInstall.sh

Bei der Frage nach den “webworker tools”,  muss diese mit “y” beantwortet werden.

# Android SDK installieren

sudo ~/dotfiles/android_sdk_install.sh

# Java installieren

sudo add-apt-repository -y ppa:webupd8team/java
sudo aptitude update
sudo aptitude install oracle-java7-installer

# Ant installieren

sudo apt-get install ant

 

Nachdem die Installation komplett abgeschlossen ist, muss die “~/.extra”-Datei angepasst werden.

z.B.:

#!/bin/bash                                                                                                                                                                                                       

DEFAULT_USER="lars"
GIT_AUTHOR_NAME="Lars Moelleken"
GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
git config --global user.name "$GIT_AUTHOR_NAME"
GIT_AUTHOR_EMAIL="lars@moelleken.org"
GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"
git config --global user.email "$GIT_AUTHOR_EMAIL"
git config --global push.default simple

# java - example
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
export JDK_HOME=$JAVA_HOME
export JRE_HOME=$JAVA_HOME
export PATH=$JAVA_HOME/bin:$PATH

# android - example
export ANDROID_SDK_ROOT=/usr/local/android-sdk/
#export ANDROID_NDK=/usr/local/android-ndk/
export ANDROID_HOME=$ANDROID_SDK_ROOT
export PATH=$ANDROID_SDK_ROOT/tools/:$ANDROID_SDK_ROOT/platform-tools/:$ANDROID_SDK_ROOT/build-tools/19.1.0/:$PATH

 

PS: bei Debian (sid) musste ich noch ein wenig nachhelfen, so dass die Android-SDK auch korrekt funktioniert:

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install lib32z1 lib32stdc++6

 

Beispiel-App für Android erstellen

ionic start planet-ubuntuusers
cd planet-ubuntuusers
rm -rf www/
git clone https://github.com/voku/planet-ubuntuusers-app www
ionic platform android
ionic build android

Man kann die App nun im Browser (ionic serve), im Android Emulator (ionic emulate android) oder direkt auf seinem Android-Gerät (ionic run android) ausprobieren!!!

 

Links

Es folgen ein paar Links zur App / API / Dokumentation  und zum Beispiel-Quellcode

ANDOIRD APP-DOWNLOAD:
 http://suckup.de/planet-ubuntuusers-json/PlanetApp-debug.apk

QUELLCODE ZUR APP:
https://github.com/voku/planet-ubuntuusers-app

SCREENSHOT:
Planet App

JSON-API: 
http://suckup.de/planet-ubuntuusers-json/json.php

HTML-OUTPUT VIA TWIG:
http://suckup.de/planet-ubuntuusers-json/

QUELLCODE ZUR API:
https://github.com/voku/planet-ubuntuusers-json (in zirka 2 Minuten geschrieben & deployed -> composer is great!!!)

 

DOKUMENTATION:
https://docs.angularjs.org/
http://ionicframework.com/docs/
http://cordova.apache.org/

1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 5.00 out of 5)

Optimierungen von Android unter Linux nutzen

Vor einiger Zeit habe ich ein kleines Shell-Script (SSSwitch – auto-switch settings) geschrieben, welches mein Android Handy beim Start optimiert und die Kernel-Einstellungen anpasst, wenn der Bildschirm an bzw. aus ist. Einige der Einstellungen kann man auch unter Linux verwenden. Als Beispiel beschreibe ich hier kurz, wie man die I/O Leistung verbessern kann und wer allgemein etwas zum optimieren von Linux / Ubuntu lesen möchte, dem hilft ggf. folgender Blog-Post weiter -> SpeedUp-Ubuntu ;)

 

Ein Ausschnitt aus dem besagtem Skript …

# =========
# One-time tweaks to apply on every boot;
# =========
STL=`ls -d /sys/block/stl*`;
BML=`ls -d /sys/block/bml*`;
MMC=`ls -d /sys/block/mmc*`;

… hier wurde der externe / interne Speicher von Android angegeben unter meinem Linux-System würde ich hier also z.B. folgendes angeben.

SDA=`ls -d /sys/block/sda/*`;

# =========
# Remount all partitions
# =========
for k in $(busybox mount | cut -d " " -f3);
do
	sync;
	busybox mount -o remount,noatime,nodiratime $k;
done;

“atime – Update inode access time for each access. See also the strictatime mount option.” – man mount Hier schalten wir die Funktion aus, welche aufzeichnet wann ein Datei oder Verzeichnis zuletzt angesehen wurde, da wir diese Funktionalität unter Android selten benötigen werden. ;) Ggf. kann man diesen Abschnitt komplett so unter Linux / Ubuntu verwenden z.B.:

mount
/dev/sda5 on / type ext4 (rw,errors=remount-ro,commit=0)
[...]
/dev/sda3 on /boot type ext2 (rw)
/dev/sda6 on /home type ext4 (rw,commit=0)
[...]
for k in $(busybox mount | cut -d " " -f3); do sync; mount -o remount,noatime,nodiratime $k; done;
mount
/dev/sda5 on / type ext4 (rw,noatime,nodiratime,errors=remount-ro)
[...]
/dev/sda3 on /boot type ext2 (rw,noatime,nodiratime)
/dev/sda6 on /home type ext4 (rw,noatime,nodiratime)
[...]

… wie man sieht sind die neuen Mount-Optionen nun aktiv. Wer mehr dazu erfahren möchte findet in dem bereits erwähnten “SpeedUp Ubuntu“-Beitrag unter dem Punkt “3.1) Filesystem” mehr Infos.

# =========
# check enabled/disabled status for IO settings
# =========
if [ "$IO_SETTINGS_ENABLED" -eq "1" ];
then
	# =========
	# Optimize non-rotating storage
	# =========
	for i in $STL $BML $MMC;
	do
		/system/xbin/echo "1" > $i/queue/iosched/rq_affinity;
		/system/xbin/echo "1" > $i/queue/iosched/low_latency;
		/system/xbin/echo "64" > $i/queue/max_sectors_kb;
		/system/xbin/echo "$READ_AHEAD_ALL" > $i/queue/read_ahead_kb;
	done;

Hier legen wir unter anderem die Puffergröße von unseren Speichermedien ein. Als Beispiel zeige ich kurz wie sich der Buffer auf die Lesegeschwindigkeit auswirkt, wenn eine Datei z.B. erneut geöffnet wird. ;) Dazu benötigen wir zuerst einen Compiler (gcc)

sudo apt-get install gcc

Nun den folgenden Quelltext kopieren …

#include 
#include <stdio.h>
#include <unistd.h>
#include <sys/times.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>

#define MAX_PUFFER_GROESSE 1<<14
// Ausgabe
static void zeit_ausgabe(long int puff_groesse, clock_t realzeit, struct tms *start_zeit, struct tms *ende_zeit, long int schleiflaeufe);

int main(void) {
    char puffer[MAX_PUFFER_GROESSE];
    ssize_t n;
    long int i, j=0, puffer_groesse, opt_puffer;
    struct tms start_zeit, ende_zeit;
    static long ticks=0;
    clock_t uhr_start, uhr_ende, system_cpu=0.0;

    // Ausgabe
    fprintf(stderr, "+--------------+-------------+--------------+--------------+--------------+\n");
    fprintf(stderr, "| %-10s | %-10s | %-10s | %-10s | %-10s |\n",
                    "Puffer-", "UserCPU", "SystemCPU", "Gebrauchte", "Schleifen-");
    fprintf(stderr, "| %10s | %10s | %10s | %10s | %10s |\n",
                    " groesse", " (Sek)", " (Sek)", " Uhrzeit", " laeufe");
    fprintf(stderr, "+--------------+-------------+--------------+--------------+--------------+\n");

    while (j <= 14) {
        i=0;
        puffer_groesse=1<<j;
        if (lseek(STDIN_FILENO, 0L, SEEK_SET) == -1) {
            fprintf(stderr, "Error: lseek");
            exit(1);
        }
        if (lseek(STDOUT_FILENO, 0L, SEEK_SET) == -1) {
            fprintf(stderr, "Errir: lseek");
            exit(1);
        }
        if ( (uhr_start = times(&start_zeit)) == -1) {
            fprintf(stderr, "Error: times");
            exit(2);
        }
        while ( (n=read(STDIN_FILENO, puffer, puffer_groesse)) > 0) {
            if (write(STDOUT_FILENO, puffer, n) != n) {
                fprintf(stderr, "Error: write");
                exit(3);
            }
            i++;
        }
        if (n < 0) {
            fprintf(stderr, "Error: read");
            exit(4);
        }
        if ( (uhr_ende = times(&ende_zeit)) == -1) {
            fprintf(stderr, "Error: times");
            exit(5);
        }

        if (ticks == 0) {
            if ( (ticks = sysconf(_SC_CLK_TCK)) < 0) {
                fprintf(stderr, "Error: sysconf");
                exit(6);
            }
        }
        // Ausgabe
        zeit_ausgabe(puffer_groesse, uhr_ende-uhr_start, &start_zeit, &ende_zeit, i);
        j++;
    }
    exit(0);
}

// Ausgabe
static void zeit_ausgabe(long int puff_groesse, clock_t realzeit, struct tms *start_zeit, struct tms *ende_zeit, long int schleiflaeufe) {
    static long ticks=0;
    if (ticks == 0) {
        if ( (ticks = sysconf(_SC_CLK_TCK)) < 0) {
            fprintf(stderr, "Error: sysconf");
            exit(6);
        }
    }
    fprintf(stderr, "| %10ld | %10.2f | %10.2f | %10.2f | %10ld |\n", puff_groesse, (ende_zeit->tms_utime - start_zeit->tms_utime) / (double)ticks, (ende_zeit->tms_stime - start_zeit->tms_stime) / (double)ticks, realzeit / (double)ticks, schleiflaeufe);
    return;
}

… und in eine leere Datei (io_speed_buffer.c) einfügen, nun compilieren wir noch schnell das Programm mit folgendem Befehl …

gcc io_speed_buffer.c -o io_speed_buffer

… als nächsten benötigen wir eine etwa 10 MB große Datei als Eingabe, diese erzeugen wir mittels “dd” im aktuellen Verzeichnis.

dd if=/dev/zero of=./test count=20000

Und schon können wir mittels folgenden Befehl die optimale Buffer-Größe herausfinden. Wobei man bei minimaler Verbesserung nicht den höheren Wert nutzen sollte.

z.B.:

./io_speed_buffer <test >test2
+--------------+-------------+--------------+--------------+--------------+
| Puffer-    | UserCPU    | SystemCPU  | Gebrauchte | Schleifen- |
|    groesse |      (Sek) |      (Sek) |    Uhrzeit |     laeufe |
+--------------+-------------+--------------+--------------+--------------+
|          1 |       0.48 |      10.41 |      10.90 |   10240000 |
|          2 |       0.26 |       3.40 |       3.66 |    5120000 |
|          4 |       0.19 |       1.64 |       1.83 |    2560000 |
|          8 |       0.12 |       0.80 |       0.92 |    1280000 |
|         16 |       0.01 |       0.46 |       0.47 |     640000 |
|         32 |       0.03 |       0.20 |       0.23 |     320000 |
|         64 |       0.00 |       0.12 |       0.12 |     160000 |
|        128 |       0.00 |       0.07 |       0.07 |      80000 |
|        256 |       0.00 |       0.04 |       0.04 |      40000 |
|        512 |       0.00 |       0.02 |       0.02 |      20000 |
|       1024 |       0.00 |       0.02 |       0.02 |      10000 |
|       2048 |       0.00 |       0.01 |       0.01 |       5000 |
|       4096 |       0.00 |       0.00 |       0.00 |       2500 |
|       8192 |       0.00 |       0.01 |       0.01 |       1250 |
|      16384 |       0.00 |       0.01 |       0.01 |        625 |

Standardmäßig ist der Wert “128″ gesetzt …

cat /sys/block/sda/queue/read_ahead_kb
128

… welchen wir jedoch leicht ändern können! ;)

sudo echo "256" > /sys/block/sda/queue/read_ahead_kb
cat /sys/block/sda/queue/read_ahead_kb
256

Ggf. kann man diese Einstellungen auch unter Linux direkt beim start ausführen lassen z.B. könnte man den zuvor gezeigten “echo”-Befehl in der “rc.local”-Datei einfügen. (/etc/rc.local)

	# =========
	# Optimize io scheduler
	# =========
	for i in $STL $BML $MMC;
	do
		/system/xbin/echo "$IO_SCHEDULER" > $i/queue/scheduler;

Welcher I/O Scheduler der beste für das Speichermedium ist kann man am betesten selber testen, indem man z.B. wieder den “dd”-Befehl verwendet. -> [Discussion] SSSwitch – auto-switch settings PS: Für mein Android-System nutze ich momentan “bfq” wobei “noop” gerade für SSD-Speichermedien schneller sein soll …

		case $IO_SCHEDULER in
		"cfq")
    		        /system/xbin/echo "0" > $i/queue/rotational;
      		        /system/xbin/echo "1" > $i/queue/iosched/back_seek_penalty;
      		        /system/xbin/echo "1" > $i/queue/iosched/low_latency;
     		        /system/xbin/echo "3" > $i/queue/iosched/slice_idle;
      		        /system/xbin/echo "16" > $i/queue/iosched/quantum;
      		        /system/xbin/echo "2048" > $i/queue/nr_requests;
			/system/xbin/echo "1000000000" > $i/queue/iosched/back_seek_max;;
		"bfq")
			/system/xbin/echo "0" > $i/queue/rotational;
			/system/xbin/echo "1" > $i/queue/iosched/back_seek_penalty;
			/system/xbin/echo "1" > $i/queue/iosched/low_latency;
			/system/xbin/echo "3" > $i/queue/iosched/slice_idle;
			/system/xbin/echo "16" > $i/queue/iosched/quantum;
			/system/xbin/echo "2048" > $i/queue/nr_requests;
			/system/xbin/echo "1000000000" > $i/queue/iosched/back_seek_max;;
		"noop")
			/system/xbin/echo "4" > $i/queue/iosched/quantum;
			/system/xbin/echo "16" > $i/queue/iosched/fifo_batch;
			/system/xbin/echo "248" > $i/queue/nr_requests;;
		"deadline")
			/system/xbin/echo "1" > $i/queue/iosched/front_merges;
      		        /system/xbin/echo "16" > $i/queue/iosched/fifo_batch;;
		"sio")
      		        /system/xbin/echo "1" > $i/queue/iosched/front_merges;
			/system/xbin/echo "4" > $i/queue/iosched/quantum;
			/system/xbin/echo "16" > $i/queue/iosched/fifo_batch;
			/system/xbin/echo "256" > $i/queue/nr_requests;;
		esac;
[...]
	done;
[...]
fi;

Hier noch ein-wenig Feintuning für die entsprechenden I/O Scheduler ;) ggf. müssen diese Werte auf anderen Systemen (Hardware) angepasst werden, dies habe ich bisher nur auf meinem Android System getestet. Falls euch / jemanden dieser Blog-Beitrag gefallen hat, werde ich weitere Einstellungen von dem Skript erklären … :)

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

Screenshots von Android via shell

Wenn man auf seinem Android beispielsweise einen Kernel mit 24bpp Unterstützung installiert, kann man auch wenn man root-Rechte hat, keine Screenshot via App machen. Um dies zu umgehen kann man die “Android Debug Bridge (adb)” verwenden.

sudo apt-get install ffmpeg
/opt/android-sdk-linux_x86/platform-tools/adb pull /dev/graphics/fb0 fb0
ffmpeg -vframes 1 -vcodec rawvideo -f rawvideo -pix_fmt rgb32 -s 320x480 -i fb0 -f image2 -vcodec png image.png

 

Das gleich Verfahren kann man auch unter Windows anwenden und wer lieber mit einer GUI arbeitet, sollte sich einmal QtADB anschauen. ;)

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)

SSH-Server auf deinem Android (CyanogenMod)

In dem “CyanogenMod” (CM) ist bereits ein SSH-Server eingebaut (Dropbear), dieser ist jedoch standardmäßig abgeschaltet. Hier zeige ich kurz wie du diesen unter Linux / Windows nutzen kannst und dich somit ohne Kabel mit deinem Android (funktioniert nach meinen Tests, nur im lokalen W-Lan) verbinden kannst …  ;-)

 

1.) Android: Vorbereitungen

adb shell

(adb shell)

mkdir /data/dropbear
cd /data/dropbear
dropbearkey -t dss -f dropbear_dss_host_key
dropbearkey -t rsa -f dropbear_rsa_host_key

 

2.1) Linux: Vorbereitungen (Debian / Ubuntu)

2.1.1) Installiere den SSH-Client

sudo aptitude install ssh-client

2.1.2) SSH-Schlüssel generieren

ssh-keygen -t rsa

2.1.3) Übertrage den SSH-Schlüssel (öffentlich / public) zu Android

adb push ~/.ssh/id_rsa.pub /data/dropbear/.ssh/authorized_keys

 

2.2) Windows: Vorbereitungen
PuTTY Download Page

2.2.1) Download “PuTTYgen”

2.2.2) SSH-Schlüssel generieren

Klick auf “Generate” und füge die Zeichenkette, welche du nun im Fenster von puttygen siehst (Beispiel: “ssh-rsa AAAAB3…hclQ==rsa-key-20100227″) in eine Text-Datei auf deinem Desktop ein -> “id_rsa.pub” und speichere (beschütze) deinen “private key”!!!

2.2.3) Übertrage den SSH-Schlüssel (öffentlich / public) zu Android

adb push  C:\Users\[USER]\Desktop\id_rsa.pub /data/dropbear/.ssh/authorized_keys

 

3.) Android: SSH-Server aktivieren

adb shell

(adb shell)

chmod 600 /data/dropbear/.ssh/authorized_keys
echo "/system/xbin/busybox sh" > /data/dropbear/.profile
chmod 755 /data/dropbear /data/dropbear/.ssh
chmod 644 /data/dropbear/dropbear*host_key
chown root.root /data/dropbear/.ssh/authorized_keys
killall dropbear
dropbear -v -s -g

 

4.1) Linux: Verbindung herstellen

-> SSH mit public-key Authentifizierung

 

4.2) Windows: Verbindung herstellen

PuTTY Download Page

4.2.1) Download “putty”

4.2.2) Verbindung zu Android aufbauen

Connection: > “SSH” > “Auth” > wähle deinen gespeicherten “private key” aus …

Session: > gib die IP-Adresse von deinem Android ein und drücke auf Enter

 

 

weitere Infos findest du hier:
Howto: Connect to Device with SSH – CyanogenMod Wiki

1 Star2 Stars3 Stars4 Stars5 Stars (6 votes, average: 4.83 out of 5)

Tweak-Skript für Android / Spica

Ich habe hier ein kleines HowTo zum beschleunigen von Android / Spica geschrieben und wollte euch das Tweak-Skript für “bfs-Kernel” / “cfs-Kernel” / “Dateisystem” (ext2) / “3G/Edge Speed” … zur Verfügung stellen. -> Forum-LinkDownload

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 5.00 out of 5)

Optimized Android-Apps mit Linux erstellen

Ich habe meine apps mit dem folgenden Bash-Skript optimiert, welches die Bild- & Sound-Dateien komprimiert, so dass die Apps kleiner werden und weniger Speicher verbrauchen… :-)

Habe die optimierten Apps zu meinem Update-Pack für Spica hinzugefügt -> cyanogenmod + x

 

1.) Bash-Skript in einer Textdatei unter Linux speichern (Tweak_app.sh) & Ausführrechte setzen (chmod +x Tweak_app.sh)

2.) “optipng”, “pngcrush”, “sox” installieren (z.B. für Debian: apt-get install optipng pngcrush sox)

3.) android-sdk herunterladen & sudo cp …..android-sdk/android-sdk/zipalign /usr/bin/

4.) Folgendes Verzeichnis anlegen und zu optimierende Apps darin speichern (./place-apk-here-to-batch-optimize/)

5.) Tweak-Skript ausführen (./Tweak_app.sh) -> Fertig


#!/bin/bash

LOG_FILE="apk.log"

if [ \! -f `whereis optipng | cut -f 2 -d ' '` ] ; then
	echo "ERROR: install optipng (apt-get install optipng)"
	exit 1;
fi;
if [ \! -f `whereis pngcrush | cut -f 2 -d ' '` ] ; then
	echo "ERROR: install pngcrush (apt-get install pngcrush)"
	exit 1;
fi;
if [ \! -f `whereis sox | cut -f 2 -d ' '` ] ; then
	echo "ERROR: install sox (apt-get install sox)"
	exit 1;
fi;
if [ \! -f `whereis zipalign | cut -f 2 -d ' '` ] ; then
	echo "ERROR: install zipalign (sudo cp ...android-sdk/android-sdk/zipalign /usr/bin/)"
	exit 1;
fi;	

rm -rf ./place-apk-here-to-batch-optimize/original/*
if [ -e $LOG_FILE ]; then
	rm $LOG_FILE;
fi;
touch $LOG_FILE
mkdir -p ./place-apk-here-to-batch-optimize/original
find ./place-apk-here-to-batch-optimize -iname "*.apk" | while read APK_FILE ;
do
	echo "Optimizing $APK_FILE"
	7za x -o"./place-apk-here-to-batch-optimize/original" $APK_FILE
	find ./place-apk-here-to-batch-optimize/original -iname "*.png" | while read PNG_FILE ;
		do
		if [ `echo "$PNG_FILE" | grep -c "\.9\.png$"` -eq 0 ] ; then
			optipng -o99 "$PNG_FILE"
			pngcrush -rem alla -reduce -brute "$PNG_FILE" tmp_img_file.png;
			mv -f tmp_img_file.png $PNG_FILE;
		fi
	done;
	find ./place-apk-here-to-batch-optimize/original -iname "*.ogg" | while read OGG_FILE ;
		do
        	sox "$OGG_FILE" -C 0 tmp_audio_file.ogg
        	mv -f tmp_audio_file.ogg $OGG_FILE
    	done;
	7za a -tzip "./place-apk-here-to-batch-optimize/temp.zip" ./place-apk-here-to-batch-optimize/original/* -mx9
	FILE=`basename "$APK_FILE"`
	DIR=`dirname "$APK_FILE"`
	mv -f ./place-apk-here-to-batch-optimize/temp.zip "$DIR/optimized-$FILE"
	zipalign -v -c 4 "$DIR/optimized-$FILE";
	ZIPCHECK=$?;
	if [ $ZIPCHECK -eq 1 ]; then
		echo "ERROR $FILE" >> $LOG_FILE;
		#rm "$DIR/optimized-$FILE"
	elif [ $ZIPCHECK -eq 0 ]; then
		echo "OK $FILE" >> $LOG_FILE;
	else
		echo "ERROR $FILE" >> $LOG_FILE;
		#rm "$DIR/optimized-$FILE"
	fi;
	rm -rf ./place-apk-here-to-batch-optimize/original/*
done;
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Spica-Test

Android 2.2.3 Froyo (Mod+X => SpicagenMod RC1) – Samsung GALAXY SPICA I5700

I will publish my work (files) here because different forums all over the world use it and I have to update all the posts so that everybody find out that there is a new version of “Mod + X” (SpicagenMod) | here you can get more infos & help from the “Samdroid.Net”-Commuity -> [Dev] SpicagenMod BETA3 & HELPDESK + FAQs + HOW-TO GUIDES

 

Current version: Mod+X => SpicagenMod RC1

 

Warning
Even if this update should have worked for me without problems, I can not guarantee that this will work for you, so you maybe create a backup of your files before the installation!

 

 

INSTALLATION
If you are updating from any other Android-Version than Froyo (2.2) do wipe data/cache BEFORE installing SGM.
1. Push it to your SDcard, go to recovery and apply pushed file.
2. After complete boot make reboot one more time!

This update won’t wipe your data!

 

—————————————–

 

Download:

->SpicagenMod RC1 (~ 85M, md5: ec0ad09b51595b974020d882f8323a4f)

 

Kitchen:
->kitchen.voku-online.de (offline for the moment) 

 

Sources:

->github.com/voku

 

—————————————–

 

HowTo

If you have already installed Android 2.2 Froyo -> appy the “Mod + X” via Recovery :) otherwise or if you will have a “clean install” …

1.) Odin + spica_jc3“I570EXXJH6.tar” 

Windows: 
1.1) install driver 
1.2) start Odin, select new files + “spica_jc3.ops” 

1.3) do not connect Spica with you pc -> press “quieter+camera+hang” to boot in the download-mode 


1.4) connect Spica with your pc -> start odin-update

2.) Odin + spica_jc3“i5700_LK2-08_PDA.tar” 

3.) press “quieter+call+hang” -> “Wipe” -> “Wipe data/cache”

4.) Recovery: apply zip-file

 

PS: here you can find a detailed HowTo but it is only in German language > Android 2.2 Froyo (CyanogenMod) – Samsung GALAXY SPICA I5700

 

—————————————–

 

Changelog: SpicagenMod

SpicagenMod Froyo, based on CyanogenMod 6.1.1 & Android 2.2.3
========

RC1
* added "VOKU"-kernel v3.4 (24bpp) as default
* edit sound -> louder [need testing] (asound.conf)
* updated DalvikVM (github.com/voku/android_dalvik)
* updated Bionic-lib (github.com/voku/android_bionic)
* updated WebKit (github.com/voku/android_external_webkit)
* updated png-lib v1.2.47 (github.com/AOKP/external_libpng)
* updated some Apps (Contacts, LatinIME, Browser, ES File Explore, Nemus Launcher,
* .... MediaProvider [gingerbread], Google Maps, YouTube, GoogleVoice,
* .... GooglePlayStore [Market], Music)
* removed some Apps (DSPManager, VpnServices, OpenVPN, QQPlayer)
* fixed SQLite problems - revert last changes (github.com/voku/android_external_sqlite)
* fixed Contakt problem - revert to SM-version (github.com/voku/android_packages_apps_Contacts)
* updated framework -> added "app.keeping for services" (github.com/voku/sm_android_frameworks_base)
* updated framework -> revert "User-to-User signaling Info" (github.com/voku/sm_android_frameworks_base)
* revert orientation-backport from CM9 (github.com/voku/sm_android_frameworks_base)
* added some framework-fixes from CyanogenMod [isc] (github.com/voku/sm_android_frameworks_base)
* added ICS theme (madoreq)
* added new instal-scripts (mpjoe2000)
* default build flags (github.com/voku/sm_android_build)
* updated "SpicaTweak Lite" v1.7.5 (github.com/voku/Android-Tweak) (thx @kiryl)
  - added "fix_permissions"
  - 3G/Edge Tweaks
  - SQLite Tweaks
  - added zipalign-Tweaks

BETA6
* added "VOKU"-kernel v3.2 (24bpp) as default
* updated some Apps (ES File Explore, k-9 Mail, Gallery3D, DSPManager, Terminal Emulator, Music,
* .... Barcode Scanner v4, QQPlayer, Google Maps, Browser, Phone, DownloadProvider,
* .... UserDictionaryProvider, ApplicationsProvider)
* updated Bionic-lib (github.com/voku/android_bionic)
* updated Busybox (github.com/voku/android_external_busybox)
* updated "Skia Graphics Engine" (github.com/voku/android_external_skia)
* updated WebKit (github.com/voku/android_external_webkit)
* updated "libFLAC" (github.com/voku/android_external_flac)
* updated zoneinfo - 2012b
* updated SQLite (github.com/voku/android_external_sqlite)
* updated DalvikVM (github.com/voku/android_dalvik)
* fixed "su"-problem
* fixed "GPS"-problem
* fixed longgg... boot time
* added new default settings (keep apps [Launcher, MMS, ... ] in memory by default)
* revert framework -> tweak SQLite-settings [need testing] (github.com/voku/sm_android_frameworks_base)
* added framework-features from milaq [froyo] (github.com/milaq/android_frameworks_base)
  - keep apps in memory (e.g.: echo "sys.keep_app_2=com.whatsapp" >> /system/build.prop;)
  - don't start gmaps network location service, if gmaps main isn't running
* added some framework-fixes from CyanogenMod [isc] (github.com/voku/sm_android_frameworks_base)
  - improved widget scrolling speed
* added framework-fixes from codeaurora.org [froyo]
  (https://www.codeaurora.org/gitweb/quic/la/?p=platform/frameworks/base.git;a=shortlog;h=refs/heads/froyo)
* added framework-fixes from peteralfonso [gingerbread] (github.com/peteralfonso/platform_frameworks_base)
* updated "SpicaTweak Lite" v1.7.1 (voku1987)
  - removed SQLite-Settings
  - edit TCP read/write
  - cleaned up the script
  - more I/O-Tweaks
  - removed zipalign-Tweaks
  - removed extra CPU-settings for Apps
  - Firewall-Tweaks [need testing]

BETA5
* added "VOKU"-kernel v1.7C [with Qbanin's touch driver] (24bpp) as default
* increased default audio-volume [/system/etc/asound_default.conf]
* updated install-script from SpicagenMod
* updated Android 2.2.2 -> Android 2.2.3 (voku1987)
* updated APN-config [apns-conf.xml] (voku1987)
* updated "block advertising" [hosts] (voku1987)
* updated "SpicaTweak Lite" v1.4.1 (voku1987)
* updated DalvikVM (github.com/voku/android_dalvik)
* updated "Skia Graphics Engine" (github.com/voku/android_external_skia)
* updated Bionic-lib (github.com/voku/android_bionic)
* updated SQLite v3.7.9 (with sync off) (github.com/voku/android_external_sqlite)
* updated su-binary [v3.0.3]
* updated some Apps (Google Maps 6.0.3, Market 3.4.4, k-9 Mail 4.103, Camera, Settings, SMParts,
* .... Phone, LatinIME, RealCalc, Browser, Gallery3D, Superuser 3.0.7, QQPlayer, Google Voice,
* .... ES File Explorer, YouTube, MediaProvider)
* added all default Apps (OpenVPN, "LiveWallpapers"-Apps, DSPManager, ...)
* added "QuickSearchBox"-App => removed "Google QuickSearch"-App
* removed "ApplicationsProvider"-App (mpjoe2000)
* removed Roboto-Font -> added CyanogenMod-Font (voku1987)
* removed auto "zipalign"-script (voku1987)
* updated "Music"-App (github.com/voku/android_packages_apps_Music)
* updated "Gallery3D"-App (github.com/voku/android_packages_apps_Gallery3D)
* fixed safe factory reset [need testing] (mpjoe2000)
* fixed force close -> menu-settings (voku1987)
* fixed DeskClock-App (voku1987)
* updated framework -> tweak SQLite-settings [need testing] (github.com/voku/sm_android_frameworks_base)
* added framework-fixes from CyanogenMod [gingerbread] (github.com/voku/sm_android_frameworks_base)
* added framework-fixes from Android [master] (github.com/voku/sm_android_frameworks_base)
  - but again no theme-compatibility to SGM BETA2.1 !!

BETA4
* added "FrozenLake v3 with default touch driver" as default (darth_llamah)
* added modified Transpa-Theme (eksajlee & voku1987)
* added Roboto-Font from Android 4.0 (voku1987)
* updated APN-config [apns-conf.xml] (voku1987)
* added boot-sound [off by default] (voku1987)
* added new SGM boot_logo/boot_animation (samdroid.net community)
* added optimized "Gallery3D"-App => removed "QuickPic"-App
* added "Music"-App => removed "MIUI-Music"-App
* added keyboard with multi-language => removed default keyboard (github.com/voku/android_packages_inputmethods_LatinIME)
* added "k-9 Mail"-app v3.800 => removed "Email"-App (code.google.com/p/k9mail/downloads/)
* updated some Apps (Browser, DownloadProvider, Gallery3D, RealCalc, Google Maps, Superuser, ES File Explorer, ...)
* removed some Apps (Facebook, DSPManager, VPN) | if you need it, you can add it by yourself
* updated su-binary [v3]
* updated DalvikVM (github.com/voku/android_dalvik)
* updated Bionic-lib (github.com/voku/android_bionic)
* updated jpeg-lib optimized (github.com/voku/android_external_jpeg)
* updated WebKit (github.com/voku/android_external_webkit)
* update Opencore [optimized mp3] (github.com/voku/sm_android_external_opencore)
* fixed Gallery3D [zoom by pictures from camera] (voku/android_packages_apps_Gallery3D)
* fixed Bluetooth-CarKit-problem
* fixed wifi-dns (LordManta)
* code fixes (voku1987)
  - fixed GPS-Bug
  - fixed YouTube-Bug
  - theme-compatibility to SGM BETA2.1
* added "SpicaTweak Lite" v1.1 -> removed "SSSwitch" (voku1987)
  - some default tweaks without config via ssscfg
* added & updated translations (voku1987)
* added gingerbread backport native power manager service module
* added many framework-fixes via "Fork Queue" from froyo (github.com/voku/sm_android_frameworks_base)
* added framework-fixes from kernelzilla [froyo] (github.com/kernelzilla/android_frameworks_base)
* added framework-fixes from CyanogenMod [gingerbread] (github.com/voku/sm_android_frameworks_base)
* added framework-fixes from LiquidSmoothROMs (gingerbread) (github.com/LiquidSmoothROMs/android_frameworks_base)

BETA3
* added "VOKU"-kernel v1.7A [with Qbanin's touch driver] (24bpp) as default
* converting to ALL2EXT2 only if it's at EXT2 (luismaf, voku1987)
* updated GPS-config / NTP-config  [gps.conf] (voku1987)
* updated APN-config [apns-conf.xml] (voku1987)
* SGM boot_logo/boot_animation [without yellow color ;)] (samdroid.net community)
* updated / added install-script (voku1987)
* code fixes & clean-up (voku1987)
* optimized build flags (voku1987)
* added Intercept 3D drivers
* added 640x480 Camera with 30FPS to MP4 (maciek4323)
* added "RealCalc"-App => removed "Calculator"-App
* added "LauncherPro"-App => removed "ADWLauncher"-App
* added "MIUI-Music"-App => removed default "Music"-App (jankomuz)
* added "Email"-App with policies fix for Exchange => removed default "Email"-App
* added "QQPlayer"-App => removed "RockPlayer"-App
* added "ES File Explorer"-App => removed default FileManager
* added "QuickPic"-App => removed "Gallery3D"-App
* added default keyboard (android.git.kernel.org/?p=platform/packages/inputmethods/LatinIME.git)
* removed "Genkiller"-App
* updated some Apps (Google Maps, Superuser, Mms, Phone, Contacts, SM-Settings, Settings, Terminal Emulator, Browser...)
* updated "block advertising" (voku1987)
* updated png-lib v1.2.46 (github.com/CyanogenMod/android_external_libpng)
* updated jpeg-lib optimized for armv6 (github.com/mansr/android_external_jpeg)
* updated zlib v1.2.5 (github.com/CyanogenMod/android_external_zlib)
* updated SQLite v3.7+ (with sync off) (voku1987)
* updated libcamera (without sources?!)
* updated dropbear [ssh-daemon] (github.com/tpruvot/android_external_dropbear)
* updated Memory-Cache for webkit (github.com/voku/android_external_webkit)
* updated Sound-Control / Sound-Mixer (github.com/voku/android_hardware_alsa_sound)
* updated default theme-images & animation (voku1987)
* fixed Bluetooth-bug (criminal)
* fixed Market-install-bug (voku1987)
  - download cache will be stored now on your SD-card (/sdcard/.cache/)
* fixed earphone without mic bug
  - hear your caller through the headphones and talking via Mobile
* added faster boot-animation (surV)
* added configurable Bluetooth timeout (voku1987)
* added Norwegian translation (AreEdw)
* added "About ROM" in "Settings"-App (github.com/DroidConcepts/android_packages_apps_DroidConceptsSettings)
* added quieter camera-click-sound (voku1987)
* added "vim" (github.com/CyanogenMod/android_external_vim)
* added "SSSwitch" v1.3.4 (voku1987)
  - I/O Scheduler = BFQ
  - optimized net-settings
  - optimized I/O-settings
  - "low-memory task killer" settings configurable via "ssscfg" in the "Terminal Emulator"-App
  - CPU-settings are disabled by default
  - "keep App in memory"-settings are disabled by default
* added framework-fixes from peteralfonso [gingerbread] (github.com/peteralfonso/platform_frameworks_base)
* added framework-fixes from CyanogenMod [gingerbread] (github.com/CyanogenMod/android_frameworks_base)
* added framework-fixes from android [gingerbread] (github.com/android/platform_frameworks_base)
* added framework-fixes from pcfighter [froyo] (github.com/pcfighter/platform_frameworks_base)

BETA2
* Android 2.2.2 (AOSP)
* big code clean-up (darth-llamah)
* Bluetooth discoverability configurable (CyanogenMod, nebkat)
* clock text color fixes (nebkat)
* CM FileManager enabled (cadavre)
* DownloadManager and Browser from Gingerbread (nebkat)
* Email policies fix for Exchange (cadavre)
* extended SMS/MMS writing area to 6 lines in portrait (cadavre)
* framework cleanups (nebkat)
* locking in memory fix for Phone, Contacts and Superuser (cadavre)
* modified build flags and scripts (CyanogenMod, LeshaK, guybrusht)
* power button disabled in lockscreen (cadavre)
* PowerWidget - more long-press options (cadavre)
* rotary answer for calls (nebkat)
> RTL for framework and webkit (Y6b, cadavre) [available as additional package]
* SGM logo/anim (samdroid.net community)
* SMParts cleanup (nebkat)
* SMS send to wrong recipient fix (cadavre)
* some build fixes (Piskor)
* status bar PowerWidget new options (nebkat)
* sync off for sqlite databases improves in speed (XDA, cadavre)
* xml importing from CM and SGM fixed (cadavre)
* lockscreen improvements: (CyanogenMod, nebkat)
  - rotary lockscreen unlock drag down
  - music addons
  - battery % info
  - tab vibration on/off
  - mms/phone tab custom apps
* Android fixes: (submitted by Piskor)
  - DNS fix for wifi
  - Change default DNS server for Tethering
  - Introduce a list of all the audio files
  - Telephony: Fix radio state printing
  - Telephony: Process MT SMS with MTI set to 3
  - Fixing counting the number of days in call log screen
  - Change in media scanner to set correct date
  - frameworks/base/telephony: Release wakelock on RIL request send error
  - Changing connect and response timeout
  - Bluetooth OBEX timeout problem
  - Avoid leaking sockets
  - Launcher is missing anti-aliasing
  - java.lang.RuntimeException:Unable to pause activity (com.android.settings.applications.StorageUse)

BETA1
* new kernel WLAN module to avoid SoDs (Lukiqq)
* final DPad music controls (cadavre)
* final framework theme text colors (cadavre)
* possibility of locking Phone and Contacts in memory so phone can be more like phone (cadavre)
* integrated Intercept3D drivers (cadavre)
* smooth YouTube HQ playing (cadavre thanks to Intercept)
* you can use CM and SM .xml theme files now (cadavre)
* Finnish localization (FI translation team) [fi-rFI]
* GB green clock text color (Freedom)
* Parrot autopairing fix (cadavre)
* latest ADWLauncher (nebkat)
* looping ringtone (criminal)
* avoid immediate turning on/off wifi freeze (cadavre)
* lockscreen overlap fix (cadavre)
* Live Wallpapers enabled (cadavre)
* using OpenVPN-android-settings app (cadavre)
* minor changes (nebkat, piskor, cadavre)

pre-beta-2 (alpha_b2)
* [source] vendor & device trees cleaning and fixing (LeshaK)
* DPad music controls fixes (cadavre)
* SMParts bug fixes (cadavre)
* YouTube hq play fix (cadavre)
* new gapps 20110301 (piskor)
* new Superuser and su lib (cadavre/criminal)
* fix for default statusbar text colors (cadavre)
* OpenVPN fixes (cadavre)
* HU translation (HU translation team)
* SMParts translations (Samdroid.net community)
* "Launcher settings" bug fix (cadavre)
* 3 secs long-press BACK to kill (cadavre)
* minor changes (SM team)

pre-beta-1 (alpha_b1)
* initial build of SM (cadavre)
* added SM-froyo specific prop settings (guybrusht)
* included official Gingerbread theme (cadavre)
* hi-res png for GB theme (Kyojin)
* Ubuntu fonts (cadavre)
* Statusbar music controls (cadavre)
* settings for HOLD button (cadavre)
* keep SU in memory to avoid non-granting su access (cadavre)
* volume button orientation mapping (cadavre)
* orientation listener changes (cadavre)
* wake screen on new notification (f.e. sms, reminder, usb...) (cadavre)
* new CMParts adapted from Gingerbread (cadavre)
* created SMParts based on new CMParts (nebkat)
* framework removals: (cadavre)
- Bluetooth HID
- mouse pointer

 

—————————————–

 

Battery Calibration

1.1) Battery Calibration? -> “Calibration needs to be done after flashing a new ROM, but you can calibrate any time you think your battery is miscalibrated. This program does it by removing the batterystats.bin system file. The OS generates a new clean batterystats file soon, thus any fake information from the previous ROM is removed.
It’s suggested, but not necessary, to let the phone fully discharge after calibration, then charged to 100% without break.” 

1.2) Battery Calibration! -> “If anyone has a battery drain after an update/kernel change, wipe batterystats via recovery. At first, charge your phone to 100% when it’s on. turn it off and connect the charger again. Wait till the battery on the screen says “battery fully charged”. Disconnect the charger & reboot directly into the recovery and wipe the batterystats.” 

PS: maybe you can also try this App for calibrate your battery -> Easiest way i found to calibrate my battery

2.) More Battery Life Out of Your Android
What do you do when your battery is about to die …??

2.1) Use the Power Widget to Easily Toggle GPS, Bluetooth, Wireless, and Screen Brightness

2.2) 3G - requires a lot of power, so you can choose “2G Only” 

2.3) Backlight - adjust the backlight to be less bright (Settings –> Display –> Brightness)

2.4) Wi-Fi - disable Wi-Fi when you don’t need it

2.5) Bluetooth - disable Bluetooth when you don’t need it

2.6) GPS - disable GPS when you don’t need it

2.7) Disable Apps that Sync Constantly

For example you can use the “k-9″-Email App instead of the built-in Email application and activate the Push technology from “k-9″ to get you mails. 

2.8) Background-Apps

Try the OS Monitor-App to see how much resources your running Apps consume!!!

But also other background-apps like twitter, facebook etc. can reduce the battery-time, so you can change the Update-Interval (Settings –> Background Updates) or try e.g. “MinFreeManager”-app or “SSSwitch” and configure the kernel settings to kill background-apps without installing a app for killing apps BUT this will reducing the multitasking features from your phone! 

2.9) More general Information

-> Complete Guide to Maximizing Your Android Phone’s Battery Life – How-To Geek

3) Battery Manager Apps

Maybe you can also try a Battery Manager App, but I don’t need/use it and if you try the above tips I think you will also not need it 
- “SuperPower
- “JuiceDefender

 

—————————————–

 

You can download more Apps for Spica here -> APKitchen  Files for Spica  (sugarsync.com is free (5 GB)) & here you can find some -> Wallpapers for Android 

1 Star2 Stars3 Stars4 Stars5 Stars (30 votes, average: 4.90 out of 5)
CAP2011012613141

Cross-Compiling Android Kernel – Samsung GALAXY SPICA I5700

Hier möchte ich kurz erklären wie du mit Ubuntu (oder wie in meinem Fall Lubuntu) den Kernel von deinem Spica neu kompilieren kannst.

 

CAP2011012613141
CAP2011012613141

 

1.) Pakete nachinstallieren
aptitude install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev gawk texi2html texinfo automake libtool cvs gcj git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev texinfo gcj

 

2.) crosstool-ng installieren
cd ~
wget http://ymorin.is-a-geek.org/download/crosstool-ng/crosstool-ng-1.9.2.tar.bz2
tar -xjf crosstool-ng-1.9.2.tar.bz2
cd crosstool-ng-1.9.2/
./configure --prefix=${HOME}/ctng
make
make install

 

3.) Cross-Compiling installieren
export PATH=${PATH}:${HOME}/ctng/bin
cd ~
mkdir toolchain-build
cd toolchain-build

wget http://suckup.de/uClibc-0.9.31.config
wget http://suckup.de/toolchain-build.config
mv toolchain-build.config .config

ct-ng menuconfig
"C-library"  ---> (${HOME}/toolchain-build/uClibc-0.9.31.config) Configuration file 
ct-ng build
Abwarten… und hoffen ;-)

 

———-
ggf. muss man vorher noch die Quellen ändern, falls der Server auf der Gegenseite mal gerade nicht antwortet, in diesem (meinen) Fall war dies “mpfr” …
cd ~/ctng
grep -Ri mpfr * | grep get
vim lib/ct-ng-1.9.2/scripts/build/companion_libs/mpfr.sh
… nun habe ich in der Funktion “do_mpfr_get” die URL zu der angegebenen Datei ersetzt, fertig! Alternativ kann man die Dateien auch per Hand herunterladen und in das Verzeichnis ~/toolchain-build/targets/tarballs/ kopieren… ;-)
———-

 

4.) Kernel-Quellen per git herunterladen und anpassen
cd ~
mkdir i5700.2
cd i5700.2
git clone git://github.com/ch33kybutt/i5700-initramfs-froyo-2.6.29.6
mkdir kernel
cd kernel
git clone git://github.com/ch33kybutt/i5700-kernel
cd i5700-kernel
Nun den Pfad zum initramfs anpassen …
vim config.0.1
z.B.: (lars durch deinen User-Namen ersetzen)
[...]
CONFIG_INITRAMFS_SOURCE="/home/lars/i5700.2/i5700-initramfs-froyo-2.6.29.6/"
[...]
cp config.0.1 .config
… und auch die nächste Datei müssen wir ein wenig anpassen … (wobei ich dies per vim erledigt habe! :wq zum speicher)
vim /home/lars/i5700.2/i5700-initramfs-froyo-2.6.29.6/initrd.arm.initramfs_list
:%s/\/home\/ch33kybutt\/kernel\/i5700-initramfs-froyo-2.6.29.6\//\/home\/lars\/i5700.2\/i5700-initramfs-froyo-2.6.29.6\//g
vim Makefile
[...]
CROSS_COMPILE  := /home/lars/ownapps/arm-spica-linux-uclibcgnueabi/bin/arm-spica-linux-uclibcgnueabi-
[...]

 

5.) Cross-Compiling konfigurieren

make menuconfig
"General setup" -> Initramfs source file ("/home/lars/i5700.2/i5700-initramfs-froyo-2.6.29.6/initrd.arm.initramfs_list")
ggf. Versionsnummer etc. anpassen:
vim ~/i5700.2/i5700-initramfs-froyo-2.6.29.6/init.rc

 

6.) Cross-Compiling durchführen
Habe meinen Kernel mit folgenden FLAGS kompiliert… wenn jemand eine bessere Lösung hat würde ich dieser gerne hören…
make
cd ~/i5700.2/kernel/i5700-kernel/arch/arm/boot/
tar -cvf new_kernel_PDA.tar zImage

 

7.) neuen Kernel auf dem Android installieren
oder man versucht dies per ADB, habe dies jedoch noch nicht getestet…
adb push zImage /sdcard
adb shell
/xbin/bml_flash boot /sdcard/zImage

 

weitere Infos:
1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 5.00 out of 5)
Android Dosenfischer

Screencasts direkt vom Android

In diesem kleinen HowTo möchte ich kurz zeigen, wie man Screencasts von seinem Android erstellen kann.


1.) “droid VNC server”-App installieren

Bevor wir das besagt App über den Market installieren können, müssen wir das Smartphone rooten, dass heißt uns vollen Zugriff auf das Gerät verschaffen. (z.B. für Samsung Spica: Android 2.2 Froyo (CyanogenMod))


2.) per ADB einen Port weiterleiten

Wie die “Android Debug Bidge” im allgemeinen funktioniert habe ich bereis in einem anderem Blog-Post erwähnt -> Android Debug Bridge (adb) – HowTo

In diesem Fall rufen wir folgenden Befehl auf, um einen TCP-Port von Andoid direkt mir einem TCP-Port von unserm Betriebssystem zu verbinden.


adb forward tcp:5901 tcp:5901


weite Infos findest du hier -> developer.android.com/guide/developing/tools/adb.html#forwardports


3.) VNC-Viewer + CamStudio installieren (für Windows)

Nun müssen wir uns nur noch einen VNC-Programm und ein Bildschirm-Recorder installieren, ich habe mich z.B. für “RealVNC Viewer” und “CamStudio” entschieden. Besonders schön finde ich, dass man sein Android auch per VNC steuern kann und so während des Aufnahme das Smartphone gar nicht in die Hand nehmen muss… :-)


Demo:

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Android Dosenfischer

Android Debug Bridge (adb) – HowTo


In diesem Blog-Post beschreibe ich ein wenig die Funktionen der “Android Debug Bridge” (adb), dies ist ein Programm um von einen PC (Linux, Windows, MAC) mit dem Android-Handy zu kommunizieren, ich habe in diesem HowTo Windows verwendet. Adb ist im “Android-SDK” enthalten.

1. Vorbereitung

Als erstes müssen wir uns die Android-SDK herunterladen und installieren.


1.1) Treiber
Wenn du dein Handy noch nie mit deinem PC verbunden hast, musst du ggf. auch noch die Treiber installieren.


Windows XP” -> “SAMSUNG New PC Studio” -> Download-Link

Windows 7” -> “SAMSUNG Kies“ -> Download-Link


1.2) Download


1.3) Installation
android-sdk*.zip entpacken wir als erstes, dann kopieren wir “android-sdk-windows” nach C:\ und starten den darin enthaltenen “SDK Manager.exe”.



ADB
ADB


1.4) USB Debug aktivieren
USB debug auf dem Handy aktivieren…
Einstellungen – Anwendung – Entwicklung: „USB-Debugging“
…und danach dein Android per USB mit dem PC verbinden.


2.) ADB-Kommandos

Nun starten die die Windows-Kommandozeile…



cmd
cmd



… und können nun folgende Befehle ausführen.
# in folgndes Verzeichnis wechseln
cd C:\android-sdk-windows\platform-tools
# ADB-Hile anziegen lassen
adb -h
# zeigt die angeschlossenen Android-Geräte an
adb devices
# Android wird neu-gestartet
adb reboot
# Android wird im Recovery-Modus gestartet
adb reboot recovery
# dumping Debug Information (~ tail -f /var/log/everything.log) ;-) 
adb logcat
# der allgemine Befehl für Kommandos
adb [-s ] 
# startet die Android-Konsole, dann kannst
adb [-s ] shell
# zeigt das Android-Logfile an (~tail -f /var/log/everything)
adb logcat
V —> Verbose (lowest priority)
D —> Debug
I —> Info
W —> Warning
E —> Error
F —> Fatal
S —> Silent (highest priority, on which nothing is ever printed)
# z.B. alle Error-Meldungen anziegen lassen
adb logcat *:E
radio  —> View the buffer that contains radio/telephony related messages.
events —> View the buffer containing events-related messages.
main   —> View the main log buffer (default)
# z.B. alle Event-Meldungen anziegen lassen
adb logcat -b events
# installiert ein App von deinem PC aus
adb install \
# Upload eine Datei von deinem PC (localfile) zum Handy
adb push  
# Download eine Datei von Handy zu deinem PC
adb pull  


In dem CyanogenMod – Wiki gibt es noch weitere hilfreiche Befehle: http://wiki.cyanogenmod.com/index.php?title=ADB


— die nachfolgenden Befehle werden in der “adb shell” ausgeführt —


Dabei können die meisten der folgenden Befehle können auch in anderen Linux-Systemen verwendet werden… :-)


# zeigt das Android-Logfile an (~tail -f /var/log/everything)
logcat
# zeigt Kernel-Debug Infos an
dmesg
# zeigt die System-Apps an (ls = dir unter Windows)
ls /system/app/
# zeigt die installierten Apps an
ls /data/app/
# zeigt Daten auf deiner SD-Karte an
ls /mnt/sdcard/
# zeigt den Inhalt einer Datei an oder kopiert diese auch, wenn nötig
cat lall.txt
cat lall.txt > lall_copy.txt
# zeigt an wer du bist ;-) 
whoami
# zeigt die laufenden Prozesse an
ps 
#zeigt die Systemauslastung an
top | tail
# zeigt alle eingehängten Partitionan an
mount
# grep filtert z.B. Ausgaben
mount | grep system
# root-Rechte erhalten (su = substitute user)
su
# alle Partition können nun beschrieben werden
remount rw
# z.B. die Partition /system kann nun beschrieben werden (read & write)
remount rw /system
# die Partition /system kann nun nicht mehr beschrieben werden (read only)
remount ro /system
# z.B. löscht ein System-App (rm = del unter Windows)
rm /system/app/
# löscht ein installiertes App
rm /data/app/


PS: Da ich den “Cyanogenmod” bei mir installiert habe, stehen mir noch viele weitere Programme wie z.B. einen SSH-Server (dropbear), wget… zur Verfügung, :-) die hier gezeigten Befehle sollten aber auch ohne diesen Mod funktionieren.

1 Star2 Stars3 Stars4 Stars5 Stars (9 votes, average: 4.78 out of 5)