[GUIDE] Run Sickbeard/Transmission/sabnzbd/SSH/Samba/More on Shield - Shield Android TV General
I've seen lots of people saying its not possible to make the shield an all in one solution for downloading, but after hours of tinkerering I've got a semi easy way of running the above services (and tons more) from the shield. This does requrie a bit of command line-fu , but I think I've got most of the hard work done. When its all said and done, we'll have a working entware-ng installation ( https://github.com/Entware-ng/Entware-ng)
--This guide is a work in progress, there are a few other items I'll add that will improve user experience, but as it stands now it should work as intended. I also haven't gotten a samba config to work yet, so if anyone can figure it out, let me know and I'll update a section on it
I've addapted this guide from a few github projects , but that likely means some commands/steps are actually useless on the shield:
https://github.com/erichlf/AndroidSeedBox
(will add other sources later)
AS ALWAYS MAKE A BACKUP OF DATA -- I AM NOT RESPONSIBLE IF YOUR DEVICE LOSES DATA (to my knowledge, there is no risk of bricking your device doing this, at worst a factory reset/reflash)
Pre-reqs:
Shield has to have ROOT
ADB set up on PC
Busybox : http://www.apkmirror.com/apk/jrummy-apps-inc/busybox-for-android/
Rom Toolbox Lite : Not on apk mirror, so side load from your favorite place
For this process, I recommend having your shield next to your computer, and share inputs with your monitor. You can do 90% of it from an ADB shell, but a few parts you will need to use a terminal on the shield itself, and keyboard is way easier than controller
Install Busybox on the shield, but use the oldest version available (I think the wget for 1.26 messes with the process)
run "ADB Shell" and run these commands on the shield (You can copy/paste multiple lines into the cmd window):
Code:
su
mount -o rw,remount /
ls /data/entware-ng >/dev/null 2>&1 || mkdir /data/entware-ng
cd .; ln -s /data/entware-ng /opt
ls /data/entware-ng/rootbin >/dev/null 2>&1 || mkdir /data/entware-ng/rootbin
cd .; ln -s /data/entware-ng/rootbin /bin
ls /data/entware-ng/rootlib >/dev/null 2>&1 || mkdir /data/entware-ng/rootlib
cd .; ln -s /data/entware-ng/rootlib /lib
ls /data/entware-ng/tmp >/dev/null 2>&1 || mkdir /data/entware-ng/tmp
cd .; ln -s /data/entware-ng/tmp /tmp
ls /data/entware-ng/home >/dev/null 2>&1 || mkdir /data/entware-ng/home
ls /data/entware-ng/home/root >/dev/null 2>&1 || mkdir /data/entware-ng/home/root
ls /data/entware-ng/home/user >/dev/null 2>&1 || mkdir /data/entware-ng/home/user
chmod 0755 /data/entware-ng/home/root
chown root.root /data/entware-ng/home/root
chmod 0755 /data/entware-ng/home/user
We've set up our staging area, and created a new home directory.
Now lets install Entware
Code:
ls /data/entware-ng/bin >/dev/null 2>&1 || mkdir /data/entware-ng/bin
ls /data/entware-ng/lib >/dev/null 2>&1 || mkdir /data/entware-ng/lib
ln -s /system/bin/sh /bin/sh
wget http://pkg.entware.net/binaries/armv7/installer/entware_install.sh -O /data/entware-ng/entware_install.sh
sh /data/entware-ng/entware_install.sh
Now lets install a new Busybox and Wget
Code:
/opt/bin/opkg install busybox
/opt/bin/opkg install wget
cd /bin; ln -s /data/entware-ng/bin/busybox sh
cd /bin; ln -s /data/entware-ng/bin/busybox echo
cd /bin; ln -s /data/entware-ng/bin/busybox rm
cd /bin; ln -s /data/entware-ng/bin/busybox rmdir
cd /bin; ln -s /data/entware-ng/bin/busybox sed
cd /bin; ln -s /data/entware-ng/bin/busybox mkdir
cd /bin; ln -s /data/entware-ng/bin/busybox head
cd /bin; ln -s /data/entware-ng/bin/busybox sort
cd /bin; ln -s /data/entware-ng/bin/busybox dirname
cd /bin; ln -s /data/entware-ng/bin/busybox ln
cd /bin; ln -s /data/entware-ng/bin/busybox mv
cd /bin; ln -s /data/entware-ng/bin/busybox cat
cd /bin; ln -s /data/entware-ng/bin/busybox chown
cd /bin; ln -s /data/entware-ng/bin/busybox chmod
cd /bin; ln -s /data/entware-ng/bin/busybox pgrep
This next step may be optional. Sets up resolv.conf (which may already exist, I'm not sure) and mtab (I don't know what this is)
Code:
echo nameserver 8.8.8.8 >/data/entware-ng/etc/resolv.conf
ls /etc >/dev/null 2>&1 || mkdir /etc
mount -o rw,remount /system
ls /etc/resolv.conf >/dev/null 2>&1 && rm /etc/resolv.conf
cd .; ln -s /data/entware-ng/etc/resolv.conf /etc/resolv.conf
cd .; ln -s /proc/mounts /etc/mtab
Create Passwd file
Code:
echo root:x:0:0:root:/opt/home/root:/bin/sh >/data/entware-ng/etc/passwd
echo shell:x:2000:2000:shell:/opt/home/user:/bin/sh >>/data/entware-ng/etc/passwd
cd .; ln -s /data/entware-ng/etc/passwd /etc/passwd
echo root:x:0:root >/data/entware-ng/etc/group
echo shell:x:2000:shell >>/data/entware-ng/etc/group
cd .; ln -s /data/entware-ng/etc/group /etc/group
echo /bin/sh > /etc/shells
echo PATH=/usr/bin:/usr/sbin:/bin:/sbin:/system/sbin:/system/bin:/system/xbin:/system/xbin/bb:/data/local/bin > /etc/profile
echo export PATH >> /etc/profile
OPTIONAL: If you want to use Open SSH with password instead of certs you can do the following step. I have done this, and haven't noticed any issues, but it may lessen the security of Root
Code:
/data/entware-ng/bin/busybox passwd root
Now let's create a script that will initialize Entware-ng after reboot
Code:
echo \#\!/system/bin/sh > /data/entware-ng/entware-init.sh
echo mount -o rw,remount rootfs / >> /data/entware-ng/entware-init.sh
echo ln -s /data/entware-ng /opt >> /data/entware-ng/entware-init.sh
echo ln -s /data/entware-ng/rootlinb /lib >> /data/entware-ng/entware-init.sh
echo ln -s /data/entware-ng/rootbin /bin >> /data/entware-ng/entware-init.sh
echo ln -s /data/entware-ng/tmp /tmp >> /data/entware-ng/entware-init.sh
echo ln -s /system/bin/sh /bin/sh >> /data/entware-ng/entware-init.sh
echo mount -o ro,remount rootfs >> /data/entware-ng/entware-init.sh
chmod 755 /data/entware-ng/entware-init.sh
Now lets create a start script that calls the initialize script we just made, but also returns a shell in the new environment
Code:
echo \#\!/system/bin/sh > /data/entware-ng/start.sh
echo ls '/opt >/dev/null 2>&1 ||' su -c /data/entware-ng/entware-init.sh >> /data/entware-ng/start.sh
echo export PATH=/opt/sbin:/opt/bin:/opt/rootbin:/opt/local/bin:/system/bin >> /data/entware-ng/start.sh
echo if busybox test $(busybox id -u) = 0; then HOME=/opt/home/root; else HOME=/opt/home/user; fi >> /data/entware-ng/start.sh
echo export HOME >> /data/entware-ng/start.sh
echo '/opt/etc/init.d/rc.unslung start' >> /data/entware-ng/start.sh
echo /bin/sh >> /data/entware-ng/start.sh
chmod 755 /data/entware-ng/start.sh
Now, lets install different services. These are optional, and there are tons more, but this will get transmission/sickbeard/ssh going
Code:
PATH=/data/entware-ng/bin:/bin /data/entware-ng/bin/opkg install vim
PATH=/data/entware-ng/bin:/bin /data/entware-ng/bin/opkg install samba36-server
PATH=/data/entware-ng/bin:/bin /data/entware-ng/bin/opkg install transmission-web transmission-daemon-openssl
PATH=/data/entware-ng/bin:/bin /data/entware-ng/bin/opkg install python
PATH=/data/entware-ng/bin:/bin /data/entware-ng/bin/opkg install python-setuptools
PATH=/data/entware-ng/bin:/bin /data/entware-ng/bin/opkg install python-pip
PATH=/data/entware-ng/bin:/bin /data/entware-ng/bin/opkg install python-cheetah
PATH=/data/entware-ng/bin:/bin /data/entware-ng/bin/opkg install openssh-server
Copy the start.sh and sysinit to the home environment
Code:
cp /data/entware-ng/start.sh /data/entware-ng/home/root/start.sh
cp /data/entware-ng/start.sh /data/entware-ng/home/root/sysinit
chown root.root /data/entware-ng/home/root/start.sh
chmod 755 /data/entware-ng/home/root/start.sh
chown root.root /data/entware-ng/home/root/sysinit
chmod 755 /data/entware-ng/home/root/sysinit
mount -o ro,remount /
mount -o ro,remount /system
Start the new environment
Code:
sh /data/entware-ng/home/root/sysinit
SICKBEARD CONIG
Install a few pre-reqs for sickbeard
Code:
pip install transmissionrpc
pip install cherrypy
Create a file in init.d to allow sickbeard to start on reboot. Please note, you will need to change the path to where your sickbeard directory is.
I'm not going to cover setting up sickbeard, there are other guides for that. I did find that it couldn't be bound to 0.0.0.0 , or local host, it needed to be hard coded for the shields IP, so I recommend setting it up as a static IP in your router.
Code:
echo PATH=/opt/bin:/opt/sbin:$PATH > /opt/etc/init.d/S96sickbeard
echo /opt/bin/python <YOUR PATH TO>/SickBeard.py -d --port 8081 >> /opt/etc/init.d/S96sickbeard
chmod 755 /opt/etc/init.d/S96sickbeard
chmod +x /opt/etc/init.d/S96sickbeard
OPENSSH CONFIG
OPTIONAL - If you want to use SSH we need to generate keys
Code:
ssh-keygen -f /opt/etc/ssh/ssh_host_rsa_key -N '' -t rsa
ssh-keygen -f /opt/etc/ssh/ssh_host_dsa_key -N '' -t dsa
ssh-keygen -f /opt/etc/ssh/ssh_host_ecdsa_key -N '' -t ecdsa -b 521
Now you'll have to get on the shield and use a terminal emulator to edit your sshd_config file. Here's a copy of mine, but I do not promise how secure it is.
Code:
# $OpenBSD: sshd_config,v 1.99 2016/07/11 03:19:44 tedu Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin:/opt/bin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.
Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
# The default requires explicit activation of protocol 1
Protocol 2
# HostKey for protocol version 1
#HostKey /opt/etc/ssh/ssh_host_key
#HostKeys for protocol version 2
HostKey /opt/etc/ssh/ssh_host_rsa_key
HostKey /opt/etc/ssh/ssh_host_dsa_key
HostKey /opt/etc/ssh/ssh_host_ecdsa_key
#HostKey /opt/etc/ssh/ssh_host_ed25519_key
# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 1024
# Ciphers and keying
#RekeyLimit default none
# Logging
#SyslogFacility AUTH
#LogLevel INFO
# Authentication:
#LoginGraceTime 2m
PermitRootLogin yes
StrictModes no
#MaxAuthTries 6
#MaxSessions 10
#RSAAuthentication yes
#PubkeyAuthentication yes
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
#AuthorizedPrincipalsFile none
#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody
# For this to work you will also need host keys in /opt/etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
PermitEmptyPasswords yes
# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes
# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
#UsePAM no
#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
UsePrivilegeSeparation no
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /opt/var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none
# no default banner path
#Banner none
# enable DSCP QoS values (per RFC-4594)
#IPQoS AF21 AF11
# override default of no subsystems
Subsystem sftp /opt/lib/sftp-server
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server
To edit this, on the shield (Rom Toolbox Lite has a terminal emulator) run
Code:
su
cd /opt
sh ./start.sh
cd /opt/etc/ssh
vi ./sshd_config
TRANSMISSION
You'll have to configure your transmission settings, but they're located
/opt/etc/transmission/settings.json
Persist after reboot / Start Transmission/SSH/Sickbeard on boot
On the shield, open Rom Toolbox lite, and go down to "Scripter"
Import the sysinit script located /opt/home/root/sysinit and set the script to run at boot as root
Reboot and you should be able to connect via SSH, and have
Why do we need the passwd and group file ? Won't we use android's UID/GID ?
Can this method somehow be used to create custom group where we could put android's UID ?
I don't know why that step is needed, I got it from the guide I listed, and it worked without any apparent issues, so I left it in. My guess is openssh wants it to be there, but I'm not sure
So after you run all that is there a Interface for Sickbeard etc?
ahoslc said:
So after you run all that is there a Interface for Sickbeard etc?
Click to expand...
Click to collapse
It would be running on <shield IP>:8081 which you could access from the shield, or any other device on your network. Transmission would be :9091
Thanks for this. I'm trying to get python3-pip, acd_cli, and encfs installed on my Shield TV so I can mount my Amazon Cloud Drive and decrypt files for use with Plex. I have this set up on my NAS but it is too weak to do transcoding. I did set up the NAS as a middleman and mounted shares from it on the Shield TV, and while it does work, the extra step is really slow.
edit: I managed to get acd_cli working but I cannot mount my Amazon Cloud Drive share, I get I/O errors when I try to cd into it. Wonder if there's a kernel issue.
psycho_asylum said:
Thanks for this. I'm trying to get python3-pip, acd_cli, and encfs installed on my Shield TV so I can mount my Amazon Cloud Drive and decrypt files for use with Plex. I have this set up on my NAS but it is too weak to do transcoding. I did set up the NAS as a middleman and mounted shares from it on the Shield TV, and while it does work, the extra step is really slow.
edit: I managed to get acd_cli working but I cannot mount my Amazon Cloud Drive share, I get I/O errors when I try to cd into it. Wonder if there's a kernel issue.
Click to expand...
Click to collapse
So I was able to get this working https://github.com/dsoprea/GDriveFS and could cd into my google drive (But couldn't get Plex to see any files in the directory)
Soooo, even if you do get it working, its possible Plex won't be able to see it
Edit-- Did you install fuse-utils ?
chasx003 said:
Edit-- Did you install fuse-utils ?
Click to expand...
Click to collapse
Not specifically. I would think it would have been listed as a dependency and automatically installed, libfuse was though. I ended up factory restoring my Shield after I botched something, so now I'm just at 5.1 stock using the built-in Samba for now.
which version of busybox works? I am having trouble with wget and I tried v1.21.0
chasx003 said:
I've seen lots of people saying its not possible to make the shield an all in one solution for downloading, but after hours of tinkerering I've got a semi easy way of running the above services (and tons more) from the shield. This does requrie a bit of command line-fu , but I think I've got most of the hard work done. When its all said and done, we'll have a working entware-ng installation ( https://github.com/Entware-ng/Entware-ng)
[..]
FIRST
Now let's create a script that will initialize Entware-ng after reboot
Code:
echo \#\!/system/bin/sh > /data/entware-ng/entware-init.sh
echo mount -o rw,remount rootfs / >> /data/entware-ng/entware-init.sh
echo ln -s /data/entware-ng /opt >> /data/entware-ng/entware-init.sh
echo ln -s /data/entware-ng/rootlinb /lib >> /data/entware-ng/entware-init.sh
echo ln -s /data/entware-ng/rootbin /bin >> /data/entware-ng/entware-init.sh
echo ln -s /data/entware-ng/tmp /tmp >> /data/entware-ng/entware-init.sh
echo ln -s /system/bin/sh /bin/sh >> /data/entware-ng/entware-init.sh
echo mount -o ro,remount rootfs >> /data/entware-ng/entware-init.sh
chmod 755 /data/entware-ng/entware-init.sh
[..]
SECOND
Now lets create a start script that calls the initialize script we just made, but also returns a shell in the new environment
Code:
echo \#\!/system/bin/sh > /data/entware-ng/start.sh
echo ls '/opt >/dev/null 2>&1 ||' su -c /data/entware-ng/entware-init.sh >> /data/entware-ng/start.sh
echo export PATH=/opt/sbin:/opt/bin:/opt/rootbin:/opt/local/bin:/system/bin >> /data/entware-ng/start.sh
echo if busybox test $(busybox id -u) = 0; then HOME=/opt/home/root; else HOME=/opt/home/user; fi >> /data/entware-ng/start.sh
echo export HOME >> /data/entware-ng/start.sh
echo 'for file in /data/opt/etc/init.d/*' >> /data/entware-ng/start.sh
echo do >> /data/entware-ng/start.sh
echo ' $file start' >> /data/entware-ng/start.sh
echo done >> /data/entware-ng/start.sh
echo /bin/sh >> /data/entware-ng/start.sh
chmod 755 /data/entware-ng/start.sh
[..]
THIRD
Copy the start.sh and sysinit to the home environment
Code:
chown root.root /data/entware-ng/home/root/start.sh
chmod 755 /data/entware-ng/home/root/start.sh
chown root.root /data/entware-ng/home/root/sysinit
chmod 755 /data/entware-ng/home/root/sysinit
mount -o ro,remount /
mount -o ro,remount /system
[..]
FOURTH
Start the new environment
Code:
sh /data/opt/home/root/sysinit
Reboot and you should be able to connect via SSH, and have
Click to expand...
Click to collapse
In my quote there has to be something missing between the "first" and "second" steps and the "third" one.. are the two files we've just made the missing files in the home/root directory? Or where they supposed to come from somewhere else?
Also the "fourth" step, there are no /data/opt directory in my installation.
MartiniGM said:
In my quote there has to be something missing between the "first" and "second" steps and the "third" one.. are the two files we've just made the missing files in the home/root directory? Or where they supposed to come from somewhere else?
Also the "fourth" step, there are no /data/opt directory in my installation.
Click to expand...
Click to collapse
Ah! Sorry for not replying until now, life has been busy.
You are correct, there are some typos / things out of order! I'm going to go through this and fix it and will update the OP
I've taken this guide and installed rTorrent (due to superior web client and RSS capability). If anyone needs help on that, I can chime in.
Great tuto !
Working fine one Nvidia Shield TV 2017 with latest update (whithout reboot)
But after reboot I lost /opt and /bin on root :-O
mkdir /opt working fine after mount -o rw,remount /
but if i reboot it disappear
any idea ?
android.stackexchange.com said:
(root) directory is not a persistent filesystem on Android. It's a initramfs, which is packed into the boot image on your device. Although you can remount it with write permissions, changes will always be lost the next time you boot because the original ramdisk will be re-extracted from the boot image on the next boot.
Click to expand...
Click to collapse
So we need to :
$ mkboot boot.img /output-folder
$ cd /output-folder
$ gunzip -c ramdisk | cpio -i
... make some changes in the ramdisk and possibly /output-folder/img_info ...
$ find . | cpio -o -H newc | gzip > newramdisk.cpio.gz
$ cd ..
$ mkboot /output-folder newboot.img
If you're rooted, a better solution is to simply install in a chroot, either using debootstrap or other; you can obtain a nearly complete Linux system this way (init in a chroot is weird, stuff like openssh will still have to be started separately after boot, either manually or by an app/script).
If you're not rooted, you can use proot for simple path redirection; this is how termux installs arch on unrooted devices.
Using either option (chroot, proot) requires having binary files that aren't in a noexec partition; generally this means private app storage, not sdcard that's accessible to other apps. If you're building a chroot, you should be able to include the external/public storage folder in it, however a chroot also requires the partition not be mounted with nodev option.
***Note that I don't actually have a shield TV*** (I'm just interested in getting one) so I can't say if the shield's storage is mounted noexec, but the android data partition generally is. I can, however, verify that the process in general works on Android, however, as I've got two tablets running Lineage/Nougat with chroots, and a stock Moto G6 with archlinux arm in proot. To check for partitions mounted as nodev or noexec, run `mount|TERM=xterm grep --color -E 'nodev|noexec'`. You might check to see if you can use /data/local instead of app's private storage.
For installing BusyBox, *should* be a `busybox --install -s [DIR]` option that copies the binary to the destination, then symlinks applets. This should be simpler than symlinking a bunch of applets manually.
If you want a system-wide BusyBox I recommend stericson busybox: https://play.google.com/store/apps/details?id=stericson.busybox
For a terminal emulator on Android, I highly recommend termux, which is available on Google play and F-Droid. It has support for 256 color, styles, a package manager, Android integration (ie notifications from Linux scripts), boot scripts, widgets, etc: https://play.google.com/store/apps/details?id=com.termux
Another alternative: you can set up user-mode Linux for something closer to virtualization, but I have yet to see any UML binaries for use with Android; this would also make it difficult to run networking and to access files from outside the guest, but will provide a full working system with init support, and would not require root to set up and run--however, I think UML networking requires root and/or kernel support, though, and UML generally requires a disk image much like other virtualization tools. Qemu might be workable instead of UML with fewer issues.
Note that all of these solutions are still running under an Android app, and as such are subject to the android task killer. Not sure if there's any way around this without having something run directly by Android's own init system.
Efreak2004 said:
If you're rooted, a better solution is to simply install in a chroot, either using debootstrap or other; you can obtain a nearly complete Linux system this way (init in a chroot is weird, stuff like openssh will still have to be started separately after boot, either manually or by an app/script).
If you're not rooted, you can use proot for simple path redirection; this is how termux installs arch on unrooted devices.
Using either option (chroot, proot) requires having binary files that aren't in a noexec partition; generally this means private app storage, not sdcard that's accessible to other apps. If you're building a chroot, you should be able to include the external/public storage folder in it, however a chroot also requires the partition not be mounted with nodev option.
***Note that I don't actually have a shield TV*** (I'm just interested in getting one) so I can't say if the shield's storage is mounted noexec, but the android data partition generally is. I can, however, verify that the process in general works on Android, however, as I've got two tablets running Lineage/Nougat with chroots, and a stock Moto G6 with archlinux arm in proot. To check for partitions mounted as nodev or noexec, run `mount|TERM=xterm grep --color -E 'nodev|noexec'`. You might check to see if you can use /data/local instead of app's private storage.
For installing BusyBox, *should* be a `busybox --install -s [DIR]` option that copies the binary to the destination, then symlinks applets. This should be simpler than symlinking a bunch of applets manually.
If you want a system-wide BusyBox I recommend stericson busybox: https://play.google.com/store/apps/details?id=stericson.busybox
For a terminal emulator on Android, I highly recommend termux, which is available on Google play and F-Droid. It has support for 256 color, styles, a package manager, Android integration (ie notifications from Linux scripts), boot scripts, widgets, etc: https://play.google.com/store/apps/details?id=com.termux
Another alternative: you can set up user-mode Linux for something closer to virtualization, but I have yet to see any UML binaries for use with Android; this would also make it difficult to run networking and to access files from outside the guest, but will provide a full working system with init support, and would not require root to set up and run--however, I think UML networking requires root and/or kernel support, though, and UML generally requires a disk image much like other virtualization tools. Qemu might be workable instead of UML with fewer issues.
Note that all of these solutions are still running under an Android app, and as such are subject to the android task killer. Not sure if there's any way around this without having something run directly by Android's own init system.
Click to expand...
Click to collapse
Using chroot isn`t good solution. Emulators not effective too.
Stericon`s busybox is paid, meefik`s busybox is free and has more utils.
Termux is heavy, I use Teeminal Emulator: https://f-droid.org/app/jackpal.androidterm
You be able to install a lot of lightweight linux utils by installing entware-ng. For example, git pkg has 300 Mb size in termux and 15 Mb in entware.
Entware has a lot of conmon with optware and openwrt
this is a wonderful guide I'm surprised more people don't use it great job!
Related
[HOWTO] script autostart Froyo xxJPK Galaxy S I9000
Not guaranteed it will work, use this at your risk, messing with /system may brik your phone!! Better you run this only if you understand what you're doing or wait somebody to automate it somehow. Open a root shell and run in this sequence. # mount /system -o remount,rw # cd /system/bin # cp -a playlogos1 playlogos1.orig # echo '#!/system/bin/sh' >playlogos1 # echo 'if [ -x /system/etc/autostart.sh ]; then /system/etc/autostart.sh >/dev/null 2>&1 & fi' >>playlogos1 # echo 'exec /system/bin/playlogos1.orig' >>playlogos1 # mount /system -o remount,ro Then put anything you want in /system/etc/autostart.sh (after creating it don't forget to make it executable with "chmod +x /system/bin/autostart.sh"). I didn't find a cleaner way (and searching it seems nobody knows how to do it on froyo I thought of posting this...). My /system/etc/autostart.sh looks like this: #!/system/bin/sh exec sysctl -w -p /system/etc/sysctl.conf /system/etc/sysctl.conf looks like this: vm.dirty_writeback_centisecs = 500 vm.dirty_expire_centisecs = 3000 vm.dirty_ratio = 20 vm.dirty_background_ratio = 10 This restore the upstream kernel values for write throttling and writeback but (3000 means you may lose the last 30 seconds of updates if phone crashes, but it should provide for smoother performance). Sorry I didn't attach a script for the autostart, too lazy . You better do it only if you understand what you're doing unless somebody attaches a script.
Good tip. I prefer to put my startup script in /data/ so that if I mess it up and the phone gets stuck at boot, I can do a recovery boot to clear data and the startup script will be wiped. It won't be wiped if you put it in /system/.
Shell commands
Here you will find a list of some shell commands you can use on your android phone, either with a terminal emulator or over adb shell from your PC. I would recommend using connectbot as your terminal emulator. The commands listed are in no way limited to what is described below, I am just scraping the surface here. For more information on these commands type ' --help' after your command, e.g. 'mount --help' or use google, most of these commands are exactly the same as what you would find on any Linux system, so you will find EXTENSIVE information on the web if you want to know more. These commands work on my HTC Desire running Cyanogenmod 6 (Android 2.2), most, if not all of them should work on other devices and/or roms. If you have any suggestions post them below or pm me and I will edit this post to include them. Notes Most of these commands require root privileges, type su first. Everything after a # is a not and not a part of the command. busybox What it does Provides a selection of commands not built into android by default. Example(s) busybox cp a b Notes busybox is included in most custom roms and has aliases set up so you do not need to type busybox before the commands eg, 'cp' is the same as 'busybox cp' in most custom roms. cat What it does Prints the contents of a (text)file onscreen. Example(s) cat file cd What it does Changes the current directory. You may find it easier to change to the directory you will be working in before issuing other commands so you dont need to include the full path in your commands. Example(s) cd .. # Go up 1 directory level, eg go from '/sdcard/download/ to '/sdcard'. cd /sd-ext # Change to '/sd-ext'. chmod What it does Makes a file executable Example(s) chmod 755 /data/bin/yourbin cp What it does Copies files/directories Example(s) cp filea fileb cp -rf directorya directoryb # Copy entire directory recursively and forces copy. df What it does Displays information on all mounted filesystems (free space). Example(s) df -hm # Show disk usage in human readable format in Megabytes. du What it does Diplays the size of files/directories. Example(s) du -md 1 # Prints the size of all directories in Megebytes. du -sh file # Prints the size of file in human readable format. du -sh directory # Prints the size of directory in human readable format. export What it does Sets environment variables. Example(s) export PATH=$PATH;/sd-ext/bin; free What it does Display the amount of free and used system memory losetup What it does Associates loop disk images with loop devices. Example(s) losetup /sdcard/disk.img /dev/block/loop7 Notes Android 2.2's implementation of apps2sd uses one loop device for each app saved to SD. There are 8 loop devives by default (loop0-loop7) so if you have 8 or more apps saved to SD you will not be able to use this command. There is no issue when using 'oldschool a2sd' ls What it does List Directory contents. Example(s) ls -a # List directory contents including hidden contents. mount What it does Mounts a filesystem. Example(s) mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 # Remounts /system as writable. mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 # Remounts /system as read only. mount -t ext2 /dev/block/loop6 /sdcard/disk # Mount loop6 on /sdcard/disk. mount /sd-ext /sdcard/sd-ext # Mount /sd-ext on /sdcard/sd-ext. Notes On other devices it may be possible to mount disk images without going through losetup and using the option -loop in mount instead. If you are having trouble with mount try using busybox mount instead, the busybox version seems more capable than the one shipped with Android. mv What it does Move/rename files/directories Example(s) mv download/file stuff/file mv picture4.jpg mydog.jpg ping What it does Pings a server to check for conectivity. Example(s) ping -c 5 http://www.google.com # Ping google 5 times Notes if you do not include the -c option ping will work indefinatly. pwd What it does Prints the current directory. rm What it does Remove file/directory. Example(s) rm file rm -rf directory # Delete a directory and its contents. rmdir What it does Removes a directory Example(s) rmdir emptydir Notes If a directory has contents us 'rm -rf' instad. su What it does Gives you root privelages. touch What it does Makes an empty file Example(s) touch file.txt wget What it does Download things from http or ftp. Example(s) wget http://www.google.com
Excellent, thank you. Just what the doctor ordered for n00bs like me
[24 MAY] Dorimanx-ROM-HIGH-END 3.1.9 N277 ODEX NO-HOME-REFRESH+ZRAM+SKIN+TWEAKS+CRON
Welcome to { "lightbox_close": "Close", "lightbox_next": "Next", "lightbox_previous": "Previous", "lightbox_error": "The requested content cannot be loaded. Please try again later.", "lightbox_start_slideshow": "Start slideshow", "lightbox_stop_slideshow": "Stop slideshow", "lightbox_full_screen": "Full screen", "lightbox_thumbnails": "Thumbnails", "lightbox_download": "Download", "lightbox_share": "Share", "lightbox_zoom": "Zoom", "lightbox_new_window": "New window", "lightbox_toggle_sidebar": "Toggle sidebar" } This ROM is based on latest nightly of CM7 with my kernel and my tablet tweaks added to create the probably smoothest and fastest ROM your HD2 ever had. It´s available for MAGLDR and CLK Boot loader. Mirrors are ready for you to get my ROM and test it. For all new users please read all info + change log before asking thanks. Critical thing that you need to know. This ROM works with SWAP / NO SWAP FOR SWAP CREATION SEE PAGE 2 DON'T WANT SWAP!?, INSTALL REVERT TO LIGHT! [ This ROM based on DORIMANX 1.62Ghz OC KERNEL AND LATEST NIGHTLY CM7 + My TWEAKS ] LINKS TO KERNELS AND BIG THANKS TO:TYTUNG, HIEROS, MARC1706, AmeriCanAndroid My kernel GIT Kernel Made by ME in Mirrors! see below for thread link. LINK to GPS LIBS by Tytung And BIG Thanks once more! Link To GPS-LIBS If you like this ROM and want to help me, rate this page with 5 STARS and give me a THANKS! GPS LIBS 2.1 NMEA with AGPS Support 5 to 20 second to GPS lock -> Link Added GPS Status app to test GPS,BIG Thanks to Tytung Camera that make picks with 100% Jpeg quality + Video on "HD" 800x480 6Mbit/s in MPEG4 format! smooth with no delays. 30MB/minute Found It HERE Thanks LeJay! Added MIUI Camera v17 Fixed2, for all. (Thanks to MongooseHelix) Latest nightly created for BRAVO phone. (Masked as HD2) DATA Connection is above 2.5Mbits download! and Radio Auto switch 3G or H according to signal or Idle DATA to save Power! TABLET TWEAKS, With big help from Lit Cool Skin with ICS 4.0 transition and lot's of nice icons, created by UOT kitchen Battery % advance by 1% not by 5% also shows % on charger connected Added CRONTAB ability as ADD-ON this will make ROM free of dead file cache and RAM / SWAP cache on different time, Read Page 3 for info. Lots of scripts that do kernel tweaking, partition remounting, CPU down-volting, cache rearrange, send marked downloads to RAM-DRIVE and more ROM Support Apps2SD! NO NEED To install external scripts!!! all apps will be installed to EXT partition by default, if no EXT exist then to NAND drive! ROM now supports DATA To EXT, this mod will move all app data to EXT and speed access to them by 3 times! With DATA to EXT quadrant score is 2800+ on light rom, 2600+ on heavy loaded rom. ROM has media / video decoder/ encoder drivers that allow loud sound from speaker and smooth video record and play back ROM has 2 modes, with swap and without it. (HIGH END / LIGHT) (read more below) Added HACKED DPI check Market , now you can download and install any app, by using any density resolution! Default CM7 FM Radio Ads block in HOSTS file, more than 23500 ads blocked Full root with new superuser 3.X already updated to latest SU Preinstalled Busybox 1.19.4 ,configured and ready CLK Ril_Wrapper 4 installed to fix the connection problem Added GTALK 1.3 with voice / video support Added latest Google Apps limited pack, only needed apps DATA / WIFI / GPS / AUTO DIM LIGHTS and blink lights Fixed LIB! Working WIFI Tethering app > Barnacle Wifi Tether (Found by Rudyfastcat ) MMS blurry pics fix for T-Mobile US users by Tytung! > HERE Dorimanx-Kernel made by me (kernel thread) ZRAM support (compcache) Aroma Installer Menu, that will guide you on installation! Click to expand... Click to collapse If you are here and want this ROM then you have already CLK / MAG partition installed and ready. If not please check how too in any different ROM long guide for starters, This is the most advanced ROM for now. Decide which version you want : With SwapHigh-End-Version -you will need an auto task-killer since the Internal Auto killer is DISABLED!!! -Recommended are System Tuner Pro + Advanced Task Killer -to make it High-End create a SD-ext as usual + create a swap partition of 256MB and flash my ROM Without Swap Lite-Version -Home-Refreshes will be present (but not always!) -to make your ROM a lite version choose it in install menu! Flash the CWM partition layout from Mirrors, Do a backup of SD card,format it and create a SDext and swap(256Mb) Flash “Dorimanx-Rom-X.X.X-Nightly-XXX-All-in-One !! Everything will be done by my scripts and ROM Boot and restore all your stuff and customize it to your personal wishes. Make a backup via recovery after all to have a backup if you do something bad later. Click to expand... Click to collapse Enjoy!! ---> This ROM is in constant grow, and Bug find and repair, so if you don't like to flash updates often! then use an other ROM <--- Things to know about ROM On each boot, you will see Ember Lights blink 3 times and switch to Green! This is how you know that ROM is loading OK, and there is no boot loop, When Rom will be almost fully loaded the Green Light will blink 3 times and switch off. My advice not to unlock phone till you see the GREEN light blink then wait 5 seconds and unlock, this way Home app will load fast and no delays. When Light blink 3 times green it's tell you that CPU is released and ready for more jobs! If you see the Ember light again and again and no animation then ROM in Boot loop. (95% will not happen ) I test my ROM many times before upload. How to update (ROM already installed but not latest version): Clear cache. Clear Dalvik cache (not necessary if you don´t have problems dont do it!) Download and flash new release like usual REBOOT. When booted, wait till CPU will be free, 3 green blinks! REBOOT!!! No permission fix needed, but if some FC on some apps, do it! and clear there data! should fix all problems. Be Happy This is all the GUIDE you need. Have fun! Here is new mirror provided by Willflint Here is my mirror provided by looki75 Here is my mirror provided by Netson99 Here is my mirror provided by Guinhill MIRROR 4 PERSONAL REQUEST! If MAIN Mirror is SLOW please use the BACKUPS! Also if you find this ROM and my help worth 5 STARS then rate this page with 5 STARS! Here i will post names of people that helped me with development testing and donated to get me going All people that DONATED or helping me with this project are considered true members of my team! Willflint, Looki75, Netson99 and Guinhill = Huge donation!!! The Mirror sites! all credits and respect to them! Krook6023=Main Page modification!!! He is the creator of LOGOS and rearrangements! HUGE DONATION! Tytung,Marc1706, AmeriCanAndroid,Fhasovic=For Help with KERNEL! and GPS Libs! Louie317=HUGE Donation! 100$,Honored member! Jonas2295=HUGE Donation! one more HD2 that he partially donated to me for help in development! 2 is better then one + Main Page Text modding! Nixda99 & Amarullz =HUGE Donation to this ROM! The AROMA Installer boot menu. (Developed by Amarullz and tuned for ROM by Nixda99 and Me) Tiger22=Donation X5,Support,active help,Veteran and Honored member! Denny02ng=Donation X5,Support,respected Veteran and honored member! Belzebuth=Donation X4,Support,active help,respected Veteran and Honored member! Bologna=Donation X4,Support,active help,respected Veteran and Honored member! Hinnne=Donation X3,CLK Kernel Testing,support,active help,respected veteran member! Howell=Promotion of our ROM on French Android HD2 Portal with high success!,Honored Member! Ccbm3=HUGE Support!,For creating the ROM Review and upload to YouTube! Great JOB! Pirlano=Honored Member!, for helping me find the way to move DATA to EXT! and make our ROM super Fast! Rudyfastcat=active help,feedback,support,respected veteran member! Feanor91= active feedback and support,respected veteran member! Visentinel=active help,feedback,support,respected veteran member! Lit=Big Help with Tablet Tweaks,support,active help,And Promotion of our ROM in Russian Forum! Themadproducer= Donations + active feedback and support,respected veteran member! Gerardroid =Donation X2 + active help,feedback,support,respected veteran member! Allcomb =BIG $$ Donation + active help,feedback,support, Miguelidanez=Donation X2,Support,respected veteran member! MystaMagoo =Donation X2,Support,active help,respected veteran member! Barjel=Donation X2,active feedback,support, Dmunseyautotech=Donation X2,Support, Tmotard X2=Donation,Support,great support. Tageeboy =Donation + active help,feedback,support, kantjer=Donation,support, Gho57=Donation,support, SkooterD=Donation,Support,active help, Guinhill=Donation,Support, Justaguyh=Donation,Support, Blek42=Donation,Support, GigahurtzUK=Donation,Support, Rebel01st=Donation,Support, Joescian=Donation,Support,active help, Gubi99=Donation,Support, Dirtytwo=Donation,Support, A3r0n1=Donation,Support, AzureD=Donation,Support, Sajin1=Donation,Support, Michie=Donation,Support, Htc-android=Donation,Support, Traukoman=Donation,Support, Marzinho=Donation,Support, Faka tm*Sap*=Donation,Support, M4a1a2=Donation,Support, WillieStylez=Donation,Support,[FONT="] [/FONT]Vicente=Donation,Support,[FONT="] [/FONT]Marc New***=Donation,Support,[FONT="] [/FONT]Ic3fox=Donation,Support,[FONT="] [/FONT]Patrick O'k***=Donation,Support, D1wepn=Donation,Support, Screemi=Donation,Support, KRAZzysoldier=Donation,Support, Mappazza=Donation,Support, Pedmond=active feedback and support, Ccristal=active help,feedback,support THANKS TO YOU ALL! You want to be in my list? -Then help people to use my ROM. -Give feedback on bugs or suggestions -Provide Mirror -DONATE! And Be respected! Hey I got something nice for you in time that you download. Watch my best friend rock band play! And my ROM out of BOX review! made by Ccbm3 If you Donated and I didn't added you to the list, First I am sorry for that, Please PM me, I will add ASAP 24/5/12 Time 14:30 New ROM 3.1.9 Nightly 277 from last offline source! + Kernel 7.1A Change Log HERE 02/5/12 Time 02:47AM New ROM 3.1.7 Nightly 276 from last offline source! + Kernel 6.7 Change Log HERE 14/4/12 Time 23:58 New ROM 3.1.6 Nightly 275 from last offline source! + Kernel 6.5B (ROM DELETED) Change Log HERE Fixed ROM 3.1.6.1 + kernel 6.5C (ROM DELETED) Change Log HERE Fixed ROM 3.1.6.2 + kernel 6.5D Change Log HERE 30/3/12 Time 22:24 New ROM 3.1.5.1 Nightly 274 from last offline source! + Kernel 6.3 *fixed root and updated to last 6.3 kernel update. 24/3/12 Time 4:10AM New ROM 3.1.4 Nightly 273 from last offline source! + Kernel 6.1 Change Log HERE ROM 3.1.3 was not added here, i was too busy. 05/3/12 Time 1:35 New ROM 3.1.2 Nightly 271 from last source + Kernel 5.4 Change Log HERE 21/2/12 Time 1:00 New ROM 3.1.1 Nightly 270 from source + Kernel 5.3 Change Log HERE 21/2/12 Time 1:00 New ROM 3.1.0 Nightly 269 from source + Kernel 4.7 Change Log HERE Change log trimmed dates! New ROM 3.0.9 Nightly 268 from source + Kernel 4.7 Change Log HERE New ROM 3.0.8 Nightly 267 from source + Kernel 4.0 Change Log HERE New ROM 3.0.6 Nightly 265 from source + Kernel 3.6 Change Log HERE New ROM 3.0.5 Nightly 264 from source + Kernel 3.3 Change Log HERE New ROM 3.0.3 + Kernel 3.2 Change Log HERE New ROM 3.0.1 + Kernel 3.0 Change log HERE New ROM 3.0.0 + Kernel 2.9 Change Log HERE New ROM 2.9.9 + Kernel 2.7 Change Log HERE New ROM 2.9.8 + Kernel 2.5 Change Log HERE New ROM 2.9.7 + kernel 2.3 Change Log HERE New ROM all in one 2.9.5 Change Log HERE New ROM 2.9.4 Nightly 245 Change Log HERE New ROM 2.9.3 Nightly 242 Change Log HERE New ROM 2.9.0 Nightly 231! Change Log HERE New ROM 2.8.9 based on Stable CM7 7.1.0! Change Log HERE New ROM 2.8.8 Nightly 220 Base 2.3.7! Change Log HERE New ROM 2.8.6 Change log HERE NEW ROM 2.8.5 nightly 210 Change log HERE NEW ROM 2.8.4 nightly 209 Change log HERE and HERE NEW ROM 2.8.3 nightly 207 Change log HERE New ROM 2.8.2 nightly 203! Change log HERE Fix home/call buttons if not working after install! 1. Install AnyCut from Android Market 2. Go to the home screen 3. Long press on the wallpaper 4. Tap "Shortcut" 5. Tap "Any Cut" 6. Tap "Activity" 7. Choose "Setup Wizard" from the list of activities 8. Tap "OK" 9. There should now be a Setup Wizard icon on your home screen. Follow the wizard through to completion and the dial / home / hangup hardware keys should now be behaving normally again. Boot Boost Addon (All kernels) ***On Boot, Max speed to 1.47Ghz or 1157Ghz this is more stable speed, and will prevent stuck on boot when phone overheated above 42C This UPDATE IS NOT MUST!!! ONLY IF YOU WANT!!! ***Included new fixed SQL LITE from Samsung thread that fix lag in I/O (Big Thanks to the developers that provided it.) UPDATE ABOUT GPS! 3 GPS.conf files with regions + AGPS auto download tweaks and new tweaks for 2.0 only + More Tweaks found by me. gps.conf_Auto_AGPS_update_every_24hr_(asia).zip gps.conf_Auto_AGPS_update_every_24hr_(europe).zip gps.conf_Auto_AGPS_update_every_24hr_(north-america).zip Or you can change GPS.conf manually by looking here for our NTP server name for country go HERE Find your region and change the Asia to your in gps.conf save and reboot or do it before flash! About SWAP! ROM will activate 3 kind of swap It's will turn ON (only if you have already created swap file on partition, or set partition for swap (the hard way) ) SD-EXT SWAP SD-SWAP EXT dedicated SWAP partition ***If you have SWAP already, or EXT or SD-SWAP/EXT-SWAP, no need to run the swap activation scripts. ***I have created 2 scripts for disabling SD swap before use of USB storage. I have put them in your /sdcard/gscript so you only need the app (gscript light or full) then load this scripts, when you need usb storage run swapoff script. when done run swapon. or you can install dual mount app. i can’t live without it so try it. Camera! Camera taking better pick now! And video recording is with m4v decoder and mp4 file output, video is super! with no lag! On "HD" camera is on 800x480 6Mbits frameRate="24" Video codec="m4v" fileFormat="mp4" Sound aac bitRate="96000" sampleRate="16000" 30MB in one minute!!! On "HIGH" camera is on 720x480 3Mbits frameRate="24" Video codec="m4v" fileFormat="mp4" Sound aac bitRate="96000" sampleRate="16000" 23MB in one minute!!! To switch from High to HD just choose HD in camera, if you switch and no difference in screen size then choose LOW and back to HIGH or HD its will change... Libaudio Drivers I have uploaded 5 different audio drivers! (Credit to developers) You can test them one by one, and if you get phone call bug then use the next one, till you be happy with one of them. Older Changelog Links for Nightly Updates: CHANGE LOG DOWNLOADS FOR BRAVO This ROM is special, its tweaked to MAX! its super fast and has lots of RAM+SWAP In order to use this ROM as HIGH END you must know that default AndroidAutoKiller is disabled! This why it's so stable and home app never refresh, But you must control your free RAM with app called " System Tuner PRO (was know as process monitor pro) " look for it and you will find it. Also i recommend to use Advanced task killer pro with system tuner pro! This app will control your RAM and not let to ROM to overload it self and reboot. I have excluded all my apps and services that i want to run in RAM all the time and the rest are killed when i turn my screen off! or when no more RAM exist. This setting is inside this application. It's best that RAM will always be more then 40MB! The Light ROM (update) set the auto killer back on line, this will limit you to open only 40 apps + services + system stuff, and after app 41 the home screen will refresh and all big apps in RAM will be closed. this is bug in CM7 not related to me. I just found a way to disable it. (HIGH END) I have many tweaks working in this Rom, CRON script that TASK activation by time set. it's running script every 10 minutes Script sit in /sdcard/phonePrioritizer/script.txt It's contain function called renice. It's set CPU power priority to apps and services that exist in RAM. I have tweaked the system services and stock apps to best setting for priority. you can add custom apps you can use renice range from -15 (big priority to service / app ) to 15 (very low priority to app / service) The -20 to -15 reserved for system. do not use it or instability can be felt. To add custom app to priority script install autokiller from market open your app push home, go to autokiller app and to services , find your open app, click long on it and choose more info, you will see that package name, this is what you need, write it down and go and edit the script.txt according my example at the bottom of the script. We Are Number One! In NAND ROM NO SENSE! Keep the feedback flowing, I need to know how it's working for you.! Lets make best ROM for US! DON'T FORGET TO PUSH THE THANKS! BUTTON YOU CAN ALSO DONATE TO KEEP ME GOING! LOOK FOR BUTTON "Donate To Me" under my nickname! Thanks for using my ROM! I am here for you so write comments!
SWAP THE HARD WAY! What is swap? Swap is extension or RAM on sdcard, for ability to load more apps in RAM and get fast multy tasking (apps stay in ram) Many people think that this is not needed any more. well i must disagree it's way better with swap when you don't have any more RAM to spare. When no RAM Android start to kill apps that sit in RAM and by doing this kills my apps that i use all the time, So phone loads them again and use CPU power in process and killing other apps! so it's a circle a loop, with swap no problem! I have 37 apps in memory all the time. So here is the guide to activate SWAP on your device The hard way! Again read about it and only if you think you need it and you are heavy user like me! Then follow closely to instructions! 1) This procedure will erase your SDCARD!!! So before you begin backup all your stuff from SDCARD and the extended Linux partition to your computer drive! You can use Titanium backup PRO to backup all, and then move all to your disk. And after you finish, restore all back. 2)when you ready to format your SDCARD, Download Recovery_150M_system_5M_cache[v3.1.0.1].zip from my ROM mirror! unzip to comp and install it, (how to you must know by now) 3)when all done, enter to new recovery console, go to advanced and use the partition sdcard Choose your preferred size of extended partition, then it's will ask you about the size of the SWAP partition! choose 256MB (the MAX) finish and turn your device OFF. 4)remove your SDCARD and using card reader format the FAT32 partition with 32Block NOT the 4096 by default. (this will increase reading and writing performance) 5)copy your stuff back as was to SD. 6)If your ROM working then proceed to 7 if not install your ROM and after restart install my tweaks. 7)now is the fun part! you have swap activated and working! no need to do any thing more! Now you should see that you have SWAP of 256MB and 0 Used Go to terminal and run free It's will start to grow and shrink automatically depend on your RAM use and be activated on boot!. SD SWAP THE EASY WAY! In Easy way Swap you don't need to reformat or even reboot your phone to create swap! If you installed my ROM and you don't have swap but you want to stay on HIGH END ROM, Then you can do this to enable SD swap Download script sdswap200.sh or dataswap250.sh from my mirror. Run in in GSCRIPT App or copy it to SDCARD root, Open Terminal: type this: Code: su - sh /sdcard/sdswap200.sh OR sh /sdcard/dataswap250.sh wait for it to finish! done you have 200mb of swap! with sdwapscript on sdcard OR 250MB swap on EXT (DATA) partiton You must have 200mb FREE on sdcard before you run this script! OR 250 on EXT DATA partition. Every time you reboot swap will be activated! NO need to run script any more.
Real Working Auto Brightness module Here is the Auto Brightness module that you can configure via Settings ( lights.qsd8k.so ) But You will lose the Blinking Notification Light! it's just will be ON (Red Light) if you have notification, or OFF if you don't. My settings that work just great for me After installation go to settings > Display settings > Brightness And set the Automatic Brightness ON Then go to settings > CyanogenMod settings > Display > Automatic backlight. *At Light sensor filter check-box ENABLED *At windows length use 10sec *Reset threshold use 400LUX *Sample interval use 2sec At Light Levels check-box Use Custom *Screen dim level use 10 *Edit other levels... Firs of all : Set number of levels to 7 and push the save & apply, you should see now 7 levels It's should look like that: Code: [B] Upper = (this is changing automatically when you set all the rest)[/B] [B] Lower Upper Screen Buttons[/B] [B] 0 14 25 255[/B] [B] 15 149 40 255[/B] [B] 150 224 50 255[/B] [B] 225 499 70 0[/B] [B] 500 999 80 0[/B] [B] 1000 2999 100 0[/B] [B] 3000 INFINITY 250 0 (this is the max level)[/B] Save & Apply go back <-- *Check-Box the Allow light decrease *At decrease hysteresis use 50% Have fun with the setting if you like. CROND TASKER! MODULE! I have finally cooked the CROND task service configuration, Thanks to LIT! I have uploaded file CRON-TASKS.zip to mirror. Cron will start 2 minutes after Full BOOT!!! SO HOW TO CONFIGURE IT BEFORE INSTALL!!!! Open the zip! in folder /system/etc/int.d open file 08wcron with notepad ++ of EditPlus (not with notepad) find this: TZ=IDT-3 This is the TIME ZONE! it's important! PUSH THIS LINK! Find you country in that LINK! Example! I see for Israel Friday, August 12, 2011 at 01:44:22 IDT Current time zone offset:UTC/GMT +3 hours So i need to SET! opposite! -3 (WHY? have no idea, but this is the only way) TZ=IDT-3 Then save and install WHAT IS IT DO? First it's will remove the Phone prioritizer app, and save you 60MB ram, CRON will do this!: Run the prioritizer script every 10 minutes to speed up the phone! 1-59/10 * * * * sh /mnt/sdcard/phonePrioritizer/script.txt;date > /data/cron-renice;echo "runing script.txt every 10MIN" >> /data/cron-renice Run Clear file Cache every 4AM! 0 4 * * * sh /mnt/sdcard/phonePrioritizer/reboot.txt;date > /data/cron-clear-file-cache;echo "runing reboot.txt to clear cache without reboot every 4:00AM" >> /data/cron-clear-file-cache Run Clear RAM Cache every 6 hours day/night to speed up the phone! 0 0-23/6 * * * sync;sysctl -w vm.drop_caches=3;sleep 3;sysctl -w vm.drop_caches=0;date > /data/cron-clear-ram-cache;echo "runing clear ram cache every 6 Hours" >> /data/cron-clear-ram-cache Clear SWAP and re-enable it back! Release all the LAG cache (works for HIGH END, no change for LIGHT ROM) 20 4 * * * swapoff -a;sleep 5;swapon -a;date > /data/cron-clear-swap;echo "runing clear swap every 4:20AM" >> /data/cron-clear-swap Script that hold the tsks above is in /data/data/cron/root (in install ZIP) when in phone then in /data/cron/root Examples: * * * * * sh /sdcard/SOMESCRIPT.sh (this will run the script every minute!) 0 5 * * * sh /sdcard/SOMESCRIPT.sh (this will run the script every 5:00AM) 30 5 * * * sh /sdcard/SOMESCRIPT.sh (this will run the script every 5:30AM) 1-59/30 * * * * sh /sdcard/SOMESCRIPT.sh (this will run the script every 30 minutes!) There are too many combinations, search google for crontab settings Also i have packed small script name cron-check.sh it's will go to /sdcard/gscript so load it with gscript and then you can check the status of CRON! this is what you will see! /data/cron-clear-file-cache:Thu Aug 11 04:00:01 PDT 2011 /data/cron-clear-file-cache:runing reboot.txt to clear cache without reboot every 4:00AM /data/cron-clear-ram-cache:Thu Aug 11 18:06:56 PDT 2011 /data/cron-clear-ram-cache:runing clear ram cache every 6 Hours /data/cron-clear-swap:Thu Aug 11 04:20:06 PDT 2011 /data/cron-clear-swap:runing clear swap every 4:20AM /data/cron-renice:Thu Aug 11 21:21:01 PDT 2011 /data/cron-renice:runing script.txt every 10MIN if you see this with your time, then all ok! But you need to wait till it's will be executed! so first you will see the: /data/cron-renice:Thu Aug 11 21:21:01 PDT 2011 /data/cron-renice:runing script.txt every 10MIN after 10 minutes, all the rest after first execution! To see if cron RUNNING! crond is installed with the busybox! in terminal do: ps | grep crond you get something like this (after you install configured ZIP) # ps | grep crond root 4338 1 2188 420 c00bf130 00008a7c S crond So have fun with it
All my work will be posted here free for all, i will updat on new tweaks. ********HERE I WILL POST MY WORK******** MY /SYSTEM/ETC/INIT.D SCRIPTS: 01MountAll Code: #!/system/bin/bash # Created by Dorimanx echo 1 > /sys/devices/platform/leds-microp/leds/amber/brightness L="log -p i -t cm" $L "Welcome to Android `getprop ro.build.version.release` / `getprop ro.modversion`"; $L " "; $L " DORIMANX SUPER FAST AND TWEAKED TO THE MAX ROM "; $L " "; $L " "; stop #creating debug log for admin. echo "creating debug log for admin at /data/mountall-script-debug.sh" echo "new boot" > /data/mountall-script-debug.sh echo "Pre BOOT Start" >> /data/mountall-script-debug.sh date >> /data/mountall-script-debug.sh ############################################################################################################################################## Enable-EXT-check-and-repair-and-speedUP () { echo "Repairing ext file system and speeding access" echo "Repairing ext file system and speeding access" >> /data/mountall-script-debug.sh if [ -e /dev/block/mmcblk0p2 ]; then echo "Ext file system found..." echo "Setting journal_data_writeback on sd-ext partition to speed the access" cat /proc/mounts > /etc/mtab echo "Converting EXT3 to EXT4 if not done yet by user if done then ignore" echo "Converting EXT3 to EXT4 if not done yet by user if done then ignore" >> /data/mountall-script-debug.sh tune2fs -O extents,uninit_bg,dir_index /dev/block/mmcblk0p2 echo "Convert is DONE, you have EXT4 NOW" echo "Convert is DONE, you have EXT4 NOW" >> /data/mountall-script-debug.sh tune2fs -o journal_data_writeback /dev/block/mmcblk0p2 tune2fs -m2 /dev/block/mmcblk0p2 echo "e2fsck running" e2fsck -vyf /dev/block/mmcblk0p2 tune2fs -l /dev/block/mmcblk0p2 tune2fs -r 2048 /dev/block/mmcblk0p2 estatus=$? if [ $estatus -gt 0 ] then echo "One or more errors were found in your ext4 partition" echo "One or more errors were found in your ext4 partition" >> /data/mountall-script-debug.sh if [ $estatus -eq 1 ] then echo "File system errors were corrected successfully" echo "File system errors were corrected successfully" >> /data/mountall-script-debug.sh elif [ $estatus -eq 2 ] then echo "Serious file system errors were found and corrected successfully" echo "Serious file system errors were found and corrected successfully" >> /data/mountall-script-debug.sh elif [ $estatus -eq 4 ] then echo "Serious file system errors were found and COULD NOT BE FULLY CORRECTED" echo "Serious file system errors were found and COULD NOT BE FULLY CORRECTED" >> /data/mountall-script-debug.sh else echo "e2fsck has encountered technical errors and cannot continue. Script will ABORT" echo "e2fsck has encountered technical errors and cannot continue. Script will ABORT" >> /data/mountall-script-debug.sh fi #statexit=1 else #statexit=0 echo "Your ext file system was checked and was clean..No repair was necessary." echo "Your ext file system was checked and was clean..No repair was necessary." >> /data/mountall-script-debug.sh fi else echo "No Ext file system found...Skipping" echo "No Ext file system found...Skipping" >> /data/mountall-script-debug.sh fi } ############################################ #Trigger, without # =ON with #OFF default=ON Enable-EXT-check-and-repair-and-speedUP ############################################################################################################################################## Check-FAT-Partition-and-repair () { echo "Repairing SDCARD FAT Partition" echo "Repairing SDCARD FAT Partition" >> /data/mountall-script-debug.sh if [ -e /dev/block/mmcblk0p1 ] then echo "Sdcard found.." echo "Sdcard found.." >> /data/mountall-script-debug.sh mount -t vfat /dev/block/vold/179:1 /mnt/sdcard echo "DosFsck running..." fsck_msdos -p -f /dev/block/mmcblk0p1 dosstatus=$? if [ $dosstatus -gt 0 ] then echo "One or more errors were found in your Fat32 partition" echo "One or more errors were found in your Fat32 partition" >> /data/mountall-script-debug.sh if [ $dosstatus -eq 1 ] then echo "File system errors were corrected successfully" echo "File system errors were corrected successfully" >> /data/mountall-script-debug.sh elif [ $dosstatus -eq 2 ] then echo "Serious file system errors were found and corrected successfully" echo "Serious file system errors were found and corrected successfully" >> /data/mountall-script-debug.sh else echo "dosfsck has encountered technical errors and cannot continue. Script will ABORT" echo "dosfsck has encountered technical errors and cannot continue. Script will ABORT" >> /data/mountall-script-debug.sh fi else echo "Your Fat32 file system was checked and was clean..No repair was necessary." echo "Your Fat32 file system was checked and was clean..No repair was necessary." >> /data/mountall-script-debug.sh fi else echo "Your Fat32 file system could not be read Script will abort" echo "Your Fat32 file system could not be read Script will abort" >> /data/mountall-script-debug.sh fi umount -l /mnt/sdcard } ############################################ #Trigger, without # =ON with #OFF default=ON #Check-FAT-Partition-and-repair ############################################################################################################################################## Find-and-Mount-SD-EXT-and-SpeedUP () { BB="logwrapper busybox"; echo "find SD Card" for MMC_NUM in `seq 0 9`; do MMC_TYPE=`cat /sys/block/mmcblk$MMC_NUM/device/type` if [ "$MMC_TYPE" = "SD" ]; then # 2nd partition of sdcard should be the sd-ext if exist SD_EXT_PART=/dev/block/mmcblk${MMC_NUM}p2 break fi done if [ -b "$SD_EXT_PART" ]; then log -p i -t mountsd "Mounting EXT filesystem.."; echo "Mounting EXT filesystem.." >> /data/mountall-script-debug.sh echo "mount and set perms" $BB mount -o rw,nobh,barrier=0,noatime,nodiratime,data=writeback,nosuid,nodev,nobh,nouser_xattr,noauto_da_alloc,commit=60,inode_readahead_blks=1,delalloc $SD_EXT_PART /sd-ext; ###################### #backup config for tests. #$BB mount -o rw,nobh,barrier=0,noatime,nodiratime,data=writeback,nosuid,nodev,nobh,nouser_xattr,noauto_da_alloc,commit=240,journal_async_commit,inode_readahead_blks=1,delalloc $SD_EXT_PART /sd-ext; ###################### fi if [ "$?" = 0 ]; then $BB chown 1000:1000 /sd-ext; $BB chmod 777 /sd-ext; log -p i -t mountsd "sd-ext successfully mounted"; echo "sd-ext successfully mounted" >> /data/mountall-script-debug.sh else log -p e -t mountsd "Unable to mount filesystem for /sd-ext"; echo "Unable to mount filesystem for /sd-ext" >> /data/mountall-script-debug.sh fi } ############################################ #Trigger, without # =ON with #OFF default=ON Find-and-Mount-SD-EXT-and-SpeedUP ############################################################################################################################################## Enable-Dalvik2SD () { if [ ! -e /data/dalvik-on-data-now ]; then echo "Enable Dalvik2SD" echo "Enable Dalvik2SD" >> /data/mountall-script-debug.sh if [ -e /dev/block/mmcblk0p2 ]; then echo "move dalvik cache from internal memory to sdcard" echo "move dalvik cache from internal memory to sdcard" >> /data/mountall-script-debug.sh if [ ! -d /sd-ext/dalvik-cache ]; then mkdir /sd-ext/dalvik-cache; busybox chown 1000:1000 /sd-ext/dalvik-cache; busybox chmod 777 /sd-ext/dalvik-cache; fi echo "move dalvik to sd-ext" echo "move dalvik to sd-ext" >> /data/mountall-script-debug.sh busybox rm -rf /data/dalvik-cache; echo "Create BIND to SD-EXT" echo "Create BIND to SD-EXT" >> /data/mountall-script-debug.sh mkdir /data/dalvik-cache mount -o bind /sd-ext/dalvik-cache /data/dalvik-cache echo "clean up old whiteouts in SD-EXT" echo "clean up old whiteouts in SD-EXT" >> /data/mountall-script-debug.sh for i in local misc property system tombstones; do if [ -h /sd-ext/$i ]; then rm -rf /sd-ext/$i; fi busybox rm -f /sd-ext/app/*.odex setprop cm.dc2sd.active 1; echo "+++ dalvik2sd enabled" echo "+++ dalvik2sd enabled" >> /data/mountall-script-debug.sh done; else echo "NO EXT Partition Detected" echo "NO EXT Partition Detected" >> /data/mountall-script-debug.sh fi DC2SD_ACTIVE=`getprop cm.dc2sd.active` if [ "$DC2SD_ACTIVE" != 1 ]; then # replace symlinks with directories so we can boot without sd rm -rf /data/dalvik-cache; mkdir /data/dalvik-cache; busybox chown 1000:1000 /data/dalvik-cache; busybox chmod 777 /data/dalvik-cache; fi; else echo "YOU HAVE DALVIK MOVED TO NAND DATA" echo "YOU HAVE DALVIK MOVED TO NAND DATA" >> /data/mountall-script-debug.sh fi } ############################################ #Trigger, without # =ON with #OFF default=ON Enable-Dalvik2SD ############################################################################################################################################## Apps2SD-Script () { # Apps2SD using symlinks and bind mounts # Original Apps2SD script by [email protected] (cyanogen) # Adapted for Oxygen ROM by AdamG # Fixed for slow detection of SD cards by _thalamus and output a bit more debugging info so we can see where problems are arising. # execute any postinstall script then kill it enablea2sd () { echo "mount and set perms" echo "enablea2sd mount and set perms" >> /data/mountall-script-debug.sh busybox chown 1000:1000 /sd-ext; busybox chmod 777 /sd-ext; echo "move apps from internal memory to sdcard" echo "move apps from internal memory to sdcard" >> /data/mountall-script-debug.sh for i in app do if [ -h /data/$i ]; then rm -rf /data/$i fi; if [ ! -d /sd-ext/$i ]; then mkdir /sd-ext/$i; chown 1000:1000 /sd-ext/$i fi; if [ ! -d /data/$i ]; then mkdir /data/$i chown 1000:1000 /data/$i fi; if [ -d /data/$i ]; then cp -a /data/$i/* /sd-ext/$i/ rm -f /data/$i/* mount --bind /sd-ext/$i /data/$i chown 1000:1000 /sd-ext/$i chmod 777 /sd-ext/$i -R fi; done; for p in app-private; do if [ -h /data/$p ]; then rm -rf /data/$p fi; if [ ! -d /sd-ext/$p ]; then mkdir /sd-ext/$p; chown 1000:1000 /sd-ext/$p fi; if [ ! -d /data/$p ]; then mkdir /data/$p chown 1000:1000 /data/$p fi; if [ -d /data/app-private ]; then cp -a /data/app-private/* /sd-ext/app-private/ rm -f /data/app-private/* mount --bind /sd-ext/app-private /data/app-private chown 1000:1000 /sd-ext/app-private chmod 777 /sd-ext/app-private -R fi; done; busybox chown 1000:1000 /sd-ext/$i; busybox chmod 777 /sd-ext/$i # clean up old whiteouts for i in local misc property system tombstones; do if [ -h /sd-ext/$i ]; then rm -f /sd-ext/$i; fi done; # please don't put odex files in the app directory people # it causes dexopt to crash when switching builds busybox rm -f /sd-ext/app/*.odex setprop oxygen.a2sd.active 1; echo "sd-ext-ok" > /sd-ext/ext-ok echo "+++ Apps-to-SD successfully enabled"; echo "+++ Apps-to-SD successfully enabled" >> /data/mountall-script-debug.sh } disablea2sd () { # replace symlinks with directories so we can boot without sd for i in app app-private; do if [ -h /data/$i ]; then rm -rf /data/$i; mkdir /data/$i; busybox chown 1000:1000 /data/$i; busybox chmod 777 /data/$i; fi; done; setprop oxygen.a2sd.active 0; } if [ -e /dev/block/mmcblk0p1 ]; # We check for the presence of the FAT partition first to see if the SD has initialised. then echo "SD Card has been initialised...checking for ext partition."; echo "SD Card has been initialised...checking for ext partition."; >> /data/mountall-script-debug.sh if [ -e /dev/block/mmcblk0p2 ]; # If false, it isn't there so we don't have to sleep the script and delay the boot. then enablea2sd; else echo "No ext partition present, apps2sd disabled"; echo "No ext partition present, apps2sd disabled" >> /data/mountall-script-debug.sh disablea2sd; fi; else sleep 4; #Enables time for a slow SD to be detected and populate the device nodes. if [ -e /dev/block/mmcblk0p2 ]; then echo "enablea2sd for slow SD card"; echo "enablea2sd for slow SD card" >> /data/mountall-script-debug.sh enablea2sd; else echo "No ext partition present after sleep, apps2sd disabled"; echo "No ext partition present after sleep, apps2sd disabled" >> /data/mountall-script-debug.sh disablea2sd; fi; fi; sync; } ############################################ #Trigger, without # =ON with #OFF default=ON warning. do not add # at Apps2SD-Script, if you wish to disable apps2SD then remove # at disablea2sd below. Apps2SD-Script ############################################ #Trigger, without # =ON with #OFF default=OFF #disablea2sd ############################################################################################################################################## #This is in case that ROM looks for dalvik in cache. also fix recovery. Mount-Dalvik-Cache-to-Cache-folder-and-fix-recovery () { echo "Mounting Dalvik also to cache for ROM in case needed" >> /data/mountall-script-debug.sh if [ ! -d /cache/dalvik-cache ]; then mkdir /cache/dalvik-cache fi chown 1000:1000 /cache/dalvik-cache chmod 777 /cache/dalvik-cache mount -o bind /sd-ext/dalvik-cache /cache/dalvik-cache if [ ! -d /mnt/cache ]; then mkdir /mnt/cache fi if [ ! -d /mnt/cache/recovery ]; then mkdir /mnt/cache/recovery fi chmod 777 /mnt/cache/recovery if [ -h /cache/recovery ]; then rm -rf /cache/recovery mkdir /cache/recovery chown 1000:2001 /cache/recovery chmod 777 /cache/recovery fi } ############################################ #Trigger, without # =ON with #OFF default=ON Mount-Dalvik-Cache-to-Cache-folder-and-fix-recovery ############################################################################################################################################## #This script will check if your EXT has more than 250MB free before DATA move. if no room data will remain in NAND data partition. #If found 250mb FREE on EXT then you will see light blink. = GREEN ON/OF - RED ON/OFF - GREEN ON/OF - RED ON and OFF when data transfered. Check-and-move-DATA-To-EXT () { if [ -e /sd-ext/ext-ok ]; then echo "checking if you have more than 250MB free on EXT before DATA move." >> /data/mountall-script-debug.sh echo "checking if you have more than 250MB free on EXT before DATA move." EXTSIZE=$(df -k /sd-ext | tail -n1 | tr -s ' ' | cut -d ' ' -f4) if [ $EXTSIZE -gt 250000 ]; then echo "Cool You have more than 250MB free on EXT partition moving data to EXT" echo "Cool You have more than 250MB free on EXT partition moving data to EXT" >> /data/mountall-script-debug.sh sync sysctl -p if [ ! -d /sd-ext/data ]; then mkdir /sd-ext/data chmod 777 /sd-ext/data chown 1000:1000 /sd-ext/data fi if [ ! -d /data/data ]; then mkdir /data/data chmod 777 /data/data chown 1000:1000 /data/data fi echo "Copy Data to EXT" >> /data/mountall-script-debug.sh echo "Copy Data to EXT" cd /sd-ext/data find . ! -name . -prune -type l -exec rm {} \; cd /data/data find . ! -name . -prune -type l -exec rm {} \; cp -a /data/data/* /sd-ext/data/ 2> /dev/null echo "data moved OK" > /data/data-on-ext-now echo "GOOD data moved OK" echo "GOOD data moved OK" >> /data/mountall-script-debug.sh chmod 444 /data/data-on-ext-now else echo "YOU DONT HAVE ROOM FOR DATA ON EXT PARTITION YOU NEED 250MB FREE" echo "YOU DONT HAVE ROOM FOR DATA ON EXT PARTITION YOU NEED 250MB FREE" >> /data/mountall-script-debug.sh fi fi } if [ -e /data/data-on-ext-now ]; then echo "Activating DATA BIND from EXT to DATA" echo "Activating DATA BIND from EXT to DATA" >> /data/mountall-script-debug.sh rm -rf /data/data/* 2> /dev/null mount --bind /sd-ext/data /data/data echo "You moved the DATA to EXT All OK" echo "You moved the DATA to EXT All OK" >> /data/mountall-script-debug.sh sync sysctl -p fi ############################################ #Trigger, without # =ON with #OFF default=OFF #Check-and-move-DATA-To-EXT ############################################################################################################################################## #Remount Debug to NONE to reduce resource drain. if [ -e /sys/kernel/debug ]; then umount /sys/kernel/debug mount -t debugfs none /sys/kernel/debug fi ############################################################################################################################################## #This mod will move system + user APPS + DATA to NAND in case that DATA was moved to EXT! Mod2-Update () { if [ -e /sd-ext/ext-ok ]; then if [ -e /data/data-on-ext-now ]; then echo "Moving NEW user data to nand to release the SDCARD for RAM Services" echo "Moving NEW user data to nand to release the SDCARD for RAM Services" >> /data/mountall-script-debug.sh DATASIZE=$(df -k /data | tail -n1 | tr -s ' ' | cut -d ' ' -f4) if [ $DATASIZE -gt 70000 ]; then if [ ! -d /data/data-nand ]; then mkdir /data/data-nand chown 1000:1000 /data/data-nand chmod 777 /data/data-nand fi ##################################################################### cd /sd-ext/data find . ! -name . -prune -type l -exec rm {} \; #Dorimanx added apps data, new and old. cp -a com.protocol.x.USB /data/data-nand/ 2> /dev/null cp -a com.innowebtech.g0t0 /data/data-nand/ 2> /dev/null cp -a xxbcn.AllAppsOrganizerPlusB /data/data-nand/ 2> /dev/null cp -a com.fede.launcher /data/data-nand/ 2> /dev/null cp -a com.nitrodesk.droid20.nitroid /data/data-nand/ 2> /dev/null cp -a net.xdevelop.rotator* /data/data-nand 2> /dev/null cp -a com.rechild.advancedtaskkille* /data/data-nand 2> /dev/null cp -a com.quoord.tapatalk* /data/data-nand 2> /dev/null cp -a ccc71.bmw.pro /data/data-nand 2> /dev/null cp -a ccc71.pmw.pro /data/data-nand 2> /dev/null cp -a com.sebastian.seal /data/data-nand 2> /dev/null cp -a org.adwfreak.launcher /data/data-nand 2> /dev/null cp -a net.dinglisch.android.taskerm* /data/data-nand 2> /dev/null cp -a mobi.mgeek.TunnyBrowser* /data/data-nand 2> /dev/null cp -a net.rgruet.android.g3watchdog* /data/data-nand 2> /dev/null cp -a com.dropbox.android* /data/data-nand 2> /dev/null cp -a com.keramidas.titaniumbackup* /data/data-nand 2> /dev/null cp -a de.shapeservices.implus* /data/data-nand 2> /dev/null cp -a uk.co.blueNotify* /data/data-nand 2> /dev/null cp -a com.handcent.nextsms* /data/data-nand 2> /dev/null cp -a com.handcent.lang.nextsms* /data/data-nand 2> /dev/null cp -a com.adobe.flashplayer* /data/data-nand 2> /dev/null cp -a com.dooblou.WiFiFileExplorer* /data/data-nand 2> /dev/null cp -a com.maxmpz.audioplayer* /data/data-nand 2> /dev/null cp -a com.opera.browser* /data/data-nand 2> /dev/null cp -a com.qs.enhancedemail* /data/data-nand 2> /dev/null cp -a com.tomanyz.lockWatch* /data/data-nand 2> /dev/null cp -a com.snapwood.smugfolio* /data/data-nand 2> /dev/null cp -a com.whatsapp* /data/data-nand 2> /dev/null cp -a com.infonetservice.phono* /data/data-nand 2> /dev/null cp -a se.catharsis.android.calendar* /data/data-nand 2> /dev/null cp -a org.uguess.android.sysinfo.* /data/data-nand 2> /dev/null cp -a com.alienmanfc6.wheresmydroid* /data/data-nand 2> /dev/null cp -a com.snowbee.colorize* /data/data-nand 2> /dev/null cp -a com.netqin.mobileguard* /data/data-nand 2> /dev/null cp -a org.zeam* /data/data-nand 2> /dev/null cp -a com.Amazon.kindle* /data/data-nand 2> /dev/null cp -a com.ebay.mobile* /data/data-nand 2> /dev/null cp -a com.imdb.mobile* /data/data-nand 2> /dev/null cp -a org.iii.romulus.meridian* /data/data-nand 2> /dev/null cp -a com.speedsoftware.rootexplorer* /data/data-nand 2> /dev/null cp -a hk.suiaing.android.lock.screenlock* /data/data-nand 2> /dev/null cp -a nextapp.systempanel* /data/data-nand 2> /dev/null cp -a com.facebook.katana* /data/data-nand 2> /dev/null cp -a com.abcOrganizer.* /data/data-nand 2> /dev/null cp -a com.mediawoz.goweather* /data/data-nand 2> /dev/null cp -a org.gpo.greenpower* /data/data-nand 2> /dev/null cp -a com.zegoggles.smssync* /data/data-nand 2> /dev/null cp -a com.swype.android.inputmethod* /data/data-nand 2> /dev/null cp -a com.it.braincrash.volumeace* /data/data-nand 2> /dev/null cp -a com.alk.copilot.eumarket.* /data/data-nand 2> /dev/null cp -a com.sirma.mobile.bible.android* /data/data-nand 2> /dev/null cp -a com.bt.android.elixir* /data/data-nand 2> /dev/null cp -a de.stohelit.folderplayer* /data/data-nand 2> /dev/null cp -a com.osa.android.navdroyd* /data/data-nand 2> /dev/null cp -a com.carl.tc* /data/data-nand 2> /dev/null cp -a com.gau.go.* /data/data-nand 2> /dev/null ########################################################################################################## #User apps data #Add here you custome apps. use example, cp -a YOUR APP DATA FOLDER /data/data-nand 2> /dev/null #After you finish adding, REBOOT. your app data will be moved to NAND and files in sd-ext will be deleted. ########################################################################################################## echo "NEW-data-nand-migrated" >> /data/mountall-script-debug.sh ########################################################################################################## DATAEXTDELETE=`ls /data/data-nand`; for c in $DATAEXTDELETE do rm -rf /sd-ext/data/$c done echo "data-nand-migrated" > /data/data-nand-migrated #Mount data to /data/data ln -s /data/data-nand/* /sd-ext/data/ #done echo "DATA of Migrated to NAND Apps, deleted from sd-ext." echo "DATA of Migrated to NAND Apps, deleted from sd-ext." >> /data/mountall-script-debug.sh echo "System DATA and limited app DATA Mounted." echo "System DATA and limited app DATA Mounted." >> /data/mountall-script-debug.sh cd / else echo "Your data partiotion dont have 70MB FREE for SYSTEM NAND MOD" echo "Your data partiotion dont have 70MB FREE for SYSTEM NAND MOD" >> /data/mountall-script-debug.sh fi else echo "You didnt moved DATA TO EXT with MOD #1, you cant use MOD #2, first move all data to EXT" echo "You didnt moved DATA TO EXT with MOD #1, you cant use MOD #2, first move all data to EXT" >> /data/mountall-script-debug.sh fi fi } ############################################## #Trigger, without # =ON with #OFF default=ON #This is the MOD #2 Moving NEW DATA for system to use them from NAND to speedup. #Mod2-Update ############################################################################################################################################## BOOT-UP-FIX () { if [ -e /sd-ext/ext-ok ]; then if [ -e /data/first-boot ]; then cd /sd-ext/data find . ! -name . -prune -type l -exec rm {} \; cp -a /data/data-nand/* /sd-ext/data 2> /dev/null rm -rf /data/data-nand/* 2> /dev/null rm -f /data/first-boot 2> /dev/null echo "dalvik-cache" > /sd-ext/dalvik-cache/cache-ok fi fi } ############################################## #Trigger, without # =ON with #OFF default=ON BOOT-UP-FIX ############################################################################################################################################## DALVIK-CACHE-FIX () { if [ -e /sd-ext/ext-ok ]; then if [ ! -e /sd-ext/dalvik-cache/cache-ok ]; then cd /sd-ext/data find . ! -name . -prune -type l -exec rm {} \; cp -a /data/data-nand/* /sd-ext/data 2> /dev/null rm -rf /data/data-nand/* 2> /dev/null echo "dalvik-cache" > /sd-ext/dalvik-cache/cache-ok fi fi } ############################################## #Trigger, without # =ON with #OFF default=ON DALVIK-CACHE-FIX ############################################################################################################################################## echo "Fixing System Owners" busybox chown 0:2000 /system/etc/init.d/* busybox chown 0:0 /cache busybox chown 1000:2001 /cache/recovery busybox chown 1000:1000 /cache/dalvik-cache busybox chown 1000:2001 /cache/recovery busybox chown 1000:1000 /dev/smd27 busybox chown 0:0 /dev busybox chown 0:0 /system/lib/* busybox chown 0:0 /system/lib/hw/* busybox chown 0:2000 /dev/cpu_dma_latency echo "Fixing System permissions" busybox chmod 777 /dev/smd27 busybox chmod 755 /dev busybox chmod 777 /dev/cpu_dma_latency busybox chmod 755 /system/etc/init.d/* busybox chmod 644 /system/etc/gps.conf busybox chmod 644 /system/etc/hosts busybox chmod 644 /system/etc/sysctl.conf busybox chmod 777 /system/lib/* busybox chmod 777 /system/lib/hw/* busybox chmod 755 /system/lib/egl/* busybox chmod 644 /system/build.prop busybox chmod 777 /cache/ -R echo "DONE" ############################################################################################################################################## #This will copy the SU to xbin also and remove the simlink CopyRoot () { #Checking and fixing ROOT rm -rf /system/xbin/su cp /system/bin/su /system/xbin/ chmod 6777 /system/xbin/su chown 0:0 /system/xbin/su #Done } ############################################ #Trigger, without # =ON with #OFF default=ON CopyRoot ############################################################################################################################################## #This is ZIP Align Script. it's will fix all the apps in /system/app and in /sd-ext/app every boot, already alinged apps will not be checked again. #Temp dir is on SDCARD to give all big apps a chance to be fixed. ZIPALIGN () { echo "Activating zipalign for all apps" echo "Activating zipalign for all apps" >> /data/mountall-script-debug.sh LOG_FILE=/data/zipalign.log ZIPALIGNDB=/data/zipalign.dba SYSTEM=$(mount|grep "/system "|awk '{ print $1 }') [ -e $LOG_FILE ] && rm $LOG_FILE [ -f $ZIPALIGNDB ] || touch $ZIPALIGNDB MissingApps=`cat /data/zipalign.dba | grep eu.chainfire.cf3d` if [ $MissingApps !=eu.chainfire.cf3d ]; then echo "/data/app/eu.chainfire.cf3d-1.apk" >> /data/zipalign.dba echo "adding Missing APPS" else echo "Missing Apps Already Added" fi echo "Starting Dorimanx Automatic ZipAlign $( date +"%m-%d-%Y %H:%M:%S" )" | tee -a $LOG_FILE mount -t vfat /dev/block/vold/179:1 /mnt/sdcard for DIR in /system/app /data/app ; do cd $DIR for APK in *.apk ; do if [ $APK -ot $ZIPALIGNDB ] && [ $(grep "$DIR/$APK" $ZIPALIGNDB|wc -l) -gt 0 ] ; then echo "Already checked: $DIR/$APK" | tee -a $LOG_FILE else zipalign -c 4 $APK if [ $? -eq 0 ] ; then echo "Already aligned: $DIR/$APK" | tee -a $LOG_FILE grep "$DIR/$APK" $ZIPALIGNDB > /dev/null || echo $DIR/$APK >> $ZIPALIGNDB else echo "Now aligning: $DIR/$APK" | tee -a $LOG_FILE if [ ! -d /mnt/sdcard/zipalign ]; then mkdir /mnt/sdcard/zipalign chmod 777 /mnt/sdcard/zipalign fi zipalign -f 4 $APK /mnt/sdcard/zipalign/$APK cp -a /mnt/sdcard/zipalign/$APK $APK rm -f /mnt/sdcard/zipalign/$APK chmod 644 /system/app/* chmod 644 /data/app/* chown 1000:1000 /system/app/* chown 1000:1000 /data/app/* grep "$DIR/$APK" $ZIPALIGNDB > /dev/null || echo $DIR/$APK >> $ZIPALIGNDB fi fi done done touch $ZIPALIGNDB umount /mnt/sdcard echo "Automatic ZipAlign finished at $( date +"%m-%d-%Y %H:%M:%S" )" | tee -a $LOG_FILE echo "Automatic ZipAlign finished" >> /data/mountall-script-debug.sh } ############################################ #Trigger, without # =ON with #OFF default=ON ZIPALIGN ############################################################################################################################################## echo "Writing debug info for dorimanx support. file name /data/mountall-script-debug.sh, post it if you have problems" if [ -d /sd-ext/data ] && [ -e /data/data-on-ext-now ]; then echo "DATA IS ON EXT MOD #1 ONLINE" >> /data/mountall-script-debug.sh else echo "DATA IS ON NAND, MOD #1 is OFFLINE" >> /data/mountall-script-debug.sh fi if [ -e /data/data-nand-migrated ]; then echo "System DATA and Choosen DATA migrated to NAND, MOD #2 ONLINE" >> /data/mountall-script-debug.sh else echo "MOD #2 not activated" fi echo "Starting the Android Virtual Machine, let the HIGH POWER be with you, ROM DEV DORIMANX" echo "Starting the Android Virtual Machine, let the HIGH POWER be with you, ROM DEV DORIMANX" >> /data/mountall-script-debug.sh echo "Pre BOOT finish" >> /data/mountall-script-debug.sh date >> /data/mountall-script-debug.sh start # execute any postinstall script then kill it if [ -e /data/firstboot.sh ]; then log -p i -t boot "Executing firstboot.sh.."; logwrapper /system/bin/sh /data/firstboot.sh; rm -f /data/firstboot.sh; fi; echo "ALL DONE, END OF FILE" sleep 2 echo 0 > /sys/devices/platform/leds-microp/leds/amber/brightness sleep 2 exit 1 MY /BOOT/initrd.gz changes: init.htcleo.rc (all credits to Tytung!!! i just make some edits) init.rc (all credits to Tytung!!! i just make some edits) logo.lge To Extract the initrd.gz copy the initrd.gz to sdcard mkdir /initdir cd /initdir cp /sdcard/initrd.gz /initdir chmod 777 initrd.gz chown 0:0 initrd.gz zcat initrd.gz | cpio -i -d rm initrd.gz EDIT What you want! Pack the files back to initrd.gz find . | cpio -o -H newc | gzip -9 > initrd.gz you can then use this initrd.gz for MAG ROM (copy to boot inside ROM zip) Or you need to compile it with the kernel module for CLK! HOW to Compile CLK boot.img take the zImage , initrd.gz , mkbootimg, and copy to ANY Linux BOX not the PHONE!!! i used Centos 5 and winscp to transfer files to linux box. mkdir /clkboot Copy all 3 files to /clkboot cd /clkboot chown 0:0 * chmod 777 * run this: mkbootimg --kernel zImage --ramdisk initrd.gz --cmdline "console=null" --base 0x11800000 -o boot.img ls -la you will see the new boot.img copy in to main root dir on zipped CLK rom. i will attach the mkbootimg as zip extract it when copying to Linux box. also there are 2 more files. repack-bootimg.pl and unpack-bootimg.pl one of them unpack the boot.img extract the initrd.gz + kernel.gz (create folder with all files only for initrd.gz) and the repack-bootimg.pl will get all back to boot-new.img (in rom folder it's should be as boot.img) HAVE FUN!
wWOWOO Im going to test now!! Cant wati but are the recovery partitions in the rom or are they 150 and cache 5? Edit: Bootanimation is craZY1!!!! really nice one!! oh and rom fast as lightning!!
Hi man, I download 2.5.0 now, I will try for swap. Your too fast man, your too fast....
All right lets have some fun Just flashed new v2.5.0 You have tried the rest now get ready to try the best! From my HD2 with Dorimanx Nandroid
New sheriff in town, let's play
I do not use the swap,so is that right for me to choose the HIHG-END rom?
err sorry but what does SWAP do?
shendan said: I do not use the swap,so is that right for me to choose the HIHG-END rom? Click to expand... Click to collapse LOL.... Post 1: "if you don't have SWAP then install the REVERT to LIGHT after installing my ROM via CWM before you reboot."
dogntbone said: err sorry but what does SWAP do? Click to expand... Click to collapse Swap is a sort of ram exension on SDCARD, so you have "more" ram, so more speed for application. Dorimanx rom is the fastest rom I have ever tried. It works perfectly but, Dorimanx, you have to quickly update your post with all the things new users have to do for creating swap, manage app in ram and so on, because without that, I thnk some people will be in trouble to use your rom as I am at start of using Hig end. Edit : Oups...Dorimanx : swap not activated on 2.5.0. Trying swapon -a : answer /etc/fstab no such file or directory...Mistake is mine or yours?
the only tweaks that i need for cm7 is tablet tweaks(the soft keys) with percentual battery and your skin(great lookin theme).. it is possible to install Framework-res-TabletTweak-130711+MY-SKIN.zip with Typhoon 3.4.0 or it is not compatible ?
Manual Network selection does not work..it says "Error while searching for networks". This is of much importance to me as i live close to Croatian border and their signal is stronger in certain places in my home. Other than that, this rom just flies!
feanor91 said: Swap is a sort of ram exension on SDCARD, so you have "more" ram, so more speed for application. Dorimanx rom is the fastest rom I have ever tried. It works perfectly but, Dorimanx, you have to quickly update your post with all the things new users have to do for creating swap, manage app in ram and so on, because without that, I thnk some people will be in trouble to use your rom as I am at start of using Hig end. Click to expand... Click to collapse Thanks, YES i am working on update all needed info! SO PEOPLE IF YOU DON'T HAVE SWAP INSTALL THE LIGHT REVERT!!!!
stirkac said: Manual Network selection does not work..it says "Error while searching for networks". This is of much importance to me as i live close to Croatian border and their signal is stronger in certain places in my home. Other than that, this rom just flies! Click to expand... Click to collapse OK this is good feedback! You are using the CLK i guess! Then something wrong with kernel. I will revert back to STABLE one that working for all. I will post new CLK ROM soon. Thanks!
Thanks for the rom been trying it out and most of it works I just get random reboots on the 2.4.6 other than that all seem well. I will be updating to latest and hope it will go away. On a side note is there any way you can make that we can revert to stock theme?? Toda for taking the time to help us all out. Sent from my HTC HD2 using XDA Premium App
What size must have a swap partition? 2x RAM?
I am running on clk with 2.5.0 and I also have swap partition (created through CWM as in your description), but since 2.4.6 and also in 2.5.0 when I type "free" I have "0 0 0" for swap partition, also /system/etc/fstab" doesn't exist. I did a completely clean installation of 2.5.0, no data partition, nothing. Any idea? Update: I now have the swap file by executing your "swap.sh" file from your instructions page. But I thought, this isn't neccessary with your own roms?
bigbadmoshe said: Thanks for the rom been trying it out and most of it works I just get random reboots on the 2.4.6 other than that all seem well. I will be updating to latest and hope it will go away. On a side note is there any way you can make that we can revert to stock theme?? Toda for taking the time to help us all out. Sent from my HTC HD2 using XDA Premium App Click to expand... Click to collapse I will make revert to stock theme zip file! check in my mirrors in 10 minutes!
Busybox command softlinker
Have busybox? Wish you could type "grep foo" instead of "busybox grep foo" ? This simple shell script checks your busybox for supported commands and softlinks them from /system/bin to wherever the first busybox it finds in the $PATH is. Since I screwed up my links a couple times making this, there's also a script that strips every link to busybox out of /system/bin. These scripts do basically no error checking. They require root access, but they don't check for it. If you don't know how to read a script to see what it does before you run it, don't run it. That said, it's handy. Code: #!/system/bin/sh # linky.sh: softlink busybox to all the commands it supports # Now with zero error checking! Beware :P # -speef busybox &>/dev/null || exit 1 bbl=`busybox which busybox` ready=0 busybox mount -o rw,remount /system >./linky.log for cmd in `busybox` do cmd=`echo $cmd|busybox awk -F, '{print $1}'` if [ $ready -eq 0 ] then if [ $cmd == "functions:" ] then ready=1 continue else continue fi fi echo ln -s $bbl /system/bin/$cmd busybox ln -s $bbl /system/bin/$cmd &>> linky.log done busybox mount -o ro,remount /system echo "see ./linky.log for errors!" And its counterpart, which removes all links to busybox from /system/bin: Code: #!/system/bin/sh # delinky.sh: remove all busybox links from /system/bin # Now with zero error checking! Beware :P # -speef busybox &>/dev/null || exit 1 busybox mount -o rw,remount /system for cmd in `busybox find /system/bin -type l -exec ls -l \{\} \; | busybox grep busybox|busybox awk '{print $6}'` do echo rm /system/bin/$cmd busybox rm /system/bin/$cmd done busybox mount -o ro,remount /system
HOWTO: Prevent Oppo driver CD from mounting
It annoys the hell out of me when I plug the phone in by USB and it mounts a pointless virtual CD drive with the drivers on. You can disable it on your own PC, but when you plug in to someone else's having it pop up and autoplay the driver installer is often unwelcome. There's probably a better way to do this, but it works for me Steps: 1) Have root, a working ADB, and backups (nandroid) 2) adb shell Code: su mount -o remount,rw /system cd /system/etc cp init.qcom.post_boot.sh init.qcom.post_boot.sh.bak echo setprop sys.usb.config mtp,adb >> init.qcom.post_boot.sh If you need to get the cd back temporarily then switch to charge mode and back via the notification area. You'll then be stuck with the CD until the next reboot. To permanently remove it: Code: su mount -o remount,rw /system cd /system/etc cp init.qcom.post_boot.sh init.qcom.post_boot.sh.bak #if you didn't already do this echo echo \"\" \> /sys/class/android_usb/f_mass_storage/lun/file >> init.qcom.post_boot.sh echo chmod 440 /sys/class/android_usb/f_mass_storage/lun/file >> init.qcom.post_boot.sh To get the CD back this time, you will need to run Code: chmod 660 /sys/class/android_usb/f_mass_storage/lun/file then switch to charge-only and back. Note that chances are you'll want to do this because the only computer you're on doesn't have Oppo ADB drivers installed, so you will have to do this from a terminal emulator, which will not be fun.