Ok here's the deal, I left charging my phone in the night and in the morning nothing, don't turn on, no lights in charger, nothing... So I connected to PC and a hardware disconnecting connecting sound plays avery 5sec, no key combination work, only if i press power and connect to pc detects it in qualcomm download mode, so i tried to unbrick it with jet toolkit and i only get QDS reset, no more, i can't detect emmc partitions too, what i can do?
Enviado desde mi HTC One S usando Tapatalk 4
Jtagg service if you've really spammed the command for partition enumeration and are sure they won't come up.
Sent from my HTC One XL using xda app-developers app
exad said:
Jtagg service if you've really spammed the command for partition enumeration and are sure they won't come up.
Sent from my HTC One XL using xda app-developers app
Click to expand...
Click to collapse
I will try spam a little more lol, but just in case, here in Texas (El Paso) there's a dev doing this job?
Zero_Lord said:
I will try spam a little more lol, but just in case, here in Texas (El Paso) there's a dev doing this job?
Click to expand...
Click to collapse
mobiletechvideos.com is located in Bryan, Texas. My phone was hard bricked and couldn't enumerate the partitions, and he fixed it real quick, and no signs of opening the device.
Vcek said:
mobiletechvideos.com is located in Bryan, Texas. My phone was hard bricked and couldn't enumerate the partitions, and he fixed it real quick, and no signs of opening the device.
Click to expand...
Click to collapse
That's good I will send it to him then. it cost 50 bucks + shipping right? or his website is outdated?
Zero_Lord said:
That's good I will send it to him then. it cost 50 bucks + shipping right? or his website is outdated?
Click to expand...
Click to collapse
No it's upto date, and yes it will cost you 50 + shipping
Sent from my HTC One XL using XDA Premium 4 mobile app
You can try to hold down on the power button for ten seconds. Try that a couple times before jtagg. Mine will randomly shut off and this has brought it back for me.
Sent from my HTC One XL using XDA Premium 4 mobile app
Still making a last push before send it to JTAG, I spammed for 5 minutes from the JET Toolkit
Code:
sudo ./emmc_recover -r
And i get this
Code:
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
Cannot reset device
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
Cannot reset device
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
Cannot reset device
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
Cannot reset device
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
Cannot reset device
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
Cannot reset device
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
Cannot reset device
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
Cannot reset device
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
Cannot reset device
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
Cannot reset device
already see in the device manager with the cmd watch lsusb and the device changes in Qualcomm inc. to Qualcomm, Inc. Gobi Wireless Modem (QDL mode) and the device number change every time (from device 6 to 45 consecutively) already check the cmd
Code:
sudo ./jet -u
and i get this cmd
Code:
[email protected]:~/Downloads/jet$ sudo ./jet -u
JET - Jewel/Evita Toolkit v0.3.3beta
**Unbrick Mode**
Device detection started...
Waking Device...
Timeout. Retrying...
Timeout. Retrying...
Timeout. Retrying...
Cannot find emmc partitons. Exiting...
So the problem maybe can be EMMC corrupted?
Zero_Lord said:
Still making a last push before send it to JTAG, I spammed for 5 minutes from the JET Toolkit
Code:
sudo ./emmc_recover -r
And i get this
Code:
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
Cannot reset device
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
Cannot reset device
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
Cannot reset device
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
Cannot reset device
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
Cannot reset device
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
Cannot reset device
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
Cannot reset device
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
Cannot reset device
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
Cannot reset device
[email protected]:~/Downloads/jet$ sudo ./emmc_recover -r
================= emmc_recover 0.3 alpha 2 ==========================
Cannot reset device
already see in the device manager with the cmd watch lsusb and the device changes in Qualcomm inc. to Qualcomm, Inc. Gobi Wireless Modem (QDL mode) and the device number change every time (from device 6 to 45 consecutively) already check the cmd
Code:
sudo ./jet -u
and i get this cmd
Code:
[email protected]:~/Downloads/jet$ sudo ./jet -u
JET - Jewel/Evita Toolkit v0.3.3beta
**Unbrick Mode**
Device detection started...
Waking Device...
Timeout. Retrying...
Timeout. Retrying...
Timeout. Retrying...
Cannot find emmc partitons. Exiting...
So the problem maybe can be EMMC corrupted?
Click to expand...
Click to collapse
Try using unbrick rather than jet. Not sure if they do the same thing but with unbrick you'll be able to see if the partitions enumerate.
http://forum.xda-developers.com/showthread.php?t=1966850
exad said:
Try using unbrick rather than jet. Not sure if they do the same thing but with unbrick you'll be able to see if the partitions enumerate.
http://forum.xda-developers.com/showthread.php?t=1966850
Click to expand...
Click to collapse
Thanks I will give a try, last night searching about 2 hours in the jet thread and in google I didnt get to this thread.
Zero_Lord said:
Thanks I will give a try, last night searching about 2 hours in the jet thread and in google I didnt get to this thread.
Click to expand...
Click to collapse
Sorry to hear you wasted so much time! If you have any questions, don't hesitate to ask, I'm usually pretty quick about responding.
exad said:
Sorry to hear you wasted so much time! If you have any questions, don't hesitate to ask, I'm usually pretty quick about responding.
Click to expand...
Click to collapse
Well I have a question, in the thread says
You should go from seeing this..
to seeing this...
Click to expand...
Click to collapse
and no image lol, i searched in code page and the dropbox image says 404 not found, so im searching in google for other image because I cant continue if i dont know what im going to see lol.
UPDATE, i show this image, this what i get
{
"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"
}
http://kn3.net/3551F641552PNG.html
Zero_Lord said:
Well I have a question, in the thread says
and no image lol, i searched in code page and the dropbox image says 404 not found, so im searching in google for other image because I cant continue if i dont know what im going to see lol.
Click to expand...
Click to collapse
Ah right, I'm at work so I can't create a picture for you BUT I can give you an idea of what you'll see.
So when you spam the command. If will at first show something like:
sda1 sdb1 sbd2 sbc1 sde1 sdf1
You'll see something like 10 of them but when your partitions enumerate properly one of the letters will show a bunch of extra partitions.. so you'll have for example:
sda1 sdb1 sbd2 sbc1 sde1 sde2 sde3 sde4 sde5 sde6 sde7
sde8 sde9 sde10 sde11 sde12 sde13 sde14 sde15 sde16 sdf1
And the letter that shows all the numbered partitions will be your phone's emmc partition table.
Sort of making sence?
In linux sda1 sda2 is similar to windows lettering driver a, b, c but in linux sda1 sda2 sda3 will be one hard drive and if you have another physical hard drive it will then become sdb and every partiton will be a number so:
Drive 1 with 2 partitions will = sda1 sda2
Drive 2 with 4 partitions will = sdb1 sdb2 sdb3 sdb4
So the point is to list off all the partitions within your phones emmc "drive". If they don't enumerate, there's no way to write to them and recover from the brick.
*edit* so in accordance with your picture, if you successfully enumerate one of those sd*(a,b,c,d,h,whatever) will list a BUNCH of numbered partitions. Try a afew times because it's hard to catch it.
exad said:
Ah right, I'm at work so I can't create a picture for you BUT I can give you an idea of what you'll see.
So when you spam the command. If will at first show something like:
sda1 sdb1 sbd2 sbc1 sde1 sdf1
You'll see something like 10 of them but when your partitions enumerate properly one of the letters will show a bunch of extra partitions.. so you'll have for example:
sda1 sdb1 sbd2 sbc1 sde1 sde2 sde3 sde4 sde5 sde6 sde7
sde8 sde9 sde10 sde11 sde12 sde13 sde14 sde15 sde16 sdf1
And the letter that shows all the numbered partitions will be your phone's emmc partition table.
Sort of making sence?
In linux sda1 sda2 is similar to windows lettering driver a, b, c but in linux sda1 sda2 sda3 will be one hard drive and if you have another physical hard drive it will then become sdb and every partiton will be a number so:
Drive 1 with 2 partitions will = sda1 sda2
Drive 2 with 4 partitions will = sdb1 sdb2 sdb3 sdb4
So the point is to list off all the partitions within your phones emmc "drive". If they don't enumerate, there's no way to write to them and recover from the brick.
*edit* so in accordance with your picture, if you successfully enumerate one of those sd*(a,b,c,d,h,whatever) will list a BUNCH of numbered partitions. Try a afew times because it's hard to catch it.
Click to expand...
Click to collapse
Ok, i understand, but i keep spaming the cmd I still get nothing, the lusb cmd shows Qualcomm inc connecting and disconnecting about 30 times, and then disappears, i reconnect it and i get Qualcomm Inc. and about 3 to 9 times same connecting and disconnecting, and then Qualcomm Download bla bla driver, this shows the spam
Code:
/dev/sdb2
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*2
/dev/sdb2
[email protected]:~$
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
[email protected]:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdc /dev/sdc1
If they don't show up, it cannot be recovered. Jtagg or motherboard replacement are the only options
Sent from my HTC One XL using xda app-developers app
exad said:
If they don't show up, it cannot be recovered. Jtagg or motherboard replacement are the only options
Sent from my HTC One XL using xda app-developers app
Click to expand...
Click to collapse
Well, thats shame.
Enviado desde mi HTC One S usando Tapatalk 4
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 ?
My wife has the above A1-830, it worked for years with little problem after rooting. Fast forward a few months and due to life/career changes, it gets put away for a while. I brought it out a few months ago to give it a top up charge before putting it away and it still worked fine. I go to bring it back out recently, only to find that it's stuck on the loading android logo (where the logo shimmers). Fast forward again after a couple weeksand when I now have the motivation to look into it further, it now no longer starts and the shimmering logo just sits there. I connected a USB cable and have full root access over ADB, however I now seemingly have no way to get into droidboot/fastboot/recovery on this device. All attempts simply hang, with "fastboot devices" not showing anything.
After looking into this a little (and finding this and this blog post) I realised that I can use dd to overwrite the recovery and boot volume and hopefully bring this tablet back to life. The snag is that the points suggested within that blog that I can identify what partition resides where, are absent on this device (I figure maybe it's due to it being intel and not ARM architecture).
My problem is I unfortunately I don't know which ones to mess around with, and would very much like to avoid overwriting the wrong one or risking mounting the wrong partition and managing to break something in an unexpected way while poking around and trying to figure out the partitions to overwrite with what.
Partition Table
Code:
[email protected]:/ $ cat /proc/partitions
cat /proc/partitions
major minor #blocks name
.
179 0 15376384 mmcblk0
179 1 167936 mmcblk0p1
179 2 8192 mmcblk0p2
179 3 32768 mmcblk0p3
179 4 131072 mmcblk0p4
179 5 131072 mmcblk0p5
179 6 786432 mmcblk0p6
179 7 262144 mmcblk0p7
179 8 1572864 mmcblk0p8
179 9 12275692 mmcblk0p9
179 40 8192 mmcblk0gp0
179 30 8 mmcblk0rpmb
179 20 4096 mmcblk0boot1
179 10 4096 mmcblk0boot0
179 50 1931264 mmcblk1
179 51 1931200 mmcblk1p1
/proc/mounts
Code:
[email protected]:/ $ cat /proc/mounts
cat /proc/mounts
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/secure tmpfs rw,relatime,mode=700 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/dev/block/mmcblk0p3 /factory ext4 rw,nosuid,nodev,noatime,data=ordered 0 0
/dev/block/mmcblk0p8 /system ext4 ro,noatime,data=ordered 0 0
/dev/block/mmcblk0p6 /cache ext4 rw,nosuid,nodev,noatime,journal_checksum,journal_async_commit,data=ordered 0 0
/dev/block/mmcblk0p5 /config ext4 rw,nosuid,nodev,noatime,data=ordered 0 0
/dev/block/mmcblk0p9 /data ext4 rw,nosuid,nodev,noatime,discard,journal_checksum,journal_async_commit,noauto_da_alloc,data=ordered 0 0
/dev/block/mmcblk0p7 /logs ext4 rw,nosuid,nodev,relatime,journal_checksum,journal_async_commit,data=ordered 0 0 none /sys/kernel/debug debugfs rw,relatime 0 0
/dev/fuse /mnt/shell/emulated fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
contents of "partition.tbl" within the ROM i wish to write.
Code:
partition_table=gpt
create -z /dev/block/mmcblk0
create /dev/block/mmcblk0
boot -p /dev/block/mmcblk0
reload /dev/block/mmcblk0
add -b 40 -s 335872 -t efi -u 80868086-8086-8086-8086-000000000000 -l reserved -T 0 -P 0 /dev/block/mmcblk0
add -b 335912 -s 16384 -t efi -u 80868086-8086-8086-8086-000000000001 -l panic -T 0 -P 0 /dev/block/mmcblk0
add -b 352296 -s 65536 -t data -u 80868086-8086-8086-8086-000000000002 -l factory -T 0 -P 0 /dev/block/mmcblk0
add -b 417832 -s 262144 -t data -u 80868086-8086-8086-8086-000000000003 -l misc -T 0 -P 0 /dev/block/mmcblk
add -b 679976 -s 262144 -t data -u 80868086-8086-8086-8086-000000000004 -l config -T 0 -P 0 /dev/block/mmcblk0
add -b 942120 -s 1572864 -t data -u 80868086-8086-8086-8086-000000000005 -l cache -T 0 -P 0 /dev/block/mmcblk0
add -b 2514984 -s 524288 -t data -u 80868086-8086-8086-8086-000000000006 -l logs -T 0 -P 0 /dev/block/mmcblk0
add -b 3039272 -s 3145728 -t data -u 80868086-8086-8086-8086-000000000007 -l system -T 0 -P 0 /dev/block/mmcblk0
add -b 6185000 -s $calc($lba_end-16384) -t data -u 80868086-8086-8086-8086-000000000008 -l data -T 0 -P 0 /dev/block/mmcblk0
reload /dev/block/mmcblk0
Now I'm sure I can figure out from this which partition to write it to, however I would much rather get the answer (or pointers on where to look) to get a more concrete answer than "i think boot.img/fastboot.img/recovery.img goes ..." as frankly I feel this thing is recoverable in it's current state, and I don't want to go digging myself a deeper hole than I already need to with this.
I've spent the better part of 6+ hours trying to figure this out looking at various threads on XDA and searching online in general, any pointers for myself? anyone?