Hello.
I made a mistake and now I am in need for new init.rc from Vodafone 845 custom ROM (v 1.3.2 -it's not in zip file, I suppose it's made in phone with first start?). Can somebody dump it from phone for me?
Thanks
Thanks to user bravesoul, who send me the file. I put it here, so anyone who need it (maybe even me in the future ) can have it
Code:
#/*BU5D01075 zhangsheng 20090119 scaling cpu freq when snapshot*/
#/*BU5D01195 sihongfang modify for wapi 20100121 */
#/*BU5D01319 By w00159795 -3010.01.30,Begin */
on init
sysclktz 0
loglevel 3
#BEGIN: BU5D02313 wuweibin/00107028 2010-02-03
#BEGIN: BU5D01687 wangshoucheng 2010-03-12
#BEGIN: BU5D05470 yanghang 2010-03-20
# 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 /sdcard
export BOOTCLASSPATH /system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/com.huawei.android.launcher.jar:/system/framework/widget_multimedia.jar:/system/framework/widget_info.jar
#END: BU5D05470 yanghang 2010-03-20
#END: BU5D01687 wangshoucheng 2010-03-12
#END: BU5D02313 wuweibin/00107028 2010-02-03
# Backward compatibility
symlink /system/etc /etc
symlink /sys/kernel/debug /d
# create mountpoints and mount tmpfs on sqlite_stmt_journals
mkdir /sdcard 0000 system system
mkdir /system
mkdir /data 0771 system system
mkdir /cache 0770 system cache
mkdir /config 0500 root root
mkdir /sqlite_stmt_journals 01777 root root
mount tmpfs tmpfs /sqlite_stmt_journals size=4m
mount rootfs rootfs / ro remount
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 sytem 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
# 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
# We chown/chmod /data again so because mount is run as root + defaults
mount yaffs2 [email protected] /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
# 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
#/* < BU5D04322 lixiangyu 20100306 begin */
#/* < BU5D01310 lixiangyu 20100121 begin */
# /* < BU5D00386 lixiangyu 20100105 begin */
# write /sys/devices/platform/usb_mass_storage/lun0/file /system/cdrom/autorun.iso
# /* BU5D00386 lixiangyu 20100105 end > */
#/* BU5D01310 lixiangyu 20100121 end > */
#/* BU5D04322 lixiangyu 20100306 end > */
write /proc/apanic_console 1
# Same reason as /data above
mount yaffs2 [email protected] /cache nosuid nodev
#/* <BK4D07133 leipeng fota_fsua begin */
mkdir /cache/fotapkg 0777 system system
mkdir /cache/fotapkg/tmp 0777 system system
chown system cache /cache
chmod 0771 /cache
#/* <BK4D07133 leipeng fota_fsua begin */
# This may have been created by the recovery system with odd permissions
chown system system /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
# create basic filesystem structure
mkdir /data/misc 01771 system misc
mkdir /data/misc/bluetoothd 0770 bluetooth bluetooth
mkdir /data/misc/keystore 0700 keystore keystore
mkdir /data/misc/vpn 0770 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
# HUAWEI MM FOLDER
#/* < BU5D07344 linliang 20100409 begin */
#/* set HWUserData attribute after mount !!! */
mkdir /data/HWUserData 0777 system system
mount yaffs2 [email protected] /data/HWUserData nosuid nodev
chown system system /data/HWUserData
chmod 0777 /data/HWUserData
#/* BU5D07344 linliang 20100409 end > */
mkdir /data/HWUserData/Pictures 0777 system system
chown system system /data/HWUserData/Pictures
chmod 0777 /data/HWUserData/Pictures
mkdir /data/HWUserData/Videos 0777 system system
chown system system /data/HWUserData/Videos
chmod 0777 /data/HWUserData/Videos
mkdir /data/HWUserData/Recordings 0777 system system
chown system system /data/HWUserData/Recordings
chmod 0777 /data/HWUserData/Recordings
mkdir /data/HWUserData/ContactIcons 0777 system system
chown system system /data/HWUserData/ContactIcons
chmod 0777 /data/HWUserData/ContactIcons
#/*< BU5D08479 zhangxiangdang 20100423 begin */
mkdir /data/calibration 0777 system system
#/* BU5D08479 zhangxiangdang 20100423 end > */
# modify for wifi baseline
#create WIFI filesystem structure
mkdir /data/misc/wifi 0777 system system
mkdir /data/misc/wifi/sockets 0777 system system
mkdir /data/misc/wpa_supplicant 0777 system system
mkdir /data/misc/dhcp 0777 system system
#/* BK4D07344 pppoe begin*/
mkdir /etc/ppp
#/* BK4D07344 pppoe end*/
#for WAPI
mkdir /data/wapi 0777 system system
# 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
# /* add drm module */
mkdir /data/drm 0777 root root
chown root root /data/drm
chmod 0777 /data/drm
mkdir /data/drm/rights 0777 root root
chown root root /data/drm/rights
chmod 0777 /data/drm/rights
mkdir /data/hwvefs 0777 root root
chown root root /data/hwvefs
chmod 0777 /data/hwvefs
#/* < BU5D05414 linliang 20100318 begin */
chown root root /data/cdrom
chmod 0444 /data/cdrom
chown root root /data/cdrom/autorun.iso
chmod 0444 /data/cdrom/autorun.iso
#/* BU5D05414 linliang 20100318 end > */
#/*<BU5D02927 shiyan 20100220 begin*/
on cust
mkdir /data/cust
custcopy local.prop /data/local.prop
#/*<BU5D04277 shiyan 20100305 begin*/
custcopy apk_name_need_to_enable.xml /data/cust/apk_name_need_to_enable.xml
chmod 0666 /data/cust/apk_name_need_to_enable.xml
#/*BU5D04277 shiyan 20100305 end>*/
#/*<BU5D04345 yangjianfeng 20100306 begin*/
custcopy nv.bin /data/cust/nv.bin
chmod 0666 /data/cust/nv.bin
#/*BU5D04345 yangjianfeng 20100306 end>*/
# the follow is a example for customize config copy,please pay attention to the mode of the file.
mkdir /data/cust/wifi
custcopy wpa_supplicant.conf /data/cust/wifi/wpa_supplicant.conf
chmod 0666 /data/cust/wifi/wpa_supplicant.conf
#/*BU5D02927 shiyan 20100220 end>*/
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
# 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/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/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
chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type
chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
chmod 0660 /sys/class/rfkill/rfkill0/state
chown bluetooth bluetooth /sys/module/bluetooth_power/parameters/power
chown bluetooth bluetooth /proc/bluetooth/sleep/proto
chown system system /sys/module/sco/parameters/disable_esco
chmod 0660 /sys/module/bluetooth_power/parameters/power
chmod 0660 /proc/bluetooth/sleep/proto
chown bluetooth bluetooth /dev/ttyHS0
chmod 0660 /dev/ttyHS0
# <yuxuesong add for gsensor begin
# HUAWEI MODIFY
chmod 0666 /dev/accel
#/* <BU5D06270 zhangxiangdang 20100417 begin */
chmod 0666 /dev/ofn
#/* BU5D06270 zhangxiangdang 20100417 end> */
#/* <BU5D06874 zhangxiangdang 20100402 begin */
chmod 0666 /dev/akm8973_aot
chmod 0666 /dev/akm8973_dev
#/* BU5D06874 zhangxiangdang 20100402 end> */
# /* < BU5D05131 gaohuajiang 20100318 begin */
chmod 0666 /dev/light
chmod 0666 /dev/proximity
# /* BU5D05131 gaohuajiang 20100318 end > */
# yuxuesong add for gsensor end>
chmod 0666 /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
#add bymazhenhua add for projectmenu
chmod 0777 /sys/kernel/logger/log_main/enable
chmod 0777 /sys/kernel/logger/log_events/enable
chmod 0777 /sys/kernel/logger/log_radio/enable
chmod 0777 /sys/kernel/logger/log_main/priority
chmod 0777 /sys/kernel/logger/log_events/priority
chmod 0777 /sys/kernel/logger/log_radio/priority
#add by mzh end
#/* < BU5D03238 mazhenhua 20100309 begin */
#/*add project menu's camera info*/
chmod 0777 /dev/input/event0
#/* BU5D03238 mazhenhua 20100309 end > */
#/* < BU5D04750 mazhenhua 20100322 begin */
chmod 0666 /dev/input/event1
#/* BU5D04750 mazhenhua 20100322 end > */
# 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
start a2sd
on property:cm.filesystem.ready=1
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
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
service nexus /system/bin/nexus
socket nexus stream 0660 root system
disabled
#service mountd /system/bin/mountd
# socket mountd stream 0660 root mount
service debuggerd /system/bin/debuggerd
service ril-daemon /system/bin/rild
socket rild stream 660 root radio
socket rild-debug stream 660 radio system
user root
group radio cache inet misc audio
# begin. BK4D06922. y00150983. 20091231.
service app_firewall /system/bin/hw_firewall
user root
oneshot
on property:hw.service.firewall.enable=1
start app_firewall
on property:hw.service.firewall.enable=0
stop app_firewall
# end. BK4D06922. y00150983. 20091231.
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
service bootsound /system/bin/playmp3
user media
group audio
oneshot
service bootanim /system/bin/bootanimation
user graphics
group graphics
disabled
oneshot
service dbus /system/bin/dbus-daemon --system --nofork
socket dbus stream 660 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 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
#/* < BU5D08493 guhaifeng 20100423 begin */
service tethercmd /system/bin/tether rootcmd
user root
group bluetooth net_bt_admin system
disabled
oneshot
#/* BU5D08493 guhaifeng 20100423 end > */
# modify for wifi baseline
# HUAWEI WPA SETTING
service wpa_supplicant /system/bin/wpa_supplicant -Dwext -ieth0 -W -c/data/misc/wifi/wpa_supplicant.conf
disabled
oneshot
#/*BU5D05981 for broadcom,WIFI Module,hanshirong 66539,20100325 begin++*/
service bcm_supplicant /system/bin/bcm_supplicant -Dwext -ieth0 -W -c/data/misc/wifi/wpa_supplicant.conf
disabled
oneshot
#/*BU5D05981 for broadcom,WIFI Module,hanshirong 66539,20100325 end--*/
service dhcpcd /system/bin/dhcpcd eth0 -B
disabled
oneshot
service wlan_tool /system/bin/wlan_tool
disabled
oneshot
service pbap /system/bin/sdptool add --channel=19 PBAP
user bluetooth
group bluetooth net_bt_admin
disabled
oneshot
service installd /system/bin/installd
socket installd stream 600 system system
#/*BU5D00806 sihongfang 20100227 begin*/
service abtfilt /system/bin/abtfilt -c -d -z -n
disabled
oneshot
#/*BU5D00806 sihongfang 20100227 end*/
#/*< \BU5D00959 linliang Add FOTA update to 7x25, 20100114 begin*/
service flash_recovery /system/bin/flash_image recovery /system/recovery.img
oneshot
#/* \BU5D00959 linliang Add FOTA update to 7x25, 20100114 end*/
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
# /*<MSM7X25 hw modify --COMPASS-- yuxuesong 20091202 Łşbegin */
#START HUAWEI COMPASS SERVICE
#/* <BU5D06874 zhangxiangdang 20100402 begin */
service akmd /system/bin/akmd2
disabled
oneshot
#/* BU5D06874 zhangxiangdang 20100402 end> */
# /* MSM7X25 hw modify --COMPASS-- yuxuesong 20091202 Łşend> */
service keystore /system/bin/keystore /data/misc/keystore
user keystore
group keystore
socket keystore stream 666
#add by mazhenhua for rpc service
# START HUAWEI RPC SERVICE
service oem_rpc_svc /system/bin/oem_rpc_svc
oneshot
#add by mzh end
service dumpstate /system/bin/dumpstate -s
socket dumpstate stream 0660 shell log
disabled
oneshot
#/* BK4D07344 pppoe begin*/
service pppoe_supplicant /system/bin/pppoe_supplicant
disabled
oneshot
#/* BK4D07344 pppoe end*/
#start sync service
service syncsdr /system/bin/syncsdr
oneshot
# /* add drm module */
service hwvefs /system/bin/hwvefs /data/hwvefs -o allow_other
service a2sd /system/bin/logwrapper /system/bin/sh /system/bin/a2sd
disabled
oneshot
I wonder if this work on defy.....
http://forum.xda-developers.com/showthread.php?t=1100777
If someone try this...plase let me know
I don't think so
would be great....
I didn't tried it but theoretically it should work. Maybe the scripts must be adapted.
How does it technically work? Maybe via chroot or does it use something like our 2ndinit-bootmenu vor booting these images?
Relly?
Relly?
Second boot in bootmenu could be used for that.. but requieres a vesrsion of android modded to work on sdcard...
main settings are in init.rc files and it should be possible to mount /system and /data from sdcard partitions.
The problems will be related to usb motoportal and mass storage which unmount sdcard
Epsylon3 said:
The problems will be related to usb motoportal and mass storage which unmount sdcard
Click to expand...
Click to collapse
I think this can be solved by partitioning the sdcard into two partitions, one ext3 for storing system and data images to boot from it and other fat for the user files, so that mass storage will unmount only the second one!
How do they do on the original project, though? There should had been the same problem also...
Running the system from sdcard I think can be a little slow, but it may still usable... Only testing for knowing...
I created 2 partitions o my sdcard.
1) EXT3 2GB
2) FAT32 6GB
Then I installed gentoo on ext3 partition.
I can chroot into ext3 partition and use all gentoo (linux) commands. I installed Apache, squid, etc and it worked fine. I can run a WEB server on my Defy
And I can access the FAT32 partition on my PC even with the ext3 partition mounted.
Hi Dedraks!
It's basically the same idea I gave, you have two separated partitions and so one can be mounted and unmounted independently of the other. But in the original project linked above the rom images are inside the sdcard's user partition, that's the same that's unmounted when the phone is connected to computer. I've asked how they did to get around this issue at the project thread, but I'm starting to think that if you want to access your sdcard from the computer using the phone you'd need to boot the rom inside nand and not sdcard, at least the way they did it...
As I don't have my Defy at the moment would you mind posting the content of the init.rc file (it's placed inside rootfs methinks) so that we can take a look at it to see what can be done?
Thanks!
/init.rc:
Code:
on early-init
start ueventd
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 EXTERNAL_STORAGE /mnt/sdcard
export EXTERNAL_ALT_STORAGE /mnt/sdcard-ext # Feature 34534
export ASEC_MOUNTPOINT /mnt/asec
export LOOP_MOUNTPOINT /mnt/obb
export BOOTCLASSPATH /system/framework/core.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/core-junit.jar:/system/framework/com.motorola.android.frameworks.jar:/system/framework/com.motorola.android.widget.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 0775 root system
mkdir /mnt/sdcard 0000 system system
mkdir /mnt/sdcard-ext 0000 system system # Feature 34534
mkdir /osh 0755 root root
mkdir /preinstall 0755 system system
symlink /data/tmp /tmp
# 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/sdcard-ext /sdcard-ext # Feature 34534
mkdir /system
mkdir /data 0771 system system
mkdir /cache 0770 system cache
mkdir /config 0500 root root
mkdir /pds 0755 root root
mkdir /misc 0770 system misc
# 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
# 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
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 ext3 [email protected] /system noatime nodiratime barrier=1
mount yaffs2 [email protected] /data nosuid nodev
exec /system/bin/logwrapper /system/bin/mount_ext3.sh userdata /data
mount yaffs2 [email protected] /cache nosuid nodev
exec /system/bin/logwrapper /system/bin/mount_ext3.sh cache /cache
on post-fs
# once everything is setup, no need to modify /
mount rootfs rootfs / ro remount
# 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
chown root log /data/dontpanic
chmod 0750 /data/dontpanic
# 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
chown system cache /cache
chmod 0770 /cache
chown system misc /misc
chmod 0770 /misc
# 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 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/misc/wifi/hostapd.sockets 0770 wifi wifi
mkdir /data/misc/wifi/sockets 0770 wifi wifi
mkdir /data/misc/dhcp 0770 dhcp dhcp
mkdir /data/local 0771 mot_tcmd shell
mkdir /data/local/tmp 0771 mot_tcmd shell
mkdir /data/local/12m 0771 mot_tcmd shell
mkdir /data/local/12m/batch 0771 mot_tcmd shell
chown mot_tcmd shell /data/local
chown mot_tcmd shell /data/local/12m
chown mot_tcmd shell /data/local/12m/batch
chown mot_tcmd shell /data/local/tmp
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/tmp 0777 system system
chown system system /mnt/sdcard # Feature 34534
chmod 0777 /mnt/sdcard # Feature 34534
# 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
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
# set RLIMIT_NOFILE to allow maximum num of file open to be 2048
setrlimit 7 2048 2048
# 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.PERCEPTIBLE_APP_ADJ 2
setprop ro.HEAVY_WEIGHT_APP_ADJ 3
setprop ro.SECONDARY_SERVER_ADJ 4
setprop ro.BACKUP_APP_ADJ 5
setprop ro.HOME_APP_ADJ 6
setprop ro.HIDDEN_APP_MIN_ADJ 7
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 2048
setprop ro.VISIBLE_APP_MEM 3072
setprop ro.PERCEPTIBLE_APP_MEM 4096
setprop ro.HEAVY_WEIGHT_APP_MEM 4096
setprop ro.SECONDARY_SERVER_MEM 6144
setprop ro.BACKUP_APP_MEM 6144
setprop ro.HOME_APP_MEM 6144
setprop ro.HIDDEN_APP_MEM 7168
setprop ro.EMPTY_APP_MEM 8192
# Write value must be consistent with the above properties.
# Note that the driver only supports 6 slots, so we have combined some of
# the classes into the same memory level; the associated processes of higher
# classes will still be killed first.
write /sys/module/lowmemorykiller/parameters/adj 0,1,2,4,7,15
write /proc/sys/vm/overcommit_memory 1
write /proc/sys/vm/min_free_order_shift 4
write /sys/module/lowmemorykiller/parameters/minfree 2048,3072,4096,6144,7168,8192
# 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 media media /sys/class/leds/af-led/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 65536,131072,262144,65536,131072,262144
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
# class_start default
## Daemon processes to be run by init.
##
service ueventd /sbin/ueventd
class pre-zygote_services
critical
service console /system/bin/sh
class pre-zygote_services
console
disabled
user shell
group log
on property:ro.secure=0
start console
# adbd is controlled by the persist.service.adb.enable system property
service adbd /sbin/adbd
class pre-zygote_services
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
class pre-zygote_services
user system
critical
onrestart restart zygote
onrestart restart media
service vold /system/bin/vold
class pre-zygote_services
socket vold stream 0660 root mount
ioprio be 2
service tund /system/bin/tund
class pre-zygote_services
socket tund stream 0660 vpn system
ioprio be 2
service netd /system/bin/netd
class pre-zygote_services
socket netd stream 0660 root system
service nexus /system/bin/nexus
class pre-zygote_services
socket nexus stream 0660 root system
disabled
service debuggerd /system/bin/debuggerd
class pre-zygote_services
service ril-daemon /system/bin/rild
class pre-zygote_services
socket rild stream 660 root radio
socket rild-debug stream 660 radio system
user root
group radio cache inet misc audio sdcard_rw system mot_secclkd mot_accy
service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
class zygote_services
socket zygote stream 666
onrestart write /sys/android_power/request_state wake
onrestart write /sys/power/state on
onrestart restart media
onrestart restart netd
service media /system/bin/mediaserver
class zygote_services
user media
group system audio camera graphics inet net_bt net_bt_admin net_raw mot_drm input mot_tpapi mot_secclkd mot_pwric
ioprio rt 4
service bootanim /system/bin/bootanimation
class post-zygote_services
user graphics
group graphics
disabled
oneshot
service dbus /system/bin/dbus-daemon --system --nofork
class post-zygote_services
socket dbus stream 660 bluetooth bluetooth
user bluetooth
group bluetooth net_bt_admin
service bluetoothd /system/bin/bluetoothd -n
class post-zygote_services
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 hfag /system/bin/sdptool add --channel=10 HFAG
class post-zygote_services
user bluetooth
group bluetooth net_bt_admin
disabled
oneshot
service hsag /system/bin/sdptool add --channel=11 HSAG
class post-zygote_services
user bluetooth
group bluetooth net_bt_admin
disabled
oneshot
service opush /system/bin/sdptool add --channel=12 OPUSH
class post-zygote_services
user bluetooth
group bluetooth net_bt_admin
disabled
oneshot
service pbap /system/bin/sdptool add --channel=19 PBAP
class post-zygote_services
user bluetooth
group bluetooth net_bt_admin
disabled
oneshot
service installd /system/bin/installd
class post-zygote_services
socket installd stream 600 system system
service flash_recovery /system/etc/install-recovery.sh
class post-zygote_services
oneshot
# Copy 12M/batch files
service 12m_files_copy /system/etc/12m_files_copy.sh
class pre-zygote_services
oneshot
service racoon /system/bin/racoon
class post-zygote_services
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
class post-zygote_services
socket mtpd stream 600 system system
user vpn
group vpn net_admin net_raw
disabled
oneshot
service keystore /system/bin/keystore /data/misc/keystore
class post-zygote_services
user keystore
group keystore
socket keystore stream 666
service dumpstate /system/bin/dumpstate -s
class post-zygote_services
socket dumpstate stream 0660 shell log
disabled
oneshot
service ap_fmloader /system/bin/logwrapper /system/bin/wlan_loader -f /system/etc/wifi/fw_tiwlan_ap.bin -i /system/etc/wifi/tiwlan_ap.ini -e /pds/wifi/nvs_map.bin
class post-zygote_services
disabled
oneshot
service ap_fmloader_rfmd /system/bin/logwrapper /system/bin/wlan_loader -f /system/etc/wifi/fw_tiwlan_ap_rfmd.bin -i /system/etc/wifi/tiwlan_ap_rfmd.ini -e /pds/wifi/nvs_map.bin
class post-zygote_services
disabled
oneshot
service hostapd /system/bin/logwrapper /system/bin/Hostapd /data/misc/wifi/hostapd.conf
class post-zygote_services
socket hostapd_tiwlan0 dgram 660 wifi wifi
disabled
oneshot
service dnsmasq /system/bin/logwrapper /system/bin/dnsmasq -C/data/misc/wifi/dns.conf -k
class post-zygote_services
group wifi
disabled
oneshot
service mynet_start /system/bin/logwrapper /system/bin/sh /data/misc/wifi/forward_start.sh
class post-zygote_services
disabled
oneshot
service mynet_stop /system/bin/logwrapper /system/bin/sh /data/misc/wifi/forward_stop.sh
class post-zygote_services
disabled
oneshot
Code:
mount mtd partitions
# Mount /system rw first to give the filesystem a chance to save a checkpoint
mount yaffs2 [email protected] /system
mount ext3 [email protected] /system noatime nodiratime barrier=1
mount yaffs2 [email protected] /data nosuid nodev
exec /system/bin/logwrapper /system/bin/mount_ext3.sh userdata /data
mount yaffs2 [email protected] /cache nosuid nodev
exec /system/bin/logwrapper /system/bin/mount_ext3.sh cache /cache
I think some modifications in there for booting from sdcard will have to be done, but I'm confused now because as far as I know Defy uses ext3 fs and not yaffs2!
Hey guys, I'm no pro about ROM cooking and other advanced mods, but my though is: since Defy has a somewhat large internal memory, couldn't this mod be done using it instead of the SD? I think it would be faster than using a memory card.
K3n H1mur4 said:
Hey guys, I'm no pro about ROM cooking and other advanced mods, but my though is: since Defy has a somewhat large internal memory, couldn't this mod be done using it instead of the SD? I think it would be faster than using a memory card.
Click to expand...
Click to collapse
Maybe the choice to have multiple roms on the sdcard instead of having them on nand memory is because of the impossibility of partitioning the nand and not because of available space... But this is just a guess, let's wait for Epsylon3 to give his opinion!
Conap from the HTC forums answered my question and confirmed what I've imagined:
Conap said:
It won't unmount the sdcard while booted to it because the sdcard will be in use...that said it then won't mount it to your pc from there....if you want the new app coming to support the moto defy you can pm so I can get some info on the phone so it can be added
Click to expand...
Click to collapse
I'll keep in touch with him and show him this thread so that he can help us also!
danimagrin said:
Conap from the HTC forums answered my question and confirmed what I've imagined:
I'll keep in touch with him and show him this thread so that he can help us also!
Click to expand...
Click to collapse
I wrote code into the java app that was included that mount's the sdcard to pc while still being mounted to the phone. These scripts for the inc use an internal sd storage that the inc has (8GB) so it's not really compatible with other phones although the basics behind it works for an sdcard as well it just needs alot of changes. I am working on a new app with another dev that will handle all the instillation of the rom's and creation of images as well as booting between them. It will support multiple phones. As of now it's tested on my incredible and the other dev's D1 and we are close to getting beta testers for other devices. The info I need to add a device is fairly simple. I need the board name(i.e. Incredible is inc, D1 is sholes) It should be in your build.prop of your rom. I also need the location of the sdcard...it's probably either /dev/block/mmcblk1p1 or /dev/block/mmcblk0p1...you can find it by booting to recovery and from adb shell type mount sdcard then type mount. I also need the sizes of the system,data, and cache partitions...while in recovery do:
mount system
mount data
mount cache
df -h
and it should show your partition sizes in mb's. You can run the df -h command while booted but sometimes it doesn't show the right info...usually if you use busybox df -h it will work. So if anyone interested can pm that information we can get it added to the new app and get it tested.
Reserved...
Hi,
I experience an audio driver failure on one of my Android devices. Me and a more advanced Android user, by installing the boot animation "Live Logcat Live" (https://play.google.com/store/apps/details?id=eu.chainfire.livelogcat.lite), we determined that this would also caused 19 times out of 20 a bootloop, before the audio driver couldn't initialize.
Here's one logcat I have, from after boot:
Too long to paste, here's a Dropbox TXT : https://dl.dropboxusercontent.com/u/67605655/logcat_boot.txt
We've determined that it might be an incompatibility with the kernel and the audio driver.
Later on, I rebooted in recovery mode (Android Recovery 3e, which does not allow to flash unsigned update.zip. I've applied a patch here to bypass the limitation, nothing broke, but I did not tested the flashing), and wipe /Cache. Surprisingly, the device booted, and that happened 1 times out of 20, while messing with the Reset button. And it's definitely not the first time I wipe /Cache and /Data... Well, the device rebooted, and this time, I DID had a sound effect for unlocking the screen (Which I didn't heard since months). But that's all, no sound after that. I have another Logcat saved right after that moment, if that can help:
Another TXT from Dropbox: https://dl.dropboxusercontent.com/u/67605655/logcat_secondboot.txt
But now, what could I do ? I keep the device ON, but I don't know what to do to fix this. The Android device, on 2.2.1, is unknow, and there's no official/easy way to install a custom recovery or custom ROM. All I could do is flash zip files from Android Recovery 3e, that is if the patched worked as it should have.
The device is unlisted with ROM Manager of course, so CWM is not installable the easy way. A flashable image is nowhere to be found. Although yes, my device is rooted since 2011, with Z4Root.
Assuming I did had an Nandroid backup (No way to actually do the backup without a custom recovery), I'm not even sure restoring would fix such an issue... If it's a problem with a driver/kernel.
Here are the device SPECs :
Code:
ARMv7 Processor rev 5 )v7l) 800MHz (200 MHz-800 MHz)
Android ID : 65d3e923b8b46272
Model: Creative Earlgrey 2.2.1
Kernel: SDK 8 Linux Version 2.6.31
Could the kernel be reinstallable at all? It sounds really risky to do. Also dumped my current ROM, and got these files. Apparently worked:
checksum.md5
config.gz
system.info.gz
system.tar (108 MB)
If that can help, here's 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
init.zen_touch_2.rc :
Code:
on boot
# Set permission for IIM node
chmod 0777 /dev/mxc_iim
symlink /dev/mxc_iim /dev/mxc_mem
chmod 0777 /sys/class/graphics/fb0/fsl_disp_property
chmod 0777 /sys/class/graphics/fb1/fsl_disp_property
# 3D acceleration property
setprop debug.sf.showfps 0
setprop debug.sf.enable_hgl 1
# fsl omx graphic manager media framework property
setprop media.omxgm.enable-player 1
# Set OpenGLES version
setprop ro.opengles.version 131072
init.goldfish.rc :
Code:
on boot
setprop ARGH ARGH
setprop net.eth0.dns1 10.0.2.3
setprop net.gprs.local-ip 10.0.2.15
setprop ro.radio.use-ppp no
setprop ro.build.product generic
setprop ro.product.device generic
# fake some battery state
setprop status.battery.state Slow
setprop status.battery.level 5
setprop status.battery.level_raw 50
setprop status.battery.level_scale 9
# disable some daemons the emulator doesn't want
stop dund
stop akmd
setprop ro.setupwizard.mode EMULATOR
# enable Google-specific location features,
# like NetworkLocationProvider and LocationCollector
setprop ro.com.google.locationfeatures 1
# For the emulator, which bypasses Setup Wizard, you can specify
# account info for the device via these two properties. Google
# Login Service will insert these accounts into the database when
# it is created (ie, after a data wipe).
#
# setprop ro.config.hosted_account [email protected]:password
# setprop ro.config.google_account [email protected]:password
#
# You MUST have a Google account on the device, and you MAY
# additionally have a hosted account. No other configuration is
# supported, and arbitrary breakage may result if you specify
# something else.
service goldfish-setup /system/etc/init.goldfish.sh
oneshot
service qemud /system/bin/qemud
socket qemud stream 666
oneshot
# -Q is a special logcat option that forces the
# program to check wether it runs on the emulator
# if it does, it redirects its output to the device
# named by the androidboot.console kernel option
# if not, is simply exit immediately
service goldfish-logcat /system/bin/logcat -Q
oneshot
I really don't know what to try next. The device is a Creative ZEN Touch 2, but that won't be of any help. :/
At that point, I am willing to take the risk to definitely brick my device to attempt the fix. It's barely usable at all, anyway.
How hard would it be to port ClockworkMod Recovery to this device?
Thanks, I appreciate it.
Hello everyone, first time poster but longer time lurker
Last week I treated myself with the new NotePro 12.2 tablet after dreaming what might cn be done with it once it runs a complete desktop :fingers-crossed:
Since last saturday I have been trying to no availe to get ubuntu running and about to go crazy with the amount of failed attempts.
My hopes are on the Complete Linux Installer as it is being actively developed but I ran into a weird issue with permissions when running the boot script.
I would post in the developer thread, but as a new user I will have to do it here (original thread http://forum.xda-developers.com/showthread.php?t=1585009 )
On with the info:
{
"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"
}
Device: Galaxy NotePro 12.2 (SM-P900)
Android 4.4.2
Kernel: 3.4.39-433754
Rooted
SuperSu Pro: passed root
Busybox Pro: passed root
Complete Linux Installer + key (ofcourse!)
Linux version: Ubuntu 13.10 Large
The issue:
When executing the bootscript.sh the error "operation is not permitted"
Code:
Checking loop device... MISSING
Creating loop device... mknod: /dev/block/loop255: Operation not permitted
Command: /system/xbin/busybox mknod /dev/block/loop255 b 7 255
FAILED
Error: Unable to create loop device!
Doing my homework for few hours and seeing more people have had this problem, but after some head scratching I simply tried the command manually to see if I am going crazy or not:
Code:
/system/xbin/busybox mknod /dev/block/loop255 b 7 255
v/block/ |grep loop <
brw------- root root 7, 0 2014-04-02 19:20 loop0
brw------- root root 7, 1 2014-04-02 19:20 loop1
brw------- root root 7, 2 2014-04-02 19:20 loop2
brw------- root root 7, 255 2014-04-02 19:59 loop255
brw------- root root 7, 3 2014-04-02 19:24 loop3
brw------- root root 7, 4 2014-04-02 19:20 loop4
brw------- root root 7, 5 2014-04-02 19:20 loop5
brw------- root root 7, 6 2014-04-02 19:20 loop6
brw------- root root 7, 7 2014-04-02 19:20 loop7
Success! :victory:
Launch the app for a retry:
Code:
Checking loop device... FOUND
Command: /system/xbin/busybox losetup /dev/block/loop255 /sdcard/ubuntu/ubuntu.img
mount: mounting /dev/block/loop255 on /data/local/mnt failed: Permission denied
So I keep getting permission denied error one after the other, but when I execute the commands directly in the terminal it`s all fine and dandy and the only thing that doesn`t show anything is when I try to chroot.
With a little bit of linux knowledge I dived into the bootscript and started to look where something goes wrong, I even downloaded 2 different scripts but none made a difference.
Code:
Checking loop device... FOUND
Command: /system/xbin/busybox losetup /dev/block/loop255 /sdcard/ubuntu/ubuntu.img
mount: mounting /dev/block/loop255 on /data/local/mnt failed: Permission denied
Command: /system/xbin/busybox mount -t ext4 /dev/block/loop255 /data/local/mnt
mount: mounting devpts on /data/local/mnt/dev/pts failed: No such file or directory
Command: /system/xbin/busybox mount -t devpts devpts /data/local/mnt/dev/pts
mount: mounting proc on /data/local/mnt/proc failed: No such file or directory
Command: /system/xbin/busybox mount -t proc proc /data/local/mnt/proc
mount: mounting sysfs on /data/local/mnt/sys failed: No such file or directory
Command: /system/xbin/busybox mount -t sysfs sysfs /data/local/mnt/sys
mount: mounting /sdcard on /data/local/mnt/sdcard failed: No such file or directory
Command: /system/xbin/busybox mount -o bind /sdcard /data/local/mnt/sdcard
mkdir failed for /data/local/mnt/root/cfg, No such file or directory
mount: mounting /sdcard/ubuntu on /data/local/mnt/root/cfg failed: No such file or directory
Command: /system/xbin/busybox mount -o bind /sdcard/ubuntu /data/local/mnt/root/cfg
mount: mounting /sys/fs/selinux on /data/local/mnt/selinux failed: No such file or directory
Command: /system/xbin/busybox mount -o bind /sys/fs/selinux /data/local/mnt/selinux
mount: mounting /storage on /data/local/mnt/external_sd failed: No such file or directory
No user defined mount points
net.ipv4.ip_forward = 1
bootscript.sh[234]: can't create /data/local/mnt/etc/resolv.conf: No such file or directory
Error: Unable to write resolv.conf file!
Having all commands echo`d in the terminal made the manual work abit easier:
Code:
/xbin/busybox losetup /dev/block/loop255 /sdcard/ubuntu/ubuntu.img <
xbin/busybox mount -t ext4 /dev/block/loop255 /data/local/mnt <
/xbin/busybox mount -t devpts devpts /data/local/mnt/dev/pts <
xbin/busybox mount -t proc proc /data/local/mnt/proc <
xbin/busybox mount -t sysfs sysfs /data/local/mnt/sys <
xbin/busybox mount -o bind /sdcard /data/local/mnt/sdcard <
xbin/busybox mount -o bind /sdcard/ubuntu /data/local/mnt/root/cfg <
xbin/busybox mount -o bind /sys/fs/selinux /data/local/mnt/selinux <
meserver 8.8.4.4" >> $mnt/etc/resolv.conf <
tmp-mksh: can't create /etc/resolv.conf: Read-only file system
27.0.0.1 localhost" > $mnt/etc/hosts <
tmp-mksh: can't create /etc/hosts: Read-only file system
Code:
ls -la /data/local/mnt/
al/mnt/ <
drwxr-xr-x root root 2013-10-09 12:19 android
drwxr-xr-x root root 2013-10-23 04:45 bin
drwxr-xr-x root root 2013-04-25 18:08 boot
drwxr-xr-x root root 2013-10-09 12:01 dev
drwxr-xr-x root root 2013-10-23 04:46 etc
drwxr-xr-x root root 2013-10-10 14:03 external_sd
drwxr-xr-x root root 2013-10-09 12:18 home
drwxr-xr-x root root 2013-10-10 18:35 lib
drwx------ root root 2013-10-09 11:51 lost+found
drwxr-xr-x root root 2013-10-09 11:54 media
drwxr-xr-x root root 2013-04-25 18:08 mnt
drwxr-xr-x root root 2013-10-09 11:54 opt
dr-xr-xr-x root root 1970-01-01 01:00 proc
drwx------ root root 2013-10-23 04:55 root
drwxr-xr-x root root 2013-10-23 04:55 run
drwxr-xr-x root root 2013-10-23 04:45 sbin
drwxrwx--x root sdcard_r 2014-04-01 19:49 sdcard
drwxr-xr-x root root 1970-01-01 01:00 selinux
drwxr-xr-x root root 2013-10-09 11:54 srv
dr-xr-xr-x root root 2014-04-02 19:20 sys
drwxrwxrwt root root 2013-10-23 04:55 tmp
drwxr-xr-x root root 2013-10-09 11:54 usr
drwxr-xr-x root root 2013-10-09 11:54 var
Looks very familiar :fingers-crossed:
Code:
Checking loop device... FOUND
Command: /system/xbin/busybox losetup /dev/block/loop255 /sdcard/ubuntu/ubuntu.img
mount: mounting /dev/block/loop255 on /data/local/mnt failed: Permission denied
Command: /system/xbin/busybox mount -t ext4 /dev/block/loop255 /data/local/mnt
mount: mounting devpts on /data/local/mnt/dev/pts failed: Permission denied
Command: /system/xbin/busybox mount -t devpts devpts /data/local/mnt/dev/pts
mount: mounting proc on /data/local/mnt/proc failed: Permission denied
Command: /system/xbin/busybox mount -t proc proc /data/local/mnt/proc
mount: mounting sysfs on /data/local/mnt/sys failed: Permission denied
Command: /system/xbin/busybox mount -t sysfs sysfs /data/local/mnt/sys
mount: mounting /sdcard on /data/local/mnt/sdcard failed: Permission denied
Command: /system/xbin/busybox mount -o bind /sdcard /data/local/mnt/sdcard
mount: mounting /sdcard/ubuntu on /data/local/mnt/root/cfg failed: Permission denied
Command: /system/xbin/busybox mount -o bind /sdcard/ubuntu /data/local/mnt/root/cfg
mount: mounting /sys/fs/selinux on /data/local/mnt/selinux failed: Permission denied
Command: /system/xbin/busybox mount -o bind /sys/fs/selinux /data/local/mnt/selinux
mount: mounting /storage on /data/local/mnt/external_sd failed: Permission denied
No user defined mount points
net.ipv4.ip_forward = 1
bootscript.sh[231]: can't create /data/local/mnt/etc/resolv.conf: Permission denied
bootscript.sh[232]: can't create /data/local/mnt/etc/hosts: Permission denied
chroot: can't change root directory to '/data/local/mnt': Operation not permitted
Command: /system/xbin/busybox chroot /data/local/mnt /root/init.sh ubuntu.img
Shutting down Linux ARM
umount: can't umount /data/local/mnt/root/cfg: Permission denied
umount: can't umount /data/local/mnt/sdcard: Permission denied
umount: can't umount /data/local/mnt/external_sd: Invalid argument
umount: can't umount /data/local/mnt/dev/pts: Permission denied
umount: can't umount /data/local/mnt/dev: Invalid argument
umount: can't umount /data/local/mnt/proc: Permission denied
umount: can't umount /data/local/mnt/sys: Permission denied
umount: can't umount /data/local/mnt/selinux: Permission denied
umount: can't umount /data/local/mnt: Permission denied
Still nothing and now it goes on to the shutdown section
Doing the chroot command does nothing and to be honest, I wouldn`t even know if it was supposed to do anything as this function is new for me.
Code:
/system/xbin/busybox chroot /data/local/mnt /root/init.sh ubuntu.img
All the commands work with just being root (command su) or through busybox.
All the files have root owner/group and they are executable.
Debug so far:
Rename supplied busybox version to busybox.org => removed it entirely with a fixed link to busybox itself.
3 different bootscript.sh
Changed ext2 to ext4, latest was ext4.
Reinstalled, rebooted, kicked it a few times.
Checked perms on everything and it *looks* all good.
All commands the bootscript.sh tries to call do work when doing it manually in the command shell, but even "sh bootscript.sh" fails on all.
Changed "setenforce 0" as some one has suggested.
Here is my butcherd bootscript.sh script that I try to run it with:
Code:
###########################################
# Linux boot script V8 for Android v4.3 #
# Built by Zachary Powell (zacthespack) #
# and Martin M..ller (Tuxling) #
# Thanks to: #
# Johan Vromans #
# Marshall Levin #
# Vaykadji #
# and to everyone at XDA! #
# Feel free to edit/use this script as you#
# like but credit Linuxonandroid.org #
###########################################
# $ver: V8 #
###########################################
###########################################
# This is a function we use to stop the #
# script in case of errors #
###########################################
error_exit() {
echo "Error: $1"
exit 1
}
###########################################
# Set up variables #
###########################################
export bbox=/system/xbin/busybox
# echo $bbox
export usermounts=android # Base folder all user mounts are done in, should be moved to app later
export imgfile=/sdcard/ubuntu/ubuntu.img # Default image file, another can be set by using an argument
export bin=/system/xbin9
export mnt=/data/local/mnt
export USER=root
if [[ ! -d $mnt ]]; then mkdir $mnt; fi
export PATH=$bin:/usr/bin:/usr/local/bin:/usr/sbin:/bin:/usr/local/sbin:/usr/games:$PATH
export TERM=linux
export HOME=/root
###########################################
# Handle arguments if present #
###########################################
if [ $# -ne 0 ]; then
if [ -f $1 ]; then # Is full path present?
imgfile=$1
elif [ -f $(dirname $0)/$1 ]; then # Is only a filename present?
imgfile=$(dirname $0)/$1
else
error_exit "Image file not found!($1)"
fi
fi
###########################################
# If a md5 file is found we check it here #
###########################################
#if [ -f $imgfile.md5 ]; then
# echo "MD5 file found, use to check .img file? (y/n)"
# read answer
# if [ $answer == y ]; then
# echo -n "Validating image checksum... "
# $bbox md5sum -c -s $imgfile.md5
# if [ $? -ne 0 ];then
# echo "FAILED!"
# error_exit "Checksum failed! The image is corrupted!"
# else
# echo "OK"
# rm $imgfile.md5
# fi
# fi
#
#fi
################################
# Find and read config file #
# or use defaults if not found #
################################
use_swap=no
cfgfile=$imgfile.config # Default config file if not specified
if [ -f $imgfile.config ]; then
source $imgfile.config
fi
###########################################
# Set Swap up if wanted #
# #
###########################################
if [ $use_swap == yes ]; then
if [ -f $imgfile.swap ]; then
echo "Swap file found, using file"
echo "Turning on swap (if it errors here you do not have swap support"
swapon $imgfile.swap
else
echo "Creating Swap file"
dd if=/dev/zero of=$imgfile.swap bs=1048576 count=1024
mkswap $imgfile.swap
echo "Turning on swap (if it errors here you do not have swap support"
swapon $imgfile.swap
fi
fi
###########################################
# Set up loop device and mount image #
###########################################
echo -n "Checking loop device... "
if [ -b /dev/block/loop255 ]; then
echo "FOUND"
else
echo "MISSING"
# Loop device not found so we create it and verify it was actually created
echo -n "Creating loop device... "
$bbox mknod /dev/block/loop255 b 7 255
echo -n "Command: $bbox mknod /dev/block/loop255 b 7 255 \n"
if [ -b /dev/block/loop255 ]; then
echo "OK"
else
echo "FAILED"
error_exit "Unable to create loop device!"
fi
fi
$bbox losetup /dev/block/loop255 $imgfile
echo -n "Command: $bbox losetup /dev/block/loop255 $imgfile \n"
if [ $? -ne 0 ];then error_exit "Unable to attach image to loop device! (Image = $imgfile)"; fi
$bbox mount -t ext4 /dev/block/loop255 $mnt
echo -n "Command: $bbox mount -t ext4 /dev/block/loop255 $mnt \n"
if [ $? -ne 0 ];then error_exit "Unable to mount the loop device! \n"; fi
###########################################
# Mount all required partitions #
###########################################
$bbox mount -t devpts devpts $mnt/dev/pts
echo -n "Command: $bbox mount -t devpts devpts $mnt/dev/pts \n"
if [ $? -ne 0 ];then $bbox mount -o bind /dev $mnt/dev; $bbox mount -t devpts devpts $mnt/dev/pts; fi
if [ $? -ne 0 ]; then error_exit "Unable to mount $mnt/dev/pts!"; fi
$bbox mount -t proc proc $mnt/proc
echo -n "Command: $bbox mount -t proc proc $mnt/proc \n"
if [ $? -ne 0 ];then error_exit "Unable to mount $mnt/proc!"; fi
$bbox mount -t sysfs sysfs $mnt/sys
echo -n "Command: $bbox mount -t sysfs sysfs $mnt/sys \n"
if [ $? -ne 0 ];then error_exit "Unable to mount $mnt/sys!"; fi
$bbox mount -o bind /sdcard $mnt/sdcard
echo -n "Command: $bbox mount -o bind /sdcard $mnt/sdcard \n"
if [ $? -ne 0 ];then error_exit "Unable to bind $mnt/sdcard!"; fi
if [[ ! -d $mnt/root/cfg ]]; then mkdir $mnt/root/cfg; fi
$bbox mount -o bind $(dirname $imgfile) $mnt/root/cfg
echo -n "Command: $bbox mount -o bind $(dirname $imgfile) $mnt/root/cfg \n"
$bbox mount -o bind /sys/fs/selinux $mnt/selinux
echo -n "Command: $bbox mount -o bind /sys/fs/selinux $mnt/selinux \n"
###########################################
# Checks if you have a external sdcard #
# and mounts it if you do #
###########################################
if [ -d /sdcard/external_sd ]; then
$bbox mount -o bind /sdcard/external_sd $mnt/external_sd
fi
if [ -d /Removable/MicroSD ]; then
$bbox mount -o bind /Removable/MicroSD $mnt/external_sd
fi
# This is for the HD version of the Archos 70 internet tablet, may be the same for the SD card edition but i dont know.
if [ -d /storage ]; then
$bbox mount -o bind /storage $mnt/external_sd
fi
###########################################
# Mount all user defined mounts if any #
###########################################
if [ -f $imgfile.mounts ]; then
olddir=$(pwd)
echo "Mounting user mounts"
cd $mnt
if [[ ! -d $mnt/$usermounts ]]; then $bbox mkdir -p $usermounts; fi
echo "# Script to unmount user defined mounts, do not delete or edit!" > $imgfile.shutdown
echo "cd $mnt/$usermounts" > $imgfile.shutdown
cd $mnt/$usermounts
for entry in $(cat "$imgfile.mounts"); do
ANDROID=${entry%;*}
LINUX=${entry#*;}
if [[ -d $ANDROID ]]; then
echo -n "Mounting $ANDROID to $usermounts/$LINUX... "
if [[ ! -d $mnt/$usermounts/$LINUX ]]; then $bbox mkdir -p $LINUX; fi
$bbox mount -o bind $ANDROID $mnt/$usermounts/$LINUX &> /dev/null
if [ $? -ne 0 ];then
echo FAIL
if [[ -d $mnt/$usermounts/$LINUX ]]; then $bbox rmdir -p $LINUX; fi
else
echo OK
echo "$bbox umount $mnt/$usermounts/$LINUX" >> $imgfile.shutdown
echo "$bbox rmdir -p $LINUX" >> $imgfile.shutdown
fi
else
echo "Android folder not found: $ANDROID"
fi
done
echo "cd $mnt" >> $imgfile.shutdown
echo "$bbox rmdir -p $usermounts" >> $imgfile.shutdown
cd $olddir
else
echo "No user defined mount points"
fi
###########################################
# Sets up network forwarding #
###########################################
$bbox sysctl -w net.ipv4.ip_forward=1
if [ $? -ne 0 ];then error_exit "Unable to forward network!"; fi
# If NOT $mnt/root/DONOTDELETE.txt exists we setup hosts and resolv.conf now
#if [ ! -f $mnt/root/DONOTDELETE.txt ]; then
# echo "nameserver 8.8.8.8" > $mnt/etc/resolv.conf
# if [ $? -ne 0 ];then error_exit "Unable to write resolv.conf file!"; fi
echo "nameserver 8.8.4.4" >> $mnt/etc/resolv.conf
echo "127.0.0.1 localhost" > $mnt/etc/hosts
# if [ $? -ne 0 ];then error_exit "Unable to write hosts file!"; fi
#fi
###########################################
# Chroot into ubuntu #
###########################################
$bbox chroot $mnt /root/init.sh $(basename $imgfile)
echo -n "Command: $bbox chroot $mnt /root/init.sh $(basename $imgfile) \n"
###########################################
# Shut down ubuntu #
###########################################
echo "Shutting down Linux ARM"
#for pid in `lsof | grep $mnt | sed -e's/ / /g' | cut -d' ' -f2`; do kill -9 $pid >/dev/null 2>&1; done
for pid in `$bbox lsof | $bbox grep $mnt | $bbox sed -e's/ / /g' | $bbox cut -d' ' -f2`; do $bbox kill -9 $pid >/dev/null 2>&1; done
sleep 5
###########################################
# Unmount all user defined mounts if any #
###########################################
if [ -f $imgfile.shutdown ]; then
echo "Unmounting user defined mounts"
sh $imgfile.shutdown
rm $imgfile.shutdown
fi
$bbox umount $mnt/root/cfg
$bbox umount $mnt/sdcard
$bbox umount $mnt/external_sd
$bbox umount $mnt/dev/pts
$bbox umount $mnt/dev
$bbox umount $mnt/proc
$bbox umount $mnt/sys
$bbox umount $mnt/selinux
$bbox umount $mnt
I am at my whips end, the 12.2 is an awsome device to finally run a desktop on as a tablet, my mom already calls it a "TabTop" tablet+laptop, all I see though is a hole in the wall that is the size of my head
Could anyone please assist me with this strange issue? Pretty please? :angel:
With the new beta coming soon™ for CLI and that there won`t be many people like me that buy this toy for fun, I also volunteer to help to make this app idiot proof (point to self) as the work is awsome, even if it didn`t run out of the box :highfive:
No one an idea?
Kamuchi said:
No one an idea?
Click to expand...
Click to collapse
I also have this problem... I think it's caused by the kernel that is set to enforcing... ; (
But you can use Debian no root it uses a fakechroot so you can use it without root and it uses the X server and you needn't to vnc in it. Hope I could help
prohackerbro said:
I also have this problem... I think it's caused by the kernel that is set to enforcing... ; (
But you can use Debian no root it uses a fakechroot so you can use it without root and it uses the X server and you needn't to vnc in it. Hope I could help
Click to expand...
Click to collapse
did you get debian to work ?
great!!
My last guide was actually inside the beginner's guide and was good for that time, but now because of the new recovery versions (including kitkat), I need more space. So I decided to write a new guide for porting my recoveries to other phones.
The porting rutine won't work anymore for new mtk platforms with my actual porting builds. If you have such a phone you have to learn how to compile it from source or to find a recovery built for same platform to port it.
Also, for some phones, which require a specific PIXEL FORMAT, it won't work, and you again have to build it from source: the ported images are built for regular RGB 565 PIXEL FORMAT. If you have done right the port but the phone doesn't boot in recovery, just blackscreen and start, then it must be that case.
What you need:
- Geany or Notepad++ software
- CarlivImageKitchen for unpack/repack jobs.
- the dumchar_info content from your phone
- a stock boot.img for your phone
- a stock recovery.img for your phone - these two have to be with the kernel you want to use (for kitkat or for jellybean)
- a built carliv touch or cwm recovery for port. Get the right one for your phone. If it is cwm modded, check the screen width and search for that, and if it's Carliv Touch Recovery check your phone resolution in names.
{
"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"
}
or
or
Credits:
- Clockworkmod team, and Cyanogenmod for the base recovery
- bgcngm for his mtk tools for linux
- michfood for his unpack/repack tools for windows
Let's start it.
Even if I wrote everything here as simple as I could and added some images too, some of you still can't understand how to do it, so for them, here is a detailed guide in images with every step. If you can't see it online, download the archive with all images from here.
How to get the dumchar_info file content from you phone.
First make sure that you have adb access to your phone from your computer. If you don't, then solve this problem. Most of the times is because of bad drivers or some security issues (UAC, antivirus, firewall, defender, etc.) in windows. In linux it's easier if you have the 51-android.rules file in place. Other possible issue might be with the path (for sdk tools - adb, fastboot). There are many guides here on xda about how to solve these.
Connect the phone to PC, open a command prompt or terminal window an type:
Code:
adb devices
The adb will start and you will see the phone serial number and the word "device". That means you've got connected to the phone with adb server. Again, type:
Code:
adb shell cat /proc/dumchar_info
and then you will see the content of that file from your phone. Select it and copy/paste in a text document, then save it as dumchar_info.txt, and you can deconnect the phone from PC.
The dumchar file will look like this:
Code:
Part_Name Size StartAddr Type MapTo
preloader 0x0000000000600000 0x0000000000000000 2 /dev/misc-sd
mbr 0x0000000000080000 0x0000000000000000 2 /dev/block/mmcblk0
ebr1 0x0000000000080000 0x0000000000080000 2 /dev/block/mmcblk0p1
pmt 0x0000000000400000 0x0000000000100000 2 /dev/block/mmcblk0
pro_info 0x0000000000300000 0x0000000000500000 2 /dev/block/mmcblk0
nvram 0x0000000000500000 0x0000000000800000 2 /dev/block/mmcblk0
protect_f 0x0000000000a00000 0x0000000000d00000 2 /dev/block/mmcblk0p2
protect_s 0x0000000000a00000 0x0000000001700000 2 /dev/block/mmcblk0p3
seccfg 0x0000000000020000 0x0000000002100000 2 /dev/block/mmcblk0
uboot 0x0000000000060000 0x0000000002120000 2 /dev/block/mmcblk0
bootimg 0x0000000000600000 0x0000000002180000 2 /dev/block/mmcblk0
recovery 0x0000000000600000 0x0000000002780000 2 /dev/block/mmcblk0
sec_ro 0x0000000000600000 0x0000000002d80000 2 /dev/block/mmcblk0p4
misc 0x0000000000080000 0x0000000003380000 2 /dev/block/mmcblk0
logo 0x0000000000300000 0x0000000003400000 2 /dev/block/mmcblk0
ebr2 0x0000000000080000 0x0000000003700000 2 /dev/block/mmcblk0
expdb 0x0000000000a00000 0x0000000003780000 2 /dev/block/mmcblk0
android 0x0000000038000000 0x0000000004180000 2 /dev/block/mmcblk0p5
cache 0x0000000007e00000 0x000000003c180000 2 /dev/block/mmcblk0p6
usrdata 0x0000000060000000 0x0000000043f80000 2 /dev/block/mmcblk0p7
fat 0x0000000041b80000 0x00000000a3f80000 2 /dev/block/mmcblk0p8
bmtpool 0x0000000001500000 0x00000000ff9f00a8 2 /dev/block/mmcblk0
Part_Name:Partition name you should open;
Size:size of partition
StartAddr:Start Address of partition;
Type:Type of partition(MTD=1,EMMC=2)
MapTo:actual device you operate
Next place all three images (boot, recovery - stock and carliv touch or cwm) in the folder of bgcngm's, carliv image kitchen or michfood's tools.
In linux I keep those in "mtktools" folder and in windows in "Boot_Recovery" folder. You can use what names you want, but be sure to not use spaces on that name. Also, in windows place it on primary partition, usualy C.
Unpack the resources.
In windows just drag them over unpack_MTK_img.bat or MTK_unpack.bat, one by one and that's it, you will see three new folders with every image name. You have to rename the porting recovery to a short name (ex. carliv-recovery, no spaces please) before dragging to unpack.
In linux, open a terminal in CarlivImageKitchen or mtk-tools folder where you have also the three images, and then type:
Code:
./unpack_MTK_img boot.img
or
Code:
./unpack-MTK.pl boot.img
to unpack the stock boot.img
When the boot image is unpacked, delete boot.img and boot.img-kernel.img if you are using bgcngm's tools.
After that type:
Code:
./unpack_MTK_img recovery.img
or
Code:
./unpack-MTK.pl recovery.img
to unpack the stock recovery.img
When the recovery image is unpacked, if you use bgcngm's tools, append "-stock" to recovery.img-kernel.img to name it recovery.img-kernel.img-stock and to recovery.img-ramdisk to name it recovery.img-ramdisk-stock, then delete recovery.img.
Next, rename "port_CarlivTouch-recovery-..." or the recovery you want to port, as recovery.img for bgcngm's tools or carliv-recovery for CarlivImageKitchen.
Then type again:
Code:
./unpack_MTK_img carliv-recovery.img
or
Code:
./unpack-MTK.pl recovery.img
to unpack the carliv recovery for port.
When it's finished, if you use bgcngm's tools, rename recovery.img-ramdisk as recovery.img-ramdisk-carliv or something to make the difference from stock ramdisk, and delete recovery.img and recovery.img-kernel.img from carliv recovery.
By doing this you already replaced the kernel with your stock one in bgcngm's tools.
Replace the kernel
If you use CarlivImageKitchen, both in linux or windows, just copy and replace all files except ramdisk folder from stock recovery folder to carliv recovery folder.
----------------------
In linux, when you use bgcngm's tools, that is already done as I said (only need to delete "-stock" from recovery.img-kernel.img-stock).
----------------------
In windows with michfood's tools open in two side by side windows the boot stock folder and carliv-recovery folder, then select kernel and kernel_header from boot and drag them over the carliv's kernel and kernel_header replacing both.
All the above are the same for jellybean or kitkat.
Modify required ramdisk files -Jellybean.
At this point there are some differences between jellybean and kitkat versions.
For jellybean the files are: recovery.fstab in etc folder, default.prop, fstab and init.rc.
For kitkat, they are named the same except the fstab is named fstab.mt65xx (according to your phone platform), but the content is different. So for kitkat first rename fstab.mt6582 to fstab.mt65nn, where mt65nn is your phone platform (ex. mt6592).
Jellybean:
Open editor, then open in one window dumchar_info.txt (the one you've got earlier), the fstab file, init.usb.rc from boot ramdisk and default.prop from recovery ramdisk, and in another window recovery.fstab from carliv's ramdisk/etc folder, fstab, default.prop and init.rc also from carliv's ramdisk.
Focus on dumchar_info at one side and recovery.fstab on the other side.
Code:
Part_Name Size StartAddr Type MapTo
preloader 0x0000000000600000 0x0000000000000000 2 /dev/misc-sd
mbr 0x0000000000080000 0x0000000000000000 2 /dev/block/mmcblk0
ebr1 0x0000000000080000 0x0000000000080000 2 /dev/block/mmcblk0p1
pmt 0x0000000000400000 0x0000000000100000 2 /dev/block/mmcblk0
pro_info 0x0000000000300000 0x0000000000500000 2 /dev/block/mmcblk0
nvram 0x0000000000500000 0x0000000000800000 2 /dev/block/mmcblk0
protect_f 0x0000000000a00000 0x0000000000d00000 2 /dev/block/mmcblk0p2
protect_s 0x0000000000a00000 0x0000000001700000 2 /dev/block/mmcblk0p3
seccfg 0x0000000000020000 0x0000000002100000 2 /dev/block/mmcblk0
uboot 0x0000000000060000 0x0000000002120000 2 /dev/block/mmcblk0
bootimg 0x0000000000600000 0x0000000002180000 2 /dev/block/mmcblk0
recovery 0x0000000000600000 0x0000000002780000 2 /dev/block/mmcblk0
sec_ro 0x0000000000600000 0x0000000002d80000 2 /dev/block/mmcblk0p4
misc 0x0000000000080000 0x0000000003380000 2 /dev/block/mmcblk0
logo 0x0000000000300000 0x0000000003400000 2 /dev/block/mmcblk0
ebr2 0x0000000000080000 0x0000000003700000 2 /dev/block/mmcblk0
expdb 0x0000000000a00000 0x0000000003780000 2 /dev/block/mmcblk0
android 0x0000000038000000 0x0000000004180000 2 /dev/block/mmcblk0p[COLOR="Red"]5[/COLOR]
cache 0x0000000007e00000 0x000000003c180000 2 /dev/block/mmcblk0p[COLOR="Red"]6[/COLOR]
usrdata 0x0000000060000000 0x0000000043f80000 2 /dev/block/mmcblk0p[COLOR="Red"]7[/COLOR]
fat 0x0000000041b80000 0x00000000a3f80000 2 /dev/block/mmcblk0p[COLOR="Red"]8[/COLOR]
bmtpool 0x0000000001500000 0x00000000ff9f00a8 2 /dev/block/mmcblk0
Code:
# mount point fstype device [device2]
[COLOR="Blue"]/boot emmc /dev/bootimg
/misc emmc /dev/misc
/nvram emmc /dev/nvram
/recovery emmc /dev/recovery
/uboot emmc /dev/uboot[/COLOR]
/system ext4 /dev/block/mmcblk0p[COLOR="Red"]5[/COLOR]
/cache ext4 /dev/block/mmcblk0p[COLOR="Red"]6[/COLOR]
/data ext4 /dev/block/mmcblk0p[COLOR="Red"]7[/COLOR]
/emmc vfat /dev/block/mmcblk0p[COLOR="Red"]8[/COLOR]
/sdcard vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1
Check the paths for partitions and correct them as in dumchar file. Note that in dumchar /system is "android" and /data is "usrdata". Also, in CWM from cm 10.1, the internal sdcard is "/emmc" or "/sdcard". Use "sdcard" if you have only internal sdcard on your phone, or if you want to use the internal sdcard as main sdcard (and in this case, name the external sdcard as "/external_sd"). If the phone is emmc type and has block type memory (dev/block/mmcblkxpx), you don't need to modify the paths for boot, recovery, nvram, misc or other emmc partition. If the phone is with an extra partition (custpack), you have to check few more entries on recovery.fstab.
Code:
Part_Name Size StartAddr T MapTo
preloader 0x0000000000040000 0x0000000000000000 2 /dev/misc-sd
dsp_bl 0x0000000000ec0000 0x0000000000040000 2 /dev/misc-sd
mbr 0x0000000000004000 0x0000000000000000 2 /dev/block/mmcblk0
ebr1 0x0000000000004000 0x0000000000004000 2 /dev/block/mmcblk0p1
ebr2 0x0000000000004000 0x0000000000008000 2 /dev/block/mmcblk0
pmt 0x0000000000400000 0x000000000000c000 2 /dev/block/mmcblk0
nvram 0x0000000000300000 0x000000000040c000 2 /dev/block/mmcblk0
seccfg 0x0000000000020000 0x000000000070c000 2 /dev/block/mmcblk0
uboot 0x0000000000060000 0x000000000072c000 2 /dev/block/mmcblk0
bootimg 0x0000000000600000 0x000000000078c000 2 /dev/block/mmcblk0
recovery 0x0000000000600000 0x0000000000d8c000 2 /dev/block/mmcblk0
sec_ro 0x0000000000600000 0x000000000138c000 2 /dev/block/mmcblk0p2
misc 0x0000000000060000 0x000000000198c000 2 /dev/block/mmcblk0
logo 0x0000000000300000 0x00000000019ec000 2 /dev/block/mmcblk0
expdb 0x00000000000f4000 0x0000000001cec000 2 /dev/block/mmcblk0
pro_info 0x0000000000080000 0x0000000001de0000 2 /dev/block/mmcblk0
[COLOR="Red"]custpack [/COLOR] 0x0000000019d00000 0x0000000001e60000 2 /dev/block/mmcblk0p[COLOR="Red"]3[/COLOR]
mobile_info 0x0000000000800000 0x000000001bb60000 2 /dev/block/mmcblk0p[COLOR="Red"]4[/COLOR]
android 0x0000000019d00000 0x000000001c360000 2 /dev/block/mmcblk0p[COLOR="Red"]5[/COLOR]
cache 0x0000000013900000 0x0000000036060000 2 /dev/block/mmcblk0p[COLOR="Red"]6[/COLOR]
usrdata 0x0000000059200000 0x0000000049960000 2 /dev/block/mmcblk0p[COLOR="Red"]7[/COLOR]
fat 0x000000005c590200 0x00000000a2b60000 2 /dev/block/mmcblk0p[COLOR="Red"]8[/COLOR]
otp 0xffffffffe87efe00 0x00000000ff0f0200 2 /dev/block/mmcblk0
bmtpool 0x0000000001500000 0x00000000ff0f00a8 2 /dev/block/mmcblk0
Code:
# mount point fstype device [device2]
[COLOR="Blue"]/boot emmc /dev/bootimg
/misc emmc /dev/misc
/recovery emmc /dev/recovery
/nvram emmc /dev/nvram
/uboot emmc /dev/uboot[/COLOR]
/system ext4 /dev/block/mmcblk0p[COLOR="Red"]5[/COLOR]
/data ext4 /dev/block/mmcblk0p[COLOR="Red"]7[/COLOR]
/cache ext4 /dev/block/mmcblk0p[COLOR="Red"]6[/COLOR]
/custpack ext4 /dev/block/mmcblk0p[COLOR="Red"]3[/COLOR]
/mobile_info ext4 /dev/block/mmcblk0p[COLOR="Red"]4[/COLOR]
/emmc vfat /dev/block/mmcblk0p[COLOR="Red"]8[/COLOR]
/sdcard vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1
For "custpack" phones the recovery.fstab from porting builds is wrong (sent by someone before), and you have to make it to look like this one above.
If the phone has Ubifs file system, the memory is flash type (dev/mtd/mtdx), and in dumchar_info you will find separate paths for every partition: you have to check every one's number and correct if is different (even for boot, recovery, etc).
Code:
preloader 0x0000000001000000 0x00000000 1 /dev/mtd/mtd0 USER
pro_info 0x0000000000400000 0x00000001 1 /dev/mtd/mtd1 USER
nvram 0x0000000000c00000 0x00000002 1 /dev/mtd/mtd2 USER
protect_f 0x0000000000c00000 0x00000003 1 /dev/mtd/mtd3 USER
seccfg 0x0000000000400000 0x00000004 1 /dev/mtd/mtd4 USER
uboot 0x0000000000400000 0x00000005 1 /dev/mtd/mtd5 USER
bootimg 0x0000000000800000 0x00000006 1 /dev/mtd/mtd6 USER
recovery 0x0000000000800000 0x00000007 1 /dev/mtd/mtd7 USER
sec_ro 0x0000000000400000 0x00000008 1 /dev/mtd/mtd8 USER
misc 0x0000000000c00000 0x00000009 1 /dev/mtd/mtd9 USER
logo 0x0000000000400000 0x0000000a 1 /dev/mtd/mtd10 USER
expdb 0x0000000000c00000 0x0000000b 1 /dev/mtd/mtd11 USER
tee1 0x0000000000800000 0x0000000c 1 /dev/mtd/mtd12 USER
tee2 0x0000000000800000 0x0000000d 1 /dev/mtd/mtd13 USER
kb 0x0000000000400000 0x0000000e 1 /dev/mtd/mtd14 USER
dkb 0x0000000000400000 0x0000000f 1 /dev/mtd/mtd15 USER
android 0x000000001f400000 0x00000010 1 /dev/mtd/mtd16 USER
cache 0x0000000008000000 0x00000011 1 /dev/mtd/mtd17 USER
usrdata 0x00000001bf000000 0x00000012 1 /dev/mtd/mtd18 USER
bmtpool 0x0000000000000000 0x00000000 1 USER
Code:
# mount point fstype device [device2]
/boot mtd /dev/mtd/mtd6
/misc mtd /dev/mtd/mtd9
/nvram mtd /dev/mtd/mtd2
/recovery mtd /dev/mtd/mtd7
/uboot mtd /dev/mtd/mtd5
/system ubifs /dev/mtd/mtd16
/cache ubifs /dev/mtd/mtd17
/data ubifs /dev/mtd/mtd18
/emmc vfat /dev/block/mmcblk0p1 /dev/block/mmcblk0
/sdcard vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1
Next focus on both fstab, from boot and carliv ramdisk. Replace the content of carliv fstab with the content of boot fstab. Usualy it looks like this:
Code:
# Android fstab file.
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
# 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
/[email protected] /system ext4 ro,noatime wait
/[email protected] /cache ext4 noatime,nosuid,nodev,noauto_da_alloc wait
/[email protected] /data ext4 noatime,nosuid,nodev,noauto_da_alloc wait,encryptable=footer
Then focus on default.prop from recovery stock and carliv. Change in carliv default prop all relevant data regarding your phone, platform and producer or brand (this is for assert errors). See lines in blue - need to focus on those, and values in red - need to be replaced. First default.prop is from stock recovery, second is from porting carliv recovery. Replace from stock to carliv (for example instead of "new" will be "P780", instead of "mtk" will be "Lenovo" and so on.
Stock:
Code:
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=0
ro.allow.mock.location=1
persist.mtk.aee.aed=on
ro.debuggable=1
persist.service.acm.enable=0
persist.sys.usb.config=mass_storage,adb
ro.bootloader.mode=download
ro.mount.fs=EXT4
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=JOP40D
ro.build.display.id=P780_S129_130710
[COLOR="Blue"]ro.product.model[/COLOR]=[COLOR="Red"]Lenovo P780[/COLOR]
ro.product.sw.internal.version=Lenovo P780_S129_130710
ro.product.hw.version=9001
ro.product.particular.version=LENOVO_FUJIAN
ro.build.version.incremental=P780_S129_130710
ro.custom.build.version=1373441469
ro.build.version.sdk=17
ro.build.version.codename=REL
ro.build.version.release=4.2.1
ro.build.date=Fri Jul 4 13:51:39 EEST 2014
ro.build.date.utc=1373441534
ro.build.type=user
ro.build.user=carliv
ro.build.host=max
ro.build.tags=release-keys
[COLOR="Blue"]ro.product.brand[/COLOR]=[COLOR="Red"]Lenovo[/COLOR]
[COLOR="Blue"]ro.product.name[/COLOR]=[COLOR="Red"]P780[/COLOR]
[COLOR="Blue"]ro.product.device[/COLOR]=[COLOR="Red"]prada[/COLOR]
[COLOR="Blue"]ro.product.board[/COLOR]=[COLOR="Red"]prada[/COLOR]
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
[COLOR="Blue"]ro.product.manufacturer[/COLOR]=[COLOR="Red"]LENOVO[/COLOR]
ro.product.locale.language=en
ro.product.locale.region=US
ro.wifi.channels=
[COLOR="Blue"]ro.board.platform[/COLOR]=
# ro.build.product is obsolete; use ro.product.device
[COLOR="Blue"]ro.build.product[/COLOR]=[COLOR="Red"]P780[/COLOR]
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=[COLOR="Red"]P780[/COLOR]-user 4.2.1 JOP40D [COLOR="Red"]P780[/COLOR]_S129_130710 release-keys
ro.build.fingerprint=[COLOR="Red"]Lenovo[/COLOR]/[COLOR="Red"]P780[/COLOR]/[COLOR="Red"]P780[/COLOR]:4.2.1/JOP40D/P780_S129_130710:user/release-keys
ro.build.flavor=
ro.build.characteristics=default
# end build properties
# begin mediatek build properties
ro.mediatek.version.release=ALPS.JB2.MP.V1
ro.mediatek.platform=MT6589
ro.mediatek.chip_ver=S01
ro.mediatek.version.branch=ALPS.JB2.MP
ro.mediatek.version.sdk=1
# end mediatek build properties
#
# system.prop for generic sdk
#
and Carliv:
Code:
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=0
ro.allow.mock.location=1
persist.mtk.aee.aed=on
ro.debuggable=1
persist.service.acm.enable=0
persist.sys.usb.config=mass_storage,adb
ro.bootloader.mode=download
ro.mount.fs=EXT4
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=JDQ39E
ro.build.display.id=cm_[COLOR="Red"]new[/COLOR]-eng 4.2.2 JDQ39E 4c1705071f test-keys
ro.build.version.incremental=4c1705071f
ro.build.version.sdk=17
ro.build.version.codename=REL
ro.build.version.release=4.2.2
ro.build.date=Sat Dec 6 21:02:58 EET 2014
ro.build.date.utc=0
ro.build.type=eng
ro.build.user=carliv
ro.build.host=max
ro.build.tags=test-keys
[COLOR="Blue"]ro.product.model[/COLOR]=[COLOR="Red"]new[/COLOR]
[COLOR="Blue"]ro.product.brand[/COLOR]=[COLOR="Red"]mtk[/COLOR]
[COLOR="Blue"]ro.product.name[/COLOR]=cm_[COLOR="Red"]new[/COLOR]
[COLOR="Blue"]ro.product.device[/COLOR]=[COLOR="Red"]new[/COLOR]
[COLOR="Blue"]ro.product.board[/COLOR]=
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
[COLOR="Blue"]ro.product.manufacturer[/COLOR]=[COLOR="Red"]mtk[/COLOR]
ro.product.locale.language=en
ro.product.locale.region=US
ro.wifi.channels=
[COLOR="Blue"]ro.board.platform[/COLOR]=[COLOR="Red"]mt6582[/COLOR]
# ro.build.product is obsolete; use ro.product.device
[COLOR="Blue"]ro.build.product[/COLOR]=[COLOR="Red"]new[/COLOR]
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=cm_[COLOR="Red"]new[/COLOR]-eng 4.2.2 JDQ39E 4c1705071f test-keys
ro.build.fingerprint=[COLOR="Red"]mtk[/COLOR]/cm_[COLOR="Red"]new[/COLOR]/[COLOR="Red"]new[/COLOR]:4.2.2/JDQ39E/4c1705071f:eng/test-keys
ro.build.characteristics=default
[COLOR="Blue"]ro.cm.device[/COLOR]=[COLOR="Red"]new[/COLOR]
# end build properties
#
# system.prop for new
#
#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.rommanager.developerid=cyanogenmod
keyguard.no_require_sim=true
ro.url.legal=http://www.google.com/intl/%s/mobile/android/basic/phone-legal.html
ro.url.legal.android_privacy=http://www.google.com/intl/%s/mobile/android/basic/privacy.html
ro.com.google.clientidbase=android-google
ro.com.android.wifi-watchlist=GoogleGuest
ro.setupwizard.enterprise_mode=1
ro.com.android.dateformat=MM-dd-yyyy
ro.com.android.dataroaming=false
persist.sys.root_access=1
ro.cm.version=10.1-20141206-UNOFFICIAL-[COLOR="Red"]new[/COLOR]
ro.modversion=10.1-20141206-UNOFFICIAL-[COLOR="Red"]new[/COLOR]
ro.config.ringtone=Orion.ogg
ro.config.notification_sound=Argon.ogg
ro.config.alarm_alert=Hassium.ogg
ro.carrier=unknown
ro.ril.hsxpa=1
ro.ril.gprsclass=10
ro.adb.qemud=1
ro.kernel.android.checkjni=1
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
Last step, focus on init.rc from carliv and init.usb.rc from boot. Check idVendor and idProduct for mass_storage,adb function. Replace them with data from init.usb.rc.
Code:
on init
# Workarunod for USB unknow device issue
# USB would switch correct function when set properity sys.usb.config
setprop sys.usb.vid [COLOR="Red"]17EF[/COLOR]
write /sys/class/android_usb/android0/iSerial $ro.serialno
write /sys/class/android_usb/android0/[COLOR="Blue"]idVendor[/COLOR] $sys.usb.vid
.............
#2.[COLOR="Blue"]adb[/COLOR]
on property:sys.usb.config=adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor $sys.usb.vid
write /sys/class/android_usb/android0/[COLOR="Blue"]idProduct[/COLOR] [COLOR="Red"]7495[/COLOR]
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
........
#5.[COLOR="Blue"]mass_storage,adb[/COLOR]
on property:sys.usb.config=mass_storage,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/[COLOR="Blue"]idVendor[/COLOR] $sys.usb.vid
write /sys/class/android_usb/android0/[COLOR="Blue"]idProduct[/COLOR] [COLOR="Red"]7435[/COLOR]
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
#6.mtp
Code:
on early-init
start ueventd
on init
export PATH /sbin
export ANDROID_ROOT /system
export ANDROID_DATA /data
export EXTERNAL_STORAGE /sdcard
symlink /system/etc /etc
mkdir /boot
mkdir /misc
mkdir /storage
mkdir /sdcard
mkdir /internal_sd
mkdir /external_sd
mkdir /sd-ext
mkdir /datadata
mkdir /emmc
mkdir /system
mkdir /data
mkdir /cache
mount /tmp /tmp tmpfs
chown root shell /tmp
chmod 0775 /tmp
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/iSerial "0123456789ABCDEF"
write /sys/class/android_usb/android0/[COLOR="Blue"]idVendor[/COLOR] [COLOR="Red"]0bb4[/COLOR] <- [COLOR="Red"]17EF[/COLOR]
write /sys/class/android_usb/android0/[COLOR="Blue"]idProduct[/COLOR] [COLOR="Red"]0c03[/COLOR] <- [COLOR="Red"]7435[/COLOR]
write /sys/class/android_usb/android0/functions mass_storage,adb
write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer}
write /sys/class/android_usb/android0/iProduct ${ro.product.model}
write /sys/class/android_usb/android0/enable 1
on boot
ifup lo
hostname localhost
domainname localdomain
class_start default
on property:sys.powerctl=*
powerctl ${sys.powerctl}
service ueventd /sbin/ueventd
critical
service recovery /sbin/recovery
service setup_adbd /sbin/setup_adbd
oneshot
service adbd /sbin/adbd recovery
disabled
# Recovery will start adb once it has checked the keys
on property:ro.debuggable=1
#write /sys/class/android_usb/android0/enable 1
#start adbd
setprop service.adb.root 1
# Restart adbd so it can run as root
on property:service.adb.root=1
write /sys/class/android_usb/android0/enable 0
restart adbd
write /sys/class/android_usb/android0/enable 1
Modify required ramdisk files - Kitkat.
Kitkat:
Open editor, then open in one window dumchar_info.txt (the one you've got earlier), the fstab file, init.usb.rc, meta.init.rc, any init file with ssd in name from boot ramdisk and default.prop from recovery ramdisk, and in another window recovery.fstab from carliv's ramdisk/etc folder, fstab.mt65nn, default.prop and init.rc also from carliv's ramdisk.
Check and compare both default.prop and make same modifications as for jellybean.
Stock:
Code:
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=1
ro.allow.mock.location=0
persist.mtk.aee.aed=on
ro.debuggable=0
ro.adb.secure=1
persist.sys.usb.config=mtp
persist.service.acm.enable=0
ro.mount.fs=EXT4
ro.persist.partition.support=no
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=KOT49H
ro.build.display.id=VIBEUI_V2.0_1437_7.14.1_ST_P780
ro.build.version.incremental=VIBEUI_V2.0_1437_7.14.1_ST_P780
ro.custom.build.version=VIBEUI_V2.0_1437_7.14.1_ST_P780
ro.build.version.sdk=19
ro.build.version.codename=REL
ro.build.version.release=4.4.2
ro.build.date=Wed Sep 3 05:55:18 CST 2014
ro.build.date.utc=1409694918
ro.build.type=user
ro.build.user=buildslave
ro.build.host=xmws54
ro.build.tags=release-keys
[COLOR="Blue"]ro.product.model[/COLOR]=[COLOR="Red"]Lenovo P780[/COLOR]
[COLOR="Blue"]ro.product.brand[/COLOR]=[COLOR="Red"]Lenovo[/COLOR]
[COLOR="Blue"]ro.product.name[/COLOR]=[COLOR="Red"]prada[/COLOR]
[COLOR="Blue"]ro.product.device[/COLOR]=[COLOR="Red"]P780[/COLOR]
[COLOR="Blue"]ro.product.board[/COLOR]=[COLOR="Red"]prada[/COLOR]
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
[COLOR="Blue"]ro.product.manufacturer[/COLOR]=[COLOR="Red"]LENOVO[/COLOR]
ro.product.locale.language=zh
ro.product.locale.region=CN
ro.wifi.channels=
[COLOR="Blue"]ro.board.platform[/COLOR]=
# ro.build.product is obsolete; use ro.product.device
[COLOR="Blue"]ro.build.product[/COLOR]=[COLOR="Red"]P780[/COLOR]
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=prada-user 4.4.2 KOT49H VIBEUI_V2.0_1437_7.14.1_ST_P780 dev-keys
ro.build.fingerprint=[COLOR="Red"]Lenovo[/COLOR]/[COLOR="Red"]prada[/COLOR]/[COLOR="Red"]P780[/COLOR]:4.4.2/KOT49H/VIBEUI_V2.0_1437_7.14.1_ST_P780.:user/release-keys
ro.build.flavor=
ro.build.characteristics=default
# end build properties
# begin mediatek build properties
ro.mediatek.version.release=ALPS.KK1.MP5.V1
ro.mediatek.platform=MT6589
ro.mediatek.chip_ver=S01
ro.mediatek.version.branch=KK1.MP5
ro.mediatek.version.sdk=2
# end mediatek build properties
#
# from out/target/product/prada/obj/CUSTGEN/config/system.prop
#
#
# system.prop for generic sdk
#
.........
[COLOR="Red"]ro.product.ota.model=LenovoP780_ROM_ST_KK[/COLOR]
......
dalvik.vm.stack-trace-file=/data/anr/traces.txt
and Carliv:
Code:
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=0
ro.allow.mock.location=1
persist.mtk.aee.aed=on
ro.debuggable=1
persist.service.acm.enable=0
persist.sys.usb.config=mass_storage,adb
ro.bootloader.mode=download
ro.mount.fs=EXT4
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=KTU84Q
ro.build.display.id=cm_[COLOR="Red"]new[/COLOR]-eng 4.4.4 KTU84Q 347d7427a4 test-keys
ro.build.version.incremental=347d7427a4
ro.build.version.sdk=19
ro.build.version.codename=REL
ro.build.version.release=4.4.4
ro.build.date=Tue Dec 9 16:23:16 EET 2014
ro.build.date.utc=0
ro.build.type=eng
ro.build.user=carliv
ro.build.host=max
ro.build.tags=test-keys
[COLOR="Blue"]ro.product.brand[/COLOR]=[COLOR="Red"]mtk[/COLOR]
[COLOR="Blue"]ro.product.name[/COLOR]=cm_[COLOR="Red"]new[/COLOR]
[COLOR="Blue"]ro.product.board[/COLOR]=
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
[COLOR="Blue"]ro.product.manufacturer[/COLOR]=[COLOR="Red"]mtk[/COLOR]
ro.product.locale.language=en
ro.product.locale.region=US
ro.wifi.channels=
[COLOR="Blue"]ro.board.platform[/COLOR]=[COLOR="Red"]mt6582[/COLOR]
# ro.build.product is obsolete; use ro.product.device
[COLOR="Blue"]ro.build.product[/COLOR]=[COLOR="Red"]new[/COLOR]
[COLOR="Blue"]ro.product.model[/COLOR]=[COLOR="Red"]new[/COLOR]
[COLOR="Blue"]ro.product.device[/COLOR]=[COLOR="Red"]new[/COLOR]
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=cm_[COLOR="Red"]new[/COLOR]-eng 4.4.4 KTU84Q 347d7427a4 test-keys
ro.build.fingerprint=[COLOR="Red"]mtk[/COLOR]/cm_[COLOR="Red"]new[/COLOR]/[COLOR="Red"]new[/COLOR]:4.4.4/KTU84Q/347d7427a4:eng/test-keys
ro.build.characteristics=default
[COLOR="Blue"]ro.cm.device[/COLOR]=[COLOR="Red"]new[/COLOR]
# end build properties
#
# from device/mtk/new/system.prop
#
#
# system.prop for new
#
#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.rommanager.developerid=cyanogenmod
ro.com.google.clientidbase=android-google
keyguard.no_require_sim=true
ro.url.legal=http://www.google.com/intl/%s/mobile/android/basic/phone-legal.html
ro.url.legal.android_privacy=http://www.google.com/intl/%s/mobile/android/basic/privacy.html
ro.com.android.wifi-watchlist=GoogleGuest
ro.setupwizard.enterprise_mode=1
ro.com.android.dateformat=MM-dd-yyyy
ro.com.android.dataroaming=false
ro.build.selinux=1
persist.sys.dalvik.multithread=false
persist.sys.dun.override=0
persist.sys.root_access=1
ro.cm.version=11-20141209-UNOFFICIAL-[COLOR="Red"]new[/COLOR]
ro.cm.releasetype=UNOFFICIAL
ro.modversion=11-20141209-UNOFFICIAL-[COLOR="Red"]new[/COLOR]
ro.cmlegal.url=http://www.cyanogenmod.org/docs/privacy
persist.sys.recovery_update=false
ro.cm.display.version=11-20141209-UNOFFICIAL-[COLOR="Red"]new[/COLOR]
ro.config.notification_sound=Argon.ogg
ro.config.alarm_alert=Hassium.ogg
ro.config.ringtone=Orion.ogg
ro.carrier=unknown
ro.ril.hsxpa=1
ro.ril.gprsclass=10
ro.adb.qemud=1
persist.sys.dalvik.vm.lib=libdvm.so
ro.kernel.android.checkjni=1
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
Compare recovery.fstab with fstab and dumchar file, and also with fstab.mt65nn. If there are any modifications make them, but usually if your device is emmc too only one thing you have to modify: the paths for voldmanaged sdcards. In boot fstab those paths are not correct, don't work for recovery, and you need to find correct path right in your phone with a root explorer.
Stock recovery.fstab, can't be used:
Code:
boot /boot emmc defaults defaults
/dev/block/mmcblk0p2 /cache ext4 defaults defaults
/dev/block/mmcblk0p3 /data ext4 defaults defaults
misc /misc emmc defaults defaults
recovery /recovery emmc defaults defaults
/dev/block/mmcblk0p4 /sdcard vfat defaults defaults
/dev/block/mmcblk0p6 /system ext4 defaults defaults
Stock fstab, wrong sdcards paths:
Code:
# Android fstab file.
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
# 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
/[email protected] /data ext4 noatime,nosuid,nodev,noauto_da_alloc wait,check,encryptable=footer
/[email protected]_f /protect_f ext4 noatime,nosuid,nodev,noauto_da_alloc wait,check
/[email protected]_s /protect_s ext4 noatime,nosuid,nodev,noauto_da_alloc wait,check
[COLOR="Red"]/devices/platform/mtk-msdc.0/mmc_host[/COLOR] auto vfat defaults voldmanaged=sdcard0:[email protected],[COLOR="Red"]noemulatedsd[/COLOR]
[COLOR="Red"]/devices/platform/mtk-msdc.1/mmc_host[/COLOR] auto vfat defaults voldmanaged=sdcard1:auto
#lenovo-sw yexh1 2014_03_19 add for usbotg sdcard2
/devices/platform/mt_usb/sda auto vfat defaults voldmanaged=usbotg:auto
/devices/platform/mt_usb/sdb auto vfat defaults voldmanaged=usbotg1:auto
#lenovo-sw yexh1 2014_03_19 add for usbotg sdcard2,end
Carliv fstab.mt65nn, this will work
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
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/[email protected] /system ext4 ro,noatime wait
/[email protected] /cache ext4 noatime,nosuid,nodev,noauto_da_alloc wait
/[email protected] /data ext4 noatime,nosuid,nodev,noauto_da_alloc wait,encryptable=footer
/[email protected]_f /protect_f ext4 noatime,nosuid,nodev,noauto_da_alloc wait,check
/[email protected]_s /protect_s ext4 noatime,nosuid,nodev,noauto_da_alloc wait,check
# vold-managed volumes
[COLOR="Blue"]/devices/platform/mtk-msdc.0/mmc_host/mmc0[/COLOR] auto auto defaults voldmanaged=sdcard1:8
[COLOR="Blue"]/devices/platform/mtk-msdc.1/mmc_host/mmc1[/COLOR] auto auto defaults voldmanaged=sdcard0:auto
/dev/bootimg /boot emmc defaults defaults
/dev/nvram /nvram emmc defaults defaults
/dev/recovery /recovery emmc defaults defaults
/dev/uboot /uboot emmc defaults defaults
/dev/misc /misc emmc defaults defaults
and carliv recovery.fstab
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
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/[email protected] /system ext4 ro,noatime wait
/[email protected] /cache ext4 noatime,nosuid,nodev,noauto_da_alloc wait
/[email protected] /data ext4 noatime,nosuid,nodev,noauto_da_alloc wait,encryptable=footer
# vold-managed volumes
/devices/platform/mtk-msdc.0/mmc_host/mmc0 auto auto defaults voldmanaged=sdcard1:8,
/devices/platform/mtk-msdc.1/mmc_host/mmc1 auto auto defaults voldmanaged=sdcard0:auto
/dev/bootimg /boot emmc defaults defaults
/dev/nvram /nvram emmc defaults defaults
/dev/recovery /recovery emmc defaults defaults
/dev/uboot /uboot emmc defaults defaults
/dev/misc /misc emmc defaults defaults
Also, if you use any label after sdcardn:auto, it won't work (ex. noemulatedsd, nonremovablesd). Copy same things from recovery.fstab to fstab.mt65nn, if there are some changes. In fstab.mt65nn there are two more partitions, protect_f and protect_s, or other for custapck phones.
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
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/[email protected] /system ext4 ro,noatime wait
/[email protected] /cache ext4 noatime,nosuid,nodev,noauto_da_alloc wait
/[email protected] /data ext4 noatime,nosuid,nodev,noauto_da_alloc wait,encryptable=footer
[COLOR="Red"]/[email protected]_f /protect_f ext4 noatime,nosuid,nodev,noauto_da_alloc wait,check
/[email protected]_s /protect_s ext4 noatime,nosuid,nodev,noauto_da_alloc wait,check[/COLOR]
# vold-managed volumes
/devices/platform/mtk-msdc.0/mmc_host/mmc0 auto auto defaults voldmanaged=sdcard0:8
/devices/platform/mtk-msdc.1/mmc_host/mmc1 auto auto defaults voldmanaged=sdcard1:auto
/devices/platform/mt_usb/sda/sda1 auto auto defaults voldmanaged=usbotg:auto
/dev/bootimg /boot emmc defaults defaults
/dev/nvram /nvram emmc defaults defaults
/dev/recovery /recovery emmc defaults defaults
/dev/uboot /uboot emmc defaults defaults
/dev/misc /misc emmc defaults defaults
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
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/[email protected] /system ext4 ro,noatime wait
[COLOR="Red"]/[email protected] /custpack ext4 noatime,nosuid,nodev,noauto_da_alloc wait[/COLOR]
/[email protected] /cache ext4 noatime,nosuid,nodev,noauto_da_alloc wait
/[email protected] /data ext4 noatime,nosuid,nodev,noauto_da_alloc wait,encryptable=footer
[COLOR="Red"]/[email protected]_info /mobile_info ext4 noatime,nosuid,nodev,noauto_da_alloc wait,check[/COLOR]
# vold-managed volumes
/devices/platform/mtk-msdc.0/mmc_host/mmc0 auto auto defaults voldmanaged=sdcard0:8,
/devices/platform/mtk-msdc.1/mmc_host/mmc1 auto auto defaults voldmanaged=sdcard1:auto
/dev/bootimg /boot emmc defaults defaults
/dev/nvram /nvram emmc defaults defaults
/dev/recovery /recovery emmc defaults defaults
/dev/uboot /uboot emmc defaults defaults
/dev/misc /misc emmc defaults defaults
If the phone has Ubifs file system, set the paths according to dumchar only for mtd partitions, not ubifs.
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
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/[email protected] /system ubifs ro,noatime wait
/[email protected] /cache ubifs noatime,nosuid,nodev,noauto_da_alloc wait
/[email protected] /data ubifs noatime,nosuid,nodev,noauto_da_alloc wait,encryptable=footer
# vold-managed volumes
/devices/platform/mtk-msdc.0/mmc_host/mmc0 auto auto defaults voldmanaged=sdcard0:8,
/devices/platform/mtk-msdc.1/mmc_host/mmc1 auto auto defaults voldmanaged=sdcard1:auto
/dev/mtd/mtd6 /boot mtd defaults defaults
/dev/mtd/mtd2 /nvram mtd defaults defaults
/dev/mtd/mtd7 /recovery mtd defaults defaults
/dev/mtd/mtd5 /uboot mtd defaults defaults
/dev/mtd/mtd9 /misc mtd defaults defaults
Last step, focus on init.rc on one side and the other rc files from boot on the other side. You have to check sdcards setup as bellow.
Code:
on early-init
# Apply strict SELinux checking of PROT_EXEC on mmap/mprotect calls.
write /sys/fs/selinux/checkreqprot 0
# Set the security context for the init process.
# This should occur before anything else (e.g. ueventd) is started.
setcon u:r:init:s0
start ueventd
start healthd
on init
export PATH /sbin:/system/bin
export ANDROID_ROOT /system
export ANDROID_DATA /data
[COLOR="Red"] export EXTERNAL_STORAGE /storage/sdcard0
export SECONDARY_STORAGE /storage/sdcard1[/COLOR]
symlink /system/etc /etc
mkdir /boot
mkdir /recovery
mkdir /sdcard
mkdir /internal_sd
mkdir /external_sd
mkdir /sd-ext
mkdir /datadata
mkdir /sdcard2
mkdir /system
mkdir /cache
mkdir /data
mount tmpfs tmpfs /tmp
chown root shell /tmp
chmod 0775 /tmp
# See storage config details at http://source.android.com/tech/storage/
mkdir /mnt 0775 root system
mkdir /storage 0050 root sdcard_r
mount tmpfs tmpfs /storage mode=0050,uid=0,gid=1028
[COLOR="Red"]mkdir /mnt/media_rw/sdcard0 0700 media_rw media_rw
mkdir /mnt/media_rw/sdcard1 0700 media_rw media_rw
mkdir /storage/sdcard0 0700 root root
mkdir /storage/sdcard1 0700 root root[/COLOR]
[COLOR="Red"] symlink /storage/sdcard0 /sdcard
symlink /storage/sdcard0 /mnt/sdcard
symlink /storage/sdcard1 /sdcard2
symlink /storage/sdcard1 /mnt/sdcard2[/COLOR]
mkdir /mnt/shell 0700 shell shell
# Directory for putting things only root should see.
mkdir /mnt/secure 0700 root root
# Create private mountpoint so we can MS_MOVE from staging
mount tmpfs tmpfs /mnt/secure mode=0700,uid=0,gid=0
# Directory for staging bindmounts
mkdir /mnt/secure/staging 0700 root root
# Fuse public mount points.
mkdir /mnt/fuse 0700 root system
mount tmpfs tmpfs /mnt/fuse mode=0775,gid=1000
on fs
mkdir /dev/usb-ffs 0770 shell shell
mkdir /dev/usb-ffs/adb 0770 shell shell
mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor [COLOR="Red"]0BB4[/COLOR]
write /sys/class/android_usb/android0/idProduct [COLOR="Red"]0C03[/COLOR]
write /sys/class/android_usb/android0/f_ffs/aliases adb
write /sys/class/android_usb/android0/functions [COLOR="Red"]mass_storage,adb[/COLOR]
write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer}
write /sys/class/android_usb/android0/iProduct ${ro.product.model}
write /sys/class/android_usb/android0/iSerial ${ro.serialno}
on boot
ifup lo
hostname localhost
domainname localdomain
class_start default
on property:sys.powerctl=*
powerctl ${sys.powerctl}
service ueventd /sbin/ueventd
critical
seclabel u:r:ueventd:s0
service healthd /sbin/healthd -n
critical
seclabel u:r:healthd:s0
service recovery /sbin/recovery
seclabel u:r:recovery:s0
service setup_adbd /sbin/setup_adbd
oneshot
service adbd /sbin/adbd --root_seclabel=u:r:su:s0 --device_banner=recovery
disabled
socket adbd stream 660 system system
seclabel u:r:adbd:s0
service vold /sbin/minivold
socket vold stream 0660 root mount
ioprio be 2
seclabel u:r:recovery:s0
[COLOR="Red"]# virtual sdcard daemon running as media_rw (1023)
service fuse_sdcard0 /system/bin/sdcard -u 1023 -g 1023 -w 1023 -d /mnt/media_rw/sdcard0 /storage/sdcard0
class late_start
disabled
# virtual sdcard daemon running as media_rw (1023)
service fuse_sdcard1 /system/bin/sdcard -u 1023 -g 1023 -d /mnt/media_rw/sdcard1 /storage/sdcard1
class late_start
disabled[/COLOR]
# setup_adbd will start adb once it has checked the keys
on property:service.adb.root=1
write /sys/class/android_usb/android0/enable 0
restart adbd
write /sys/class/android_usb/android0/enable 1
on property:sys.storage.ums_enabled=1
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idProduct [COLOR="Red"]0C03[/COLOR]
write /sys/class/android_usb/android0/functions [COLOR="Red"]mass_storage,adb[/COLOR]
write /sys/class/android_usb/android0/enable 1
on property:sys.storage.ums_enabled=0
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idProduct [COLOR="Red"]0C01[/COLOR]
write /sys/class/android_usb/android0/functions [COLOR="Red"]adb[/COLOR]
write /sys/class/android_usb/android0/enable ${service.adb.root}
In above example I highlighted all parts you need to focus on. Here there is something inportant: for sdcard services, give "other(world)" read/write permissions only for external sdcard. In my example that is sdcard0 because I use a modified fstab in my phone, with external sdcard as main sdcard. The CWM for kitkat takes as main sdcard the "sdcard0" by default. You can change that in fstab, by setting /storage/sdcard0 as sdcard1 and /storage/sdcard1 as sdcard0 - this is what I did.
Code:
service fuse_sdcard0 /system/bin/sdcard -u 1023 -g 1023[COLOR="Red"] -w 1023[/COLOR] -d /mnt/media_rw/sdcard0 /storage/sdcard0
class late_start
disabled
# virtual sdcard daemon running as media_rw (1023)
service fuse_sdcard1 /system/bin/sdcard -u 1023 -g 1023 -d /mnt/media_rw/sdcard1 /storage/sdcard1
class late_start
disabled
Usualy all informations are in the init file with ssd in name, and you can double check them in meta.init.rc.
Also you can find what sdcards you have in your phone by typing this in a terminal or command prompt through adb:
Code:
adb shell
env | grep sdcard
For vendor and product id check init.usb.rc.
Possible sdcards setups:
1. noemulated:
Code:
on early-init
# Apply strict SELinux checking of PROT_EXEC on mmap/mprotect calls.
write /sys/fs/selinux/checkreqprot 0
# Set the security context for the init process.
# This should occur before anything else (e.g. ueventd) is started.
setcon u:r:init:s0
start ueventd
start healthd
on init
export PATH /sbin:/system/bin
export ANDROID_ROOT /system
export ANDROID_DATA /data
[COLOR="Red"] export EXTERNAL_STORAGE /storage/sdcard0
export SECONDARY_STORAGE /storage/sdcard1[/COLOR]
symlink /system/etc /etc
mkdir /boot
mkdir /recovery
mkdir /sdcard
mkdir /internal_sd
mkdir /external_sd
mkdir /sd-ext
mkdir /datadata
[COLOR="Red"]mkdir /sdcard2[/COLOR]
mkdir /system
mkdir /cache
mkdir /data
mount tmpfs tmpfs /tmp
chown root shell /tmp
chmod 0775 /tmp
# See storage config details at http://source.android.com/tech/storage/
mkdir /mnt 0775 root system
mkdir /storage 0050 root sdcard_r
mount tmpfs tmpfs /storage mode=0050,uid=0,gid=1028
[COLOR="Red"]mkdir /mnt/media_rw/sdcard0 0700 media_rw media_rw
mkdir /mnt/media_rw/sdcard1 0700 media_rw media_rw
mkdir /storage/sdcard0 0700 root root
mkdir /storage/sdcard1 0700 root root[/COLOR]
[COLOR="Red"] symlink /storage/sdcard0 /sdcard
symlink /storage/sdcard0 /mnt/sdcard
symlink /storage/sdcard1 /sdcard2
symlink /storage/sdcard1 /mnt/sdcard2[/COLOR]
mkdir /mnt/shell 0700 shell shell
# Directory for putting things only root should see.
mkdir /mnt/secure 0700 root root
# Create private mountpoint so we can MS_MOVE from staging
mount tmpfs tmpfs /mnt/secure mode=0700,uid=0,gid=0
# Directory for staging bindmounts
mkdir /mnt/secure/staging 0700 root root
# Fuse public mount points.
mkdir /mnt/fuse 0700 root system
mount tmpfs tmpfs /mnt/fuse mode=0775,gid=1000
on fs
mkdir /dev/usb-ffs 0770 shell shell
mkdir /dev/usb-ffs/adb 0770 shell shell
mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor [COLOR="Red"]0BB4[/COLOR]
write /sys/class/android_usb/android0/idProduct [COLOR="Red"]0C03[/COLOR]
write /sys/class/android_usb/android0/f_ffs/aliases adb
write /sys/class/android_usb/android0/functions [COLOR="Red"]mass_storage,adb[/COLOR]
write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer}
write /sys/class/android_usb/android0/iProduct ${ro.product.model}
write /sys/class/android_usb/android0/iSerial ${ro.serialno}
on boot
ifup lo
hostname localhost
domainname localdomain
class_start default
on property:sys.powerctl=*
powerctl ${sys.powerctl}
service ueventd /sbin/ueventd
critical
seclabel u:r:ueventd:s0
service healthd /sbin/healthd -n
critical
seclabel u:r:healthd:s0
service recovery /sbin/recovery
seclabel u:r:recovery:s0
service setup_adbd /sbin/setup_adbd
oneshot
service adbd /sbin/adbd --root_seclabel=u:r:su:s0 --device_banner=recovery
disabled
socket adbd stream 660 system system
seclabel u:r:adbd:s0
service vold /sbin/minivold
socket vold stream 0660 root mount
ioprio be 2
seclabel u:r:recovery:s0
[COLOR="Red"]# virtual sdcard daemon running as media_rw (1023)
service fuse_sdcard0 /system/bin/sdcard -u 1023 -g 1023 -w 1023 -d /mnt/media_rw/sdcard0 /storage/sdcard0
class late_start
disabled
# virtual sdcard daemon running as media_rw (1023)
service fuse_sdcard1 /system/bin/sdcard -u 1023 -g 1023 -d /mnt/media_rw/sdcard1 /storage/sdcard1
class late_start
disabled[/COLOR]
# setup_adbd will start adb once it has checked the keys
on property:service.adb.root=1
write /sys/class/android_usb/android0/enable 0
restart adbd
write /sys/class/android_usb/android0/enable 1
on property:sys.storage.ums_enabled=1
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idProduct [COLOR="Red"]0C03[/COLOR]
write /sys/class/android_usb/android0/functions [COLOR="Red"]mass_storage,adb[/COLOR]
write /sys/class/android_usb/android0/enable 1
on property:sys.storage.ums_enabled=0
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idProduct [COLOR="Red"]0C01[/COLOR]
write /sys/class/android_usb/android0/functions [COLOR="Red"]adb[/COLOR]
write /sys/class/android_usb/android0/enable ${service.adb.root}
Modify required ramdisk files - Kitkat - II.
2. one emulated:
Code:
on early-init
# Apply strict SELinux checking of PROT_EXEC on mmap/mprotect calls.
write /sys/fs/selinux/checkreqprot 0
# Set the security context for the init process.
# This should occur before anything else (e.g. ueventd) is started.
setcon u:r:init:s0
start ueventd
start healthd
on init
export PATH /sbin:/system/bin
export ANDROID_ROOT /system
export ANDROID_DATA /data
[COLOR="Red"]export EXTERNAL_STORAGE /storage/sdcard0[/COLOR]
symlink /system/etc /etc
[COLOR="Red"]symlink /data/media/0 /storage/sdcard0[/COLOR]
mkdir /boot
mkdir /recovery
mkdir /sdcard
mkdir /internal_sd
mkdir /external_sd
mkdir /sd-ext
mkdir /datadata
mkdir /system
mkdir /emmc
mkdir /cache
mkdir /data
mount tmpfs tmpfs /tmp
chown root shell /tmp
chmod 0775 /tmp
# See storage config details at http://source.android.com/tech/storage/
mkdir /mnt 0775 root system
mkdir /storage 0050 root sdcard_r
mount tmpfs tmpfs /storage mode=0050,uid=0,gid=1028
mkdir /mnt/shell 0700 shell shell
# Directory for putting things only root should see.
mkdir /mnt/secure 0700 root root
# Create private mountpoint so we can MS_MOVE from staging
mount tmpfs tmpfs /mnt/secure mode=0700,uid=0,gid=0
# Directory for staging bindmounts
mkdir /mnt/secure/staging 0700 root root
# Fuse public mount points.
mkdir /mnt/fuse 0700 root system
mount tmpfs tmpfs /mnt/fuse mode=0775,gid=1000
on fs
mkdir /dev/usb-ffs 0770 shell shell
mkdir /dev/usb-ffs/adb 0770 shell shell
mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
write /sys/class/android_usb/android0/enable 0
[COLOR="Red"]write /sys/class/android_usb/android0/idVendor 0BB4
write /sys/class/android_usb/android0/idProduct 0C03[/COLOR]
write /sys/class/android_usb/android0/f_ffs/aliases adb
[COLOR="Red"]write /sys/class/android_usb/android0/functions mass_storage,adb[/COLOR]
write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer}
write /sys/class/android_usb/android0/iProduct ${ro.product.model}
write /sys/class/android_usb/android0/iSerial ${ro.serialno}
on boot
ifup lo
hostname localhost
domainname localdomain
class_start default
on property:sys.powerctl=*
powerctl ${sys.powerctl}
service ueventd /sbin/ueventd
critical
seclabel u:r:ueventd:s0
service healthd /sbin/healthd -n
critical
seclabel u:r:healthd:s0
service recovery /sbin/recovery
seclabel u:r:recovery:s0
service setup_adbd /sbin/setup_adbd
oneshot
service adbd /sbin/adbd --root_seclabel=u:r:su:s0 --device_banner=recovery
disabled
socket adbd stream 660 system system
seclabel u:r:adbd:s0
service vold /sbin/minivold
socket vold stream 0660 root mount
ioprio be 2
seclabel u:r:recovery:s0
# setup_adbd will start adb once it has checked the keys
on property:service.adb.root=1
write /sys/class/android_usb/android0/enable 0
restart adbd
write /sys/class/android_usb/android0/enable 1
on property:sys.storage.ums_enabled=1
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idProduct 0C03
write /sys/class/android_usb/android0/functions mass_storage,adb
write /sys/class/android_usb/android0/enable 1
on property:sys.storage.ums_enabled=0
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idProduct 0C01
write /sys/class/android_usb/android0/functions adb
write /sys/class/android_usb/android0/enable ${service.adb.root}
3. one emulated and one noemulated:
Code:
on early-init
# Apply strict SELinux checking of PROT_EXEC on mmap/mprotect calls.
write /sys/fs/selinux/checkreqprot 0
# Set the security context for the init process.
# This should occur before anything else (e.g. ueventd) is started.
setcon u:r:init:s0
start ueventd
start healthd
on init
export PATH /sbin:/system/bin
export ANDROID_ROOT /system
export ANDROID_DATA /data
[COLOR="Red"]export EXTERNAL_STORAGE /storage/sdcard0
export SECONDARY_STORAGE /storage/sdcard1[/COLOR]
symlink /system/etc /etc
[COLOR="Red"]symlink /data/media/0 /storage/sdcard0[/COLOR]
mkdir /boot
mkdir /recovery
mkdir /sdcard
mkdir /internal_sd
mkdir /external_sd
mkdir /sd-ext
[COLOR="Red"]mkdir /sdcard2[/COLOR]
mkdir /datadata
mkdir /system
mkdir /emmc
mkdir /cache
mkdir /data
mount tmpfs tmpfs /tmp
chown root shell /tmp
chmod 0775 /tmp
# See storage config details at http://source.android.com/tech/storage/
mkdir /mnt 0775 root system
mkdir /storage 0050 root sdcard_r
mount tmpfs tmpfs /storage mode=0050,uid=0,gid=1028
[COLOR="Red"]mkdir /mnt/media_rw/sdcard1 0700 media_rw media_rw
mkdir /mnt/shell 0700 shell shell
mkdir /storage/sdcard1 0700 root root
symlink /storage/sdcard1 /mnt/sdcard2[/COLOR]
# Directory for putting things only root should see.
mkdir /mnt/secure 0700 root root
# Create private mountpoint so we can MS_MOVE from staging
mount tmpfs tmpfs /mnt/secure mode=0700,uid=0,gid=0
# Directory for staging bindmounts
mkdir /mnt/secure/staging 0700 root root
# Fuse public mount points.
mkdir /mnt/fuse 0700 root system
mount tmpfs tmpfs /mnt/fuse mode=0775,gid=1000
on fs
mkdir /dev/usb-ffs 0770 shell shell
mkdir /dev/usb-ffs/adb 0770 shell shell
mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
write /sys/class/android_usb/android0/enable 0
[COLOR="Red"]write /sys/class/android_usb/android0/idVendor 0BB4
write /sys/class/android_usb/android0/idProduct 0C03[/COLOR]
write /sys/class/android_usb/android0/f_ffs/aliases adb
[COLOR="Red"]write /sys/class/android_usb/android0/functions mass_storage,adb[/COLOR]
write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer}
write /sys/class/android_usb/android0/iProduct ${ro.product.model}
write /sys/class/android_usb/android0/iSerial ${ro.serialno}
on boot
ifup lo
hostname localhost
domainname localdomain
class_start default
on property:sys.powerctl=*
powerctl ${sys.powerctl}
service ueventd /sbin/ueventd
critical
seclabel u:r:ueventd:s0
service healthd /sbin/healthd -n
critical
seclabel u:r:healthd:s0
service recovery /sbin/recovery
seclabel u:r:recovery:s0
service setup_adbd /sbin/setup_adbd
oneshot
service adbd /sbin/adbd --root_seclabel=u:r:su:s0 --device_banner=recovery
disabled
socket adbd stream 660 system system
seclabel u:r:adbd:s0
service vold /sbin/minivold
socket vold stream 0660 root mount
ioprio be 2
seclabel u:r:recovery:s0
[COLOR="Red"]
# virtual sdcard daemon running as media_rw (1023)
service fuse_sdcard1 /system/bin/sdcard -u 1023 -g 1023 -w 1023 -d /mnt/media_rw/sdcard1 /storage/sdcard1
class late_start
disabled[/COLOR]
# setup_adbd will start adb once it has checked the keys
on property:service.adb.root=1
write /sys/class/android_usb/android0/enable 0
restart adbd
write /sys/class/android_usb/android0/enable 1
on property:sys.storage.ums_enabled=1
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idProduct 0C03
write /sys/class/android_usb/android0/functions mass_storage,adb
write /sys/class/android_usb/android0/enable 1
on property:sys.storage.ums_enabled=0
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idProduct 0C01
write /sys/class/android_usb/android0/functions adb
write /sys/class/android_usb/android0/enable ${service.adb.root}
Official info for new sdcard setup here.
If you pay attention to this, these files are the only files you need to have a working recovery, and you don't need extra init files includes.
Repack the ported recovery.
In windows just drag the carliv-recovery (or what name you gave it) folder over the repack_MTK_img.bat or MTK_pack.bat and that's it. If you use CarlivImageKitchen the script will prompt you to input a name for the new ported recovery; choose a name with the word recovery in it. For michfood's tool you will get a new-image.img. Rename it recovery.img and flash it in your phone.
In linux, for CarlivImageKitchen type
Code:
./repack_MTK_img carliv-recovery
, when carliv-recovery is the name of the folder with the new ported recovery files. Same rules for prompt to choose a new name as in windows.
For bgcngm's tools in linux delete boot.img-ramdisk, recovery.img-ramdisk-stock, and rename recovery.img-ramdisk-carliv to recovery.img-ramdisk and recovery.img-kernel.img-stock to recovery.img-kernel.img.
Then type:
Code:
./repack-MTK.pl -recovery recovery.img-kernel.img recovery.img-ramdisk new-recovery.img
When it's finished you will find new-recovery.img in mtk tools folder. Rename it recovery.img and flash it in your phone.
Another usefull guide sir,,,
Thanx [emoji4]
carliv said:
........
If you pay attention to this, these files are the only files you need to have a working recovery, and you don't need extra init files includes.
Click to expand...
Click to collapse
Great guide as always sir,
I am not getting this last line before repacking
Do we need to include in the port recovery (from stock boot folder).
Or just needed the data inside the files to get vendorid and product id.
Thank you.
avi3230 said:
Great guide as always sir,
I am not getting this last line before repacking
Do we need to include in the port recovery (from stock boot folder).
Or just needed the data inside the files to get vendorid and product id.
Thank you.
Click to expand...
Click to collapse
As I said, you only need the data from stock files - those marked by me in red in example.
carliv said:
As I said, you only need the data from stock files - those marked by me in red in example.
Click to expand...
Click to collapse
Here we go one more awesome guide! :good:
Thanks Master Carliv
EDIT : Figured out myself! Thanks works perfectly as a charm.
master carliv
Carliv Touch Recovery v3.0 for Kitkat has been successfully running on Evercross A66A_09_MT6582M_V 2.11
Thank you for providing Instructions
:good::good::good:
br,
ramex
ramex said:
master carliv
Carliv Touch Recovery v3.0 for Kitkat has been successfully running on Evercross A66A_09_MT6582M_V 2.11
br,
ramex
Click to expand...
Click to collapse
That's good, but looking at that image it seems that you used a wrong version to port. If I have to guess, I think you used 1280x720 instead of 720x1280, or something like that. The pictures from first post are made on a screen with 720x1280. There is a difference between yours and those, isn't it? If you use the right resolution it will look even better.
Cheers!
carliv said:
That's good, but looking at that image it seems that you used a wrong version to port. If I have to guess, I think you used 1280x720 instead of 720x1280, or something like that. The pictures from first post are made on a screen with 720x1280. There is a difference between yours and those, isn't it? If you use the right resolution it will look even better.
Cheers!
Click to expand...
Click to collapse
You right,
Better to use 720x1280 rather than resolution of 1280 x 720 and I already apply to latest ROM EVERCOSS A66A V12 MT6582M
Thank You.
:good::good::good:
br,
ramex
syntax of the command is incorrect
while unpacking disc images, i am getting error at the end of the command window saying syntax of the command is incorrect.
Also, while unpacking stock boot image and recovery image, i am getting error saying "end offset is lower than start offset"
can you please help me?
im using windows 7 home premium, boot/recovery unpack/repack tool was used on desktop...
my device is panasonic p81, mt6592, resolution 720*1280
i have attached screenshots and also a zip file that includes same screenshots in good resolution.
Thanks in advance...
Sagar_Patel said:
while unpacking disc images, i am getting error at the end of the command window saying syntax of the command is incorrect.
Also, while unpacking stock boot image and recovery image, i am getting error saying "end offset is lower than start offset"
can you please help me?
im using windows 7 home premium, boot/recovery unpack/repack tool was used on desktop...
my device is panasonic p81, mt6592, resolution 720*1280
i have attached screenshots and also a zip file that includes same screenshots in good resolution.
Thanks in advance...
Click to expand...
Click to collapse
Try this option STD_unpack.bat
Sagar_Patel said:
while unpacking disc images, i am getting error at the end of the command window saying syntax of the command is incorrect.
Also, while unpacking stock boot image and recovery image, i am getting error saying "end offset is lower than start offset"
can you please help me?
im using windows 7 home premium, boot/recovery unpack/repack tool was used on desktop...
my device is panasonic p81, mt6592, resolution 720*1280
i have attached screenshots and also a zip file that includes same screenshots in good resolution.
Thanks in advance...
Click to expand...
Click to collapse
That was already discussed on this page starting with post #22, and there is a repacked tool in one of my posts from that page which seems to work better.
@carliv: using your excellent tutorials, I successfully installed Carliv Touch Recovery v2.2 - Ubifs on my Samsung S5 Mini clone (MT6572-based). Except for the fact that the display is upside down, it works perfectly. Thanks!
Filipus said:
@carliv: using your excellent tutorials, I successfully installed Carliv Touch Recovery v2.2 - Ubifs on my Samsung S5 Mini clone (MT6572-based). Except for the fact that the display is upside down, it works perfectly. Thanks!
Click to expand...
Click to collapse
Thanks! But is it 2.2 or 2.7?
I know about the flipped screen issue, I'm still trying to find a solution for that.
It's 2.2. I only realized later that a more recent version exists and I was too lazy (or not brave enough!) to attempt flashing the device again.
Should I?
Oh, and by the way, the flipped screen issue really isn't much of one, especially since the touch feature works so well. Don't lose any sleep over it...
Hi Carliv,
i tried to make a v3.0 CTR for my phone (Elephone G6) but it does not work at all.
English is not natural language so some parts appeared confusing to me.
i think i did everything like shown in you tutorial but i got many errors while unpacking and packing. i got these errors managed but i´m not sure if something went wrong while packing, or maybe i made an error.
can you make a CTR3.0 for me please?
it would be nice when you help me out.
I just tried for my MT6572
Worked successfully..
but i am getting out of screen .. Options are looking bigger..
i have 480*800 and i have downloaded for same resolution..
any way to change resolution ?