[Q] Accidentally removed the /sdcard directory - General Questions and Answers

Hi everyone,
During a manipulation I accidentally type "rm /sdcard" via adb...
After that, I tried to clean the sdcard (via Settings panel), wipe the cache, and made a reset factory to fix my error, but without success.
Finally :
- some directories have been re-created (Alarms, Android, DCIM, Download, LOST.DIR, Movies, Music, Notifications, Pictures, Podcasts, Ringtones),
- when I try to install an app, I got the INSTALL_FAILED_INSUFFICIENT_STORAGE error (but my sdcard is technically empty)
- in the Storage tab (in Settings Panel) I see Total space=0.00B
Is there a problem with the partitioning? Have you any idea to fix this issue?
Model : a Chinese prototype, can't share the name
OS : Android 4.1.1
No backup, no original ROM
Root access via ADB.
Thank you!

kikiwa said:
Hi everyone,
During a manipulation I accidentally type "rm /sdcard" via adb...
After that, I tried to clean the sdcard (via Settings panel), wipe the cache, and made a reset factory to fix my error, but without success.
Finally :
- some directories have been re-created (Alarms, Android, DCIM, Download, LOST.DIR, Movies, Music, Notifications, Pictures, Podcasts, Ringtones),
- when I try to install an app, I got the INSTALL_FAILED_INSUFFICIENT_STORAGE error (but my sdcard is technically empty)
- in the Storage tab (in Settings Panel) I see Total space=0.00B
Is there a problem with the partitioning? Have you any idea to fix this issue?
Model : a Chinese prototype, can't share the name
OS : Android 4.1.1
No backup, no original ROM
Root access via ADB.
Thank you!
Click to expand...
Click to collapse
Well... First of all, you should always (yes, always) make a nandroid backup... If you can't use CWM, there's always the adb backup option
Have you tried the SD card in a computer? Does it read? Have you tried formatting the sdcard again through android?

El_Dark said:
Have you tried the SD card in a computer? Does it read? Have you tried formatting the sdcard again through android?
Click to expand...
Click to collapse
It's the internal SD card, I cannot take out of the tablet.
The SDcard is readable, I can use adb to load some files on it, like an apk for example. It's just Android cannot detect free memory to install a new app.
And yes, I tried to "erase SDCard" via Android (that I called "Settings panel" in my first post).
Do you need more details ?

kikiwa said:
It's the internal SD card, I cannot take out of the tablet.
The SDcard is readable, I can use adb to load some files on it, like an apk for example. It's just Android cannot detect free memory to install a new app.
And yes, I tried to "erase SDCard" via Android (that I called "Settings panel" in my first post).
Do you need more details ?
Click to expand...
Click to collapse
have you tried adb shell then mkdir /sdcard and after that reboot the device ?

SirRaul said:
have you tried adb shell then mkdir /sdcard and after that reboot the device ?
Click to expand...
Click to collapse
This is a good idea... Also, would be good trying to Data erase/factory reset from recovery (if any available)
Another good one would be to, if supported by the Kernel, add an init.d script like S01FixSDCard like this:
Code:
#!/system/bin/sh
#I'm a bit outdated in what means bash scripting, but with a little reading you can get the idea :)
#The script must be ran at system start, also make sure it's chowned to 0.0 and with 755 and that it'll be ran as root
if [-d /mnt/sdcard] then
rmdir /mnt/sdcard
fi
mkdir /mnt/sdcard
chown 0.0 /mnt/sdcard
#Some legacy apps/scripts call the sdcard this way (I'm not sure though how it is when it's an internal sdcard, my S5830i has only external SD
ln -s /mnt/sdcard /sdcard
#This line was taken "as is" from my "mount" command, you should adapt many parameters here, to begin with, the UID of your GUI user
#it should be 1000 by default, but you never know... Also, check the GID which corresponds to the group of your GUI user, in my case it's
#1015. If you can get how your sdcard is mounted by default, awesome ;)
mount -t vfat -o rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0602,dmask=0602,allow_utime=0020,codepage=cp347,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro /dev/block/vold/179:1 /mnt/sdcard
Hope that helps, corrections and contributions are welcome
---------- Post added at 09:25 AM ---------- Previous post was at 09:24 AM ----------
Also, can you share a screenshot of your settings panel in the storage option?

One more suggestion: Use "aParted" look for it on the Play Store, and as for data recovery matters (if you need) you might want to try CamRec from Cristophe Grenier.. http://www.cgsecurity.org/

Thank you for your ideas !!
have you tried adb shell then mkdir /sdcard and after that reboot the device ?
Click to expand...
Click to collapse
It just recreate some directories (Alarms, Android, DCIM, Download, ...) but impossible to install anything.
Also, would be good trying to Data erase/factory reset from recovery
Click to expand...
Click to collapse
No recovery available.
add an init.d script like S01FixSDCard
Click to expand...
Click to collapse
I tried to adapt the script (with vold/93:72 the only available), but no changes.
Use "aParted" look for it on the Play Store
Click to expand...
Click to collapse
Looks again like a good idea but ... my problem is I can't install anything
So, I'm always blocked
Do you know how to re-partition the sdcard from an android command line (with busybox) ?
Finally a screenshot :
{
"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"
}

to format it, you need to know in what format was before, since it's the internal memory, maybe was fat maybe was ext2, ext3, ext4. When you connected your device to the pc, did you had access to the internal sdcard ?
try this
adb shell, and after you're in the phone's shell, check if you're root with id command, rm /sdcard and symlink /mnt/sdcard /sdcard
if you're not root, use su to become one, but since you managed to delete /sdcard folder, I think you have root permissions already when you're in shell.
Can you tell us what device do you have ?
P.S.: you didn't posted the screenshot. It doesn't appear.

