Honeycomb Optimierungen fürs Hannspad

Dieses Thema im Forum "Root / Hacking / Modding für HANNspree HANNSpad (SN10T1)" wurde erstellt von heinerl, 01.09.2011.

  1. heinerl, 01.09.2011 #1
    heinerl

    heinerl Threadstarter Android-Experte

    Beiträge:
    609
    Erhaltene Danke:
    171
    Registriert seit:
    06.08.2011
    In einem französischen Forum habe ich gerade über ein Script gelesen, das u.a. die Speichernutzung des Hannspads unter Honeycomb optimieren soll. Hier eine leicht geänderte Übersetzung vom Google Translator:


    "Ich habe ein kleines Skript, das zur Optimierung 2-3 Dinge ändert.

    Die Hannspad hat nur 512 MB RAM. Sobald das System gestartet ist, sind mit dem Speicher für das System und die "Grafikkarte" immer noch über 250MB reserviert.

    Android beendet Prozesse und Anwendungen, wenn der Speicher ein bestimmtes Niveau erreicht hat und nach Priorität. Die Parameter von Flashback sind zu aggressiv und Anwendungen werden schon beendet, wenn der freie Speicher 100MB unterschreitet.

    Also machte ich ein Skript, das Speicher-Management Änderungen erst zuläßt, wenn der freie Speicher unter 32 MB fällt.

    Der Vorteil ist, dass Multi-Tasking schneller wird. Man kann zum Beispiel Opera starten und danach News, Google Maps, Acrobat Reader und kehrt dann zu Opera zurück, ohne daß die Anwendung oder die Seite neu geladen wird.

    Dieses Skript ändert auch den Cache-Speicher, der normalerweise von Android vergrößert wird, um schneller auf die SD-Karte zuzugreifen. (???)

    Es ändert auch die TCP / IP (Internet-Geschwindigkeit). Das Skript ändert auch die Priorität des Launchers, so dass es nie beendet wird. Auch nach dem Ausführen einer großen Anwendung wird die Rückkehr zum Home-Bildschrim schneller.

    Das Skript läuft kontinuierlich im Hintergrund und ändert einige Einstellungen, wenn das Tablet im Standby-Modus ist (legt die max CPU auf 216 MHz, um Strom zu sparen) und wenn es aus dem Standby erwacht (1000MHZ CPU auf max).

    Dieses Skript wird beim Start des Tablets ausgeführt. Es muß als script.sh in den Ordner /system/etc/ kopiert werden. Um das Script wieder zu entfernen, die Datei einfach wieder löschen."


    Zum Kopieren der Datei sind Root-Rechte erforderlich!


    Hier der erste Teil des Scripts ohne die Standby-Funktionen:

    Code:
    #!/bin/bash
    # Tweaks for Hannspad  v0.23
    # by Archimed
    
    # Tweaks RAM"
    echo 1536,3072,5632,6144,7168,8192 > /sys/module/lowmemorykiller/parameters/minfree;
    echo 0,3,5,7,14,15 > /sys/module/lowmemorykiller/parameters/adj;
    echo 0 > /sys/module/lowmemorykiller/parameters/debug_level;
    echo 64 > /sys/module/lowmemorykiller/parameters/cost;
    
    #Sdcache speedup sd read
    echo 4096 > /sys/devices/virtual/bdi/179:16/read_ahead_kb;
    echo 4096 > /sys/devices/virtual/bdi/179:24/read_ahead_kb;
    
    echo 0 > /proc/sys/vm/swappiness;
    
    #gives more mem to cache fs dentry and inode to save cpu
    echo 10 > /proc/sys/vm/vfs_cache_pressure;
    
    
    echo 65 > /proc/sys/vm/dirty_ratio;
    echo 10 > /proc/sys/vm/dirty_background_ratio;
    
    
    #echo 20480 > /proc/sys/vm/min_free_kbytes;
    #page-cluster controls the number of pages which are written to swap in a single attempt
    echo 0 > /proc/sys/vm/page-cluster;
    
    echo 15 >/proc/sys/fs/lease-break-time;
    #specifies the grace period (in seconds) that the kernel grants to a process holding a file lease after it has sent a signal to that process notifying it that another process is waiting to open the file
    
    
    echo 10000000 > /proc/sys/kernel/sched_latency_ns;
    echo 2000000 > /proc/sys/kernel/sched_min_granularity_ns;
    echo 760000 > /proc/sys/kernel/sched_wakeup_granularity_ns;
    echo 0 > /proc/sys/vm/oom_kill_allocating_task;
    
    #TCP tweak
    echo 0 > /proc/sys/net/ipv4/tcp_timestamps;
    echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse;
    echo 1 > /proc/sys/net/ipv4/tcp_sack;
    echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle;
    echo 1 > /proc/sys/net/ipv4/tcp_window_scaling;
    echo 5 > /proc/sys/net/ipv4/tcp_keepalive_probes;
    echo 30 > /proc/sys/net/ipv4/tcp_keepalive_intvl;
    echo 25 > /proc/sys/net/ipv4/tcp_fin_timeout;
    echo 404480 > /proc/sys/net/core/wmem_max;
    echo 404480 > /proc/sys/net/core/rmem_max;
    echo 256960 > /proc/sys/net/core/rmem_default;
    echo 256960 > /proc/sys/net/core/wmem_default;
    echo 4096 16384 404480 > /proc/sys/net/ipv4/tcp_wmem;
    echo 4096 87380 404480 > /proc/sys/net/ipv4/tcp_rmem;
    
    setprop wifi.supplicant_scan_interval 400;
    
    #better scrolling speed through lists
    setprop windowsmgr.max_events_per_sec 65;
    
    ## disable touch below 60 pixels
    #setprop mot.proximity.delay 60;
    
    
    # NEVER kill the launcher, speedup Home return but less free memory
    echo -17 > /proc/`pidof com.android.launcher`/oom_adj;
    
    #remounting file systems with noatime nodiratime flags ,save battery and CPU
    for x in $(busybox mount | cut -d " " -f3);
    do
    	if [ "$x" != "/acct" ] &&  [ "$x" != "/dev/cpuctl" ]; then
    		sync;
    		log -p i -t remount_volume "remount $x noatime nodiratime";
    		busybox mount -o remount,noatime,nodiratime $x;
    	fi
    done;	
    	
    #flags every mounted partition as non rotational and increases it's cache size for more read speed
    array=("/sys/block/mtdblock3" "/sys/block/mtdblock7" "/sys/block/mmcblk3" "/sys/block/mtdblock4" "/sys/block/mtdblock0" );
    len=${#array[*]};
    i=0;
    while [ $i -lt $len ];
    do
    	rep=${array[$i]};
    	echo 0 > $rep/queue/rotational;
    	echo 4096 > $rep/queue/read_ahead_kb;
    	echo 512 > $rep/queue/nr_requests;	
    	echo 1 > $rep/queue/iosched/low_latency;	
    	let i++;
    done;
    
    
    #Battery temperature control
    (while [ 1 ]; 
    do
    	sleep 900;
    	TEMP=`cat /sys/class/power_supply/battery/temp`;
    	if [ $TEMP -gt 450 ]; then
    		log -p i -t BatteryTempState "script.sh battery temperature too high (`expr $TEMP / 10` C) reduce CPU -> 760 Mhz";
    		echo 760000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq;
    		echo 216000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq;
    		
    		if [ $TEMP -gt 500 ]; then
    			log -p i -t BatteryTempState "script.sh battery temperature is critical (`expr $TEMP / 10` C) Emergency Shutdown";
    			reboot -p;
    		fi
    	else
    		log -p i -t BatteryTempState "script.sh battery temperature (`expr $TEMP / 10` C)";
    	fi	
    done &);
    
    

    Und hier der Teil, der imho zu Standby-Abstürzen bei Flashback führt:

    Code:
    [COLOR="Red"]# Switch CPU frequency to lowest in sleep mode
    CUR_MAX_CPU=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq`;
    
    (while [ 1 ]; 
    do
    	AWAKE=`cat /sys/power/wait_for_fb_wake`;
    	if [ $AWAKE = "awake" ]; then
    		echo $CUR_MAX_CPU > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq;
    		echo 216000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq;
    
    		echo 5000 > /proc/sys/vm/dirty_expire_centisecs;
    		echo 1500 > /proc/sys/vm/dirty_writeback_centisecs;
    
    		log -p i -t Screenstate "script.sh AWAKE -> switching max CPU frequency $CUR_MAX_CPU hz";
    	fi
     
    	SLEEP=`cat /sys/power/wait_for_fb_sleep`;
    	CUR_MAX_CPU=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq`;
    	if [ $SLEEP = "sleeping" ]; then
    		echo 216000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq;
    		echo 216000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq;
    		log -p i -t Screenstate "script.sh SLEEP -> switching max CPU frequency 216 Mhz";
    		
    		echo 40000 > /proc/sys/vm/dirty_expire_centisecs;
    		echo 60000 > /proc/sys/vm/dirty_writeback_centisecs;
    
    		#free pagecache, dentries and inodes:
    		echo 3 > /proc/sys/vm/drop_caches
    		
    		#kill some process who use to much cpu in sleep
    		newsrepublic=`pidof com.mobilesrepublic.appytablet`;
    		mxvideoplayer=`pidof com.mxtech.videoplayer.ad`;
    		googlemaps=`pidof com.google.android.apps.maps`;	
    		gapps=`pidof com.google.process.gapps`;
    		gallery=`pidof com.android.gallery3d`;
    		voice=`pidof com.google.android.apps.googlevoice`;
    		googlemaps2=`pidof com.google.android.apps.maps:NetworkLocationService`;
    		gallery2=`pidof com.flikie.wallpapers.gallery`;
    			
    		kill $newsrepublic $mxvideoplayer $googlemaps $gapps $voice $googlemaps2 $gallery2;
    		log -p i -t Screenstate "script.sh kill pid $newsrepublic $mxvideoplayer $googlemaps $gapps $voice $googlemaps2 $gallery2";
    		
    	fi
    	
    	sleep 2;	
    done &);
    [/COLOR]
    



    Edit 1: Neue Version 0.22 eingefügt. Changelog (ich hasse Google Translator):

    • einige Variablen geändert
    • Größe des Lese-Cache erhöht (bessere Lesegeschwindigkeit)
    • Es werden einige Prozesse beendet, wenn das Tablet im Batteriebetrieb in den Standby Modus geht, da diese im Standby zu viel Akku verbrauchen würden. Die Liste dieser Prozesse wird noch erweitert.


    Edit 2: Neue Version 0.23 eingefügt. Changelog:

    • Weitere Prozesse in die Liste Standby-kill eingefügt
    • Temperaturüberwachung: Alle 15 Minuten wird die Temperatur des Akkus gecheckt. Ist die Temperatur > 45° C, wird die Taktfrequenz auf 760MHz reduziert. Ist die Temperatur > 50° C, erfolgt ein Not-Aus.


    Edit 3: Meiner Meinung nach wirken sich die rot markierten Zeilen negativ auf die Stabilität im Standby aus. Nachdem mein Hannspad mit div. FB-Versionen und Kernels nach längerem Standby mit und ohne Netzteil immer abschmierte, habe ich aus dem gesamten Script die genannten Zeilen entfernt, seitdem keine Abstürze im Standby mehr. Die Funktionen zum Killen der überflüssigen Prozesse könnten allerdings drinbleiben, die hatte ich zuerst gelöscht, ohne Auswirkung.


    Edit 4: Batteriekontrolle nach oben versetzt. Das Script läßt sich so einfacher per copy/paste in einen Texteditor kopieren und abspeichern. Den rot markierten Teil kann man nach Gutdünken noch anhängen. (Finde diese Code-Fenster trotzdem unschick) :)
     
    Zuletzt bearbeitet: 03.11.2011
    lgerd, Bert B., Cementarius und 12 andere haben sich bedankt.
  2. mrverplant, 01.09.2011 #2
    mrverplant

    mrverplant Android-Hilfe.de Mitglied

    Beiträge:
    49
    Erhaltene Danke:
    3
    Registriert seit:
    10.08.2011
    Phone:
    HTC Legend
    Das hört sich nach ziemlich sinnigen Änderungen an. Gerade beim Launcher und Browser ist mir das mit der Speicherverwaltung auch schon unangenehm aufgefallen. Mal sehen, ob ich das Script ausprobiere. Ansonsten bleibt ja auch zu hoffen, dass sich die MODer die Änderungen mal ansehen und sie ggf. übernehmen.
     
  3. Klikidiklik, 01.09.2011 #3
    Klikidiklik

    Klikidiklik Android-Hilfe.de Mitglied

    Beiträge:
    68
    Erhaltene Danke:
    15
    Registriert seit:
    26.08.2011
    Werd ich heute Abend mal ausprobieren. Ergibt Sinn das Ganze. Mich stört es auch immer, dass wenn man während dem Surfen im Internet mal was anderes macht, sehr oft die Seite neu geladen werden muss. Das ist schon etwas ärgerlich. Hört sich zumindest gut an.
     
  4. mikaole, 01.09.2011 #4
    mikaole

    mikaole Gast

    das hört sich interesannt an. Werde gleich mal testen.
    So bin dabei. Multitasking wird wesentlich besser. Launcher sofort komplett da.
    Mir fällt auf, dass ich plötzlich wieder überall Werbung habe. Wird von dem Script dort irgendetwas beeinflusst?
     
    Zuletzt von einem Moderator bearbeitet: 01.09.2011
  5. rxtarct, 01.09.2011 #5
    rxtarct

    rxtarct Neuer Benutzer

    Beiträge:
    1
    Erhaltene Danke:
    0
    Registriert seit:
    31.08.2011
    Nein. Das Skript ändert nur etwas auf niederer Betriebssystem-Ebene (mit Ausnahme des Launchers). Ich kann mir nicht vorstellen, dass sich deshalb etwas an der Werbung ändert.
     
  6. MP2005, 01.09.2011 #6
    MP2005

    MP2005 Android-Lexikon

    Beiträge:
    1,650
    Erhaltene Danke:
    267
    Registriert seit:
    09.02.2011
    installiere adfree und die meiste werbung ist weg
     
  7. kza, 01.09.2011 #7
    kza

    kza Android-Hilfe.de Mitglied

    Beiträge:
    118
    Erhaltene Danke:
    13
    Registriert seit:
    30.08.2011
    :w00t00:Kann auch gut sein, dass ich mir das aufgrund meiner Freude über das Touchpad einbilde, aber es scheint insgesamt einen ordentlichen Geschwindigkeitsschub zu geben :D
    Das mit Multi-Tasking funktioniert aufjeden Fall wie beschrieben und AdFree tut auch noch was es soll ;)
     
  8. markus.t, 01.09.2011 #8
    markus.t

    markus.t Junior Mitglied

    Beiträge:
    41
    Erhaltene Danke:
    1
    Registriert seit:
    29.11.2010
    wie macht man das den? also das "ausführen"
     
  9. 4dro1d, 01.09.2011 #9
    4dro1d

    4dro1d Android-Guru

    Beiträge:
    2,966
    Erhaltene Danke:
    1,406
    Registriert seit:
    02.08.2011
    Ich zitiere: "Es muß als script.sh in den Ordner /system/etc/ kopiert werden. Um das Script wieder zu entfernen, die Datei einfach wieder löschen."
     
  10. mamo1leg, 01.09.2011 #10
    mamo1leg

    mamo1leg Android-Hilfe.de Mitglied

    Beiträge:
    76
    Erhaltene Danke:
    10
    Registriert seit:
    18.08.2011
    Ich bin ja manchmal ein bisschen begriffsstutzig, aber ich fasse mal zusammen:

    1. Text von >> #!/bin/bash << bis >> done &); << kopieren und als neue Datei "script.sh" speichern.
    2. Die Datei in den Ordner "system/etc/" kopieren.
    3. Hannsi neu booten

    Ergebnis: Alles läuft flotter

    So einfach geht Computer......

    Also im Ernst: Ich habe es gerade so gemacht wie beschrieben und bin überrascht von der Geschwindigkeit, mit der ich zwischen den Programmen wechsle, klasse.
    Ich habe sogar den Eindruck, dass der Touchscreen besser auf meine Wurstfinger reagiert, aber das kann täuschen.

    Ausser dem Klick auf Danke kommt hier noch mal ein dickes

    DANKESCHÖN!
     
  11. Kuroi, 01.09.2011 #11
    Kuroi

    Kuroi Android-Experte

    Beiträge:
    548
    Erhaltene Danke:
    383
    Registriert seit:
    05.08.2011
    Phone:
    OnePlus 3T
  12. timt, 01.09.2011 #12
    timt

    timt Erfahrener Benutzer

    Beiträge:
    176
    Erhaltene Danke:
    12
    Registriert seit:
    24.08.2011
    muss man nicht mal - der link namens script oben is genau die datei die man braucht ;)

    hat schon irgendwer auswirkungen auf akkulaufzeit bemerkt?
     
  13. mikaole, 01.09.2011 #13
    mikaole

    mikaole Gast

    Hatte mit dem script bisher auch keine freezes mehr. Das kann aber auch am 4er kernel liegen. Internet scheint auch ein wenig schneller zu laufen. Seiten in Opera bleiben im CACHE und sind sofort da ohne neu zu laden.
     
  14. markus.t, 01.09.2011 #14
    markus.t

    markus.t Junior Mitglied

    Beiträge:
    41
    Erhaltene Danke:
    1
    Registriert seit:
    29.11.2010
    geght nicht hab den es dateiexplorer der sagt immer darf da nix hinkopieren
     
  15. Schnulzi 2.0, 01.09.2011 #15
    Schnulzi 2.0

    Schnulzi 2.0 Android-Experte

    Beiträge:
    468
    Erhaltene Danke:
    93
    Registriert seit:
    10.02.2011
    Musst du vorher als schreibbar mounten. Der Root Explorer kann das z.B.
     
  16. markus.t, 01.09.2011 #16
    markus.t

    markus.t Junior Mitglied

    Beiträge:
    41
    Erhaltene Danke:
    1
    Registriert seit:
    29.11.2010
    die müsste doch gleich bleiben schließlich sind die apps nur laänger im speicgher aber pausiert halt
     
  17. TheChoosen, 01.09.2011 #17
    TheChoosen

    TheChoosen Android-Hilfe.de Mitglied

    Beiträge:
    93
    Erhaltene Danke:
    2
    Registriert seit:
    10.12.2010
    selbes Problem bei mir mit dem file Explorer hd. kann es einfach dort nicht einfügen .... der hat doch eigentlich Root Zugriff.
     
  18. MP2005, 01.09.2011 #18
    MP2005

    MP2005 Android-Lexikon

    Beiträge:
    1,650
    Erhaltene Danke:
    267
    Registriert seit:
    09.02.2011
    mußt du in den einstellungen aktivieren,rootzugriff
     
  19. TheChoosen, 01.09.2011 #19
    TheChoosen

    TheChoosen Android-Hilfe.de Mitglied

    Beiträge:
    93
    Erhaltene Danke:
    2
    Registriert seit:
    10.12.2010
    die Option gibt es nicht bei mir... habs jetzt mit dem root Explorer hinbekommen. funzt....!

    /Edit:

    hatte es jetzt das erste mal, das das Hannspad nicht aus dem Standby aufwachen wollte... Hängt wohl mit dem Script zusammen...
     
    Zuletzt bearbeitet: 01.09.2011
  20. timt, 01.09.2011 #20
    timt

    timt Erfahrener Benutzer

    Beiträge:
    176
    Erhaltene Danke:
    12
    Registriert seit:
    24.08.2011
    in welchen eigenschaften? vom file manager?
     
    red-orb bedankt sich.

Diese Seite empfehlen