SirRaul said:
to format it, you need to know in what format was before, since it's the internal memory, maybe was fat maybe was ext2, ext3, ext4. When you connected your device to the pc, did you had access to the internal sdcard ?
Click to expand...
Click to collapse
I have an access to the phone via adb, andif I change the connection as Media device (MTP), I see my internal storage from my PC explorer (Windows 7). Is there a way to know the partition type ?
SirRaul said:
adb shell, and after you're in the phone's shell, check if you're root with id command, rm /sdcard and symlink /mnt/sdcard /sdcard
if you're not root, use su to become one, but since you managed to delete /sdcard folder, I think you have root permissions already when you're in shell.
Can you tell us what device do you have ?
P.S.: you didn't posted the screenshot. It doesn't appear.
Click to expand...
Click to collapse
id => uid=0(root) gid=0(root)
I have already remove sdcard 5 times in different context, the symbolic link is automatically recreated from /mnt/sdcard so I think it's not enough to fix my issue.
And I can't tell you what is my device (see first post).
For the screenshot, I can't share external links since I'm too "young" for that ^^. But try to follow the link (right click), it would show you the picture (tell me if it's not good and I will change it).

First of all, check where's the sdcard's path:
ls /dev/block/mmc*
You should have 2 paths. First mmcblk0 - not sure tho and I can't check it right now, we don't need that anyway. And the second mmcblk0p1.
If you have it, use busybox mkfs.vfat /dev/block/mmcblk0p1 to format it in fat32 and reboot
Sent from my Perfect HTC ChaCha - 32Gb Unique Model

SirRaul said:
First of all, check where's the sdcard's path:
ls /dev/block/mmc*
You should have 2 paths. First mmcblk0 - not sure tho and I can't check it right now, we don't need that anyway. And the second mmcblk0p1.
If you have it, use busybox mkfs.vfat /dev/block/mmcblk0p1 to format it in fat32 and reboot
Click to expand...
Click to collapse
Code:
ls /dev/block
dm-0
dm-1
dm-2
dm-3
dm-4
dm-5
loop0
loop1
loop2
loop3
loop4
loop5
loop6
loop7
nanda
nandb
nandc
nandd
nande
nandf
nandg
nandh
nandi
nandj
vold
I just test a debugging option :
Code:
pm set-install-location 2
The documentation said it's used to install on external media, and there is no external media ... but I tried and it works just enough to install an other app. But apps are no more available after reboot, like all user settings. On each reboot, it's just like I swipe my cache (but downloaded data are always on the /sdcard/)...

use adb pull /init.rc and open it with a text editor. it's the first file which runs before android will boot. Check it and if it doesn't make any sense what you'll find there, just upload it here and I'll take a look

SirRaul said:
use adb pull /init.rc and open it with a text editor. it's the first file which runs before android will boot. Check it and if it doesn't make any sense what you'll find there, just upload it here and I'll take a look
Click to expand...
Click to collapse
Thank you for the help !
My init.rc :
# Copyright (C) 2012 The Android Open Source Project
#
# IMPORTANT: Do not create world writable files or directories.
# This is a common source of Android security bugs.
#
import /init.trace.rc
import /init.usb.rc
import /init.${ro.hardware}.rc
on early-init
# Set init and its forked children's oom_adj.
write /proc/1/oom_adj -16
start ueventd
# create mountpoints
mkdir /mnt 0775 root system
on init
sysclktz 0
loglevel 3
# setup the global environment
export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
export LD_LIBRARY_PATH /vendor/lib:/system/lib
export ANDROID_BOOTLOGO 1
export ANDROID_ROOT /system
export ANDROID_ASSETS /system/app
export ANDROID_DATA /data
export ASEC_MOUNTPOINT /mnt/asec
export LOOP_MOUNTPOINT /mnt/obb
export BOOTCLASSPATH /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/framework2.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar
# Backward compatibility
insmod /nand.ko
symlink /system/etc /etc
symlink /sys/kernel/debug /d
# Right now vendor lives on the same filesystem as system,
# but someday that may change.
symlink /system/vendor /vendor
# Create cgroup mount point for cpu accounting
mkdir /acct
mount cgroup none /acct cpuacct
mkdir /acct/uid
mkdir /system
mkdir /data 0771 system system
mkdir /cache 0770 system cache
mkdir /config 0500 root root
# Directory for putting things only root should see.
mkdir /mnt/secure 0700 root root
# Directory for staging bindmounts
mkdir /mnt/secure/staging 0700 root root
# Directory-target for where the secure container
# imagefile directory will be bind-mounted
mkdir /mnt/secure/asec 0700 root root
# Secure container public mount points.
mkdir /mnt/asec 0700 root system
mount tmpfs tmpfs /mnt/asec mode=0755,gid=1000
# Filesystem image public mount points.
mkdir /mnt/obb 0700 root system
mount tmpfs tmpfs /mnt/obb mode=0755,gid=1000
write /proc/sys/kernel/panic_on_oops 1
write /proc/sys/kernel/hung_task_timeout_secs 0
write /proc/cpu/alignment 4
write /proc/sys/kernel/sched_latency_ns 10000000
write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000
write /proc/sys/kernel/sched_compat_yield 1
write /proc/sys/kernel/sched_child_runs_first 0
write /proc/sys/kernel/randomize_va_space 2
write /proc/sys/vm/legacy_va_layout 1
write /proc/sys/kernel/kptr_restrict 2
write /proc/sys/kernel/dmesg_restrict 1
write /proc/sys/vm/mmap_min_addr 32768
write /proc/sys/kernel/sched_rt_runtime_us 950000
write /proc/sys/kernel/sched_rt_period_us 1000000
# Create cgroup mount points for process groups
mkdir /dev/cpuctl
mount cgroup none /dev/cpuctl cpu
chown system system /dev/cpuctl
chown system system /dev/cpuctl/tasks
chmod 0660 /dev/cpuctl/tasks
write /dev/cpuctl/cpu.shares 1024
write /dev/cpuctl/cpu.rt_runtime_us 950000
write /dev/cpuctl/cpu.rt_period_us 1000000
mkdir /dev/cpuctl/apps
chown system system /dev/cpuctl/apps/tasks
chmod 0666 /dev/cpuctl/apps/tasks
write /dev/cpuctl/apps/cpu.shares 1024
write /dev/cpuctl/apps/cpu.rt_runtime_us 800000
write /dev/cpuctl/apps/cpu.rt_period_us 1000000
mkdir /dev/cpuctl/apps/bg_non_interactive
chown system system /dev/cpuctl/apps/bg_non_interactive/tasks
chmod 0666 /dev/cpuctl/apps/bg_non_interactive/tasks
# 5.0 %
write /dev/cpuctl/apps/bg_non_interactive/cpu.shares 52
write /dev/cpuctl/apps/bg_non_interactive/cpu.rt_runtime_us 700000
write /dev/cpuctl/apps/bg_non_interactive/cpu.rt_period_us 1000000
# Allow everybody to read the xt_qtaguid resource tracking misc dev.
# This is needed by any process that uses socket tagging.
chmod 0644 /dev/xt_qtaguid
#on fs
# mount mtd partitions
# Mount /system rw first to give the filesystem a chance to save a checkpoint
# mount yaffs2 [email protected] /system
# mount yaffs2 [email protected] /system ro remount
# mount yaffs2 [email protected] /data nosuid nodev
# mount yaffs2 [email protected] /cache nosuid nodev
on post-fs
# once everything is setup, no need to modify /
#mount rootfs rootfs / ro remount
# We chown/chmod /cache again so because mount is run as root + defaults
chown system cache /cache
chmod 0770 /cache
# This may have been created by the recovery system with odd permissions
chown system cache /cache/recovery
chmod 0770 /cache/recovery
#change permissions on vmallocinfo so we can grab it from bugreports
chown root log /proc/vmallocinfo
chmod 0440 /proc/vmallocinfo
#change permissions on kmsg & sysrq-trigger so bugreports can grab kthread stacks
chown root system /proc/kmsg
chmod 0440 /proc/kmsg
chown root system /proc/sysrq-trigger
chmod 0220 /proc/sysrq-trigger
# create the lost+found directories, so as to enforce our permissions
mkdir /cache/lost+found 0770 root root
mkdir /cache/dsbackup
mkdir /cache/dsbackup/logfile
on post-fs-data
# We chown/chmod /data again so because mount is run as root + defaults
chown system system /data
chmod 0771 /data
# Create dump dir and collect dumps.
# Do this before we mount cache so eventually we can use cache for
# storing dumps on platforms which do not have a dedicated dump partition.
mkdir /data/dontpanic 0750 root log
# Collect apanic data, free resources and re-arm trigger
copy /proc/apanic_console /data/dontpanic/apanic_console
chown root log /data/dontpanic/apanic_console
chmod 0640 /data/dontpanic/apanic_console
copy /proc/apanic_threads /data/dontpanic/apanic_threads
chown root log /data/dontpanic/apanic_threads
chmod 0640 /data/dontpanic/apanic_threads
write /proc/apanic_console 1
# create basic filesystem structure
mkdir /data/misc 01771 system misc
mkdir /data/misc/bluetoothd 0770 bluetooth bluetooth
mkdir /data/misc/bluetooth 0777 system system
mkdir /data/misc/keystore 0700 keystore keystore
mkdir /data/misc/keychain 0771 system system
mkdir /data/misc/vpn 0770 system vpn
mkdir /data/misc/systemkeys 0700 system system
# give system access to wpa_supplicant.conf for backup and restore
mkdir /data/misc/wifi 0770 wifi wifi
chmod 0660 /data/misc/wifi/wpa_supplicant.conf
chown system wifi /data/misc/wifi/wpa_supplicant.conf
mkdir /data/misc/wifi/sockets 0770 wifi wifi
mkdir /data/misc/dhcp 0770 dhcp dhcp
chown dhcp dhcp /data/misc/dhcp
mkdir /data/local 0751 root root
# star add for camera recorder
mkdir /data/camera 0751 media media
# For security reasons, /data/local/tmp should always be empty.
# Do not place files or directories in /data/local/tmp
mkdir /data/local/tmp 0771 shell shell
mkdir /data/data 0771 system system
mkdir /data/app-private 0771 system system
mkdir /data/app-asec 0700 root root
mkdir /data/app 0771 system system
mkdir /data/property 0700 root root
mkdir /data/ssh 0750 root shell
mkdir /data/ssh/empty 0700 root root
# create dalvik-cache, so as to enforce our permissions
mkdir /data/dalvik-cache 0771 system system
# create resource-cache and double-check the perms
mkdir /data/resource-cache 0771 system system
chown system system /data/resource-cache
chmod 0771 /data/resource-cache
# create the lost+found directories, so as to enforce our permissions
mkdir /data/lost+found 0770 root root
# create directory for DRM plug-ins - give drm the read/write access to
# the following directory.
mkdir /data/drm 0770 drm drm
# If there is no fs-post-data action in the init.<device>.rc file, you
# must uncomment this line, otherwise encrypted filesystems
# won't work.
# Set indication (checked by vold) that we have finished this action
#setprop vold.post_fs_data_done 1
on boot
# basic network init
ifup lo
hostname localhost
domainname localdomain
# su root
chown root root /system/xbin/su
chmod 6755 /system/xbin/su
# set RLIMIT_NICE to allow priorities from 19 to -20
setrlimit 13 40 40
# Memory management. Basic kernel parameters, and allow the high
# level system server to be able to adjust the kernel OOM driver
# parameters to match how it is managing things.
write /proc/sys/vm/overcommit_memory 1
write /proc/sys/vm/min_free_order_shift 4
chown root system /sys/module/lowmemorykiller/parameters/adj
chmod 0664 /sys/module/lowmemorykiller/parameters/adj
chown root system /sys/module/lowmemorykiller/parameters/minfree
chmod 0664 /sys/module/lowmemorykiller/parameters/minfree
# Tweak background writeout
write /proc/sys/vm/dirty_expire_centisecs 200
write /proc/sys/vm/dirty_background_ratio 5
# Permissions for System Server and daemons.
chown radio system /sys/android_power/state
chown radio system /sys/android_power/request_state
chown radio system /sys/android_power/acquire_full_wake_lock
chown radio system /sys/android_power/acquire_partial_wake_lock
chown radio system /sys/android_power/release_wake_lock
chown system system /sys/power/state
chown system system /sys/power/wakeup_count
chown radio system /sys/power/wake_lock
chown radio system /sys/power/wake_unlock
chmod 0660 /sys/power/state
chmod 0660 /sys/power/wake_lock
chmod 0660 /sys/power/wake_unlock
chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_rate
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/timer_rate
chown system system /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
chown system system /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
chown system system /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
chown system system /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
chown system system /sys/devices/system/cpu/cpufreq/interactive/boost
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boost
chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse
chown system system /sys/devices/system/cpu/cpufreq/interactive/input_boost
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/input_boost
chown system system /sys/class/android_usb/android0/iSerial
chmod 0660 /sys/class/android_usb/android0/iSerial
# Assume SMP uses shared cpufreq policy for all CPUs
chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
chown system system /sys/devices/system/cpu/cpufreq/fantasys/max_power
chmod 0660 /sys/devices/system/cpu/cpufreq/fantasys/max_power
chown system system /sys/devices/system/cpu/cpufreq/fantasys/pulse
chmod 0660 /sys/devices/system/cpu/cpufreq/fantasys/pulse
chown system system /sys/class/timed_output/vibrator/enable
chown system system /sys/class/leds/keyboard-backlight/brightness
chown system system /sys/class/leds/lcd-backlight/brightness
chown system system /sys/class/leds/button-backlight/brightness
chown system system /sys/class/leds/jogball-backlight/brightness
chown system system /sys/class/leds/red/brightness
chown system system /sys/class/leds/green/brightness
chown system system /sys/class/leds/blue/brightness
chown system system /sys/class/leds/red/device/grpfreq
chown system system /sys/class/leds/red/device/grppwm
chown system system /sys/class/leds/red/device/blink
chown system system /sys/class/leds/red/brightness
chown system system /sys/class/leds/green/brightness
chown system system /sys/class/leds/blue/brightness
chown system system /sys/class/leds/red/device/grpfreq
chown system system /sys/class/leds/red/device/grppwm
chown system system /sys/class/leds/red/device/blink
chown system system /sys/class/timed_output/vibrator/enable
chown system system /sys/module/sco/parameters/disable_esco
chown system system /sys/kernel/ipv4/tcp_wmem_min
chown system system /sys/kernel/ipv4/tcp_wmem_def
chown system system /sys/kernel/ipv4/tcp_wmem_max
chown system system /sys/kernel/ipv4/tcp_rmem_min
chown system system /sys/kernel/ipv4/tcp_rmem_def
chown system system /sys/kernel/ipv4/tcp_rmem_max
chown root radio /proc/cmdline
# Define TCP buffer sizes for various networks
# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208
setprop net.tcp.buffersize.wifi 524288,1048576,2097152,262144,524288,1048576
setprop net.tcp.buffersize.lte 524288,1048576,2097152,262144,524288,1048576
setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208
setprop net.tcp.buffersize.hspa 4094,87380,262144,4096,16384,262144
setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040
setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680
# Set this property so surfaceflinger is not started by system_init
setprop system_init.startsurfaceflinger 0
class_start core
class_start main
on nonencrypted
class_start late_start
on charger
class_start charger
on property:vold.decrypt=trigger_reset_main
class_reset main
on property:vold.decrypt=trigger_load_persist_props
load_persist_props
on property:vold.decrypt=trigger_post_fs_data
trigger post-fs-data
on property:vold.decrypt=trigger_restart_min_framework
class_start main
on property:vold.decrypt=trigger_restart_framework
class_start main
class_start late_start
on property:vold.decrypt=trigger_shutdown_framework
class_reset late_start
class_reset main
## Daemon processes to be run by init.
##
service ueventd /sbin/ueventd
class core
critical
#service console /system/bin/sh
# class core
# console
# disabled
# user shell
# group log
service console /system/bin/sh /dev/ttyS0
class core
console
on property:ro.debuggable=1
start console
# adbd is controlled via property triggers in init.<platform>.usb.rc
service adbd /sbin/adbd
class core
disabled
# adbd on at boot in emulator
on property:ro.kernel.qemu=1
start adbd
service servicemanager /system/bin/servicemanager
class core
user system
group system
critical
onrestart restart zygote
onrestart restart media
onrestart restart surfaceflinger
onrestart restart drm
service vold /system/bin/vold
class core
socket vold stream 0660 root mount
ioprio be 2
service netd /system/bin/netd
class main
socket netd stream 0660 root system
socket dnsproxyd stream 0660 root inet
socket mdns stream 0660 root system
service debuggerd /system/bin/debuggerd
class main
service surfaceflinger /system/bin/surfaceflinger
class main
user system
group graphics
onrestart restart zygote
service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
class main
socket zygote stream 660 root system
onrestart write /sys/android_power/request_state wake
onrestart write /sys/power/state on
onrestart restart media
onrestart restart netd
service drm /system/bin/drmserver
class main
user drm
group drm system inet drmrpc sdcard_r
service media /system/bin/mediaserver
class main
user media
group audio camera inet net_bt net_bt_admin net_bw_acct drmrpc sdcard_rw media_rw
ioprio rt 4
service bootanim /system/bin/bootanimation
class main
user graphics
group graphics
disabled
oneshot
service dbus /system/bin/dbus-daemon --system --nofork
class main
socket dbus stream 660 bluetooth bluetooth
user bluetooth
group bluetooth net_bt_admin
service bluetoothd /system/bin/bluetoothd -n
class main
socket bluetooth stream 660 bluetooth bluetooth
socket dbus_bluetooth stream 660 bluetooth bluetooth
# init.rc does not yet support applying capabilities, so run as root and
# let bluetoothd drop uid to bluetooth with the right linux capabilities
group bluetooth net_bt_admin misc
disabled
service installd /system/bin/installd
class main
socket installd stream 600 system system
service flash_recovery /system/etc/install-recovery.sh
class main
oneshot
service racoon /system/bin/racoon
class main
socket racoon stream 600 system system
# IKE uses UDP port 500. Racoon will setuid to vpn after binding the port.
group vpn net_admin inet
disabled
oneshot
service mtpd /system/bin/mtpd
class main
socket mtpd stream 600 system system
user vpn
group vpn net_admin inet net_raw
disabled
oneshot
service keystore /system/bin/keystore /data/misc/keystore
class main
user keystore
group keystore drmrpc
socket keystore stream 666
service dumpstate /system/bin/dumpstate -s
class main
socket dumpstate stream 0660 shell log
disabled
oneshot
service sshd /system/bin/start-ssh
class main
disabled
service mdnsd /system/bin/mdnsd
class main
user mdnsr
group inet net_raw
socket mdnsd stream 0660 mdnsr inet
disabled
oneshot
service dhcpcd_wlan0 /system/bin/dhcpcd -aABKL
class main
disabled
oneshot
service dhcpcd_p2p /system/bin/dhcpcd -aABKL
class main
disabled
oneshot
service dhcpcd_bnep0 /system/bin/dhcpcd -ABKL
class main
disabled
oneshot
service dhcpcd_eth /system/bin/dhcpcd -ABKL
class main
disabled
oneshot
service iprenew_wlan0 /system/bin/dhcpcd -n
class main
disabled
oneshot
service iprenew_p2p /system/bin/dhcpcd -n
class main
disabled
oneshot
service iprenew_bnep0 /system/bin/dhcpcd -n
class main
disabled
oneshot
service iprenew_eth /system/bin/dhcpcd -n
class main
disabled
oneshot
service preinstall /system/bin/busybox sh /system/bin/preinstall.sh
user root
group root
disabled
oneshot
on property:sys.boot_completed=1
start preinstall
# datarestore b
on property:sys.restoresystem=1
# exec /system/bin/stop
# datarestore l
# datarestore r
# exec /system/bin/reboot
An other point I just find, I see on internet that the mount command have an entry for /data, but I see nothing in my case :
Code:
rootfs / rootfs rw 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/dev/block/nandd /system ext4 ro,nodev,noatime,user_xattr,barrier=0,data=ordered 0 0
/dev/block/nandh /cache ext4 rw,nosuid,nodev,noatime,user_xattr,barrier=0,data=ordered 0 0
/dev/block/vold/93:72 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437
,iocharset=ascii,shortname=mixed,utf8,errors=continue 0 0
/dev/block/vold/93:72 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=
cp437,iocharset=ascii,shortname=mixed,utf8,errors=continue 0 0
tmpfs /mnt/sdcard/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0

That explains why you can't install apps. When you install an application on android, it's installed in /data, which is a mount point of the internal memory. I think you have a problem with that, not just with the sdcard. and as I can see from the log you pasted, the sdcard is mounted here /dev/block/vold/93:72 /mnt/sdcard ...
And
/dev/block/nandd /system ext4 ro,nodev,noatime,user_xattr,barrier=0,data=ordered 0 0
/dev/block/nandh /cache ext4 rw,nosuid,nodev,noatime,user_xattr,barrier=0,data=ordered 0 0
it seems that one partition in /dev/block/* is the data partition. you can find out if you check the sizes with the df -h command.
I don't see anywhere in init.rc the mount command for the /data partition, I'm sure it's in another file. check the files from main directory, where init.rc is. Just the files, don't check in any directory. Maybe we'll get at the bottom of this!

Related

Cube U9GT2 / Easypad 970 ROMs --- Jellybean mods

RK2918: Easypix Easypad 970 / Magic Cube U9GT2 >>> ROM and More <<<
4----------------------------------------
Easypad970/CubeU9GT2 Jellybean 1.2
Download new link
new features:
-wallpaper and voice search included
-camera updated to 4.2
known issue:
- no video recording
3----------------------------------------
Easypad970/CubeU9GT2 Jellybean 1.1
new features:
-increasing userdata for app installation from 1 to 2 GB, special thanks to 900supersporter for the help
- supercharged(patched) services. jar for speed improvements
- and the scripts from zeppelinrox supercharger for an extra speed kick(only for user, who likes to play with options, details below)
Special thanks to zeppelinrox for the supercharger from xda
How to use zeppelinrox supercharger script for a extra speed kick:
1.) unpack Download ,copy zeppelinrox supercharger scripts with with the busybox directory to microSD
2.) After installation of the ROM, you can beginn any time to run the supercharger scripts either Testversion 6 or 9.
3.) with Scriptmanager app you can run as superuser(su) on of the two alternative scripts
4.) but first run with scriptmanager as superuser the busybox script busybox_v1.19.4_wraithdu_installer_v14.sh
5.) Then run supercharger script, first time you need not much to decide,
6.) Very important: When the Script is ready, you have to reboot into cwm
7.) wipe cache, dalvik and fix permissions
8.) reboot and ready, you rom will be 100% supercharged
If you run it second time or more, than you have manual to decide, what you want to do, you can try everything, but sometimes the result could be a bit unstable. Then you have to try it again.
ROM Installation:
Here comes the how to install an unpacked ROM, means 5 img files flashing with the RKtool on your tablet. (Standard stock rom is only one img flashed with the RKbatchtool)
1. unzip the 7zip file, inside you find the unpacked rom deeper in the ROM directory and the MoageRktool in \u9gt2 Jellybean ROM 1.0 directory
2. Set your tablet with pressing the volume- and the power button into flash mode
3. Connect your tablet to pc, if your battery was before under 50% better plug the power supply cable too.
4. If you have never flashed a stock rom, you need to install at first the rk29xx device driver for your windows version 32 or 64 bit. You get them here on freaktab with the finless u9gt2 roms, from your tablets homepage or from many other sites in the internet with instructions to install
5. With installed drivers start the MoageRktool, in the bottom line you read 'Found RKandroid Loader Rock Usb', if not go back to step 2.
6. Press Erease IDB, you must wait on the positive message that the job is done
7. Check all boxes except of backup: Loader, Parameter, Misc, Kernel, Boot, Recovery and System have to be checked
8. Then flash the ROM into nand with the Run button
9. Finally you got a done message, hopefully without failure and
10. The ROM starts in the CWM (clockwordmod)
11. Press only power button to reboot
12. First start of the ROM on your tablet will begin, takes about 5 minutes and not more than 10
13. Ready - make your first step into androids world of the Custom ROMs
{
"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"
}
Hopefully I forgot nothing.
JDfense
2---------------------------------
Easypad970/Cube09GT2 Jellybean 1.0
changedfeatures:
--- finally ext4 system rw possible
--- and changed some apps
special thanks to Oma's Jellybean and moage Jeallybean ROMs and for the help of 900supersport from freaktab
stevemp&JDfense
1----------------------------------------------------------------------
Moage.com had released the first Jellybean for our tablet. It is fast and stable chinese ROM.
We decide to change some things to improve that ROM.
Here comes the first Version as a result of our cooperation:
Moage-ext4-cwm Jellybean 0.9
http://www.mediafire.com/?2btmml3aacppuq2
Features:
---fast rom, better fasten your seatbelts
---ext4
---cwm5.5.04(thanks to http://www.slatedroid.com/topic/3351...or-cube-u9gt2/ )
---built.prop with some tweaks for speed and changed for western europe
---with Google Play, jetaudio basic, ebookdroid, TuneIn radio and the awesome hackers keyboard with english and german Dictionary
---took out most of the chinese apps and not useful things
recommended:
Before flashing take out external sd.
known issues:
---After the first boot you maybe have to format Nand-flash once. After that it works all fine- hopefully.
Now have fun.
stevemp & JDfense
free place
Sent from my RubiX NonSense FINAL using Tapatalk 2
I want a new tablet!
I need to find an rk2918 tablet to try it.
steemp
good luck in the new thread for the fantastic couple.
I'm really interested in contribute
Sent from Master-G M900HC mentally push.
DaremoS said:
good luck in the new thread for the fantastic couple.
I'm really interested in contribute
Sent from Master-G M900HC mentally push.
Click to expand...
Click to collapse
Check in DaremoS. It will be like old times.
First change your master rk2918 kernel into our moage rom and lets see how this jellybean works. After that we are waiting for your tweaks.:highfive:
JDfense:angel:
USB Modem Or Data Card support
I was trying with 3g usb dongle but it is crashing at 'mobile network'..
kavena78 said:
I was trying with 3g usb dongle but it is crashing at 'mobile network'..
Click to expand...
Click to collapse
Sorry, I don't know which 3g stick would work. All I know is, that you should plug it in otg-usb port.
Edit:
I forgot to mention, that I have taken out the phone.apk, because of the extra battery consumption.
Try first the original moage rom, here
http://www.ex.ua/view_storage/121970404347
If your 3g then work, we find a way to add the phone.apk.
JDfense
Could you please tell me the difference between this one and Renegade?
sw6lee said:
Could you please tell me the difference between this one and Renegade?
Click to expand...
Click to collapse
I had no look inside the renegade rom so far, but afaik it is a nice and responsive rom. You have to compare for yourself or is there a special question?
JDfense
i have trouble with youtube, it's always FC.
and some app i move to nand flash, when i reboot, it's not show in home. Can you help me, please....
Sorry my bad English
JDfense said:
I had no look inside the renegade rom so far, but afaik it is a nice and responsive rom. You have to compare for yourself or is there a special question?
JDfense
Click to expand...
Click to collapse
Nope, I was just too lazy to try, because then I have to restore everything, and takes a lot of time..haha
I'll try some time this weekend.
Thanks
ducanh2992 said:
i have trouble with youtube, it's always FC.
and some app i move to nand flash, when i reboot, it's not show in home. Can you help me, please....
Sorry my bad English
Click to expand...
Click to collapse
Sorry ducan, I have no problem with youtube. I suggest, you uninstall youtube and install again.
Pushing apps on sdcard works not with all apps. Some apps don't like it.:angel:
JDfense
JDfense said:
Sorry ducan, I have no problem with youtube. I suggest, you uninstall youtube and install again.
Pushing apps on sdcard works not with all apps. Some apps don't like it.:angel:
JDfense
Click to expand...
Click to collapse
Can you teach me to mod the rom? I want to mod the moage new rom. Thank you so much!
modding rk2918
ducanh2992 said:
Can you teach me to mod the rom? I want to mod the moage new rom. Thank you so much!
Click to expand...
Click to collapse
Ok, you have to work in Linux.
boot.img is a compressed file with a header(8 bytes) and footer(crc)
mkdir boot and copy boot.img to boot directory.
dd if=boot.img of=bootimg.gz skip=8 bs=1 count=30000000
This strips the header off.
gunzip bootimg.gz
This unpacks the bootimg.gz, make your mods now. Delete boot.img and bootimg.gz.
You need to reset dates after mods.
sudo find . -exec touch -d "1970-01-01 01:00" {} \;
Pack files back into newboot.gz.
sudo find . ! -name "."|sort|cpio -oa -H newc|gzip -n >../newboot.gz
Add crc so it will boot.
sudo ./rkcrc -k newboot.gz newboot.img
recovery.img is done the same way.
System image can be an ext3 or ext4. Mount image to modify files.
mkdir tmp and mount system.img to tmp.
sudo mount -t ext4 -o loop system.img tmp
Change to tmp directory and make your mods. Then unmount system.img
sudo umount tmp
This should get you started on modding.
stevemp
Hey guyssss I just ordered Note II !
Felt like letting you know that I bought a phone+tablet(phablet)
Can't wait to get it, sandy kinda slowed down my order... Let's see when I get it.
Very exited and broke hahah
Sent from my myTouch_4G_Slide using Tapatalk 2
ducanh2992 said:
Can you teach me to mod the rom? I want to mod the moage new rom. Thank you so much!
Click to expand...
Click to collapse
I want to add something to steves tutorial start.
If you have no experiences with linux, then you need some time to fight with the right system in linux.
On some days you would like to push your linux system out of the window.:cyclops:
That was my experience, when I try to start with modding in linux. Last time I checked, I have still trouble with working in linux, but it will be day by day more fun.
JDfense
ducanh2992 said:
Can you teach me to mod the rom? I want to mod the moage new rom. Thank you so much!
Click to expand...
Click to collapse
heart_crafter said:
Hey guyssss I just ordered Note II !
Felt like letting you know that I bought a phone+tablet(phablet)
Can't wait to get it, sandy kinda slowed down my order... Let's see when I get it.
Very exited and broke hahah
Sent from my myTouch_4G_Slide using Tapatalk 2
Click to expand...
Click to collapse
Our original testpilot seems to talk in riddles again. Could someone call the doctor?:angel:
JDfense
heart_crafter said:
Hey guyssss I just ordered Note II !
Felt like letting you know that I bought a phone+tablet(phablet)
Can't wait to get it, sandy kinda slowed down my order... Let's see when I get it.
Very exited and broke hahah
Sent from my myTouch_4G_Slide using Tapatalk 2
Click to expand...
Click to collapse
Nice, enjoy your new phablet. :highfive:
stevemp
init.rc
Explanation of init.rc in boot.img and recovery.img
Android Init Language
The Android Init Language consists of four broad classes of statements:
Actionn
Commands
Services
Options
The language syntax includes the following conventions:
All classes are line-oriented and consist of tokens separated by whitespace. c-style backslash escapes may be used to insert whitespace into a token. Double quotes may also be used to prevent whitespace from breaking text into multiple tokens. A backslash
appearing as the last character on a line is used for line-folding.
Lines that start with a # (leading whitespace allowed) are comments.
Actions and Services implicitly declare new sections. All commands or options belong to the section most recently declared. Commands or options before the first section are ignored.
Actions and Services have unique names. If a second Action or Service is declared with the same name as an existing one, it is ignored as an error.
Actions
Actions are named sequences of commands. Actions have a trigger used to determine when the action should occur. When an event occurs which matches an action's trigger, that action is added to the tail of a to-be-executed queue (unless it is already on the queue).
Each action in the queue is dequeued in sequence. Each command in an action is executed in sequence. Init handles other activities (such as, device creation/destruction, property setting, process restarting) "between" the execution of the commands in activities.
Actions take the form of:
on <trigger>
<command>
<command>
<command>
Services
Services are programs that init launches and (optionally) restarts when they exit.
Services take the form of:
service <name> <pathname> [ <argument> ]*
<option>
<option>
...
Options
Options are modifiers to services that affect how and when init runs a service. Options are described in the table below:
Option Description
disabled This service will not automatically start with its class. It must be explicitly started by name.
socket <type> <name> <perm> [ <user> [ <group> ] ] Create a unix domain socket named /dev/socket/<name> and pass its fd to the launched process. Valid <type> values include dgram and stream. user and group default to 0.
user <username> Change to username before exec'ing this service. Currently defaults to root.
group <groupname> [ <groupname> ]* Change to groupname before exec'ing this service. Additional groupnames beyond the first, which is required, are used to set additional groups of the process (with setgroups()). Currently defaults to root.
capability [ <capability> ]+ Set linux capability before exec'ing this service
oneshot Do not restart the service when it exits.
class <name> Specify a class name for the service. All services in a named class must start and stop together. A service is considered of class "default" if one is not specified via the class option.
Triggers
Triggers are strings used to match certain kinds of events that cause an action to occur.
Trigger Description
boot This is the first trigger that occurs when init starts (after /init.conf is loaded).
<name>=<value> Triggers of this form occur when the property <name> is set to the specific value <value>.
device-added-<path>
device-removed-<path> Triggers of these forms occur when a device node is added or removed.
service-exited-<name> Triggers of this form occur when the specified service exits.
Commands
Command Description
exec <path> [ <argument> ]* Fork and execute a program (<path>). This will block until the program completes execution. Try to avoid exec. Unlike the builtin commands, it runs the risk of getting init "stuck".
export <name> <value> Set the environment variable <name> equal to <value> in the global environment (which will be inherited by all processes started after this command is executed).
ifup <interface> Bring the network interface <interface> online.
import <filename> Parse an init config file, extending the current configuration.
hostname <name> Set the host name.
class_start <serviceclass> Start all services of the specified class if they are not already running.
class_stop <serviceclass> Stop all services of the specified class if they are currently running.
domainname <name> Set the domain name.
insmod <path> Install the module at <path>.
mkdir <path> Make a directory at <path>.
mount <type> <device> <dir> [ <mountoption> ]* Attempt to mount the named device at the directory <dir> <device>. This may be of the form [email protected] to specify a mtd block device by name.
setkey - currenlty undefined -
setprop <name> <value> Set system property <name> to <value>.
setrlimit <resource> <cur> <max> Set the rlimit for a resource.
start <service> Start a service running if it is not already running.
stop <service> Stop a service from running if it is currently running.
symlink <target> <path> Create a symbolic link at <path> with the value <target>.
write <path> <string> [ <string> ]* Open the file at <path> and write one or more strings to it with write(2).
Properties
Init updates some system properties to provide some insight into
what it's doing:
Property Description
init.action Equal to the name of the action currently being executed or "" if none.
init.command Equal to the command being executed or "" if none.
init.svc.<name> State of a named service ("stopped", "running", or "restarting").
---------- Post added at 12:12 PM ---------- Previous post was at 12:08 PM ----------
JDfense_Moage_ext4_CWM boot.img init.rc
Code:
# Copyright (C) 2012 The Android Open Source Project
#
# IMPORTANT: Do not create world writable files or directories.
# This is a common source of Android security bugs.
#
import /init.${ro.hardware}.rc
import /init.trace.rc
on early-init
# Set init and its forked children's oom_adj.
write /proc/1/oom_adj -16
start ueventd
# create mountpoints
mkdir /mnt 0775 root system
on init
sysclktz 0
loglevel 3
# setup the global environment
export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
export LD_LIBRARY_PATH /vendor/lib:/system/lib
export ANDROID_BOOTLOGO 1
export ANDROID_ROOT /system
export ANDROID_ASSETS /system/app
export ANDROID_DATA /data
export ASEC_MOUNTPOINT /mnt/asec
export LOOP_MOUNTPOINT /mnt/obb
export BOOTCLASSPATH /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar
# Backward compatibility
symlink /system/etc /etc
symlink /sys/kernel/debug /d
# Right now vendor lives on the same filesystem as system,
# but someday that may change.
symlink /system/vendor /vendor
# create mountpoints
mkdir /mnt/sdcard 0000 system system
# Create cgroup mount point for cpu accounting
mkdir /acct
mount cgroup none /acct cpuacct
mkdir /acct/uid
mkdir /system
mkdir /data 0771 system system
mkdir /cache 0770 system cache
mkdir /config 0500 root root
# Directory for putting things only root should see.
mkdir /mnt/secure 0700 root root
# Directory for staging bindmounts
mkdir /mnt/secure/staging 0700 root root
# Directory-target for where the secure container
# imagefile directory will be bind-mounted
mkdir /mnt/secure/asec 0700 root root
# Secure container public mount points.
mkdir /mnt/asec 0700 root system
mount tmpfs tmpfs /mnt/asec mode=0755,gid=1000
# Filesystem image public mount points.
mkdir /mnt/obb 0700 root system
mount tmpfs tmpfs /mnt/obb mode=0755,gid=1000
write /proc/sys/kernel/panic_on_oops 1
write /proc/sys/kernel/hung_task_timeout_secs 0
write /proc/cpu/alignment 4
write /proc/sys/kernel/sched_latency_ns 10000000
write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000
write /proc/sys/kernel/sched_compat_yield 1
write /proc/sys/kernel/sched_child_runs_first 0
write /proc/sys/kernel/randomize_va_space 2
write /proc/sys/kernel/kptr_restrict 2
write /proc/sys/kernel/dmesg_restrict 1
write /proc/sys/vm/mmap_min_addr 32768
write /proc/sys/kernel/sched_rt_runtime_us 950000
write /proc/sys/kernel/sched_rt_period_us 1000000
# Create cgroup mount points for process groups
mkdir /dev/cpuctl
mount cgroup none /dev/cpuctl cpu
chown system system /dev/cpuctl
chown system system /dev/cpuctl/tasks
chmod 0660 /dev/cpuctl/tasks
write /dev/cpuctl/cpu.shares 1024
write /dev/cpuctl/cpu.rt_runtime_us 950000
write /dev/cpuctl/cpu.rt_period_us 1000000
mkdir /dev/cpuctl/apps
chown system system /dev/cpuctl/apps/tasks
chmod 0666 /dev/cpuctl/apps/tasks
write /dev/cpuctl/apps/cpu.shares 1024
write /dev/cpuctl/apps/cpu.rt_runtime_us 800000
write /dev/cpuctl/apps/cpu.rt_period_us 1000000
mkdir /dev/cpuctl/apps/bg_non_interactive
chown system system /dev/cpuctl/apps/bg_non_interactive/tasks
chmod 0666 /dev/cpuctl/apps/bg_non_interactive/tasks
# 5.0 %
write /dev/cpuctl/apps/bg_non_interactive/cpu.shares 52
write /dev/cpuctl/apps/bg_non_interactive/cpu.rt_runtime_us 700000
write /dev/cpuctl/apps/bg_non_interactive/cpu.rt_period_us 1000000
# Allow everybody to read the xt_qtaguid resource tracking misc dev.
# This is needed by any process that uses socket tagging.
chmod 0644 /dev/xt_qtaguid
on fs
insmod /rk29xxnand_ko.ko
# mount mtd partitions
mount ext4 [email protected] /system ro noatime nodiratime
mount ext4 [email protected] /data noatime nodiratime nosuid nodev
mount ext4 [email protected] /cache noatime nodiratime nosuid nodev
on post-fs
# once everything is setup, no need to modify /
mount rootfs rootfs / ro remount
# We chown/chmod /cache again so because mount is run as root + defaults
chown system cache /cache
chmod 0770 /cache
# This may have been created by the recovery system with odd permissions
chown system cache /cache/recovery
chmod 0770 /cache/recovery
#change permissions on vmallocinfo so we can grab it from bugreports
chown root log /proc/vmallocinfo
chmod 0440 /proc/vmallocinfo
#change permissions on kmsg & sysrq-trigger so bugreports can grab kthread stacks
chown root system /proc/kmsg
chmod 0440 /proc/kmsg
chown root system /proc/sysrq-trigger
chmod 0220 /proc/sysrq-trigger
# create the lost+found directories, so as to enforce our permissions
mkdir /cache/lost+found 0770 root root
on post-fs-data
# We chown/chmod /data again so because mount is run as root + defaults
chown system system /data
chmod 0771 /data
# Create dump dir and collect dumps.
# Do this before we mount cache so eventually we can use cache for
# storing dumps on platforms which do not have a dedicated dump partition.
mkdir /data/dontpanic 0750 root log
# Collect apanic data, free resources and re-arm trigger
copy /proc/apanic_console /data/dontpanic/apanic_console
chown root log /data/dontpanic/apanic_console
chmod 0640 /data/dontpanic/apanic_console
copy /proc/apanic_threads /data/dontpanic/apanic_threads
chown root log /data/dontpanic/apanic_threads
chmod 0640 /data/dontpanic/apanic_threads
write /proc/apanic_console 1
# create basic filesystem structure
mkdir /data/misc 01771 system misc
mkdir /data/misc/bluetoothd 0770 bluetooth bluetooth
mkdir /data/misc/bluetooth 0770 system system
mkdir /data/misc/keystore 0700 keystore keystore
mkdir /data/misc/keychain 0771 system system
mkdir /data/misc/vpn 0770 system vpn
mkdir /data/misc/systemkeys 0700 system system
# give system access to wpa_supplicant.conf for backup and restore
mkdir /data/misc/wifi 0770 wifi wifi
chmod 0660 /data/misc/wifi/wpa_supplicant.conf
mkdir /data/local 0751 root root
# For security reasons, /data/local/tmp should always be empty.
# Do not place files or directories in /data/local/tmp
mkdir /data/local/tmp 0771 shell shell
mkdir /data/data 0771 system system
mkdir /data/app-private 0771 system system
mkdir /data/app-asec 0700 root root
mkdir /data/app 0771 system system
mkdir /data/property 0700 root root
mkdir /data/ssh 0750 root shell
mkdir /data/ssh/empty 0700 root root
# create dalvik-cache, so as to enforce our permissions
mkdir /data/dalvik-cache 0771 system system
# create resource-cache and double-check the perms
mkdir /data/resource-cache 0771 system system
chown system system /data/resource-cache
chmod 0771 /data/resource-cache
# create the lost+found directories, so as to enforce our permissions
mkdir /data/lost+found 0770 root root
# create directory for DRM plug-ins - give drm the read/write access to
# the following directory.
mkdir /data/drm 0770 drm drm
# If there is no fs-post-data action in the init.<device>.rc file, you
# must uncomment this line, otherwise encrypted filesystems
# won't work.
# Set indication (checked by vold) that we have finished this action
#setprop vold.post_fs_data_done 1
chown system system /sys/class/android_usb/android0/f_mass_storage/lun/file
chmod 0660 /sys/class/android_usb/android0/f_mass_storage/lun/file
chown system system /sys/class/android_usb/android0/f_rndis/ethaddr
chmod 0660 /sys/class/android_usb/android0/f_rndis/ethaddr
chmod 0777 /sys/module/gt801_ts/parameters/debug1
chmod 0777 /sys/module/ft5306_ts/parameters/debug1
chmod 0777 /sys/module/ct360_ts/parameters/debug1
chmod 0777 /sys/module/goodix_touch_82x/parameters/debug1
on boot
# basic network init
ifup lo
hostname localhost
domainname localdomain
setprop UserVolumeLabel "U9GT2"
# set RLIMIT_NICE to allow priorities from 19 to -20
setrlimit 13 40 40
# Memory management. Basic kernel parameters, and allow the high
# level system server to be able to adjust the kernel OOM driver
# parameters to match how it is managing things.
write /proc/sys/vm/overcommit_memory 1
write /proc/sys/vm/min_free_order_shift 4
chown root system /sys/module/lowmemorykiller/parameters/adj
chmod 0664 /sys/module/lowmemorykiller/parameters/adj
chown root system /sys/module/lowmemorykiller/parameters/minfree
chmod 0664 /sys/module/lowmemorykiller/parameters/minfree
# Tweak background writeout
write /proc/sys/vm/dirty_expire_centisecs 200
write /proc/sys/vm/dirty_background_ratio 5
# Permissions for System Server and daemons.
chown radio system /sys/android_power/state
chown radio system /sys/android_power/request_state
chown radio system /sys/android_power/acquire_full_wake_lock
chown radio system /sys/android_power/acquire_partial_wake_lock
chown radio system /sys/android_power/release_wake_lock
chown system system /sys/power/state
chown system system /sys/power/wakeup_count
chown radio system /sys/power/wake_lock
chown radio system /sys/power/wake_unlock
chmod 0660 /sys/power/state
chmod 0660 /sys/power/wake_lock
chmod 0660 /sys/power/wake_unlock
chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_rate
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/timer_rate
chown system system /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
chown system system /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
chown system system /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
chown system system /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
chown system system /sys/devices/system/cpu/cpufreq/interactive/boost
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boost
chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse
chown system system /sys/devices/system/cpu/cpufreq/interactive/input_boost
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/input_boost
# Assume SMP uses shared cpufreq policy for all CPUs
chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
chown system system /sys/class/timed_output/vibrator/enable
chown system system /sys/class/leds/keyboard-backlight/brightness
chown system system /sys/class/leds/lcd-backlight/brightness
chown system system /sys/class/leds/button-backlight/brightness
chown system system /sys/class/leds/jogball-backlight/brightness
chown system system /sys/class/leds/red/brightness
chown system system /sys/class/leds/green/brightness
chown system system /sys/class/leds/blue/brightness
chown system system /sys/class/leds/red/device/grpfreq
chown system system /sys/class/leds/red/device/grppwm
chown system system /sys/class/leds/red/device/blink
chown system system /sys/class/leds/red/brightness
chown system system /sys/class/leds/green/brightness
chown system system /sys/class/leds/blue/brightness
chown system system /sys/class/leds/red/device/grpfreq
chown system system /sys/class/leds/red/device/grppwm
chown system system /sys/class/leds/red/device/blink
chown system system /sys/class/timed_output/vibrator/enable
chown system system /sys/module/sco/parameters/disable_esco
chown system system /sys/kernel/ipv4/tcp_wmem_min
chown system system /sys/kernel/ipv4/tcp_wmem_def
chown system system /sys/kernel/ipv4/tcp_wmem_max
chown system system /sys/kernel/ipv4/tcp_rmem_min
chown system system /sys/kernel/ipv4/tcp_rmem_def
chown system system /sys/kernel/ipv4/tcp_rmem_max
chown root radio /proc/cmdline
# Define TCP buffer sizes for various networks
# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208
setprop net.tcp.buffersize.wifi 524288,1048576,2097152,262144,524288,1048576
setprop net.tcp.buffersize.lte 524288,1048576,2097152,262144,524288,1048576
setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208
setprop net.tcp.buffersize.hspa 4094,87380,262144,4096,16384,262144
setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040
setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680
# Set this property so surfaceflinger is not started by system_init
setprop system_init.startsurfaceflinger 0
class_start core
class_start main
on nonencrypted
class_start late_start
on charger
class_start charger
on property:vold.decrypt=trigger_reset_main
class_reset main
on property:vold.decrypt=trigger_load_persist_props
load_persist_props
on property:vold.decrypt=trigger_post_fs_data
trigger post-fs-data
on property:vold.decrypt=trigger_restart_min_framework
class_start main
on property:vold.decrypt=trigger_restart_framework
class_start main
class_start late_start
on property:vold.decrypt=trigger_shutdown_framework
class_reset late_start
class_reset main
# Used to disable USB when switching states
on property:sys.usb.config=none
stop adbd
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/bDeviceClass 0
setprop sys.usb.state ${sys.usb.config}
# adb only USB configuration
# This should only be used during device bringup
# and as a fallback if the USB manager fails to set a standard configuration
on property:sys.usb.config=adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 0bb4
write /sys/class/android_usb/android0/idProduct 0c01
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}
# USB accessory configuration
on property:sys.usb.config=accessory
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 18d1
write /sys/class/android_usb/android0/idProduct 2d00
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
# USB accessory configuration, with adb
on property:sys.usb.config=accessory,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 18d1
write /sys/class/android_usb/android0/idProduct 2d01
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}
# Used to set USB configuration at boot and to switch the configuration
# when changing the default configuration
on property:persist.sys.usb.config=*
setprop sys.usb.config ${persist.sys.usb.config}
## Daemon processes to be run by init.
##
#enable init.d
service sysinit /system/bin/sysinit
class core
oneshot
service ueventd /sbin/ueventd
class core
critical
service console /system/bin/sh
class core
console
disabled
user shell
group log
on property:ro.debuggable=1
start console
# adbd is controlled via property triggers in init.<platform>.usb.rc
service adbd /sbin/adbd
class core
disabled
# adbd on at boot in emulator
on property:ro.kernel.qemu=1
start adbd
# This property trigger has added to imitiate the previous behavior of "adb root".
# The adb gadget driver used to reset the USB bus when the adbd daemon exited,
# and the host side adb relied on this behavior to force it to reconnect with the
# new adbd instance after init relaunches it. So now we force the USB bus to reset
# here when adbd sets the service.adb.root property to 1. We also restart adbd here
# rather than waiting for init to notice its death and restarting it so the timing
# of USB resetting and adb restarting more closely matches the previous behavior.
on property:service.adb.root=1
write /sys/class/android_usb/android0/enable 0
restart adbd
write /sys/class/android_usb/android0/enable 1
service servicemanager /system/bin/servicemanager
class core
user system
group system
critical
onrestart restart zygote
onrestart restart media
onrestart restart surfaceflinger
onrestart restart drm
service vold /system/bin/vold
class core
socket vold stream 0660 root mount
ioprio be 2
service netd /system/bin/netd
class main
socket netd stream 0660 root system
socket dnsproxyd stream 0660 root inet
socket mdns stream 0660 root system
service debuggerd /system/bin/debuggerd
class main
service ril-daemon /system/bin/rild
class main
socket rild stream 660 root radio
socket rild-debug stream 660 radio system
user root
group radio cache inet misc audio sdcard_rw log
service surfaceflinger /system/bin/surfaceflinger
class main
user system
group graphics
onrestart restart zygote
service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
class main
socket zygote stream 660 root system
onrestart write /sys/android_power/request_state wake
onrestart write /sys/power/state on
onrestart restart media
onrestart restart netd
service drm /system/bin/drmserver
class main
user drm
group drm system inet drmrpc sdcard_r
service media /system/bin/mediaserver
class main
user media
group audio camera inet net_bt net_bt_admin net_bw_acct drmrpc
ioprio rt 4
service bootanim /system/bin/bootanimation
class main
user graphics
group graphics
disabled
oneshot
service dbus /system/bin/dbus-daemon --system --nofork
class main
socket dbus stream 660 bluetooth bluetooth
user bluetooth
group bluetooth net_bt_admin
service bluetoothd /system/bin/bluetoothd -n
class main
socket bluetooth stream 660 bluetooth bluetooth
socket dbus_bluetooth stream 660 bluetooth bluetooth
# init.rc does not yet support applying capabilities, so run as root and
# let bluetoothd drop uid to bluetooth with the right linux capabilities
group bluetooth net_bt_admin misc
disabled
service installd /system/bin/installd
class main
socket installd stream 600 system system
service flash_recovery /system/etc/install-recovery.sh
class main
oneshot
service racoon /system/bin/racoon
class main
socket racoon stream 600 system system
# IKE uses UDP port 500. Racoon will setuid to vpn after binding the port.
group vpn net_admin inet
disabled
oneshot
service mtpd /system/bin/mtpd
class main
socket mtpd stream 600 system system
user vpn
group vpn net_admin inet net_raw
disabled
oneshot
service keystore /system/bin/keystore /data/misc/keystore
class main
user keystore
group keystore drmrpc
socket keystore stream 666
service dumpstate /system/bin/dumpstate -s
class main
socket dumpstate stream 0660 shell log
disabled
oneshot
service sshd /system/bin/start-ssh
class main
disabled
service mdnsd /system/bin/mdnsd
class main
user mdnsr
group inet net_raw
socket mdnsd stream 0660 mdnsr inet
disabled
oneshot
service whtest /system/bin/whtest.sh
disabled
oneshot
Mount system.img to modify
mkdir tmp
mount -t ext4 system.img tmp
apps are in /system/app -> add or remove apps here
boot animation is /system/media bootanimation.zip can be changed to whatever you want.
After you finish unmount system.img and flash to your tablet.
umount tmp
Any questions about modding, feel free to ask!
stevemp

[MOD-AKURO] Akuro mod to save your internal memory

EDIT: it's my fault that I didn't test this mod before releasing it to public. after rechecked my init.rc file this afternoon I found that this mod doesn't go along with tipo's current init.d implementation. common install-recovery.sh trick won't work. this mod need init.d implementation which support a2sd scripts execution at boot.
my deep apologize for giving giving you this 'half baked' product and create this 'useless thread' without proper test before release it to public. I'll ask mod to close this thread immediately. the content of 1st thread will be still here. I won't delete it in case if someone want to learn about this mod so that they could use or port it to another device. if you have any question regarding the details about this mod, you can send me a PM or send an email to [email protected].
Tipo has 750 mb /data/partition. enough to install plethora app in your system. however, some of you might thinks that 750mb won't be enough for your apps, especially if you want to install a lot of games which usually more than 20mb. there are already similar method to save our internal memory such as: link2sd, a2sd darktremor, amarullz, and my previous data2sd method. those method is quite popular and I believe you're using one of them now. some of you might also already use my data2sd method which used a script in init.d to mount sdcard ext partition to /data or use my data2sd kernel. however, both that methods have several bugs. in my data2sd kernel, script manager doesnt work. while if you use script in init.d, some 3rd party gps app like ndrive won't work. thats not a big deal if you're using gmaps, but its a lil bit frustrating for me since I hate to use gmaps app. so, I was experimenting with some other script several days ago and find a new method to overcome the bug from my previous method.
in this method, we use similar method with a2sd darktremor and amarullz but its a lot simpler. my method will mount sdcard ext partition on /system/sd then replace the partition on /data/app, /data/dalvik-cache, and /data/data with the one in /system/sd.
PRE-REQUIREMENT
1. a second ext partition on your sdcard. you can choose between ext2/3/4.
2. rooted device. needed to install the mod to your system
3. busybox with symlink installed on your device
4. system with init.d support
first of all, you need to download the file from here
v1.1: http://d-h.st/ski
HOW-TO
1. extract the file into your sdcard
2. copy the file into /system/etc/init.d/
3. create /system/sd directory.
4. reboot.
5. check the log file in /data to check the installation.
in default setting your /data/app and /data/dalvik-cache will be moved into /system/sd. you can also use /system/sd as your /data/data by copy the /data/data content to /system/sd. I highly recommend this tweak installed on a fresh installed rom to efficiently save your internal memory
TERM OF USE AND SHARING:
this thread intent is for sharing. feel free to use, edit, distribute all material inside this thread which came from me. if there any parts of this mod which comes not from me please refer to the original dev I've mentioned in this thread. if want to share it to another forum or modify it you don't have to ask my permission. no need to credits, put links or whatsoever. you'll only need to remember that you should held all the responsibility by using this mod, modify it or distribute it. DO IT WITH YOUR OWN RISK
Click to expand...
Click to collapse
old habbit of reserved stuff...
akuro mod
first, thanks for all your efforts and your willingness to make your expertise available to others. it is much appreciated.
i am attempting to run your mod on a galaxy y duos running technoduos 1.5 with bdsky kernel and stericson busybox. i have fat32 and ext3 partitions on a 32 GB sd card. it is a clean install. I do not have akuro_tweak installed but there is no reference to that in your post.
i have followed your instructions closely but no files are being transferred to either of the external partitions on the insstallation of apps. it looks like the mounting procedure is not working.
i would be grateful for your guidance.
many thanks
This tweak is specified on xperia phones. For duos youll need the one in sgy forum.
Peace be upon you and Allah's mercy and blessings
Does this tweak work on Arc S ?
I tried it , and the log had a note :"you don't have kuro tweak ! please install it to get the best result"
I do have an empty EXT4 partition and a custom kernel that supports init.d , busybox , and EXT4
can you show me the log file? it'll be easier for me if I could see it. theotically it will work on every rom with init.d support. however, there are a lot of method used to implement init.d script and this script might doesn't work as good as we expected in several devices.
This is the log file
==========================
# TWEAK AKURO-LOG FILE #
==========================
in the name of Allah,
the most beneficent,
the most mercifull
==========================
system information:
vendor : SEMC
model : LT18i
ROM : Xperia Ultimate HD™ 3.0.2
running the script...
start at:
03-10-2013 09:09:40
==========================
==========================
# additional notes #
==========================
you don't have kuro tweak!
please install it to get
the best result
==========================
By the way I have 2 files in my init.d folder one of them is yours that start by the same no.
Sent from my LT18i using xda app-developers app
the script isn't executed at boot. it's mostly related with the boot sequence defined in init.rc file. the file is only readable on unlocked bootloader. if you have unlocked bootloader can you give me that file? it's on your root. anyway, the second file is used to check whether if you have kuro tweak installed in your system. you can ignore the message if you doesn't want to use kuro tweak.
on early-init
# Set init and its forked children's oom_adj.
write /proc/1/oom_adj -16
start ueventd
# create mountpoints
mkdir /mnt 0775 root system
on init
sysclktz 0
loglevel 3
# setup the global environment
export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
export LD_LIBRARY_PATH /vendor/lib:/system/lib
export ANDROID_BOOTLOGO 1
export ANDROID_ROOT /system
export ANDROID_ASSETS /system/app
export ANDROID_DATA /data
export ASEC_MOUNTPOINT /mnt/asec
export LOOP_MOUNTPOINT /mnt/obb
export SD_EXT_DIRECTORY /sd-ext
export BOOTCLASSPATH /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/filterfw.jar
# Backward compatibility
symlink /system/etc /etc
symlink /sys/kernel/debug /d
# Right now vendor lives on the same filesystem as system,
# but someday that may change.
symlink /system/vendor /vendor
# Create cgroup mount point for cpu accounting
mkdir /acct
mount cgroup none /acct cpuacct
mkdir /acct/uid
mkdir /system
mkdir /data 0771 system system
mkdir /cache 0770 system cache
mkdir /config 0500 root root
# Directory for putting things only root should see.
mkdir /mnt/secure 0700 root root
# Directory for staging bindmounts
mkdir /mnt/secure/staging 0700 root root
# Directory-target for where the secure container
# imagefile directory will be bind-mounted
mkdir /mnt/secure/asec 0700 root root
# Secure container public mount points.
mkdir /mnt/asec 0700 root system
mount tmpfs tmpfs /mnt/asec mode=0755,gid=1000
# Filesystem image public mount points.
mkdir /mnt/obb 0700 root system
mount tmpfs tmpfs /mnt/obb mode=0755,gid=1000
# SD-EXT
mkdir /sd-ext 0771 system system
symlink /sd-ext /mnt/sd-ext
write /proc/sys/kernel/panic_on_oops 1
write /proc/sys/kernel/hung_task_timeout_secs 0
write /proc/cpu/alignment 4
write /proc/sys/kernel/sched_latency_ns 10000000
write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000
write /proc/sys/kernel/sched_compat_yield 1
write /proc/sys/kernel/sched_child_runs_first 0
write /proc/sys/kernel/randomize_va_space 2
# Create cgroup mount points for process groups
mkdir /dev/cpuctl
mount cgroup none /dev/cpuctl cpu
chown system system /dev/cpuctl
chown system system /dev/cpuctl/tasks
chmod 0777 /dev/cpuctl/tasks
write /dev/cpuctl/cpu.shares 1024
mkdir /dev/cpuctl/fg_boost
chown system system /dev/cpuctl/fg_boost/tasks
chmod 0777 /dev/cpuctl/fg_boost/tasks
write /dev/cpuctl/fg_boost/cpu.shares 1024
mkdir /dev/cpuctl/bg_non_interactive
chown system system /dev/cpuctl/bg_non_interactive/tasks
chmod 0777 /dev/cpuctl/bg_non_interactive/tasks
# 5.0 %
write /dev/cpuctl/bg_non_interactive/cpu.shares 52
# Allow everybody to read the xt_qtaguid resource tracking misc dev.
# This is needed by any process that uses socket tagging.
chmod 0644 /dev/xt_qtaguid
on post-fs
# once everything is setup, no need to modify /
mount rootfs rootfs / ro remount
# We chown/chmod /cache again so because mount is run as root + defaults
chown system cache /cache
chmod 0770 /cache
# This may have been created by the recovery system with odd permissions
mkdir /cache/recovery
chown system cache /cache/recovery
chmod 0770 /cache/recovery
#change permissions on vmallocinfo so we can grab it from bugreports
chown root log /proc/vmallocinfo
chmod 0440 /proc/vmallocinfo
#change permissions on kmsg & sysrq-trigger so bugreports can grab kthread stacks
chown root system /proc/kmsg
chmod 0440 /proc/kmsg
chown root system /proc/sysrq-trigger
chmod 0220 /proc/sysrq-trigger
# create the lost+found directories, so as to enforce our permissions
mkdir /cache/lost+found 0770 root root
on post-fs-data
# We chown/chmod /data again so because mount is run as root + defaults
chown system system /data
chmod 0771 /data
# Create dump dir and collect dumps.
# Do this before we mount cache so eventually we can use cache for
# storing dumps on platforms which do not have a dedicated dump partition.
mkdir /data/dontpanic 0750 root log
# Collect apanic data, free resources and re-arm trigger
copy /proc/apanic_console /data/dontpanic/apanic_console
chown root log /data/dontpanic/apanic_console
chmod 0640 /data/dontpanic/apanic_console
copy /proc/apanic_threads /data/dontpanic/apanic_threads
chown root log /data/dontpanic/apanic_threads
chmod 0640 /data/dontpanic/apanic_threads
write /proc/apanic_console 1
# create basic filesystem structure
mkdir /data/misc 01771 system misc
mkdir /data/misc/bluetoothd 0770 bluetooth bluetooth
mkdir /data/misc/bluetooth 0770 system system
mkdir /data/misc/keystore 0700 keystore keystore
mkdir /data/misc/keychain 0771 system system
mkdir /data/misc/vpn 0770 system vpn
mkdir /data/misc/systemkeys 0700 system system
# give system access to wpa_supplicant.conf for backup and restore
mkdir /data/misc/wifi 0770 wifi wifi
chmod 0660 /data/misc/wifi/wpa_supplicant.conf
mkdir /data/local 0751 root root
mkdir /data/local/tmp 0771 shell shell
mkdir /data/data 0771 system system
mkdir /data/app-private 0771 system system
mkdir /data/app 0771 system system
mkdir /data/property 0700 root root
# create dalvik-cache, so as to enforce our permissions
mkdir /data/dalvik-cache 0771 system system
# create resource-cache and double-check the perms
mkdir /data/resource-cache 0771 system system
chown system system /data/resource-cache
chmod 0771 /data/resource-cache
# create the lost+found directories, so as to enforce our permissions
mkdir /data/lost+found 0770 root root
# create directory for DRM plug-ins - give drm the read/write access to
# the following directory.
mkdir /data/drm 0770 drm drm
# If there is no fs-post-data action in the init.<device>.rc file, you
# must uncomment this line, otherwise encrypted filesystems
# won't work.
# Set indication (checked by vold) that we have finished this action
#setprop vold.post_fs_data_done 1
chown system system /sys/class/android_usb/android0/f_mass_storage/lun/file
chmod 0660 /sys/class/android_usb/android0/f_mass_storage/lun/file
chown system system /sys/class/android_usb/android0/f_rndis/ethaddr
chmod 0660 /sys/class/android_usb/android0/f_rndis/ethaddr
on boot
# basic network init
ifup lo
hostname localhost
domainname localdomain
# set RLIMIT_NICE to allow priorities from 19 to -20
setrlimit 13 40 40
# Memory management. Basic kernel parameters, and allow the high
# level system server to be able to adjust the kernel OOM driver
# paramters to match how it is managing things.
write /proc/sys/vm/overcommit_memory 1
write /proc/sys/vm/min_free_order_shift 4
chown root system /sys/module/lowmemorykiller/parameters/adj
chmod 0664 /sys/module/lowmemorykiller/parameters/adj
chown root system /sys/module/lowmemorykiller/parameters/minfree
chmod 0664 /sys/module/lowmemorykiller/parameters/minfree
# Tweak background writeout
write /proc/sys/vm/dirty_expire_centisecs 200
write /proc/sys/vm/dirty_background_ratio 5
# Permissions for System Server and daemons.
chown radio system /sys/android_power/state
chown radio system /sys/android_power/request_state
chown radio system /sys/android_power/acquire_full_wake_lock
chown radio system /sys/android_power/acquire_partial_wake_lock
chown radio system /sys/android_power/release_wake_lock
chown radio system /sys/power/state
chown radio system /sys/power/wake_lock
chown radio system /sys/power/wake_unlock
chmod 0660 /sys/power/state
chmod 0660 /sys/power/wake_lock
chmod 0660 /sys/power/wake_unlock
chown system system /sys/class/timed_output/vibrator/enable
chown system system /sys/class/leds/keyboard-backlight/brightness
chown system system /sys/class/leds/lcd-backlight/brightness
chown system system /sys/class/leds/button-backlight/brightness
chown system system /sys/class/leds/jogball-backlight/brightness
chown system system /sys/class/leds/red/brightness
chown system system /sys/class/leds/green/brightness
chown system system /sys/class/leds/blue/brightness
chown system system /sys/class/leds/red/device/grpfreq
chown system system /sys/class/leds/red/device/grppwm
chown system system /sys/class/leds/red/device/blink
chown system system /sys/class/leds/red/brightness
chown system system /sys/class/leds/green/brightness
chown system system /sys/class/leds/blue/brightness
chown system system /sys/class/leds/red/device/grpfreq
chown system system /sys/class/leds/red/device/grppwm
chown system system /sys/class/leds/red/device/blink
chown system system /sys/class/timed_output/vibrator/enable
chown system system /sys/module/sco/parameters/disable_esco
chown system system /sys/kernel/ipv4/tcp_wmem_min
chown system system /sys/kernel/ipv4/tcp_wmem_def
chown system system /sys/kernel/ipv4/tcp_wmem_max
chown system system /sys/kernel/ipv4/tcp_rmem_min
chown system system /sys/kernel/ipv4/tcp_rmem_def
chown system system /sys/kernel/ipv4/tcp_rmem_max
chown root radio /proc/cmdline
# Define TCP buffer sizes for various networks
# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208
setprop net.tcp.buffersize.wifi 524288,1048576,2097152,262144,524288,1048576
setprop net.tcp.buffersize.lte 524288,1048576,2097152,262144,524288,1048576
setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208
setprop net.tcp.buffersize.hspa 4094,87380,262144,4096,16384,262144
setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040
setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680
# Set this property so surfaceflinger is not started by system_init
setprop system_init.startsurfaceflinger 0
exec /system/bin/sysinit
class_start core
class_start main
on nonencrypted
class_start late_start
on charger
class_start charger
on property:vold.decrypt=trigger_reset_main
class_reset main
on property:vold.decrypt=trigger_load_persist_props
load_persist_props
on property:vold.decrypt=trigger_post_fs_data
trigger post-fs-data
on property:vold.decrypt=trigger_restart_min_framework
class_start main
on property:vold.decrypt=trigger_restart_framework
class_start main
class_start late_start
on property:vold.decrypt=trigger_shutdown_framework
class_reset late_start
class_reset main
# Used to disable USB when switching states
on property:sys.usb.config=none
stop adbd
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/bDeviceClass 0
setprop sys.usb.state $sys.usb.config
# adb only USB configuration
# This should only be used during device bringup
# and as a fallback if the USB manager fails to set a standard configuration
on property:sys.usb.config=adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 18d1
write /sys/class/android_usb/android0/idProduct D002
write /sys/class/android_usb/android0/functions $sys.usb.config
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state $sys.usb.config
# USB accessory configuration
on property:sys.usb.config=accessory
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 18d1
write /sys/class/android_usb/android0/idProduct 2d00
write /sys/class/android_usb/android0/functions $sys.usb.config
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state $sys.usb.config
# USB accessory configuration, with adb
on property:sys.usb.config=accessory,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 18d1
write /sys/class/android_usb/android0/idProduct 2d01
write /sys/class/android_usb/android0/functions $sys.usb.config
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state $sys.usb.config
# Used to set USB configuration at boot and to switch the configuration
# when changing the default configuration
on propertyersist.sys.usb.config=*
setprop sys.usb.config $persist.sys.usb.config
## Daemon processes to be run by init.
##
service ueventd /sbin/ueventd
class core
critical
service console /system/bin/sh
class core
console
disabled
user shell
group log
on property:ro.debuggable=1
start console
# adbd is controlled via property triggers in init.<platform>.usb.rc
service adbd /sbin/adbd
class core
disabled
# adbd on at boot in emulator
on property:ro.kernel.qemu=1
start adbd
# This property trigger has added to imitiate the previous behavior of "adb root".
# The adb gadget driver used to reset the USB bus when the adbd daemon exited,
# and the host side adb relied on this behavior to force it to reconnect with the
# new adbd instance after init relaunches it. So now we force the USB bus to reset
# here when adbd sets the service.adb.root property to 1. We also restart adbd here
# rather than waiting for init to notice its death and restarting it so the timing
# of USB resetting and adb restarting more closely matches the previous behavior.
on property:service.adb.root=1
write /sys/class/android_usb/android0/enable 0
restart adbd
write /sys/class/android_usb/android0/enable 1
service servicemanager /system/bin/servicemanager
class core
user system
group system
critical
onrestart restart zygote
onrestart restart media
onrestart restart surfaceflinger
onrestart restart drm
service vold /system/bin/vold
class core
socket vold stream 0660 root mount
ioprio be 2
service netd /system/bin/netd
class main
socket netd stream 0660 root system dbus_access
socket dnsproxyd stream 0660 root inet
service debuggerd /system/bin/debuggerd
class main
service ril-daemon /system/bin/rild
class main
socket rild stream 660 root radio
socket rild-debug stream 660 radio system
user root
group radio cache inet misc audio sdcard_rw log dbus_access
service surfaceflinger /system/bin/surfaceflinger
class main
user system
group graphics
onrestart restart zygote
rlimit MEMLOCK 33554432 33554432
service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
class main
socket zygote stream 660 root system
onrestart write /proc/sysrq-trigger c
service drm /system/bin/drmserver
class main
user drm
group system inet drmrpc
service bootanim /system/bin/bootanimation
class main
user graphics
group graphics
disabled
oneshot
service dbus /system/bin/dbus-daemon --system --nofork
class main
socket dbus stream 660 bluetooth bluetooth
socket dbus_ste stream 660 bluetooth dbus_access
user bluetooth
group bluetooth net_bt_admin dbus_access
service bluetoothd /system/bin/bluetoothd -n
class main
socket bluetooth stream 660 bluetooth bluetooth
socket dbus_bluetooth stream 660 bluetooth bluetooth
# init.rc does not yet support applying capabilities, so run as root and
# let bluetoothd drop uid to bluetooth with the right linux capabilities
group bluetooth net_bt_admin misc
disabled
service installd /system/bin/installd
class main
socket installd stream 600 system system
service flash_recovery /system/etc/install-recovery.sh
class main
oneshot
service racoon /system/bin/racoon
class main
socket racoon stream 600 system system
# IKE uses UDP port 500. Racoon will setuid to vpn after binding the port.
group vpn net_admin inet
disabled
oneshot
service mtpd /system/bin/mtpd
class main
socket mtpd stream 600 system system
user vpn
group vpn net_admin inet net_raw
disabled
oneshot
service keystore /system/bin/keystore /data/misc/keystore
class main
user keystore
group keystore
socket keystore stream 666
service dumpstate /system/bin/dumpstate -s
class main
socket dumpstate stream 0660 shell log
disabled
oneshot
service veng /sbin/veng.sh
class main
user root
group root
oneshot
Sent from my LT18i using xda app-developers app
these step are quite risky. I hope you have a backup of your system and know how to revive your device in case if it soft bricked. first of all, create sd folder under /system. in your /system/bin/ you can find a file 'sysinit'. please try to open it with root explorer (or something equivalent with it). if it can be opened and all the fonts are showed correctly, add 'busybox run-parts /system/etc/init.d/'. if the file didn't exist you can safely create a file, named it sysinit, and put these code
Code:
#!/system/bin/sh
busybox run-parts /system/etc/init.d/
give that file 777 (rwxrwxrwx) permission then reboot. please make sure that you didn't have install-recovery.sh in /system/etc/ or if you have it, make sure that it doesn't have a line similar with 'run-parts /system/etc/init.d/'. to check whether if the this mod working you can open the log file or check the size. you can also check in /system/sd and check inside it. it should contain app, dalvik-cache folder. check your /data partition usage then install a file. if this mod working the /data partition usage should not increased.
I do have that file and it has the next lines
#!/system/bin/sh
export PATH=/sbin:/system/sbin:/system/bin:/system/xbin
/system/bin/logwrapper /sbin/busybox run-parts /system/etc/init.d
And about the other file I didn't find it
Thanks a lot
Sent from my LT18i using xda app-developers app
it's a lil bit ironic but I recheck my init.rc this afternoon and found that tipo's init.d implementation doesn't work with this mod. I've checked your init.rc and after you modify your files as i've told you before, it should be working fine. anyway, in your sysnit file.
Code:
#!/system/bin/sh
export PATH=/sbin:/system/sbin:/system/bin:/system/xbin
/system/bin/logwrapper /sbin/busybox run-parts /system/etc/init.d
please check your busybox installation. it usually installed on /system/bin or /system/xbin, not in /sbin. in case if it installed on /system/bin or /system/xbin you need to change your sysinit content into
Code:
#!/system/bin/sh
export PATH=/sbin:/system/sbin:/system/bin:/system/xbin
/system/bin/logwrapper /system/xbin/busybox run-parts /system/etc/init.d
since it doesn't work on tipo I'll ask mod to close this thread. it's my fault that I didn't fully check my init.rc on first place. if you have anything to discuss you can contact me via PM or send me email at [email protected]. good luck, bro.
Thread Closed as requested by OP.

[Q] vold.fstab edit to swap internal/external storage

Hello,
I've gone through a lot of posts regarding editing the vold.fstab file in order to swap my internal storage with my sd card, however I am hitting a bit of a roadblock. My device is a Trimble T41 GPS unit running android 4.1.2 (AOSP). I have rooted it and can edit the vold.fstab file, but the internal storage portion is commented out with a note that it is being set in an init file. I'm not sure what I need to change in the init file in order to accomplish the same thing. Any ideas would be very helpful.
Thanks in advance.
Here are both for reference:
vold.fstab
Code:
# Internal SD card
# Handled by init.t41.rc now
# dev_mount emmc /mnt/emmc 2 /devices/platform/mmci-omap-hs.1/mmc_host/mmc1
# External SD card
dev_mount external_sdcard /storage/removable/external_sdcard auto /devices/platform/mmci-omap-hs.0/mmc_host/mmc0
dev_mount usbdrive0 /storage/removable/usbdrive0 auto /devices/platform/musb-omap2430/musb-hdrc.0/usb2/2-1
init.t41.rc
Code:
import init.t41.usb.rc
on early-init
export EXTERNAL_STORAGE /storage/sdcard0
export SECONDARY_STORAGE /storage/removable
# create mountpoints
mkdir /mnt 0775 system system
mkdir /storage 0050 system sdcard_r
mkdir /storage/sdcard0 0000 system system
mkdir /storage/removable
mkdir /storage/removable/external_sdcard 0000 system system
mkdir /storage/removable/usbdrive0 0000 system system
symlink /storage/sdcard0 /mnt/sdcard
symlink /storage/sdcard0 /sdcard
symlink /storage/removable/external_sdcard /removeablesdcard
symlink /initlogo.rle.bak /initlogo.rle
mount debugfs dummy /sys/kernel/debug
on init
#for dsp use
insmod /system/ti-dsp/cmemk.ko "phys_start=0x84F00000 phys_end=0x85900000 allowOverlap=1 useHeapIfPoolUnavailable=1"
insmod /system/ti-dsp/dsplinkk.ko
insmod /system/ti-dsp/lpm_omap3530.ko
insmod /system/ti-dsp/sdmak.ko
#for ipv6 use
insmod /system/lib/modules/ipv6.ko
insmod /system/lib/modules/tunnel4.ko
insmod /system/lib/modules/sit.ko
insmod /system/lib/modules/xfrm6_mode_beet.ko
insmod /system/lib/modules/xfrm6_mode_tunnel.ko
insmod /system/lib/modules/xfrm6_mode_transport.ko
#Owners, Modes for Bluetooth
chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
chmod 0660 sys/class/rfkill/rfkill0/state
write /sys/class/rfkill/rfkill0/state 0
# ublox gps power setting
chown system system /sys/class/gpio/gpio160/value
chmod 0660 /sys/class/gpio/gpio160/value
# Enabling CPU Freq and CPU Idle
# set the governor to performace for 720P video decoding
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor performance
chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
chmod 0664 /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
write /sys/kernel/debug/voltage/vdd_core/smartreflex/autocomp 1
write /sys/kernel/debug/voltage/vdd_mpu/smartreflex/autocomp 1
write /sys/kernel/debug/pm_debug/sleep_while_idle 0
write /sys/kernel/debug/pm_debug/enable_off_mode 1
# === Bluetooth UART ===
# Disable GPIO147 wakeenable bits (1<<14) to avoid abnormal wakeup
write /sys/devices/platform/omap/omap_uart.1/power/wakeup disabled
write /sys/devices/platform/omap/omap_uart.0/power/wakeup disabled
write /sys/devices/platform/omap/omap_uart.2/power/wakeup disabled
write /sys/devices/platform/omap/omap_uart.3/power/wakeup disabled
chown system system /sys/class/backlight/ortustech-dsi-panel/brightness
chmod 0600 /sys/class/backlight/ortustech-dsi-panel/brightness
chown system system /sys/devices/platform/omap/omap_i2c.2/i2c-2/2-0050/eeprom
chmod 0664 /sys/devices/platform/omap/omap_i2c.2/i2c-2/2-0050/eeprom
chown system system /sys/devices/platform/omap/omap_i2c.2/i2c-2/2-0051/eeprom
chmod 0664 /sys/devices/platform/omap/omap_i2c.2/i2c-2/2-0051/eeprom
# set permissions for flashlight/flash LED
chown media system /sys/class/leds/flashlight/brightness
chmod 664 /sys/class/leds/flashlight/brightness
# Change attribute and owner of Sensors sysfs for SensorService
# === Proximity Sensor ===
# prox0_raw_en: enable proximity and light sensor
# prox0_thresh_above_value: store and show proximity threshold
# prox0_reporting_mode: store and show for proximity continuous mode or single mode
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0039/prox0_raw_en
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0039/prox0_thresh_above_value
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0039/prox0_reporting_mode
# Adjust proximity threshold to trigger at about 5cm
write /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0039/prox0_thresh_above_value 480
# === Photometer Sensor ===
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0039/lux0_calibscale
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0039/lux0_calibscale_default
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0039/lux0_input_en
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0039/lux0_input
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0039/lux0_sensor_range
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0039/lux0_rate
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0039/lux0_rate_avail
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0039/lux0_thresh_above_value
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0039/lux0_thresh_below_value
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0039/power_state
# === Compass Sensor ===
# meas_conf: set measurement configuration for HMC5883L
# operating_mode: 0:continuous-mode / 1:single-mode / [2 or 3]:idle mode
# sampling_frequency: set_sampling_frequency (0.75/1.5/3/7.5/15/30/75) Hz
# magn_range: set range (0/1/2/3/4/5/6) (from +-0.88GA to +-5.6GA)
# samples_conf: set the number of samples per measurement (1/2/4/8)
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-001e/device0/meas_conf
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-001e/device0/operating_mode
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-001e/device0/sampling_frequency
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-001e/device0/poll_delay
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-001e/device0/magn_range
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-001e/device0/samples_conf
# === Acceleration Sensor ===
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0053/disable
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0053/calibrate
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0053/offsets
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0053/rate
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0053/poll_delay
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0053/autosleep
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0053/position
# disable accelerometer autosleep function to allow continuous readings
write /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0053/autosleep 0
# === LED Controls
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-000b/led_blink_ctrl
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-000b/led_blink_cfg
# External battery mode control
chown system system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-000b/ext_bat_mode
# === Echo Cancellation Controls ===
chmod 0664 /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0060/ec_mode
chown media system /sys/devices/platform/omap/omap_i2c.3/i2c-3/3-0060/ec_mode
# === Modem controls ===
write /sys/class/gpio/export 41
write /sys/class/gpio/export 42
write /sys/class/gpio/gpio41/direction out
write /sys/class/gpio/gpio42/direction out
chown radio root /sys/class/gpio/gpio41/value
chown radio root /sys/class/gpio/gpio42/value
on fs
mount yaffs2 [email protected] /system
rm /vendor # remove the symlink created by AOSP's init.rc
mkdir /vendor 0771 system system
symlink /vendor /system/vendor
# create filesystems if necessary
exec /system/bin/setup_fs ext4:/dev/block/platform/mmci-omap-hs.1/by-num/p1
exec /system/bin/setup_fs ext4:/dev/block/platform/mmci-omap-hs.1/by-num/p2
exec /system/bin/setup_fs ext4:/dev/block/platform/mmci-omap-hs.1/by-num/p3
# mount /vendor
mount ext4 /dev/block/platform/mmci-omap-hs.1/by-num/p2 /vendor wait nosuid nodev
chown system system /vendor
chown system system /vendor/app
exec /system/bin/chmod -R 755 /vendor/app
exec /system/bin/chmod -R 755 /vendor/bin
# mount /cache
mount ext4 /dev/block/platform/mmci-omap-hs.1/by-num/p1 /cache wait nosuid nodev
# mount /data
mount ext4 /dev/block/platform/mmci-omap-hs.1/by-num/p3 /data wait noatime nosuid nodev
chown system system /data
# run packout_init while /system is writable
exec /system/bin/packout_init
# make init.btaddr.sh executable
chmod 0554 /system/etc/init.btaddr.sh
mount yaffs2 [email protected] /system ro remount
on post-fs
# once everything is setup, no need to modify /
mount rootfs rootfs / ro remount
on post-fs-data
mkdir /data/misc/wifi/sockets 0770 wifi wifi
mkdir /data/misc/dhcp 0770 dhcp dhcp
mkdir /data/media
chown media_rw media_rw /data/media
setprop vold.post_fs_data_done 1
start sdcard
on branding
# set read-only branding properties
exec /system/bin/brandstr
on boot
# set fixed properties and hardware trigger information
exec "/system/xbin/baldr_init.sh"
service sdcard /system/bin/logwrapper /system/bin/sdcard /data/media 1023 1023
class late_start
service uevwatch /system/bin/uevwatch
class core
oneshot
on property:persist.service.bc2d.enable=1
start t41scand
on property:persist.service.bc2d.enable=0
stop t41scand
service t41scand /system/bin/t41scand -n
oneshot
disabled
service trigger_conf /system/bin/logwrapper /system/xbin/trigger_conf.sh
disabled
oneshot
service pvr /system/bin/sgx/rc.pvr start
class core
oneshot
service pppd_gprs /system/etc/ppp/init.gprs-pppd call gprs
user root
group system radio
disabled
oneshot
service dhcpcd_eth0 /system/bin/dhcpcd -ABKL
class main
disabled
oneshot
service iprenew_eth0 /system/bin/dhcpcd -n
class main
disabled
oneshot
# summit wifi
# create /system/etc/summit/bt_addr.conf
service driver-setup /system/bin/logwrapper /system/etc/init.btaddr.sh
class main
oneshot
service wpa_supplicant /system/bin/wpa_supplicant -Dnl80211 -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf
class main
socket wpa_wlan0 dgram 660 wifi wifi
disabled
oneshot
service dhcpcd_wlan0 /system/bin/dhcpcd -aABKL
class main
disabled
oneshot
service iprenew_wlan0 /system/bin/dhcpcd -n
class main
disabled
oneshot
# summit bt
service hciattach /system/bin/brcm_patchram_plus --enable_lpm --enable_hci --baudrate 3000000 --patchram /system/etc/summit/BCM4329B1_002.002.023.0924.1032.hcd /dev/ttyO1
user bluetooth
group bluetooth net_bt_admin
disabled
oneshot
service dhcpcd_bnep0 /system/bin/dhcpcd -ABKL
class main
disabled
oneshot
service iprenew_bnep0 /system/bin/dhcpcd -n
class main
disabled
oneshot
# bugreport is triggered by holding down volume down, volume up and power
service bugreport /system/bin/bugmailer.sh
class main
disabled
oneshot
keycodes 114 115 116
on property:persist.sys.led.enable=0
write /sys/class/i2c-dev/i2c-3/device/3-000b/led_mute_ctrl 1
on property:persist.sys.led.enable=1
write /sys/class/i2c-dev/i2c-3/device/3-000b/led_mute_ctrl 0
service rfidd /system/bin/logwrapper /system/xbin/rfidd_start.sh /dev/ttyO0
disabled
oneshot
on property:persist.service.rfid.enable=1
start rfidd
on property:persist.service.rfid.enable=0
stop rfidd

Orange Hi 4g (Blade Apex 2) Getting Fastboot mode

In this thread, i will explain how to get a fully working fastboot mode to be able to flash any unsigned rom, recovery....
This device rooting method its, kinda particular, Boot.img has some files that need to be modified in order to get permanent root on the device.
Here i will show you what i mean.
Inside boot.img:
fstab.qcom
Code:
# Android fstab file.
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
#TODO: Add 'check' as fs_mgr_flags with data partition.
# Currently we dont have e2fsck compiled. So fs check would failed.
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,barrier=1 wait
/dev/block/platform/msm_sdcc.1/by-name/persist /persist ext4 nosuid,nodev,barrier=1 wait,check
/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 nosuid,nodev,barrier=1,noauto_da_alloc wait,check,encryptable=footer
/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 nosuid,nodev,barrier=1 wait,check
/devices/msm_sdcc.2/mmc_host /storage/sdcard1 vfat nosuid,nodev wait,voldmanaged=sdcard1:auto
#/dev/block/mmcblk0p11 /system ext4 ro,barrier=1 wait
#/dev/block/mmcblk0p12 /data ext4 nosuid,nodev,barrier=1,noauto_da_alloc wait,check,encryptable=footer
init.qcom.rc:
import init.qcom.usb.rc
import init.target.rc
on early-init
mount debugfs debugfs /sys/kernel/debug
on init
# Set permissions for persist partition
mkdir /persist 0771 system system
# See storage config details at http://source.android.com/tech/storage/
mkdir /mnt/shell/emulated 0700 shell shell
#mkdir /storage 0050 system sdcard_r
mkdir /storage 0755 system sdcard_r
mkdir /storage/emulated 0555 root root
#mkdir /storage/emulated/legacy 0555 root root
mkdir /mnt/media_rw/sdcard1 0700 media_rw media_rw
mkdir /storage/sdcard0 0555 root root
mkdir /storage/sdcard1 0700 root root
#export EXTERNAL_STORAGE /storage/emulated/legacy
export EXTERNAL_STORAGE /storage/sdcard0
export SECONDARY_STORAGE /storage/sdcard1
export EMULATED_STORAGE_SOURCE /mnt/shell/emulated
export EMULATED_STORAGE_TARGET /storage/emulated
# Support legacy paths
#symlink /storage/emulated/legacy /sdcard
#symlink /storage/emulated/legacy /mnt/sdcard
#symlink /storage/emulated/legacy /storage/sdcard0
symlink /storage/sdcard0 /sdcard
symlink /storage/sdcard0 /mnt/sdcard
on early-boot
# set RLIMIT_MEMLOCK to 64MB
setrlimit 8 67108864 67108864
# Allow subsystem (modem etc) debugging
write /sys/module/subsystem_restart/parameters/enable_debug ${persist.sys.ssr.enable_debug}
write /sys/kernel/boot_adsp/boot 1
exec /system/bin/sh /init.qcom.early_boot.sh ${ro.board.platform}
exec /system/bin/sh /init.qcom.syspart_fixup.sh ${ro.board.platform} ${ro.serialno}
on boot
chown bluetooth bluetooth /sys/module/bluetooth_power/parameters/power
chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type
chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
chown bluetooth bluetooth /proc/bluetooth/sleep/proto
chown bluetooth bluetooth /sys/module/hci_uart/parameters/ath_lpm
chown bluetooth bluetooth /sys/module/hci_uart/parameters/ath_btwrite
chown system system /sys/module/sco/parameters/disable_esco
chown bluetooth bluetooth /sys/module/hci_smd/parameters/hcismd_set
chmod 0660 /sys/module/bluetooth_power/parameters/power
chmod 0660 /sys/module/hci_smd/parameters/hcismd_set
chmod 0660 /sys/class/rfkill/rfkill0/state
chmod 0660 /proc/bluetooth/sleep/proto
chown bluetooth bluetooth /dev/ttyHS0
chmod 0660 /sys/module/hci_uart/parameters/ath_lpm
chmod 0660 /sys/module/hci_uart/parameters/ath_btwrite
chmod 0660 /dev/ttyHS0
chown bluetooth bluetooth /sys/devices/platform/msm_serial_hs.0/clock
chmod 0660 /sys/devices/platform/msm_serial_hs.0/clock
chmod 0660 /dev/ttyHS2
chown bluetooth bluetooth /dev/ttyHS2
#Create QMUX deamon socket area
mkdir /dev/socket/qmux_radio 0770 radio radio
chmod 2770 /dev/socket/qmux_radio
mkdir /dev/socket/qmux_audio 0770 media audio
chmod 2770 /dev/socket/qmux_audio
mkdir /dev/socket/qmux_bluetooth 0770 bluetooth bluetooth
chmod 2770 /dev/socket/qmux_bluetooth
mkdir /dev/socket/qmux_gps 0770 gps gps
chmod 2770 /dev/socket/qmux_gps
setprop wifi.interface wlan0
# Define TCP buffer sizes for various networks
# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
setprop net.tcp.buffersize.wifi 524288,2097152,4194304,262144,524288,1048576
setprop ro.telephony.call_ring.multiple false
#Set SUID bit for usbhub
chmod 4755 /system/bin/usbhub
chmod 755 /system/bin/usbhub_init
#Remove SUID bit for iproute2 ip tool
chmod 0755 /system/bin/ip
chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state
#For bridgemgr daemon to inform the USB driver of the correct transport
chown radio radio /sys/class/android_usb/f_rmnet_smd_sdio/transport
# Define TCP buffer sizes for various networks
# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208
setprop net.tcp.buffersize.lte 524288,1048576,2097152,262144,524288,1048576
setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208
setprop net.tcp.buffersize.hspa 4094,87380,1220608,4096,16384,1220608
setprop net.tcp.buffersize.hsupa 4094,87380,1220608,4096,16384,1220608
setprop net.tcp.buffersize.hsdpa 4094,87380,1220608,4096,16384,1220608
setprop net.tcp.buffersize.hspap 4094,87380,1220608,4096,16384,1220608
setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040
setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680
setprop net.tcp.buffersize.evdo 4094,87380,262144,4096,16384,262144
# Assign TCP buffer thresholds to be ceiling value of technology maximums
# Increased technology maximums should be reflected here.
write /proc/sys/net/core/rmem_max 2097152
write /proc/sys/net/core/wmem_max 2097152
#To allow interfaces to get v6 address when tethering is enabled
write /proc/sys/net/ipv6/conf/rmnet0/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet1/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet2/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet3/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet4/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet5/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet6/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet7/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet_sdio0/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet_sdio1/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet_sdio2/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet_sdio3/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet_sdio4/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet_sdio5/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet_sdio6/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet_sdio7/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet_usb0/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet_usb1/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet_usb2/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet_usb3/accept_ra 2
# To prevent out of order acknowledgements from making
# connection tracking to treat them as not belonging to
# the connection they belong to.
# Otherwise, a weird issue happens in which some long
# connections on high-throughput links get dropped when
# an ack packet comes out of order
write /proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal 1
# NFC local data and nfcee xml storage
mkdir /data/nfc 0770 nfc nfc
mkdir /data/nfc/param 0770 nfc nfc
# Set the console loglevel to < KERN_INFO
# Set the default message loglevel to KERN_INFO
write /proc/sys/kernel/printk "6 6 1 7"
# msm specific files that need to be created on /data
on post-fs-data
# we will remap this as /mnt/sdcard with the sdcard fuse tool
mkdir /data/media 0770 media_rw media_rw
chown media_rw media_rw /data/media
mkdir /data/misc/bluetooth 0770 bluetooth bluetooth
# Create the directories used by the Wireless subsystem
mkdir /data/misc/wifi 0770 wifi wifi
mkdir /data/misc/wifi/sockets 0770 wifi wifi
mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi
mkdir /data/misc/dhcp 0770 dhcp dhcp
chown dhcp dhcp /data/misc/dhcp
# Create the directories used by CnE subsystem
mkdir /data/connectivity 0771 system system
chown system system /data/connectivity
mkdir /data/connectivity/nsrm 0771 system system
chown system system /data/connectivity/nsrm
# Create directory used by audio subsystem
mkdir /data/misc/audio 0770 audio audio
# Mounting of persist is moved to 'on emmc-fs' and 'on fs' sections
# We chown/chmod /persist again so because mount is run as root + defaults
chown system system /persist
chmod 0771 /persist
chmod 0664 /sys/devices/platform/msm_sdcc.1/polling
chmod 0664 /sys/devices/platform/msm_sdcc.2/polling
chmod 0664 /sys/devices/platform/msm_sdcc.3/polling
chmod 0664 /sys/devices/platform/msm_sdcc.4/polling
# Chown polling nodes as needed from UI running on system server
chown system system /sys/devices/platform/msm_sdcc.1/polling
chown system system /sys/devices/platform/msm_sdcc.2/polling
chown system system /sys/devices/platform/msm_sdcc.3/polling
chown system system /sys/devices/platform/msm_sdcc.4/polling
#Create the symlink to qcn wpa_supplicant folder for ar6000 wpa_supplicant
mkdir /data/system 0775 system system
#symlink /data/misc/wifi/wpa_supplicant /data/system/wpa_supplicant
#Create directories for gpsone_daemon services
mkdir /data/misc/gpsone_d 0770 system gps
#Create directories for QuIPS
mkdir /data/misc/quipc 0770 gps system
#Create directories for Location services
mkdir /data/misc/location 0770 gps gps
mkdir /data/misc/location/mq 0770 gps gps
mkdir /data/misc/location/xtwifi 0770 gps gps
#Create directory from IMS services
mkdir /data/shared 0755
chown system system /data/shared
#Create directory for FOTA
mkdir /data/fota 0771
chown system system /data/fota
#Create directory for hostapd
mkdir /data/hostapd 0770 system wifi
# Create /data/time folder for time-services
mkdir /data/time/ 0700 system system
mkdir /data/audio/ 0770 media audio
setprop vold.post_fs_data_done 1
#Create a folder for SRS to be able to create a usercfg file
mkdir /data/data/media 0770 media media
# Export GPIO56 for fusion targets to enable/disable hub
service usbhub_init /system/bin/usbhub_init
class late_start
user root
disabled
oneshot
service qcomsysd /system/bin/qcom-system-daemon
class main
on propertyersist.radio.atfwd.start=false
stop atfwd
# corefile limit and ETB enabling
on propertyersist.debug.trace=1
mkdir /data/core 0777 root root
write /proc/sys/kernel/core_pattern "/data/core/%E.%p.%e"
write /sys/devices/system/cpu/cpu1/online 1
write /sys/devices/system/cpu/cpu2/online 1
write /sys/devices/system/cpu/cpu3/online 1
write /sys/bus/coresight/devices/coresight-etm0/enable 0
write /sys/bus/coresight/devices/coresight-etm1/enable 0
write /sys/bus/coresight/devices/coresight-etm2/enable 0
write /sys/bus/coresight/devices/coresight-etm3/enable 0
write /sys/bus/coresight/devices/coresight-etm0/reset 1
write /sys/bus/coresight/devices/coresight-etm1/reset 1
write /sys/bus/coresight/devices/coresight-etm2/reset 1
write /sys/bus/coresight/devices/coresight-etm3/reset 1
write /sys/bus/coresight/devices/coresight-etm0/enable 1
write /sys/bus/coresight/devices/coresight-etm1/enable 1
write /sys/bus/coresight/devices/coresight-etm2/enable 1
write /sys/bus/coresight/devices/coresight-etm3/enable 1
on property:ro.board.platform=msm7630_fusion
start usbhub_init
on property:init.svc.wpa_supplicant=stopped
stop dhcpcd
on property:bluetooth.isEnabled=true
start btwlancoex
write /sys/class/bluetooth/hci0/idle_timeout 7000
on property:bluetooth.sap.status=running
start bt-sap
on property:bluetooth.sap.status=stopped
stop bt-sap
on property:bluetooth.dun.status=running
start bt-dun
on property:bluetooth.dun.status=stopped
stop bt-dun
on property:ro.bluetooth.ftm_enabled=true
start ftmd
service qcom-c_core-sh /system/bin/sh /init.qcom.class_core.sh
class core
user root
oneshot
service qcom-c_main-sh /system/bin/sh /init.class_main.sh
class main
user root
oneshot
service ril-qmi /system/bin/sh /init.qcom.ril.sh
class main
user root
oneshot
on property:vold.decrypt=trigger_restart_framework
start qcom-c_main-sh
start config_bluetooth
on propertyersist.env.fastdorm.enabled=true
setprop persist.radio.data_no_toggle 1
service cnd /system/bin/cnd
class late_start
socket cnd stream 660 root inet
service irsc_util /system/bin/logwrapper /system/bin/irsc_util "/etc/sec_config"
class main
user root
oneshot
service rmt_storage /system/bin/rmt_storage
class core
user root
disabled
on property:ro.boot.emmc=true
start rmt_storage
service rfs_access /system/bin/rfs_access
class core
user system
group system net_raw
on property:ro.boot.emmc=true
start rfs_access
on property:bluetooth.start_hci=true
start start_hci_filter
on property:bluetooth.start_hci=false
stop start_hci_filter
service start_hci_filter /system/bin/wcnss_filter
class late_start
user bluetooth
group bluetooth
disabled
service config_bluetooth /system/bin/sh /system/etc/init.qcom.bt.sh "onboot"
class core
user root
oneshot
service hciattach /system/bin/sh /system/etc/init.qcom.bt.sh
class late_start
user bluetooth
group bluetooth net_bt_admin
disabled
oneshot
service bttestmode /system/bin/sh /system/bin/bt_testmode_new.sh
class late_start
user root
oneshot
disabled
on property:bluetooth.hciattach=true
start hciattach
on property:bluetooth.hciattach=false
setprop bluetooth.status off
service hciattach_ath3k /system/bin/sh /system/etc/init.ath3k.bt.sh
class late_start
user bluetooth
group system bluetooth net_bt_admin misc
disabled
oneshot
service bt-dun /system/bin/dun-server /dev/smd7 /dev/rfcomm0
class late_start
user bluetooth
group bluetooth net_bt_admin inet
disabled
oneshot
service bt-sap /system/bin/sapd 15
user bluetooth
group bluetooth net_bt_admin
class late_start
disabled
oneshot
service ftmd /system/bin/logwrapper /system/bin/ftmdaemon
class late_start
user root
group bluetooth net_bt_admin misc net_bt_stack qcom_diag
disabled
oneshot
service bridgemgrd /system/bin/bridgemgrd
class late_start
user radio
group radio qcom_diag
disabled
service port-bridge /system/bin/port-bridge /dev/smd0 /dev/ttyGS0
class late_start
user system
group system inet
disabled
service qmiproxy /system/bin/qmiproxy
class main
user radio
group radio qcom_diag
disabled
# QMUX must be in multiple groups to support external process connections
service qmuxd /system/bin/qmuxd
class main
user radio
group radio audio bluetooth gps qcom_diag
disabled
service netmgrd /system/bin/netmgrd
class main
disabled
#added by zte_chenhui for sensor reg_begin
#service sensor-sh /system/bin/sh /init.sensor.reg.sh
# class late_start
# oneshot
#added by chenhui for sensor reg_end
service sensors /system/bin/sensors.qcom
class late_start
user root
group root
disabled
on property:ro.use_data_netmgrd=false
# netmgr not supported on specific target
stop netmgrd
# Adjust socket buffer to enlarge TCP receive window for high bandwidth
# but only if ro.data.large_tcp_window_size property is set.
on property:ro.data.large_tcp_window_size=true
write /proc/sys/net/ipv4/tcp_adv_win_scale 2
service btwlancoex /system/bin/sh /system/etc/init.qcom.coex.sh
class late_start
user bluetooth
group bluetooth net_bt_admin inet net_admin net_raw
disabled
oneshot
service amp_init /system/bin/amploader -i
class late_start
user root
disabled
oneshot
service amp_load /system/bin/amploader -l 7000
class late_start
user root
disabled
oneshot
service amp_unload /system/bin/amploader -u
class late_start
user root
disabled
oneshot
service p2p_supplicant /system/bin/wpa_supplicant \
-ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \
-I/system/etc/wifi/p2p_supplicant_overlay.conf -N \
-iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
-I/system/etc/wifi/wpa_supplicant_overlay.conf \
-O/data/misc/wifi/sockets -puse_p2p_group_interface=1 -dddd \
-e/data/misc/wifi/entropy.bin [email protected]:wpa_wlan0
# we will start as root and wpa_supplicant will switch to user wifi
# after setting up the capabilities required for WEXT
# user wifi
# group wifi inet keystore
class main
socket wpa_wlan0 dgram 660 wifi wifi
disabled
oneshot
service wpa_supplicant /system/bin/wpa_supplicant \
-iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
-I/system/etc/wifi/wpa_supplicant_overlay.conf \
-O/data/misc/wifi/sockets -dddd \
-e/data/misc/wifi/entropy.bin [email protected]:wpa_wlan0
# we will start as root and wpa_supplicant will switch to user wifi
# after setting up the capabilities required for WEXT
# user wifi
# group wifi inet keystore
class main
socket wpa_wlan0 dgram 660 wifi wifi
disabled
oneshot
service dhcpcd_wlan0 /system/bin/dhcpcd -ABKLG
class late_start
disabled
oneshot
service dhcpcd_p2p /system/bin/dhcpcd -ABKLG
class late_start
disabled
oneshot
service iprenew_wlan0 /system/bin/dhcpcd -n
class late_start
disabled
oneshot
service iprenew_p2p /system/bin/dhcpcd -n
class late_start
disabled
oneshot
# zte_modify by zhangqingli for wifi FTM test 20140217 start
service ptt_socket_app /system/bin/ptt_socket_app -d
#class main
user root
group root
disabled
oneshot
service ptt_ffbm /system/bin/ptt_socket_app -f -d
#class main
user root
group root
disabled
oneshot
# zte_modify by zhangqingli for wifi FTM test 20140217 end
service dhcpcd_bt-pan /system/bin/dhcpcd -BKLG
class late_start
disabled
oneshot
service iprenew_bt-pan /system/bin/dhcpcd -n
class late_start
disabled
oneshot
service dhcpcd_bnep0 /system/bin/dhcpcd -BKLG
disabled
oneshot
service dhcpcd_bnep1 /system/bin/dhcpcd -BKLG
disabled
oneshot
service dhcpcd_bnep2 /system/bin/dhcpcd -BKLG
disabled
oneshot
service dhcpcd_bnep3 /system/bin/dhcpcd -BKLG
disabled
oneshot
service dhcpcd_bnep4 /system/bin/dhcpcd -BKLG
disabled
oneshot
service gpsone_daemon /system/bin/gpsone_daemon
class late_start
user gps
group gps inet net_raw
disabled
service quipc_igsn /system/bin/quipc_igsn
class late_start
user gps
group inet gps qcom_diag
disabled
service quipc_main /system/bin/quipc_main
class late_start
user gps
group gps net_admin wifi inet qcom_diag
disabled
service location_mq /system/bin/location-mq
class late_start
user gps
group gps
disabled
service xtwifi_inet /system/bin/xtwifi-inet-agent
class late_start
user gps
group inet gps
disabled
service xtwifi_client /system/bin/xtwifi-client
class late_start
user gps
group net_admin wifi inet gps
disabled
service lowi-server /system/bin/lowi-server
class late_start
user gps
group gps net_admin wifi inet qcom_diag
disabled
service fm_dl /system/bin/sh /system/etc/init.qcom.fm.sh
class late_start
user root
group system fm_radio
disabled
oneshot
on property:crypto.driver.load=1
insmod /system/lib/modules/qce.ko
insmod /system/lib/modules/qcedev.ko
on property:crypto.driver.load=0
exec /system/bin/rmmod qcedev.ko
exec /system/bin/rmmod qce.ko
service drmdiag /system/bin/drmdiagapp
class late_start
user root
disabled
oneshot
on property:drmdiag.load=1
start drmdiag
on property:drmdiag.load=0
stop drmdiag
service qcom-sh /system/bin/sh /init.qcom.sh
class late_start
user root
oneshot
service qcom-post-boot /system/bin/sh /system/etc/init.qcom.post_boot.sh
class late_start
user root
disabled
oneshot
service wifi-sdio-on /system/bin/sh /system/etc/init.qcom.sdio.sh
class late_start
group wifi inet
disabled
oneshot
service wifi-crda /system/bin/sh /system/etc/init.crda.sh
class late_start
user root
disabled
oneshot
on property:sys.boot_completed=1
start qcom-post-boot
service atfwd /system/bin/ATFWD-daemon
class late_start
user system
group system radio
service hdmid /system/bin/hdmid
class late_start
socket hdmid stream 0660 root system graphics
disabled
service ppd /system/bin/mm-pp-daemon
class late_start
user system
socket pps stream 0660 system system graphics
group system graphics
# modify the dir to /data/misc/wifi/hostapd.conf in hostapd in code
#service hostapd /system/bin/hostapd -dddd /data/hostapd/hostapd.conf
# class late_start
# user root
# group root
# oneshot
# disabled
service ds_fmc_appd /system/bin/ds_fmc_appd -p "rmnet0" -D
class late_start
group radio wifi inet
disabled
oneshot
on propertyersist.data.ds_fmc_app.mode=1
start ds_fmc_appd
service ims_regmanager /system/bin/exe-ims-regmanagerprocessnative
class late_start
group net_bt_admin inet radio wifi
disabled
on propertyersist.ims.regmanager.mode=1
start ims_regmanager
on property:ro.data.large_tcp_window_size=true
# Adjust socket buffer to enlarge TCP receive window for high bandwidth (e.g. DO-RevB)
write /proc/sys/net/ipv4/tcp_adv_win_scale 2
service battery_monitor /system/bin/battery_monitor
user system
group system
disabled
service ril-daemon1 /system/bin/rild -c 1
class main
socket rild1 stream 660 root radio
socket rild-debug1 stream 660 radio system
user root
disabled
group radio cache inet misc audio sdcard_r sdcard_rw diag qcom_diag log
service ril-daemon2 /system/bin/rild -c 2
class main
socket rild2 stream 660 root radio
socket rild-debug2 stream 660 radio system
user root
disabled
group radio cache inet misc audio sdcard_r sdcard_rw diag qcom_diag log
service profiler_daemon /system/bin/profiler_daemon
class late_start
user root
group root
disabled
service sdcard /system/bin/sdcard -l /data/media /mnt/shell/emulated 1023 1023
class late_start
service fuse_sdcard1 /system/bin/sdcard -u 1023 -g 1023 -d /mnt/media_rw/sdcard1 /storage/sdcard1
class late_start
disabled
# Binding fuse mount point to /storage/emulated/legacy
#on property:init.svc.sdcard=running
# modified by xiongping to bind fuse mount point to /storage/edmulated/legacy when emulated sdcard is mounted
on property:init.emulated.sdcard=1
wait /mnt/shell/emulated/0
#mount none /mnt/shell/emulated/0 /storage/emulated/legacy bind
mount none /mnt/shell/emulated/0 /storage/sdcard0 bind
service hcidump /system/bin/sh /system/etc/hcidump.sh
user bluetooth
group bluetooth system net_bt_admin net_admin
disabled
oneshot
service charger /charger
class charger
service ssr_diag /system/bin/ssr_diag
class late_start
user system
group system
# SSR setting
on propertyersist.sys.ssr.restart_level=*
exec /system/bin/sh /init.qcom.ssr.sh ${persist.sys.ssr.restart_level}
# Define fastmmi
service fastmmi /system/bin/mmi
user root
group root
disabled
service fastmmisrv /system/bin/sh /init.qcom.factory.sh
user root
disabled
oneshot
on ffbm
start fastmmisrv
service hvdcp /system/bin/hvdcp
class core
user root
disabled
on propertyersist.usb.hvdcp.detect=true
start hvdcp
on propertyersist.usb.hvdcp.detect=false
stop hvdcp
service charger_monitor /system/bin/charger_monitor
user system
group system
disabled
service diag_mdlog_start /system/bin/diag_mdlog
class late_start
user sdcard_rw
group system qcom_diag sdcard_rw sdcard_r media_rw
disabled
oneshot
service diag_mdlog_stop /system/bin/diag_mdlog -k
class late_start
user sdcard_rw
group system qcom_diag sdcard_rw sdcard_r media_rw
disabled
oneshot
service qlogd /system/xbin/qlogd
class main
disabled
on propertyersist.sys.qlogd=1
start qlogd
on propertyersist.sys.qlogd=0
stop qlogd
service rootagent /system/bin/sh /system/etc/init.qcom.rootagent.sh
disabled
oneshot
on propertyersist.sys.rootagent=1
start rootagent
on propertyersist.sys.rootagent=0
stop rootagent
This files (and some more) are rewriten everytime the device is restarted, so this boot.img has to be modified in order to get a permanent root.
USE IT AT YOUR OWN RISK, IM NOT RESPONSIBLE FOR ANY POSSIBLE DAMAGE ON YOUR DEVICE.
Let's get to fastboot mode:
I will publish in bottom of the post, links to all the files mentioned here, so everyone can download it.
First of all, we need a temporary root, so we will use Baidu Superroot (Thanks to Investigador Android for tip and link).
After we have root our device (yes, it will be unrooted after reboot), we will install FLASHIFY from Play Store (i will put a link too on bottom).
Now using Flashify we will flash a recovery.img that i posted the link down here.
Dont try to flash CWM, TWRP and PHILZ from flashify, THEY'RE NOT COMPATIBLE WITH OUR DEVICE.
Now, make a full backup of all data in the device, in order to get root again after reboot, you WILL NEED to reflash the original firmware (unless someone makes a custom recovery, and perma-root).
When you're done, power off your device and keep pressed VOL UP + POWER, in order to get to recovery.
You will notice that the red led stands lighted and the splash screen keeps on screen (Recovery menu will not show), your phone is in Fastboot mode now, bootloader is factory unlocked, so you may flash whatever you want using the well-known fastboot commands.
I will put the original recovery.img, unless you know what you're doing, FLASH the ORIGINAL recovery.img in fastboot mode BEFORE restarting the phone, or you will get fastboot mode everytime you try to start the recovery menu.
Hopes any developer put any interest in this phone now that we can get inside fastboot mode.
DOWNLOADS:
Recovery.img ORIGINAL: https://mega.co.nz/#!p8sGlCQR!GZL71Oi32Zh91JJKtf4oKmGuJDoB7CWwc2fUf4rv_y0
BOOT.img Original: https://mega.co.nz/#!I8EmHbwL!TPEwaTwCECg7Sx0aUouLr6n2NdLkbVxluyhOV_3vkOc
FASTBOOT.IMG: https://mega.co.nz/#!ModilZLL!LaNXonF69XOZvpnUQOlHVSZHjd34jLnJLeWwunuS3aM
Baidu Super root: https://yadi.sk/d/iQlZl0cFeFguR
Flashify: https://play.google.com/store/apps/details?id=com.cgollner.flashify&hl=es
This research was made based on firmware 7.4 of Orange Hi 4G, here's the link to download it:
https://mega.co.nz/#!ZhlV1ZDZ!WOu0zs_mmG3fD15c5Ko3F73nLfafuiWqsbb3O3OiRE0
Added Perma-root (By Megamejo)
First root app: https://mega.co.nz/#!9ExyEIbL!hnym2y4OhCEd0ugxKXMR7ExwPpDFSm1q-RcrP3Hw3JQ
Second root app : https://mega.co.nz/#!8Yw1HTgL!jwO1Zb7SDTzcYq1gClzXXghs-ck8lhv0sVZmThADPY0
Root with First root app, then uninstall that app from app manager, then install second root BEFORE rebooting the device.
Have fun!
Yours
Algesat.
Thanks for your helpful information
Hopefully some developer do this
Hello!
I've got this device too, it's very difficult root it!!! If any developer help us....
Thanks.
FieldsMA said:
I've got this device too, it's very difficult root it!!! If any developer help us....
Thanks.
Click to expand...
Click to collapse
Actually there's no way to root the device permanently, we only have a temporary root, when you reboots the device the root is gone, and you're forced to reflash the phone in order to get again the temporary root.
Hopes any developer can compile a custom recovery to disable the signature verification (there's no any compatible custom recovery for this phone), and that way we can do something to root this device.
Also, send mails to ZTE to make public the sources of the kernel, like they did in alot of other devices, so we can cook our custom rom.
Permanente root finaly
FieldsMA said:
I've got this device too, it's very difficult root it!!! If any developer help us....
Thanks.
Click to expand...
Click to collapse
I have a permanente root method if someone want i will do a step by step guide.
megamejo said:
I have a permanente root method if someone want i will do a step by step guide.
Click to expand...
Click to collapse
Post it
megamejo said:
I have a permanente root method if someone want i will do a step by step guide.
Click to expand...
Click to collapse
Ok!! Post it!!
Permanent root finaly
We need to root with the first root app and then uninstall when root success, after that we need to root with the second root app in the link below and in order, to get a permanent root.
First root app: https://mega.co.nz/#!9ExyEIbL!hnym2y4OhCEd0ugxKXMR7ExwPpDFSm1q-RcrP3Hw3JQ
Second root app : https://mega.co.nz/#!8Yw1HTgL!jwO1Zb7SDTzcYq1gClzXXghs-ck8lhv0sVZmThADPY0
megamejo said:
We need to root with the first root app and then uninstall when root success, after that we need to root with the second root app in the link below and in order, to get a permanent root.
First root app: https://mega.co.nz/#!9ExyEIbL!hnym2y4OhCEd0ugxKXMR7ExwPpDFSm1q-RcrP3Hw3JQ
Second root app : https://mega.co.nz/#!8Yw1HTgL!jwO1Zb7SDTzcYq1gClzXXghs-ck8lhv0sVZmThADPY0
Click to expand...
Click to collapse
I add the info to the first post, and modify the title, so anyone can get the info easily.
Algesat said:
I add the info to the first post, and modify the title, so anyone can get the info easily.
Click to expand...
Click to collapse
There is a thing, if you reboot after install the first root app you'll can't uninstall the Chinese root app is not important restart the phone, you must not restart; after you root with the first root app uninstall it and, without restart, install the second root app and reroot. After this you must have a permanent root.
megamejo said:
There is a thing, if you reboot after install the first root app you'll can't uninstall the Chinese root app is not important restart the phone, you must not restart; after you root with the first root app uninstall it and, without restart, install the second root app and reroot. After this you must have a permanent root.
Click to expand...
Click to collapse
I have rebooted and it's happened this!there is a solution?
I think there is any solutions try this program and post if work
Sent from my Orange Hi 4G using XDA
---------- Post added at 08:01 PM ---------- Previous post was at 07:52 PM ----------
bubboo said:
I have rebooted and it's happened this!there is a solution?
Click to expand...
Click to collapse
Try this app and post if work
http://gdown.baidu.com/data/wisegame/3fba97063bb4544e/chaojiRootdashi_7.apk
Sent from my Orange Hi 4G using XDA Free mobile app
megamejo said:
I think there is any solutions try this program and post if work
Sent from my Orange Hi 4G using XDA
---------- Post added at 08:01 PM ---------- Previous post was at 07:52 PM ----------
Try this app and post if work
http://gdown.baidu.com/data/wisegame/3fba97063bb4544e/chaojiRootdashi_7.apk
Sent from my Orange Hi 4G using XDA Free mobile app
Click to expand...
Click to collapse
it doesn'work! say me: app not installed !
bubboo said:
it doesn'work! say me: app not installed !
Click to expand...
Click to collapse
In order of that you need to reinstall the firmware of the phone
Sent from my Orange Hi 4G using XDA Free mobile app
megamejo said:
In order of that you need to reinstall the firmware of the phone
Sent from my Orange Hi 4G using XDA Free mobile app
Click to expand...
Click to collapse
i haven't this.when I try install from recovery the upddate.zip in the first post ,say me installation aborted!
bubboo said:
i haven't this.when I try install from recovery the upddate.zip in the first post ,say me installation aborted!
Click to expand...
Click to collapse
Try to download and extract the update.Zip from that link and put it in the root of SD card http://download.ztedevice.com/UpLoadFiles/product/550/4567/soft/2014103116351723.zip
And flash it in the recovery.
Sent from my Orange Hi 4G using XDA Free mobile app
megamejo said:
Try to download and extract the update.Zip from that link and put it in the root of SD card http://download.ztedevice.com/UpLoadFiles/product/550/4567/soft/2014103116351723.zip
And flash it in the recovery.
Sent from my Orange Hi 4G using XDA Free mobile app
Click to expand...
Click to collapse
is this for orange hi 4g or zte b(ade apex2 specificatly?
bubboo said:
is this for orange hi 4g or zte b(ade apex2 specificatly?
Click to expand...
Click to collapse
Yes
Sent from my Orange Hi 4G using XDA Free mobile app
megamejo said:
Yes
Sent from my Orange Hi 4G using XDA Free mobile app
Click to expand...
Click to collapse
because i have a zte blade apex 2, and not orange hi 4g.i try to flash and i can't.i see that in the updater script there are a verification ,and i modified this in way
to not say: "this update is for orange hi 4g ", and proceed to install.after that modification the recovery say me that the file it's not signed.
bubboo said:
because i have a zte blade apex 2, and not orange hi 4g.i try to flash and i can't.i see that in the updater script there are a verification ,and i modified this in way
to not say: "this update is for orange hi 4g ", and proceed to install.after that modification the recovery say me that the file it's not signed.
Click to expand...
Click to collapse
Try to find your firmware here http://www.ztedevice.com/support/selectproduct.html?type=software
Sent from my Orange Hi 4G using XDA Free mobile app

[Q] Help me unpack/re-pack my boot.img (Please =) )

Hi,
I'd like to un-pack my boot.img, but I've never done something like this before. Wishing to fix my Android device from 2010, a Creative ZEN Touch 2. It was my first Android device, and I'd like to fix it for knowledge and challenge, even thought it's old.
You can skip the part in blue to jump straight to the problem, but you would skip information about the actual device.
The device does not have any custom ROM developped for it, and no custom recoveries either - nothing exists. You would have to compile these yourself, something that I would wish to try eventually (Too hard). No flashing tools for this device exists either (Odin, or anything). So actually, if something goes wrong and you soft-brick/bootloop, you're screwed (Actually it does bootloop sometimes, randomly. But it's still booting sometimes). There is Android Recovery 3e, but it's useless. You could wipe /Data or /Cache, but you can't flash anything, unless it's signed (Tried to sign my update.zip with AndroidKitchen. Seems like it did worked, but Android Recovery 3e still reject it somehow).
So I would love to install Clockworkmod on it, so that way I would have a effective recovery method if something goes wrong. But before attempting to compile CWM (Look hard...), I thought I could get ADB to work. Since the manufacturer, Creative, does not encourage self-repair, it seems like they intentionally blocked ADB from default.prop (OMG... >__< ). I'd like to re-enable it first so I could get an extra repair tool (And typing all the commands on the terminal emulator on the small screen, horrible).
Yes, the device is rooted, since 2010, using Z4Root for Froyo.
GameX2 said:
USB debugging is definitely enabled, and the device driver is also installed (Not even sure if I had to install a driver for this 2011 device in first place. Device is detected by computer without a problem).
If I type:
Code:
adb devices
The output is just: "List of devices attached" with a blank line.
If I try:
Code:
adb shell
This show up:
Code:
error: device not found
I can tell that ADB is working with 2 more devices.
Click to expand...
Click to collapse
Here is the content of default.prop:
Code:
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=1
ro.allow.mock.location=0
ro.debuggable=0
persist.service.adb.enable=0
I was told that to fix ADB, I should edit default.prop like this, but to properly edit it, I should unpack and repack boot.img:
Code:
ro.secure=1
ro.allow.mock.location=0
ro.debuggable=1
persist.sys.usb.config=mass_storage,adb
persist.service.adb.enable=1
Here's also the content of my init.rc file:
Code:
on init
sysclktz 0
loglevel 3
# setup the global environment
export PATH /sbin:/system/sbin:/system/bin:/system/xbin
export LD_LIBRARY_PATH /system/lib
export ANDROID_BOOTLOGO 1
export ANDROID_ROOT /system
export ANDROID_ASSETS /system/app
export ANDROID_DATA /data
export EXTERNAL_STORAGE /mnt/sdcard
export EXTERNAL_STORAGE_SD /mnt/sdcard
export EXTERNAL_STORAGE_UDISK /mnt/udisk
export EXTERNAL_STORAGE_EXTSD /mnt/extsd
export ASEC_MOUNTPOINT /mnt/asec
export SHM_MOUNTPOINT /mnt/shm
export BOOTCLASSPATH /system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar
export BACKLIGHT_PATH /sys/class/backlight/tps60250/brightness
export MAX_BACKLIGHT_PATH /sys/class/backlight/tps60250/max_brightness
export VPU_FW_PATH /system/lib/firmware/vpu
export CODEC_SHM_PATH /mnt/shm
export GST_PLUGIN_PATH /system/lib/gst_plugins
export CORE_REGISTER_FILE /system/etc/core_register
export COMPONENT_REGISTER_FILE /system/etc/component_register
export CONTENTPIPE_REGISTER_FILE /system/etc/contentpipe_register
export BUILD_TARGET earlgrey
export LOG_LEVEL 0
# Backward compatibility
symlink /system/etc /etc
symlink /sys/kernel/debug /d
# create mountpoints
# mkdir /mnt 0775 root system
# mkdir /mnt/sdcard 0000 system system
# mkdir /mnt/udisk 0000 system system
# mkdir /mnt/extsd 0000 system system
# Create cgroup mount point for cpu accounting
mkdir /acct
mount cgroup none /acct cpuacct
mkdir /acct/uid
# Backwards Compat - XXX: Going away in G*
symlink /mnt/sdcard /sdcard
symlink /mnt/extsd /extsd
symlink /mnt/udisk /udisk
# mkdir /system
# mkdir /data 0771 system system
mkdir /cache 0770 system cache
mkdir /config 0500 root root
# Directory for putting things only root should see.
mkdir /mnt/secure 0700 root root
# Directory for staging bindmounts
mkdir /mnt/secure/staging 0700 root root
# Directory-target for where the secure container
# imagefile directory will be bind-mounted
mkdir /mnt/secure/asec 0700 root root
# Secure container public mount points.
mkdir /mnt/asec 0700 root system
mount tmpfs tmpfs /mnt/asec mode=0755,gid=1000
# shared memory used by middleware
mkdir /mnt/shm 0777 system graphics
mount tmpfs tmpfs /mnt/shm mode=0777,uid=1000,gid=1003,size=1m
#mount rootfs rootfs / ro remount
#mkdir /factory 0751 system system
mount tmpfs tmpfs /factory size=131072
write /proc/sys/kernel/panic_on_oops 1
write /proc/sys/kernel/hung_task_timeout_secs 0
write /proc/cpu/alignment 4
write /proc/sys/kernel/sched_latency_ns 10000000
write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000
write /proc/sys/kernel/sched_compat_yield 1
write /proc/sys/kernel/sched_child_runs_first 0
# Create cgroup mount points for process groups
mkdir /dev/cpuctl
mount cgroup none /dev/cpuctl cpu
chown system system /dev/cpuctl
chown system system /dev/cpuctl/tasks
chmod 0777 /dev/cpuctl/tasks
write /dev/cpuctl/cpu.shares 1024
mkdir /dev/cpuctl/fg_boost
chown system system /dev/cpuctl/fg_boost/tasks
chmod 0777 /dev/cpuctl/fg_boost/tasks
write /dev/cpuctl/fg_boost/cpu.shares 1024
mkdir /dev/cpuctl/bg_non_interactive
chown system system /dev/cpuctl/bg_non_interactive/tasks
chmod 0777 /dev/cpuctl/bg_non_interactive/tasks
# 5.0 %
write /dev/cpuctl/bg_non_interactive/cpu.shares 52
# Set permission for FSL device node
chmod 0777 /dev/mxc_vpu
# allow access to uart port for gps module
chmod 0777 /dev/ttymxc0
chmod 0777 /dev/ttymxc1
chmod 0777 /dev/ttymxc2
# for lcd driver work mode control
chown system system /dev/ili9481
chmod 0771 /dev/ili9481
# mount ext4 partitions
# Mount /system rw first to give the filesystem a chance to save a checkpoint
mount ext4 /dev/block/mmcblk0p2 /system
mount ext4 /dev/block/mmcblk0p2 /system rw remount
chmod 0555 /system/etc/install-recovery.sh
mount ext4 /dev/block/mmcblk0p5 /data nosuid nodev
chown system system /data
chmod 0771 /data
exec /system/etc/init.first_time.sh
mount ext4 /dev/block/mmcblk0p2 /system ro remount
# We chown/chmod /data again so because mount is run as root + defaults
mount ext4 /dev/block/mmcblk0p5 /data nosuid nodev
chown system system /data
chmod 0771 /data
# Create dump dir and collect dumps.
# Do this before we mount cache so eventually we can use cache for
# storing dumps on platforms which do not have a dedicated dump partition.
mkdir /data/dontpanic
chown root log /data/dontpanic
chmod 0750 /data/dontpanic
mkdir /data/synergy
chown root log /data/synergy
chmod 0777 /data/synergy
# Collect apanic data, free resources and re-arm trigger
copy /proc/apanic_console /data/dontpanic/apanic_console
chown root log /data/dontpanic/apanic_console
chmod 0640 /data/dontpanic/apanic_console
copy /proc/apanic_threads /data/dontpanic/apanic_threads
chown root log /data/dontpanic/apanic_threads
chmod 0640 /data/dontpanic/apanic_threads
write /proc/apanic_console 1
# Same reason as /data above
mount ext4 /dev/block/mmcblk0p6 /cache nosuid nodev
chown system cache /cache
chmod 0770 /cache
# This may have been created by the recovery system with odd permissions
chown system cache /cache/recovery
chmod 0770 /cache/recovery
#change permissions on vmallocinfo so we can grab it from bugreports
chown root log /proc/vmallocinfo
chmod 0440 /proc/vmallocinfo
#change permissions on kmsg & sysrq-trigger so bugreports can grab kthread stacks
chown root system /proc/kmsg
chmod 0400 /proc/kmsg
chown root system /proc/sysrq-trigger
chmod 0220 /proc/sysrq-trigger
# create basic filesystem structure
mkdir /data/misc 01771 system misc
mkdir /data/misc/bluetoothd 0770 bluetooth bluetooth
mkdir /data/misc/bluetooth 0770 system system
mkdir /data/misc/keystore 0700 keystore keystore
mkdir /data/misc/vpn 0770 system system
mkdir /data/misc/systemkeys 0700 system system
mkdir /data/misc/vpn/profiles 0770 system system
# give system access to wpa_supplicant.conf for backup and restore
mkdir /data/misc/wifi 0770 wifi wifi
chmod 0770 /data/misc/wifi
chmod 0660 /data/misc/wifi/wpa_supplicant.conf
mkdir /data/local 0771 shell shell
mkdir /data/local/tmp 0771 shell shell
mkdir /data/data 0771 system system
mkdir /data/app-private 0771 system system
mkdir /data/app 0771 system system
mkdir /data/property 0700 root root
mkdir /data/version 0770 root root
# create dalvik-cache and double-check the perms
mkdir /data/dalvik-cache 0771 system system
chown system system /data/dalvik-cache
chmod 0771 /data/dalvik-cache
# create the lost+found directories, so as to enforce our permissions
mkdir /data/lost+found 0770
mkdir /cache/lost+found 0770
# double check the perms, in case lost+found already exists, and set owner
chown root root /data/lost+found
chmod 0770 /data/lost+found
chown root root /cache/lost+found
chmod 0770 /cache/lost+found
# change permission for keymap file temporarily
# should be removed when working out keymap later
chmod 0777 /system/usr/keychars/qwerty.kcm.bin
chmod 0777 /system/usr/keychars/Dell_Dell_USB_Keyboard.kcm.bin
chmod 0777 /system/usr/keychars/mxckpd.kcm.bin
chmod 0777 /system/usr/keychars/gpio-keys.kcm.bin
chmod 0777 /system/usr/keychars/mxc_ts-keypad.kcm.bin
chmod 0777 /system/usr/keychars/mxc_power_key.kcm.bin
chmod 0777 /system/usr/keychars/AVRCP.kcm.bin
chmod 0777 /sys/class/graphics/fb0/fsl_disp_property
chmod 0777 /sys/class/graphics/fb1/fsl_disp_property
on boot
# basic network init
ifup lo
hostname localhost
domainname localdomain
mkdir /data/system 0775 system system
#exec /sbin/ts_calibrator
exec system/xbin/flash.dump.sh
# set RLIMIT_NICE to allow priorities from 19 to -20
setrlimit 13 40 40
# Define the oom_adj values for the classes of processes that can be
# killed by the kernel. These are used in ActivityManagerService.
setprop ro.FOREGROUND_APP_ADJ 0
setprop ro.VISIBLE_APP_ADJ 1
setprop ro.SECONDARY_SERVER_ADJ 2
setprop ro.BACKUP_APP_ADJ 2
setprop ro.HOME_APP_ADJ 4
setprop ro.HIDDEN_APP_MIN_ADJ 7
setprop ro.CONTENT_PROVIDER_ADJ 14
setprop ro.EMPTY_APP_ADJ 15
# Define the memory thresholds at which the above process classes will
# be killed. These numbers are in pages (4k).
setprop ro.FOREGROUND_APP_MEM 1536
setprop ro.VISIBLE_APP_MEM 2048
setprop ro.SECONDARY_SERVER_MEM 4096
setprop ro.BACKUP_APP_MEM 4096
setprop ro.HOME_APP_MEM 4096
setprop ro.HIDDEN_APP_MEM 5120
setprop ro.CONTENT_PROVIDER_MEM 5632
setprop ro.EMPTY_APP_MEM 6144
# Write value must be consistent with the above properties.
# Note that the driver only supports 6 slots, so we have HOME_APP at the
# same memory level as services.
write /sys/module/lowmemorykiller/parameters/adj 0,1,2,7,14,15
write /proc/sys/vm/lowmem_reserve_ratio 1
write /proc/sys/vm/overcommit_memory 1
write /proc/sys/vm/min_free_order_shift 4
write /sys/module/lowmemorykiller/parameters/minfree 1536,2048,4096,5120,5632,6144
# Set init its forked children's oom_adj.
write /proc/1/oom_adj -16
# Tweak background writeout
write /proc/sys/vm/dirty_expire_centisecs 200
write /proc/sys/vm/dirty_background_ratio 5
# Permissions for System Server and daemons.
chown radio system /sys/android_power/state
chown radio system /sys/android_power/request_state
chown radio system /sys/android_power/acquire_full_wake_lock
chown radio system /sys/android_power/acquire_partial_wake_lock
chown radio system /sys/android_power/release_wake_lock
chown radio system /sys/power/state
chown radio system /sys/power/wake_lock
chown radio system /sys/power/wake_unlock
chmod 0660 /sys/power/state
chmod 0660 /sys/power/wake_lock
chmod 0660 /sys/power/wake_unlock
#chown system system /sys/class/timed_output/vibrator/enable
chown system system /sys/class/leds/keyboard-backlight/brightness
chown system system /sys/class/leds/lcd-backlight/brightness
chown system system /sys/class/leds/button-backlight/brightness
chown system system /sys/class/leds/jogball-backlight/brightness
chown system system /sys/class/leds/red/brightness
chown system system /sys/class/leds/green/brightness
chown system system /sys/class/leds/blue/brightness
chown system system /sys/class/leds/red/device/grpfreq
chown system system /sys/class/leds/red/device/grppwm
chown system system /sys/class/leds/red/device/blink
chown system system /sys/class/leds/red/brightness
chown system system /sys/class/leds/green/brightness
chown system system /sys/class/leds/blue/brightness
chown system system /sys/class/leds/red/device/grpfreq
chown system system /sys/class/leds/red/device/grppwm
chown system system /sys/class/leds/red/device/blink
#chown system system /sys/class/timed_output/vibrator/enable
chown system system /sys/class/haptic/oneshot
chown system system /sys/module/sco/parameters/disable_esco
chown system system /sys/kernel/ipv4/tcp_wmem_min
chown system system /sys/kernel/ipv4/tcp_wmem_def
chown system system /sys/kernel/ipv4/tcp_wmem_max
chown system system /sys/kernel/ipv4/tcp_rmem_min
chown system system /sys/kernel/ipv4/tcp_rmem_def
chown system system /sys/kernel/ipv4/tcp_rmem_max
chown root radio /proc/cmdline
# Chmod/chown FSL specific sys entry
chown radio system /sys/devices/platform/mxc_dvfs_core.0/enable
chown radio system /sys/devices/platform/busfreq.0/enable
chown system system /sys/class/backlight/tps60250/brightness
chmod 0660 /sys/devices/platform/mxc_dvfs_core.0/enable
chmod 0660 /sys/devices/platform/busfreq.0/enable
chmod 0660 /sys/class/backlight/tps60250/brightness
write /sys/devices/platform/busfreq.0/enable 1
write /sys/devices/platform/mxc_dvfs_core.0/enable 1
# allow control power for ecompass and gsensor
chown system system /sys/class/i2c-adapter/i2c-0/0-001c/akm8973_ctl
chmod 0777 /sys/class/i2c-adapter/i2c-0/0-001c/akm8973_ctl
#chown system system /sys/class/i2c-adapter/i2c-0/0-001d/power_ctl
#chmod 0777 /sys/class/i2c-adapter/i2c-0/0-001d/power_ctl
# for GPS gpio driver for gps power and bootmode control
chown system system /dev/gps_gpio
chown system system /sys/devices/virtual/gps/gps_gpio/gps_power
chown system system /sys/devices/virtual/gps/gps_gpio/gps_bootmode
chmod 0771 /dev/gps_gpio
chmod 0660 /sys/devices/virtual/gps/gps_gpio/gps_power
chmod 0771 /sys/devices/virtual/gps/gps_gpio/gps_bootmode
# for Sensor HAL
chown system system /dev/accel
chown system system /dev/akm8973_dev
chown system system /dev/akm8973_aot
chmod 0777 /dev/accel
chmod 0777 /dev/akm8973_dev
chmod 0777 /dev/akm8973_aot
# Define TCP buffer sizes for various networks
# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208
setprop net.tcp.buffersize.wifi 4095,87380,110208,4096,16384,110208
setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208
setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040
setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680
# Set property for FSL specific feature
# Init second display connection state
setprop rw.SECOND_DISPLAY_CONNECTED 0
# Define gst player property
setprop media.gstreamer.enable-player 0
# Comment the usage of stageflight media framework
setprop media.stagefright.enable-scan 0
setprop media.stagefright.enable-player 0
setprop media.stagefright.enable-record 0
setprop media.stagefright.enable-http 0
setprop media.stagefright.enable-meta 0
# Define fsl avi/aac/asf/mkv/flv/flac format support
setprop ro.FSL_AVI_PARSER 1
setprop ro.FSL_AAC_PARSER 1
setprop ro.FSL_ASF_PARSER 1
setprop ro.FSL_FLV_PARSER 1
setprop ro.FSL_MKV_PARSER 1
setprop ro.FSL_FLAC_PARSER 1
# Define fsl display init mode
setprop ro.FSL_LANDSCAPE_MODE 1
# Define fsl xec mode
setprop xec.dls.enabled 1
setprop xec.aa.enabled 1
setprop xec.dls.rate 0
setprop xec.aa.rate 100
# Define fsl dvfs property
setprop ro.dvfs.enabled 1
# Define UI to TVOUT,change this setting to 1 and uncomment below write commands
setprop ro.UI_TVOUT_DISPLAY 0
#write /sys/class/graphics/fb0/blank 1
#write /sys/class/graphics/fb1/blank 1
#write /sys/class/graphics/fb2/blank 1
#write /sys/class/graphics/fb0/fsl_disp_property 1-layer-fb
#write /sys/class/graphics/fb1/mode U:720x480i-60\n
#write /sys/class/graphics/fb1/blank 0
chown system system /sys/class/graphics/fb1/blank
chmod 0644 /sys/class/graphics/fb1/blank
chown system system /sys/class/graphics/fb1/mode
chmod 0644 /sys/class/graphics/fb1/mode
#chown system system /sys/devices/platform/mxc_sdc_fb.0/graphics/fb0/blank
#chmod 0644 /sys/devices/platform/mxc_sdc_fb.0/graphics/fb0/blank
# Define default notification_sound
setprop ro.config.notification_sound OnTheHunt.ogg
# for switch on/off framebuffer
chown system system /sys/devices/platform/mxc_sdc_fb.0/graphics/fb0/blank
chown system system /sys/devices/platform/mxc_sdc_fb.1/graphics/fb1/blank
chown system system /sys/devices/platform/mxc_sdc_fb.2/graphics/fb2/blank
chmod 0644 /sys/devices/platform/mxc_sdc_fb.0/graphics/fb0/blank
chmod 0644 /sys/devices/platform/mxc_sdc_fb.1/graphics/fb1/blank
chmod 0644 /sys/devices/platform/mxc_sdc_fb.2/graphics/fb2/blank
# ALSA mixer naming define
setprop alsa.mixer.playback.master Playback
setprop alsa.mixer.capture.master Capture
setprop alsa.mixer.playback.speaker Playback
setprop alsa.mixer.playback.headset Headphone
setprop alsa.mixer.capture.headset Capture
# Prepare for wifi
setprop wifi.interface wlan0
mkdir /data/misc/wifi/sockets 0770 wifi wifi
mkdir /data/misc/dhcp 0770 dhcp dhcp
chown dhcp dhcp /data/misc/dhcp
# DD partitions for diversity and ECD key region for access
chmod 0751 /factory
chown system system /factory
chmod 0777 /dev/block/mmcblk0
chmod 6777 /system/bin/dd
chown system system /system/bin/toolbox
exec /system/xbin/init.diversity.ecd.sh
# mount calibration data region
chown system system /dev/block/mmcblk0
chmod 0777 /dev/block/mmcblk0
chmod 0777 /sys/module/pd_ts13892/parameters/calibration
exec /system/xbin/init.calibration.sh
exec /system/bin/ts13892_calibrator
chmod 751 /system/xbin/flash_sync
# Prepare for bluetooth
# chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type
# chmod 666 /sys/class/rfkill/rfkill0/state
# chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
# write /sys/class/rfkill/rfkill0/state 0
# Enable USB host1'remote wakeup event wakeup android system
# write /sys/bus/platform/drivers/fsl-ehci/fsl-ehci.1/power/wakeup enabled
# Prepare for RIL
setprop gsm.ril.delay 15
#change file permission for synergy
chown root shell /system/etc/synergy_fts.sh
chmod 0550 /system/etc/synergy_fts.sh
class_start default
## Daemon processes to be run by init.
##
service console /system/bin/sh
console
# adbd is controlled by the persist.service.adb.enable system property
service adbd /sbin/adbd
user root
group root
disabled
# adbd on at boot in emulator
#on property:ro.kernel.qemu=1
# start adbd
on property:persist.service.adb.enable=1
start adbd
on property:persist.service.adb.enable=0
stop adbd
service servicemanager /system/bin/servicemanager
user system
critical
onrestart restart zygote
onrestart restart media
service vold /system/bin/vold
socket vold stream 0660 root mount
ioprio be 2
service netd /system/bin/netd
socket netd stream 0660 root system
service dispd /system/bin/dispd
socket dispd stream 0660 root system
service debuggerd /system/bin/debuggerd
service ril-daemon /system/bin/rild -l /system/lib/libreference-ril.so -- -d /dev/ttyUSB3 -u /dev/ttyUSB0
socket rild stream 660 root radio
socket rild-debug stream 660 radio system
user root
group radio cache inet misc audio
service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
socket zygote stream 666
onrestart write /sys/android_power/request_state wake
onrestart write /sys/power/state on
onrestart restart media
service media /system/bin/mediaserver
user media
group system audio camera graphics inet net_bt net_bt_admin net_raw
ioprio rt 4
service bootanim /system/bin/bootanimation
user graphics
group graphics
disabled
oneshot
service dbus /system/bin/dbus-daemon --system --nofork
socket dbus stream 666 bluetooth bluetooth
user bluetooth
group bluetooth net_bt_admin
service bluetoothd /system/bin/bluetoothd -n
socket bluetooth stream 660 bluetooth bluetooth
socket dbus_bluetooth stream 660 bluetooth bluetooth
# init.rc does not yet support applying capabilities, so run as root and
# let bluetoothd drop uid to bluetooth with the right linux capabilities
group bluetooth net_bt_admin misc
disabled
service hcid /system/bin/hcid -s -n -f /etc/bluez/hcid.conf
socket bluetooth stream 660 bluetooth bluetooth
socket dbus_bluetooth stream 660 bluetooth bluetooth
# init.rc does not yet support applying capabilities, so run as root and
# let hcid drop uid to bluetooth with the right linux capabilities
group bluetooth net_bt_admin misc
disabled
service hciattach /system/bin/logwrapper /system/bin/sh /system/etc/mxc_bt.sh
user bluetooth
group bluetooth net_bt_admin
disabled
oneshot
service hfag /system/bin/sdptool add --channel=10 HFAG
user bluetooth
group bluetooth net_bt_admin
disabled
oneshot
service hsag /system/bin/sdptool add --channel=11 HSAG
user bluetooth
group bluetooth net_bt_admin
disabled
oneshot
service opush /system/bin/sdptool add --channel=12 OPUSH
user bluetooth
group bluetooth net_bt_admin
disabled
oneshot
service pbap /system/bin/sdptool add --channel=19 PBAP
user bluetooth
group bluetooth net_bt_admin
disabled
oneshot
service synergy_fts_init /system/etc/synergy_fts.sh
user root
group sdcard_rw
oneshot
service synergysdpops /system/etc/synergy_sdptool.sh 12 0x1105 ReservedOPPS
user root
disabled
oneshot
#service hidloopback /system/etc/insert-hiddrv.sh
# user root
# oneshot
service installd /system/bin/installd
socket installd stream 600 system system
service flash_recovery /system/etc/install-recovery.sh
oneshot
service racoon /system/bin/racoon
socket racoon stream 600 system system
# racoon will setuid to vpn after getting necessary resources.
group net_admin
disabled
oneshot
service mtpd /system/bin/mtpd
socket mtpd stream 600 system system
user vpn
group vpn net_admin net_raw
disabled
oneshot
service keystore /system/bin/keystore /data/misc/keystore
user keystore
group keystore
socket keystore stream 666
service dumpstate /system/bin/dumpstate -s
socket dumpstate stream 0660 shell log
disabled
oneshot
#service dhcpcd /system/bin/logwrapper /system/bin/dhcpcd -d -B wlan0
service dhcpcd /system/bin/dhcpcd -d -B wlan0
disabled
oneshot
service wpa_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant \
-Dwext -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf
user root
group wifi inet
socket wpa_wlan0 dgram 660 wifi wifi
oneshot
#service pppd_gprs /etc/init.gprs-pppd
#user root
#group radio cache inet misc
#disabled
#oneshot
service akmd2 /system/bin/akmd2
user system
group system
oneshot
# save diversity.bin from memory to emmc
service div_restore_m /system/bin/dd if=/factory/diversity.bin of=/dev/block/mmcblk0 obs=512 seek=14337 count=1
user root
group system
disabled
oneshot
# restore diversity.bin from diversity data
service div_restore_w /system/bin/dd if=/factory/diversity.master of=/dev/block/mmcblk0 obs=512 seek=14336 count=1
user root
group system
disabled
oneshot
# flash sync
service flash_sync /system/xbin/flash_sync
user root
group system
service synergy_exe /system/xbin/synergy_exe
user root
service a2dp_adapter /system/bin/csr_liba2dp_process
user root
group system audio camera graphics inet net_bt net_bt_admin
service flash_wifi /system/xbin/flash_wifi
disabled
oneshot
service wlan0_check /system/xbin/wlan0_check
disabled
oneshot
I've dumped several partitions, including /boot with romdump and dd:
Code:
dd if=/dev/bootimg of=/mnt/sdcard/boot.img bs=<your boot size> count=1
But I've never figured out the boot size correcly. Is this dangerous if I didn't entered the boot size, because I didn't knew was it is? As far as I know, my re-packed boot.img should be the same size, because I only have to edit default.prop, correct?
Then I've listed the partitions:
Code:
$cat /proc/mtd
dev: size erasesize name
$cat /proc/partitions
major minor #blocks name
179 0 7815168 mmcblk0
179 1 4309200 mmcblk0p1
179 2 154035 mmcblk0p2
179 3 1 mmcblk0p3
179 4 10395 mmcblk0p4
179 5 3145873 mmcblk0p5
179 6 41076 mmcblk0p6
$
Using the app "DiskInfo", I believe I've found which partition was /Boot. Here's what I see:
SD Card:
Mount points: /mnt/sdcard, /mnt/secure/asec (This is an INTERNAL SD card)
Partition name: mmcblk0p1
Total Space: 4.1GB
System:
Mount point: /system (ext4)
Partition Name: mmcblk0p2
Total Space: 128MB
???
Not mounted;
Partition name: mmcblk0p3
Total space: 1KB (What the hell? What is that partition??)
??? (Sound like Boot. But it does actually contain the JPEG files from Android Recovery 3e, so it does look like the /Recovery partition instead. While it DOES contain the default.prop file I'm looking for. But if this is /Recovery, where is /Boot ??? Just, not there, or the boot files are in the recovery partition as well?)
Not mounted;
Partition name: mmcblk0p4
Total space: 10,2MB
Data:
Mount point: /data (ext4)
Partition name: mmcblk0p5
Total space: 3GB (2,6GB free)
Cache:
Mount point: /cache (ext4)
Partition name: mmcblk0p6
Total space: 38,7MB (32,3 MB free)
TMPFS MOUNT POINTS:
/dev: Total space: 91,6MB, 12KB used
/mnt/asec: Total space: 91,6MB, 0KB used
/mnt/shm: Total space: 1MB, used: 20KB
/factory: Total space: 128KB, used: 64KB
/mnt/sdcard/.android_secure: Unknow size
***
POST TOO LONG - Next part in the next post
I've attached Boot (Or Recovery) .img to this post. Zipped the IMG in a ZIP file.
Part 2:
So I've dumped mmcblk0p4 using dd (Obviously, this device use non-standard NAND partitioning, huh). Note, I did not specified the boot size. I don't know if it's really important in that case, because I will only change a few lines from default.prop:
Code:
dd if=/dev/block/mmcblk0p4 /sdcard/boot.img
Worked.
But now, how do I unpack/repack this?
First, I've tried using this tool (Boot/Recovery Repack utils for Windows): http://forum.xda-developers.com/showthread.php?t=2036528
But dragging the boot.img file on MTK_unpack.bat returned:
Code:
[total hits/matching patterns/non-matching patterns]
warn : empty file: bin\off2.txt - skipping
0 files checked, 0 changed.
1 warnings occurred.
- size of "D:\DATA\ZEN Touch 2 [13-02-14]\BootRecoveryRepack\boot.img" 10644480 byte
- kernel offset -
- ram_header offset -
- ram_disk offset -
- extracting kernel_header...
- extracting kernel...
- extracting ram_header...
- extracting ram_disk...
error: end offset is lower than start offset
1 errors occurred.
- unpack ram_disk.gz...
- unpack ram_disk.cpio...
File not found
Unknown/Unrecognized command
Press any key to continue..
I then tried to drag boot.img on STD_unpack.bat instead:
Code:
[total hits/matching patterns/non-matching patterns]
warn : empty file: bin\off2.txt - skipping
0 files checked, 0 changed.
1 warnings occurred.
- pagesize - 4
ECHO command disabled
- size of image - 10644480 byte
- ram_disk offset - 4
- split kernel...
- extract ram_disk.gz...
10644476 bytes copied.
- unpack ram_disk.gz...
- unpack ram_disk.cpio...
File not found.
- copy source boot.img to unpacked folder (to keep source image)...
- done.
Press any key to continue...
Almost nothing was actually extracted. Boot.img remained compressed as IMG file.
And then I tried again, using AndroidKitchen this time, using the option to unpack Boot.img:
Code:
Creating folder /home/Carl/kitchen/bootimg_051515_193037 ...
---> Place boot.img/recovery.img into the folder mentioned above <--
Press Enter to continue
Code:
Android 'magic' header not found at start of boot.img
Checking if it exists elsewhere ...
[B][COLOR="Red"]Warning: Android header not found in boot.img (unsupported format)[/COLOR][/B]
Error: kernel offset (page size) is 0
Press Enter to continue
Now, what do I attempt next?
I don't have the skills to do all that on my own at this point. :/
Considering also that if we do a critical mistake, there is no possibility to recover from a soft-brick without Clockworkmod installed. I would first like to have at least ADB working.
Thank you very much!
EDIT: Is the bootloader locked? I honnestly have no idea, I've read that to check, you have to boot in Fastboot mode, and it's impossible to boot into Fastboot (Maybe it is on the phone somewhere, but I don't know. Just what I know for sure, is that the only key-combo access Recovery mode. Besides, the device have so few partititons, doubt Fastboot is there).
Considering the device is from 2010, do locked-bootloaders were THAT common, back then (I would say no, but just a guess) ?
Can someone help me with that, or point me to the right direction please?
Using AndroidKitchen, I sucessfully unpacked the Boot.img of my LG P500 phone, while I'm having a harder time unpacking the Boot.img of my Samsung Galaxy S4 for testing. Did worked for my LG P500, but I can't do it for this device, ZEN Touch 2, absolutely not on my own right now. Is this even possible, since the NAND partitioning is not standard? There has to be a way, huh?
Thank you very much - I can't seem to do that all on my own :/
I appreciate

Categories

Resources