[Q] my legend stuck htc logo my log inside - Legend Android Development

C:\android\tools>fastboot oem boot
< waiting for device >
... INFOsetup_tag addr=0x60000100 cmdline add=0x9D
078D14
INFOTAG:Ramdisk OK
INFOTAG:smi ok, size = 0
INFOTAG:hwid 0x0
INFOTAG:skuid 0x22F00
INFOTAG:hero panel = 0x0
INFOTAG:engineerid = 0x0
INFOMCP dual-die
INFOMCP dual-die
INFOTAG:mono-die = 0x0
INFODevice CID is not super CID
INFOCID is HTC__032
INFOsetting->cid::HTC__032
INFOserial number: HT07VNX01365
INFOcommandline from head: no_console_suspend=1 console=null
INFOcommand line length =446
INFOactive commandline: board_legend.disable_uart3=0 board_legen
INFOd.usb_h2w_sw=0 board_legend.disable_sdcard=0 diag.enabled=0
INFOboard_legend.debug_uart=0 smisize=0 userdata_sel=0 androidbo
INFOot.emmc=false androidboot.baseband=7.05.35.26L androidboot.
INFOcid=HTC__032 androidboot.carrier=HTC-EastEurope androidboot.
INFOmid=PB7610000 androidboot.keycaps=qwerty androidboot.mode=no
INFOrmal androidboot.serialno=HT07VNX01365 androidboot.bootloade
INFOr=0.43.0001 no_console_suspend=1 console=null
INFOaARM_Partion[0].name=misc
INFOaARM_Partion[1].name=recovery
INFOaARM_Partion[2].name=boot
INFOaARM_Partion[3].name=system
INFOaARM_Partion[4].name=cache
INFOaARM_Partion[5].name=userdata
INFOpartition number=6
INFOValid partition num=6
INFOmpu_nand_acpu_rw 8F2 1000
FAILED (status read failed (Too many links))
finished. total time: 0.875s
what can i do ??????

Hi man ! Would be nice if you edit your post in order to explain seriously your problem.
Could be useful to know what ROM you are using, what you did before your phone went in trouble...
Is it a bootloop ? Did you try to flash something ? are you rooted ?
Without the minimum to know, people won't be able to help you. I don't know how to read a logcat, but I don't think every answers are in it !
Plus some courtesy is required on this forum, like on every forum... you just throw us a log...

Related

Problem updating Radio

My device is not booting up - I get into 'X' whenever I start normal boot.
Also I am unable to get recovery console
1) My device (HTC Nexus one) is Unlocked - I unlocked it to try and update the image
2) I installed recovery.img using "fastboot flash recovery recovery.img" - no errors but on selection of recovery menu from boot loader takes the device into "X"
3) I tried "fastboot boot recovery.img" - again the device goes into "X"
I tried installing the radio again -
fastboot flash radio ./fastboot flash radio radio_20100203_2_Signed_PASSION.img
always fails gets error - writing 'radio' ... FAILED (remote: image update error)
I am able to use Fastboot commands through computer but nothing more than that.
oops never mind, sorry can't help.
Also the tracking shows the system goes into hang 'X' with following trace
>>>fastboot oem boot
< waiting for device >
... INFOsetup_tag addr=0xA0000100 cmdline add=0x8E08A33C
INFOTAG:Ramdisk OK
INFOTAG:smi ok, size = 0
INFOTAG:hwid 0x0
INFOTAG:skuid 0x21F01
INFOTAG:hero panel = 0x0
INFOTAG:engineerid = 0x0
INFOMCP dual-die
INFOMCP dual-die
INFOTAG:mono-die = 0x0
INFODevice CID is not super CID
INFOCID is GOOGL001
INFOsetting.cid::GOOGL001
INFOserial number: HT9CVP820282
INFOcommandline from head: no_console_suspend=1 msmsdcc_sdioirq=
INFO1 wire.search_count=5
INFOcommand line length =434
INFOactive commandline: board_mahimahi.disable_uart3=0 board_mah
INFOimahi.usb_h2w_sw=0 board_mahimahi.disable_sdcard=0 diag.enab
INFOled=0 board_mahimahi.debug_uart=0 smisize=0 androidboot.bas
INFOeband=4.03.00.21_2 androidboot.cid=GOOGL001 androidboot.carr
INFOier=GOOGLE androidboot.mid=PB9910000 androidboot.keycaps=qwe
INFOrty androidboot.mode=normal androidboot.serialno=HT9CVP82028
INFO2 androidboot.bootloader=0.33.0012 no_console_suspend=1 msms
INFOdcc_sdioirq=1 wire.search_count=5
INFOaARM_Partion[0].name=misc
INFOaARM_Partion[1].name=recovery
INFOaARM_Partion[2].name=boot
INFOaARM_Partion[3].name=system
INFOaARM_Partion[4].name=cache
INFOaARM_Partion[5].name=userdata
INFOpartition number=6
INFOValid partition num=6
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFOjump_to_kernel: machine_id(2304), tags_addr(0x20000100), ker
INFOnel_addr(0x20008000)
chp2222 said:
My device is not booting up - I get into 'X' whenever I start normal boot.
Also I am unable to get recovery console
1) My device (HTC Nexus one) is Unlocked - I unlocked it to try and update the image
2) I installed recovery.img using "fastboot flash recovery recovery.img" - no errors but on selection of recovery menu from boot loader takes the device into "X"
3) I tried "fastboot boot recovery.img" - again the device goes into "X"
I tried installing the radio again -
fastboot flash radio ./fastboot flash radio radio_20100203_2_Signed_PASSION.img
always fails gets error - writing 'radio' ... FAILED (remote: image update error)
I am able to use Fastboot commands through computer but nothing more than that.
Click to expand...
Click to collapse
Did you root first?
Yes - I downloaded and used the superboot
In past I run the whole process and install the cyanogenmod - it worked fine.
The device was up and running fine. After a while it crashed again and now it would let me get into recovery mode irrespective of successful installation of recovery image through FastBoot.
I had the same problem on my N1. I found that the only way I could get into recovery again was pulling the battery for a good 60 seconds. A quick pull and re-insert would not work.
Turns out my N1 was defective and I am returning it to HTC. Awaiting my new device any day now.

[Q] Radio ROM backup

Hi,
I'm creating a new thread because I did not find anything here related to that specific topic.
I would like to backup my radio ROM before flashing a WWE one. My intent is to test the WWE and if anything goes wrong with e.g the simlock I'll restore the original one.
Some directions : all /dev/block/mtdblock* are not used (appart from system, cache & data) should it be there ? maybe not using yaffs2 ?
Any enlightening suggestions appreciated !
Cheers
gelim said:
Hi,
I'm creating a new thread because I did not find anything here related to that specific topic.
I would like to backup my radio ROM before flashing a WWE one. My intent is to test the WWE and if anything goes wrong with e.g the simlock I'll restore the original one.
Any enlightening suggestions appreciated !
Cheers
Click to expand...
Click to collapse
you can find your own radio image inside of the wwe.. nowadays there are 2 radio for tattoo: orange and stock.
let's say I'm not trusting the WWE content downloaded via an untrusted source ?
Is there really no technical way to achieve that when being root on the phone ?
Thanks
gelim said:
let's say I'm not trusting the WWE content downloaded via an untrusted source ?
Is there really no technical way to achieve that when being root on the phone ?
Thanks
Click to expand...
Click to collapse
don't know, but to achieve your own radio.img from the phone you shoud dump it from the internal memory. Maybe a full backup from recovery saves that image.
> you shoud dump it from the internal memory
yes but it's unclear how to do it. There are several kind of memory in the phone... My bet goes on the NAND one but ATM I don't know how to access the first mtdblocks)
# mount -t yaffs2 -o ro /dev/block/mtdblock0 /sdcard/radio
mount: mounting /dev/block/mtdblock0 on /sdcard/radio failed: Invalid argument
Click to expand...
Click to collapse
(same for 1 & 2)
some kernel log to illustrate that :
[ 5261.980407] yaffs: Attempting MTD mount on 31.0, "mtdblock0"
[ 5261.980926] yaffs: NAND geometry problems: chunk size 2048, type is yaffs2, inbandTags 0
[ 5266.192199] yaffs: dev is 32505856 name is "mtdblock0"
[ 5266.192474] yaffs: passed flags ""
Click to expand...
Click to collapse
> Maybe a full backup from recovery saves that image.
No full backup from recovery (using amora's one) doesn't dump radio.img. That's why I'm asking here.
When you open an official RUU from HTC, all .img are extracted on temp folder. So you can take it from here.
Actually my problems changed a little bit after doing the mount yaffs2 whitout success I issued a reboot from adb.
From now on, my Tattoo won't pass the (vibrate)Tattoo boot logo. I can't go into recovery either (should be just after the Tattoo logo displaying). The only functionnal thing is the fastboot menu and doing a fastboot flash boot boot.img (got that from the RUU) I'm left with the classis FAILED (remote: not allow) thing.
I think I'm doomed and I bricked that little piece of hardware :-(
applying an official RUU should unbrick it
it only needs fastboot usb mode
Yes, should.
potattoo: there is a CID check on this device, it needs to be bypassed using the Goldcard technique AFAIK.
Another protection is hboot has S-ON (signature verification) so I'm out of luck with the manual fastboot flash or update (required some *.sig apparently)
I did an RUU flash from Windows XP (inside a Virtualbox) it managed to reboot the phone (I wasn't able to do that with fastboot reboot !) and timeout on the "waiting for bootloader...". During that time the phone is frozen with the HTC logo.
UPDATE: on a physical windows it's better, the RUU WWE cleans userdata, and then tries to flash the zipped ROM... until it fails. I can now reproduce this behavior manually with fastboot.exe. Here are the log messages :
c:\fastboot>fastboot flash zip rom.zip
sending 'zip' (88968 KB)
...
OKAY [ 14.052s]
writing 'zip'...
INFOadopting the signature contained in this image...
INFOsignature checking...
INFOzip header checking...
INFOzip info parsing...
INFOchecking model ID...
INFOchecking custom ID...
FAILED (remote: 42 custom id check fail)
finished. total time: 41.400s
Click to expand...
Click to collapse
Let's try an oem boot to see what it could say :
c:\fastboot>fastboot oem boot
...
INFO[ERR] partition_read::Failed to read page
INFO22912 or it is empy
INFOsetup_tag addr=0xA0000100 cmdline add=0x8D05E538
INFOTAG:Ramdisk OK
INFOTAG:smi ok, size = 0
INFOTAG:hwid 0x1
INFOTAG:skuid 0x1FC04
INFOTAG:hero panel = 0x0
INFOTAG:engineerid = 0x0
INFOMCP dual-die
INFOMCP dual-die
INFOTAG:mono-die = 0x0
INFODevice CID is not super CID
INFOCID is HTC__247
INFOsetting.cid::HTC__247
INFOserial number: HT9BRLG00XXX
INFOcommandline from head: no_console_suspend=1 console=null
INFOcommand line length =413
INFOactive commandline: board_bahamas.disable_uart3=0 board_baha
INFOmas.usb_h2w_sw=0 board_bahamas.disable_sdcard=0 diag.enabled
INFO=0 board_bahamas.debug_uart=0 smisize=0 androidboot.baseban
INFOd=3.35.07.20 androidboot.cid=HTC__247 androidboot.carrier=HT
INFOC-FRA-Bouygues androidboot.mid=CLIC10000 androidboot.keycaps
INFO=qwerty androidboot.mode=normal androidboot.serialno=HT9BRLG
INFO00145 androidboot.bootloader=0.52.0001 no_console_suspend=1
INFOconsole=null
INFOaARM_Partion[0].name=misc
INFOaARM_Partion[1].name=recovery
INFOaARM_Partion[2].name=boot
INFOaARM_Partion[3].name=system
INFOaARM_Partion[4].name=cache
INFOaARM_Partion[5].name=userdata
INFOpartition number=6
INFOValid partition num=6
INFO0
INFO0
INFOXXXXXXX
INFOXXXXXXX
INFOXXXXXXX
INFOXXXX
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
INFO0
FAILED (status read failed (Too many links))
finished. total time: 0.657s
C:\fastboot>
Click to expand...
Click to collapse
(I intentionnaly blanked by 'XX'ing some numbers thinking they are not relevant to the analysis)
The "FAILED (remote: 42 custom id check fail)" message when flashing shows clearly that the Goldcard I did following "[HOWTO] Create a GoldCard - Bypassing the RUU/SPL CID check to Root/Downgrade" topic is not recognized by HBOOT. Why ?
I tried as well not reversing the CID (as seen on another site) and doing the online generation again. Same problem : CID check FAILS miserably.
Questions that arise are :
1- what is the difference between the CID "HTC__247" seen in the boot log and the big alpha-numeric chain I got doing an "adb shell cat $path-to-mmc-cid" ?
2- does the CID change by mounting the sdcard on another android device ?
I'm pretty conscious we're derivating from the initial topic of this thread... but thanks for the help anyway.
Okay, I got it solved. Feeling much much better.
The CID reversing was clumsy so my goldcard was not correct. I wiped the card : did a mkfs.vfat -F 32 -S 4096 /dev/sdb1.
Tried that site for CID manipulation http://hexrev.soaa.me/, generated the goldcard.img again via http://psas.revskills.de/?q=goldcard.
dd if=golcard.img of=/dev/sdb.
Guess what, now CID check passes successfuly.
Just for the record here is a successful fastboot flashing log
(yes now I switch to a windows 7 for the fastboot step, it's of course not mandatory, I could have done everything from a linux...)
c:\fastboot>fastboot flash zip rom.zip
sending 'zip' (88968 KB)... OKAY [ 14.695s]
writing 'zip'... INFOadopting the signature contained in this i
mage...
INFOsignature checking...
INFOzip header checking...
INFOzip info parsing...
INFOchecking model ID...
INFOchecking custom ID...
INFOchecking main version...
INFOstart image[hboot] unzipping for pre-update check...
INFOstart image[boot] unzipping & flushing...
INFO[RUU]UZ,boot,0
INFO[RUU]UZ,boot,51
INFO[RUU]UZ,boot,100
INFO[RUU]WP,boot,0
INFO[RUU]WP,boot,50
INFO[RUU]WP,boot,100
INFOstart image[hboot] unzipping & flushing...
INFO[RUU]UZ,hboot,0
INFO[RUU]UZ,hboot,100
INFO[RUU]WP,hboot,0
INFO[RUU]WP,hboot,100
INFOstart image[radio] unzipping & flushing...
INFO[RUU]UZ,radio,0
INFO[RUU]UZ,radio,6
INFO[RUU]UZ,radio,14
INFO[RUU]UZ,radio,19
INFO[RUU]UZ,radio,24
INFO[RUU]UZ,radio,33
INFO[RUU]UZ,radio,38
INFO[RUU]UZ,radio,43
INFO[RUU]UZ,radio,48
INFO[RUU]UZ,radio,53
INFO[RUU]UZ,radio,62
INFO[RUU]UZ,radio,67
INFO[RUU]UZ,radio,76
INFO[RUU]UZ,radio,81
INFO[RUU]UZ,radio,86
INFO[RUU]UZ,radio,91
INFO[RUU]UZ,radio,96
INFO[RUU]UZ,radio,100
INFO[RUU]WP,radio,0
INFO[RUU]WP,radio,7
INFO[RUU]WP,radio,12
INFO[RUU]WP,radio,17
INFO[RUU]WP,radio,26
INFO[RUU]WP,radio,31
INFO[RUU]WP,radio,36
INFO[RUU]WP,radio,41
INFO[RUU]WP,radio,46
INFO[RUU]WP,radio,51
INFO[RUU]WP,radio,58
INFO[RUU]WP,radio,63
INFO[RUU]WP,radio,68
INFO[RUU]WP,radio,100
INFOstart image[recovery] unzipping & flushing...
INFO[RUU]UZ,recovery,0
INFO[RUU]UZ,recovery,45
INFO[RUU]UZ,recovery,87
INFO[RUU]UZ,recovery,100
INFO[RUU]WP,recovery,0
INFO[RUU]WP,recovery,44
INFO[RUU]WP,recovery,89
INFO[RUU]WP,recovery,100
INFOstart image[sp1] unzipping & flushing...
INFO[RUU]UZ,sp1,0
INFO[RUU]UZ,sp1,100
INFO[RUU]WP,sp1,0
INFO[RUU]WP,sp1,100
INFOstart image[system] unzipping & flushing...
INFO[RUU]UZ,system,0
INFO[RUU]UZ,system,2
INFO[RUU]UZ,system,5
INFO[RUU]UZ,system,8
INFO[RUU]UZ,system,11
INFO[RUU]UZ,system,14
INFO[RUU]UZ,system,16
INFO[RUU]UZ,system,19
INFO[RUU]UZ,system,22
INFO[RUU]UZ,system,25
INFO[RUU]UZ,system,28
INFO[RUU]UZ,system,31
INFO[RUU]UZ,system,34
INFO[RUU]UZ,system,36
INFO[RUU]UZ,system,39
INFO[RUU]UZ,system,42
INFO[RUU]UZ,system,45
INFO[RUU]UZ,system,48
INFO[RUU]UZ,system,51
INFO[RUU]WP,system,0
INFO[RUU]WP,system,2
INFO[RUU]WP,system,5
INFO[RUU]WP,system,8
INFO[RUU]WP,system,11
INFO[RUU]WP,system,14
INFO[RUU]WP,system,16
INFO[RUU]WP,system,19
INFO[RUU]WP,system,22
INFO[RUU]WP,system,25
INFO[RUU]WP,system,28
INFO[RUU]WP,system,31
INFO[RUU]WP,system,34
INFO[RUU]WP,system,36
INFO[RUU]WP,system,39
INFO[RUU]WP,system,42
INFO[RUU]WP,system,45
INFO[RUU]WP,system,48
INFO[RUU]WP,system,51
INFO[RUU]UZ,system,51
INFO[RUU]UZ,system,53
INFO[RUU]UZ,system,56
INFO[RUU]UZ,system,59
INFO[RUU]UZ,system,62
INFO[RUU]UZ,system,65
INFO[RUU]UZ,system,68
INFO[RUU]UZ,system,71
INFO[RUU]UZ,system,74
INFO[RUU]UZ,system,76
INFO[RUU]UZ,system,79
INFO[RUU]UZ,system,82
INFO[RUU]UZ,system,85
INFO[RUU]UZ,system,88
INFO[RUU]UZ,system,91
INFO[RUU]UZ,system,94
INFO[RUU]UZ,system,97
INFO[RUU]UZ,system,100
INFO[RUU]WP,system,51
INFO[RUU]WP,system,53
INFO[RUU]WP,system,56
INFO[RUU]WP,system,59
INFO[RUU]WP,system,62
INFO[RUU]WP,system,65
INFO[RUU]WP,system,68
INFO[RUU]WP,system,71
INFO[RUU]WP,system,74
INFO[RUU]WP,system,76
INFO[RUU]WP,system,79
INFO[RUU]WP,system,82
INFO[RUU]WP,system,85
INFO[RUU]WP,system,88
INFO[RUU]WP,system,91
INFO[RUU]WP,system,94
INFO[RUU]WP,system,97
INFO[RUU]WP,system,100
INFOstart image[userdata] unzipping & flushing...
INFO[RUU]UZ,userdata,0
INFO[RUU]UZ,userdata,100
INFO[RUU]WP,userdata,0
INFO[RUU]WP,userdata,100
OKAY [132.319s]
finished. total time: 147.015s
c:\fastboot>fastboot reboot
rebooting...
finished. total time: 0.031s
Click to expand...
Click to collapse
Here we go for the NAND restore (I of course did a NAND backup before all the fudging)
Celebration time
Thanks for the support.

Don't care about this thread , please close it !

This thread was something , now it is not so please close it !
Ohh , Just found out that I built a universal tutorial i will add it to General android hacking and stuff
Reserved !
seaskyways said:
Ohh , Just found out that I built a universal tutorial i will add it to General android hacking and stuff
Click to expand...
Click to collapse
Theres already a tool out that does this for you :lol
Sent from my HTC Sensation XL with Beats Audio X315e using Tapatalk 2
That tool created by simon , it is only for the MTD based devices , where as this is for the eMMC based devices !
just tried the commands 4a & 4b, dont see anything mentioning mmcblk:
C:\Users\Shami\nb>fastboot oem listpartitions
...
(bootloader) [ERR] Command error !!!
OKAY [ 0.000s]
finished. total time: 0.000s
C:\Users\Shami\nb>fastboot oem boot
...
(bootloader) setup_tag addr=0xC0000100 cmdline add=0x8D0C4094
(bootloader) TAG:Ramdisk OK
(bootloader) TAG:smi ok, size = 0
(bootloader) TAG:hwid 0x0
(bootloader) TAG:skuid 0x2DD01
(bootloader) TAG:hero panel = 0x89003A
(bootloader) TAG:engineerid = 0x1
(bootloader) MCP dual-die
(bootloader) MCP dual-die
(bootloader) TAG:mono-die = 0x0
(bootloader) TAG: PS ID = 0x0
(bootloader) Device CID is not super CID
(bootloader) CID is super CID
(bootloader) Backup CID is HTC__001
(bootloader) setting->cid::HTC__001
(bootloader) serial number: HT1BVVZ03075
(bootloader) commandline from head: no_console_suspend=1
(bootloader) command line length =634
(bootloader) active commandline: board_runnymede.disable_uart2=0 board_ru
(bootloader) nnymede.usb_h2w_sw=0 board_runnymede.disable_sdcard=0 diag.e
(bootloader) nabled=0 board_runnymede.debug_uart=0 smisize=0 userdata_sel
(bootloader) =0 androidboot.emmc=true androidboot.pagesize=4096 skuid=0 d
(bootloader) dt=20 androidboot.lb=1 androidboot.baseband=3822.10.10.12_M
(bootloader) androidboot.cid=HTC__001 androidboot.devicerev=2 androidboo
(bootloader) t.batt_poweron=good_battery androidboot.carrier=HTC-WWE andr
(bootloader) oidboot.mid=PI3920000 androidboot.keycaps=qwerty androidboot
(bootloader) .dq=PASS androidboot.mode=normal androidboot.serialno=HT1BVV
(bootloader) Z03075 androidboot.bootloader=1.25.0004 androidboot.nledhw=0
(bootloader) zygote_oneshot=off kmemleak=off no_console_suspend=1
(bootloader) aARM_Partion[0].name=misc
(bootloader) aARM_Partion[1].name=recovery
(bootloader) aARM_Partion[2].name=boot
(bootloader) aARM_Partion[3].name=system
(bootloader) aARM_Partion[4].name=cache
(bootloader) aARM_Partion[5].name=userdata
(bootloader) aARM_Partion[6].name=devlog
(bootloader) aARM_Partion[7].name=pdata
(bootloader) aARM_Partion[8].name=modem_st1
(bootloader) aARM_Partion[9].name=modem_st2
(bootloader) partition number=10
(bootloader) Valid partition num=10
(bootloader) jump_to_kernel: machine_id(3597), tags_addr(0x14400100), ker
(bootloader) nel_addr(0x14408000)
(bootloader) -------------------hboot boot time:22891 msec
FAILED (status read failed (Too many links))
finished. total time: 10.920s
C:\Users\Shami\nb>
http://forum.xda-developers.com/showthread.php?t=1619986
edit:
Well, I've got some comments on that..
For whom is interested of knowing the OEM commands, in fastboot write "fastboot oem h".
"adb pull /dev/block/"""mmcblock123""" misc.img" won't work as this is a partition, not a folder.
I suggest using this:
Code:
adb shell
su
dd if=/dev/block/mmcblk0p17 of=/sdcard/misc.img
exit
exit
adb pull /sdcard/misc.img misc.img
adb shell rm /sdcard/misc.img
Well, basically, my bootloader is locked, but for some reason, I have "HTCUUpdate", so it's kinda strange.
It would be great if anybody could post his misc.img of his unlocked bootloader so I can compare and tell what's wrong.
Cheers!
Thanks claudenegm ! will add the code !
I doubt if this works, the unlock_status flag is stored in radio NVRAM and what is stored in misc partition is for RUUs to check it.
Since I don't have a locked device, I can't test it but what claudenegm said kinda confirms this.
EDIT
I can confirm patching the misc partition doesn't have any effects on unlock status.
Hi.....seaskyways i am follow the step by step to done it extract misc.img from my htc sensation xl...but i can't get the part,
'9- Around the 10th line you will find at the right HTC.......... , now edit this and type after the C :
U , so that it is HTCU....... , for Unlocking the bootloader .
R , so that it is HTCR....... , for ReLocking the bootloader .
. , that it is HTC....... , for reversing the bootloader to original state ***LOCKED OOW***"
HTCxxxxx.......it is HTC_044,behind HTCU_044?
Sorry that my poor english hope you understand what i ask and thanks for reply ^^
kenny_chai_2071 said:
Hi.....seaskyways i am follow the step by step to done it extract misc.img from my htc sensation xl...but i can't get the part,
'9- Around the 10th line you will find at the right HTC.......... , now edit this and type after the C :
U , so that it is HTCU....... , for Unlocking the bootloader .
R , so that it is HTCR....... , for ReLocking the bootloader .
. , that it is HTC....... , for reversing the bootloader to original state ***LOCKED OOW***"
HTCxxxxx.......it is HTC_044,behind HTCU_044?
Sorry that my poor english hope you understand what i ask and thanks for reply ^^
Click to expand...
Click to collapse
First of all, this method ain't gonna work since the locked flag is stored in Radio NVRAM and what is stored in misc partition is for RUUs.
Second, "OOW" in "LOCKED OOW" means "Out Of Warranty"!
Oh i.c thanks fardjad , it mean it is still need to using Htc Dev to unlocking bootloader for done all?
kenny_chai_2071 said:
Oh i.c thanks fardjad , it mean it is still need to using Htc Dev to unlocking bootloader for done all?
Click to expand...
Click to collapse
If you need warranty, you shouldn't unlock your bootloader at all.
You can also S-OFF your device by flashing unlimited.io HBOOTs. For doing so, you only need to temp-root your device.
There is also a detailed guide in Sensation XL General Section that might help.
Thanks fardjab i am get my devices s-off with every thing.
fardjad said:
First of all, this method ain't gonna work since the locked flag is stored in Radio NVRAM and what is stored in misc partition is for RUUs.
Second, "OOW" in "LOCKED OOW" means "Out Of Warranty"!
Click to expand...
Click to collapse
It worked for me on my previous Wildfire S , all I did is take mtd0 as misc.img , edit it , flash it with flash_image , all done , i have my bootloader Unlocked without HTC ! Anyways it misses alot , I will just delete it ...
seaskyways said:
It worked for me on my previous Wildfire S , all I did is take mtd0 as misc.img , edit it , flash it with flash_image , all done , i have my bootloader Unlocked without HTC ! Anyways it misses alot , I will just delete it ...
Click to expand...
Click to collapse
I didn't mean to offense or anything , just wanted to report that it's not working on SXL and tried to explain why.
I my self really like to try and discuss these things...
And if I were you I'd rather not to delete it. It may be useful for many people in many ways...

[Q] How to fastboot boot (not flash) into recovery on 4.3?

As per this thread: http://forum.xda-developers.com/showpost.php?p=43940670&postcount=1061 it is no longer possible after 4.3 to simply do "fastboot boot recovery.img" -- if you don't give a -c parameter, fastboot just hangs.
Instead, we have to give kernel parameters to fastboot with the -c option.
The thread for Nexus suggests that the contents of /proc/cmdline would be sufficient. From my install of CWM ( http://forum.xda-developers.com/showthread.php?t=2390651 ) I have:
poweron_status=1 reset_status=0 board_m7_ul.disable_uart3=0 diag.enabled=0 board_m7_ul.debug_uart=0 userdata_sel=0 androidboot.emmc=true androidboot.pagesize=2048 skuid=0 ddt=20 ats=0 dap=6 androidboot.lb=1 uif=m000 td.sf=0 td.td=0 td.ofs=328 td.prd=1 td.dly=0 td.tmo=300 hlog.ofs=628 un.ofs=696 imc_online_log=0 androidboot.efuse_info=1NSL androidboot.baseband=4A.18.3263.15 androidboot.cid=GOOGL001 androidboot.devicerev=3 androidboot.batt_poweron=good_battery androidboot.carrier=GOOGLE androidboot.mid=PN0712000 androidboot.keycaps=qwerty androidboot.dq=PASS androidboot.mode=recovery androidboot.serialno=FA34WW906464 androidboot.bootloader=1.54.0000 lscd=0x1 wificd=0x2 androidboot.nledhw=0 androidboot.ddrmid=(0x6) acpu.footprint=0B010101 abnrst=0 zygote_oneshot=on kmemleak=off rpm_debug.enable=0 console=ttyHSL0,115200,n8 androidboot.hardware=qcom user_debug=31
HOWEVER, this line is too long and fastboot gives me an overflow error when I try to give that entire line.
Any ideas?
Did you ever find out how to do this?

General What we currently know about unlocking the Vivo X70 Pro+

Well guys, i wanna collect some information about the unlocking status or possibilities for the X70 Pro+
I think this will be a bit "work - in - progess" threat, as we maybe get it sometimes figured out how to unlock that beast...
So...
Some commands:
ADB debugging "on" and OEM unlock also "on"
Code:
ADB reboot bootloader - works
ADB reboot recovery - works
ADB reboot fastboot - works
all three options looks a bit different from the menue
As we are in the recovery menue - we can tab multiple times on the bottom text, to reveal a fourth button called "logs"
As we are in fastboot mode:
Code:
fastboot oem unlock - doesn't work (no perrmission)
fastboot oem unlock-go - doesn't work (no perrmission)
fastboot boot boot.img - doesn't work (no perrmission) - image gets send sucessfully
fastboot flash boot boot.img - doesn't work (no perrmission because no UL BL)
Next is in androidsystem:
Open dialpad and type in *#558#
there you can open up a "diag port"
With the Qualcom drivers installed u will get 2 new COM Ports.
From there i used this guide: https://androidmtk.com/use-qpst-flash-tool
Using the QPST tool i could download a backup of the NV partition? (Diag Port enabled!)
I think the software QFIL - https://qfiltool.com/qfil-tool-v2-0-3-5 would be able to use this diag port!?
I also found a software - called "Ultimate Multi Tool - QCFire" but this needs a dongle to work properly, so i don't know if that would work.
I will also upload the latest original Chinese ROM - found on vivo.com/cn - as far as i can tell, it looks quite different from the files.
Many other hardwareversions....?
{
"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"
}
At least we can extract the boot.img and patch via Magisk. But how to sign the hole package???
When trying to flash via recovery its rejected with "hash - error"...
Maybe @razor07b7 can take a look and has some hints / ideas....
Latest CN Stock ROM - Mediafire
Spoiler: Fastboot getvar ...
Code:
D:\ADB>fastboot getvar all
(bootloader) parallel-download-flash:yes
(bootloader) hw-revision:20001
(bootloader) unlocked:no
(bootloader) off-mode-charge:1
(bootloader) charger-screen-enabled:1
(bootloader) battery-soc-ok:yes
(bootloader) battery-voltage:3773
(bootloader) version-baseband:
(bootloader) version-bootloader:
(bootloader) erase-block-size: 0x1000
(bootloader) logical-block-size: 0x1000
(bootloader) variant:SM_ UFS
(bootloader) partition-type:fsc:raw
(bootloader) partition-size:fsc: 0x20000
(bootloader) partition-type:fsg:raw
(bootloader) partition-size:fsg: 0x300000
(bootloader) partition-type:modemst2:raw
(bootloader) partition-size:modemst2: 0x300000
(bootloader) partition-type:modemst1:raw
(bootloader) partition-size:modemst1: 0x300000
(bootloader) partition-type:ALIGN_TO_128K_2:raw
(bootloader) partition-size:ALIGN_TO_128K_2: 0x1A000
(bootloader) partition-type:rtice:raw
(bootloader) partition-size:rtice: 0x80000
(bootloader) partition-type:spunvm:raw
(bootloader) partition-size:spunvm: 0x2000000
(bootloader) partition-type:tzsc:raw
(bootloader) partition-size:tzsc: 0x20000
(bootloader) partition-type:connsec:raw
(bootloader) partition-size:connsec: 0x20000
(bootloader) partition-type:mdcompress:raw
(bootloader) partition-size:mdcompress: 0x1400000
(bootloader) partition-type:vm-data:raw
(bootloader) partition-size:vm-data: 0x20A4000
(bootloader) partition-type:secdata:raw
(bootloader) partition-size:secdata: 0x7000
(bootloader) partition-type:uefivarstore:raw
(bootloader) partition-size:uefivarstore: 0x80000
(bootloader) partition-type:storsec:raw
(bootloader) partition-size:storsec: 0x20000
(bootloader) partition-type:logdump:raw
(bootloader) partition-size:logdump: 0x4000000
(bootloader) partition-type:logfs:raw
(bootloader) partition-size:logfs: 0x800000
(bootloader) partition-type:limits-cdsp:raw
(bootloader) partition-size:limits-cdsp: 0x1000
(bootloader) partition-type:limits:raw
(bootloader) partition-size:limits: 0x1000
(bootloader) partition-type:splash:raw
(bootloader) partition-size:splash: 0x20A4000
(bootloader) partition-type:apdp:raw
(bootloader) partition-size:apdp: 0x40000
(bootloader) partition-type:dip:raw
(bootloader) partition-size:dip: 0x100000
(bootloader) partition-type:devinfo:raw
(bootloader) partition-size:devinfo: 0x1000
(bootloader) partition-type:qweslicstore:raw
(bootloader) partition-size:qweslicstore: 0x40000
(bootloader) partition-type:qmcs:raw
(bootloader) partition-size:qmcs: 0x2000000
(bootloader) partition-type:vendor_boot:raw
(bootloader) partition-size:vendor_boot: 0x6000000
(bootloader) partition-type:featenabler:raw
(bootloader) partition-size:featenabler: 0x20000
(bootloader) partition-type:cpucp:raw
(bootloader) partition-size:cpucp: 0x100000
(bootloader) partition-type:multiimgoem:raw
(bootloader) partition-size:multiimgoem: 0x8000
(bootloader) partition-type:vm-bootsys:raw
(bootloader) partition-size:vm-bootsys: 0x10625000
(bootloader) partition-type:shrm:raw
(bootloader) partition-size:shrm: 0x20000
(bootloader) partition-type:imagefv:raw
(bootloader) partition-size:imagefv: 0x200000
(bootloader) partition-type:uefisecapp:raw
(bootloader) partition-size:uefisecapp: 0x200000
(bootloader) partition-type:dtbo:raw
(bootloader) partition-size:dtbo: 0x1800000
(bootloader) partition-type:vbmeta:raw
(bootloader) partition-size:vbmeta: 0x10000
(bootloader) partition-type:qupfw:raw
(bootloader) partition-size:qupfw: 0x14000
(bootloader) partition-type:devcfg:raw
(bootloader) partition-size:devcfg: 0x20000
(bootloader) partition-type:boot:raw
(bootloader) partition-size:boot: 0x6000000
(bootloader) partition-type:keymaster:raw
(bootloader) partition-size:keymaster: 0x80000
(bootloader) partition-type:dsp:raw
(bootloader) partition-size:dsp: 0x4000000
(bootloader) partition-type:abl:raw
(bootloader) partition-size:abl: 0x1000000
(bootloader) partition-type:mdtp:raw
(bootloader) partition-size:mdtp: 0x2000000
(bootloader) partition-type:mdtpsecapp:raw
(bootloader) partition-size:mdtpsecapp: 0x400000
(bootloader) partition-type:bluetooth:raw
(bootloader) partition-size:bluetooth: 0x200000
(bootloader) partition-type:modem:raw
(bootloader) partition-size:modem: 0x10000000
(bootloader) partition-type:hyp:raw
(bootloader) partition-size:hyp: 0x800000
(bootloader) partition-type:tz:raw
(bootloader) partition-size:tz: 0x400000
(bootloader) partition-type:aop:raw
(bootloader) partition-size:aop: 0x80000
(bootloader) partition-type:ddr:raw
(bootloader) partition-size:ddr: 0x100000
(bootloader) partition-type:cdt:raw
(bootloader) partition-size:cdt: 0x20000
(bootloader) partition-type:ALIGN_TO_128K_1:raw
(bootloader) partition-size:ALIGN_TO_128K_1: 0x1A000
(bootloader) partition-type:xbl_configbak:raw
(bootloader) partition-size:xbl_configbak: 0x40000
(bootloader) partition-type:xblbak:raw
(bootloader) partition-size:xblbak: 0x700000
(bootloader) partition-type:xbl_config:raw
(bootloader) partition-size:xbl_config: 0x40000
(bootloader) partition-type:xbl:raw
(bootloader) partition-size:xbl: 0x700000
(bootloader) partition-type:userdata:f2fs
(bootloader) partition-size:userdata: 0x37913C3000
(bootloader) partition-type:cache:ext4
(bootloader) partition-size:cache: 0x10000000
(bootloader) partition-type:super:raw
(bootloader) partition-size:super: 0x380000000
(bootloader) partition-type:factory:raw
(bootloader) partition-size:factory: 0x8000000
(bootloader) partition-type:recovery:raw
(bootloader) partition-size:recovery: 0x6000000
(bootloader) partition-type:vbmeta_oem:raw
(bootloader) partition-size:vbmeta_oem: 0x10000
(bootloader) partition-type:vbmeta_vgc:raw
(bootloader) partition-size:vbmeta_vgc: 0x10000
(bootloader) partition-type:storage:raw
(bootloader) partition-size:storage: 0x4000000
(bootloader) partition-type:seed:raw
(bootloader) partition-size:seed: 0x400000
(bootloader) partition-type:reserved:raw
(bootloader) partition-size:reserved: 0xA00000
(bootloader) partition-type:backup:raw
(bootloader) partition-size:backup: 0xA00000
(bootloader) partition-type:apanic:raw
(bootloader) partition-size:apanic: 0xA00000
(bootloader) partition-type:rawdump:raw
(bootloader) partition-size:rawdump: 0x8000000
(bootloader) partition-type:metadata:ext4
(bootloader) partition-size:metadata: 0x1000000
(bootloader) partition-type:vbmeta_system:raw
(bootloader) partition-size:vbmeta_system: 0x10000
(bootloader) partition-type:frp:raw
(bootloader) partition-size:frp: 0x80000
(bootloader) partition-type:keystore:raw
(bootloader) partition-size:keystore: 0x80000
(bootloader) partition-type:misc:raw
(bootloader) partition-size:misc: 0x100000
(bootloader) partition-type:persist:raw
(bootloader) partition-size:persist: 0x2000000
(bootloader) partition-type:ssd:raw
(bootloader) partition-size:ssd: 0x2000
(bootloader) secure:yes
(bootloader) serialno: (removed by me)
(bootloader) product:lahaina
(bootloader) is-userspace:no
(bootloader) max-download-size:805306368
(bootloader) kernel:uefi
Spoiler: Update_script_Chinese_ROM
Code:
assert(getprop("ro.vivo.hardware.version") == "PD2145MA" || getprop("ro.hardware.bbk") == "PD2145MA");
ui_print("travel Verify operation begin");
ui_print(getprop("recovery.gui_mode"));
if getprop("recovery.gui_mode") == "1" && getprop("recovery.repair_mode") == "0" && getprop("ro.vivo.os.version") != "12.0" then
abort("Package expects os version of 12.0; this device has " + getprop("ro.vivo.os.version") + ".");
endif;
getprop("ro.vivo.oem.name") == "" ||
getprop("ro.vivo.oem.name") == "PD2145_N_NULL_NULL" ||
getprop("ro.vivo.oem.name") == "PD2145_CN-ZH_FULL_SC_CN-YD-A" ||
getprop("ro.vivo.oem.name") == "PD2145_CN-ZH_FULL_SC_NULL" ||
getprop("ro.vivo.oem.name") == "PD2145_CN-ZH_CMCC_RWC_CN-YD-C" ||
getprop("ro.vivo.oem.name") == "PD2145B_CN-ZH_CMCC_RWA_CN-YD-A" ||
getprop("ro.vivo.oem.name") == "PD2145_CN-ZH_FULL_SC_GMS" ||
getprop("ro.vivo.oem.name") == "PD2145C_CN-ZH_FULL_SC_NULL" ||
getprop("ro.vivo.oem.name") == "PD2145_CN-ZH_CMCC_RWA_CN-YD-A" ||
getprop("ro.vivo.oem.name") == "PD2145B_CN-ZH_CMCC_RWC_CN-YD-C" ||
getprop("ro.vivo.oem.name") == "PD2145C_CN-ZH_FULL_SC_CN-YD-A" ||
getprop("ro.vivo.oem.name") == "PD2145B_CN-ZH_FULL_UNICOM_RWA_NULL" ||
getprop("ro.vivo.oem.name") == "PD2145B_CN-ZH_CTCC_RWC_NULL" ||
getprop("ro.vivo.oem.name") == "PD2145_CN-ZH_CTCC_RWC_NULL" ||
getprop("ro.vivo.oem.name") == "PD2145_CN-ZH_FULL_UNICOM_RWA_NULL" ||
getprop("ro.vivo.oem.name") == "PD2145C_CN-ZH_CMCC_RWA_CN-YD-A" ||
getprop("ro.vivo.oem.name") == "PD2145C_CN-ZH_CTCC_RWC_NULL" ||
getprop("ro.vivo.oem.name") == "PD2145B_CN-ZH_FULL_SC_NULL" ||
getprop("ro.vivo.oem.name") == "PD2145C_CN-ZH_FULL_UNICOM_RWA_NULL" ||
getprop("ro.vivo.oem.name") == "PD2145C_CN-ZH_CMCC_RWC_CN-YD-C" ||
getprop("ro.vivo.oem.name") == "PD2145B_CN-ZH_FULL_SC_CN-YD-A" ||
abort("Package expects oem name of or PD2145_N_NULL_NULL or PD2145_CN-ZH_FULL_SC_CN-YD-A or PD2145_CN-ZH_FULL_SC_NULL or PD2145_CN-ZH_CMCC_RWC_CN-YD-C or PD2145B_CN-ZH_CMCC_RWA_CN-YD-A or PD2145_CN-ZH_FULL_SC_GMS or PD2145C_CN-ZH_FULL_SC_NULL or PD2145_CN-ZH_CMCC_RWA_CN-YD-A or PD2145B_CN-ZH_CMCC_RWC_CN-YD-C or PD2145C_CN-ZH_FULL_SC_CN-YD-A or PD2145B_CN-ZH_FULL_UNICOM_RWA_NULL or PD2145B_CN-ZH_CTCC_RWC_NULL or PD2145_CN-ZH_CTCC_RWC_NULL or PD2145_CN-ZH_FULL_UNICOM_RWA_NULL or PD2145C_CN-ZH_CMCC_RWA_CN-YD-A or PD2145C_CN-ZH_CTCC_RWC_NULL or PD2145B_CN-ZH_FULL_SC_NULL or PD2145C_CN-ZH_FULL_UNICOM_RWA_NULL or PD2145C_CN-ZH_CMCC_RWC_CN-YD-C or PD2145B_CN-ZH_FULL_SC_CN-YD-A; this device has " + getprop("ro.vivo.oem.name") + ".");
if getprop("recovery.gui_mode") == "1" && getprop("recovery.repair_mode") == "0" then
if getprop("ro.vivo.cota.enable") == "1" && getprop("persist.vivo.cota.cust1") != "" && getprop("persist.vivo.cota.cust1") != "N" then
abort("Device cota property is set, please check cust1.");
endif;
if getprop("ro.vivo.cota.enable") == "1" && getprop("persist.vivo.cota.cust1") == "" && getprop("persist.vivo.cota.cust2") != "N" then
abort("Device cota property is set, please check cust2.");
endif;
endif;
apply_patch_space(52776960) || abort("E3006: Not enough free space on /cache to apply patches.");
ui_print("Target: vivo/PD2145/PD2145:11/RP1A.200720.012/compiler0929082621:user/release-keys");
ui_print("travel Verify operation end");
ui_print("travel Update operation begin");
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("dynamic_partitions_op_list")));
# Patch partition system
ui_print("Patching system image unconditionally...");
show_progress(0.700000, 280);
ui_print("tsaltes 0x2E707521 1");
block_image_update(map_partition("system"), package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat") ||
abort("E1001: Failed to update system image.");
ui_print("tsaltes 0x2E707521 0");
# Patch partition vendor
ui_print("Patching vendor image unconditionally...");
show_progress(0.100000, 40);
ui_print("tsaltes 0x2E707521 1");
block_image_update(map_partition("vendor"), package_extract_file("vendor.transfer.list"), "vendor.new.dat", "vendor.patch.dat") ||
abort("E2001: Failed to update vendor image.");
ui_print("tsaltes 0x2E707521 0");
# Patch partition odm
ui_print("Patching odm image unconditionally...");
show_progress(0.100000, 40);
ui_print("tsaltes 0x2E707521 1");
block_image_update(map_partition("odm"), package_extract_file("odm.transfer.list"), "odm.new.dat", "odm.patch.dat") ||
abort("E2001: Failed to update odm image.");
ui_print("tsaltes 0x2E707521 0");
# --- End patching dynamic partitions ---
package_extract_file("boot.img", "/dev/block/bootdevice/by-name/boot");
show_progress(0.100000, 10);
ui_print("Writing radio image...");
ui_print("tctl 0");
assert(package_extract_file("firmware-update/NON-HLOS.bin", "/dev/block/bootdevice/by-name/modem"));
assert(package_extract_file("firmware-update/dspso.bin", "/dev/block/bootdevice/by-name/dsp"));
assert(package_extract_file("firmware-update/BTFM.bin", "/dev/block/bootdevice/by-name/bluetooth"));
assert(package_extract_file("firmware-update/dtbo.img", "/dev/block/bootdevice/by-name/dtbo"));
assert(package_extract_file("firmware-update/qupv3fw.elf", "/dev/block/bootdevice/by-name/qupfw"));
assert(package_extract_file("firmware-update/km41.mbn", "/dev/block/bootdevice/by-name/keymaster"));
assert(package_extract_file("firmware-update/uefi_sec.mbn", "/dev/block/bootdevice/by-name/uefisecapp"));
assert(package_extract_file("firmware-update/shrm.elf", "/dev/block/bootdevice/by-name/shrm"));
assert(package_extract_file("firmware-update/vm-bootsys.img", "/dev/block/bootdevice/by-name/vm-bootsys"));
assert(package_extract_file("firmware-update/multi_image.mbn", "/dev/block/bootdevice/by-name/multiimgoem"));
assert(package_extract_file("firmware-update/cpucp.elf", "/dev/block/bootdevice/by-name/cpucp"));
assert(package_extract_file("firmware-update/storsec.mbn", "/dev/block/bootdevice/by-name/storsec"));
assert(package_extract_file("firmware-update/abl.elf", "/dev/block/bootdevice/by-name/abl"));
assert(package_extract_file("firmware-update/tz.mbn", "/dev/block/bootdevice/by-name/tz"));
assert(package_extract_file("firmware-update/devcfg.mbn", "/dev/block/bootdevice/by-name/devcfg"));
assert(package_extract_file("firmware-update/aop.mbn", "/dev/block/bootdevice/by-name/aop"));
assert(package_extract_file("firmware-update/hypvm.mbn", "/dev/block/bootdevice/by-name/hyp"));
assert(package_extract_file("firmware-update/xbl_config.elf", "/dev/block/bootdevice/by-name/xbl_config"));
assert(package_extract_file("firmware-update/xbl.elf", "/dev/block/bootdevice/by-name/xbl"));
assert(package_extract_file("firmware-update/firmware.bin", "/dev/block/bootdevice/by-name/storage"));
assert(package_extract_file("firmware-update/logfs_ufs_8mb.bin", "/dev/block/bootdevice/by-name/logfs"));
assert(package_extract_file("firmware-update/featenabler.mbn", "/dev/block/bootdevice/by-name/featenabler"));
assert(package_extract_file("firmware-update/spunvm.bin", "/dev/block/bootdevice/by-name/spunvm"));
assert(package_extract_file("firmware-update/rtice.mbn", "/dev/block/bootdevice/by-name/rtice"));
assert(package_extract_file("firmware-update/mdcompress.mbn", "/dev/block/bootdevice/by-name/mdcompress"));
assert(package_extract_file("firmware-update/vbmeta.img", "/dev/block/bootdevice/by-name/vbmeta"));
assert(package_extract_file("firmware-update/vbmeta_system.img", "/dev/block/bootdevice/by-name/vbmeta_system"));
assert(package_extract_file("firmware-update/vendor_boot.img", "/dev/block/bootdevice/by-name/vendor_boot"));
assert(package_extract_file("firmware-update/recovery.img", "/dev/block/bootdevice/by-name/recovery"));
ui_print("tctl 1");
if getprop("ro.vivo.oem.name") == "PD2145_N_NULL_NULL" || getprop("ro.vivo.oem.name") == "" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("oem/dynamic_partitions_op_list_PD2145_N_NULL_NULL")));
# Patch partition oem
ui_print("Patching OEM_PD2145_N_NULL_NULL image unconditionally...");
block_image_update(map_partition("oem"), package_extract_file("oem/OEM_PD2145_N_NULL_NULL.transfer.list"), "oem/OEM_PD2145_N_NULL_NULL.new.dat.br", "oem/OEM_PD2145_N_NULL_NULL.patch.dat") ||
abort("E2001: Failed to update oem/OEM_PD2145_N_NULL_NULL image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_oem_PD2145_N_NULL_NULL.img", "/dev/block/bootdevice/by-name/vbmeta_oem"));
endif;
if getprop("ro.vivo.oem.name") == "PD2145_CN-ZH_FULL_SC_CN-YD-A" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("oem/dynamic_partitions_op_list_PD2145_CN-ZH_FULL_SC_CN-YD-A")));
# Patch partition oem
ui_print("Patching OEM_PD2145_CN-ZH_FULL_SC_CN-YD-A image unconditionally...");
block_image_update(map_partition("oem"), package_extract_file("oem/OEM_PD2145_CN-ZH_FULL_SC_CN-YD-A.transfer.list"), "oem/OEM_PD2145_CN-ZH_FULL_SC_CN-YD-A.new.dat.br", "oem/OEM_PD2145_CN-ZH_FULL_SC_CN-YD-A.patch.dat") ||
abort("E2001: Failed to update oem/OEM_PD2145_CN-ZH_FULL_SC_CN-YD-A image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_oem_PD2145_CN-ZH_FULL_SC_CN-YD-A.img", "/dev/block/bootdevice/by-name/vbmeta_oem"));
endif;
if getprop("ro.vivo.oem.name") == "PD2145_CN-ZH_FULL_SC_NULL" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("oem/dynamic_partitions_op_list_PD2145_CN-ZH_FULL_SC_NULL")));
# Patch partition oem
ui_print("Patching OEM_PD2145_CN-ZH_FULL_SC_NULL image unconditionally...");
block_image_update(map_partition("oem"), package_extract_file("oem/OEM_PD2145_CN-ZH_FULL_SC_NULL.transfer.list"), "oem/OEM_PD2145_CN-ZH_FULL_SC_NULL.new.dat.br", "oem/OEM_PD2145_CN-ZH_FULL_SC_NULL.patch.dat") ||
abort("E2001: Failed to update oem/OEM_PD2145_CN-ZH_FULL_SC_NULL image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_oem_PD2145_CN-ZH_FULL_SC_NULL.img", "/dev/block/bootdevice/by-name/vbmeta_oem"));
endif;
if getprop("ro.vivo.oem.name") == "PD2145_CN-ZH_CMCC_RWC_CN-YD-C" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("oem/dynamic_partitions_op_list_PD2145_CN-ZH_CMCC_RWC_CN-YD-C")));
# Patch partition oem
ui_print("Patching OEM_PD2145_CN-ZH_CMCC_RWC_CN-YD-C image unconditionally...");
block_image_update(map_partition("oem"), package_extract_file("oem/OEM_PD2145_CN-ZH_CMCC_RWC_CN-YD-C.transfer.list"), "oem/OEM_PD2145_CN-ZH_CMCC_RWC_CN-YD-C.new.dat.br", "oem/OEM_PD2145_CN-ZH_CMCC_RWC_CN-YD-C.patch.dat") ||
abort("E2001: Failed to update oem/OEM_PD2145_CN-ZH_CMCC_RWC_CN-YD-C image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_oem_PD2145_CN-ZH_CMCC_RWC_CN-YD-C.img", "/dev/block/bootdevice/by-name/vbmeta_oem"));
endif;
if getprop("ro.vivo.oem.name") == "PD2145B_CN-ZH_CMCC_RWA_CN-YD-A" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("oem/dynamic_partitions_op_list_PD2145B_CN-ZH_CMCC_RWA_CN-YD-A")));
# Patch partition oem
ui_print("Patching OEM_PD2145B_CN-ZH_CMCC_RWA_CN-YD-A image unconditionally...");
block_image_update(map_partition("oem"), package_extract_file("oem/OEM_PD2145B_CN-ZH_CMCC_RWA_CN-YD-A.transfer.list"), "oem/OEM_PD2145B_CN-ZH_CMCC_RWA_CN-YD-A.new.dat.br", "oem/OEM_PD2145B_CN-ZH_CMCC_RWA_CN-YD-A.patch.dat") ||
abort("E2001: Failed to update oem/OEM_PD2145B_CN-ZH_CMCC_RWA_CN-YD-A image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_oem_PD2145B_CN-ZH_CMCC_RWA_CN-YD-A.img", "/dev/block/bootdevice/by-name/vbmeta_oem"));
endif;
if getprop("ro.vivo.oem.name") == "PD2145_CN-ZH_FULL_SC_GMS" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("oem/dynamic_partitions_op_list_PD2145_CN-ZH_FULL_SC_GMS")));
# Patch partition oem
ui_print("Patching OEM_PD2145_CN-ZH_FULL_SC_GMS image unconditionally...");
block_image_update(map_partition("oem"), package_extract_file("oem/OEM_PD2145_CN-ZH_FULL_SC_GMS.transfer.list"), "oem/OEM_PD2145_CN-ZH_FULL_SC_GMS.new.dat.br", "oem/OEM_PD2145_CN-ZH_FULL_SC_GMS.patch.dat") ||
abort("E2001: Failed to update oem/OEM_PD2145_CN-ZH_FULL_SC_GMS image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_oem_PD2145_CN-ZH_FULL_SC_GMS.img", "/dev/block/bootdevice/by-name/vbmeta_oem"));
endif;
if getprop("ro.vivo.oem.name") == "PD2145C_CN-ZH_FULL_SC_NULL" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("oem/dynamic_partitions_op_list_PD2145C_CN-ZH_FULL_SC_NULL")));
# Patch partition oem
ui_print("Patching OEM_PD2145C_CN-ZH_FULL_SC_NULL image unconditionally...");
block_image_update(map_partition("oem"), package_extract_file("oem/OEM_PD2145C_CN-ZH_FULL_SC_NULL.transfer.list"), "oem/OEM_PD2145C_CN-ZH_FULL_SC_NULL.new.dat.br", "oem/OEM_PD2145C_CN-ZH_FULL_SC_NULL.patch.dat") ||
abort("E2001: Failed to update oem/OEM_PD2145C_CN-ZH_FULL_SC_NULL image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_oem_PD2145C_CN-ZH_FULL_SC_NULL.img", "/dev/block/bootdevice/by-name/vbmeta_oem"));
endif;
if getprop("ro.vivo.oem.name") == "PD2145_CN-ZH_CMCC_RWA_CN-YD-A" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("oem/dynamic_partitions_op_list_PD2145_CN-ZH_CMCC_RWA_CN-YD-A")));
# Patch partition oem
ui_print("Patching OEM_PD2145_CN-ZH_CMCC_RWA_CN-YD-A image unconditionally...");
block_image_update(map_partition("oem"), package_extract_file("oem/OEM_PD2145_CN-ZH_CMCC_RWA_CN-YD-A.transfer.list"), "oem/OEM_PD2145_CN-ZH_CMCC_RWA_CN-YD-A.new.dat.br", "oem/OEM_PD2145_CN-ZH_CMCC_RWA_CN-YD-A.patch.dat") ||
abort("E2001: Failed to update oem/OEM_PD2145_CN-ZH_CMCC_RWA_CN-YD-A image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_oem_PD2145_CN-ZH_CMCC_RWA_CN-YD-A.img", "/dev/block/bootdevice/by-name/vbmeta_oem"));
endif;
if getprop("ro.vivo.oem.name") == "PD2145B_CN-ZH_CMCC_RWC_CN-YD-C" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("oem/dynamic_partitions_op_list_PD2145B_CN-ZH_CMCC_RWC_CN-YD-C")));
# Patch partition oem
ui_print("Patching OEM_PD2145B_CN-ZH_CMCC_RWC_CN-YD-C image unconditionally...");
block_image_update(map_partition("oem"), package_extract_file("oem/OEM_PD2145B_CN-ZH_CMCC_RWC_CN-YD-C.transfer.list"), "oem/OEM_PD2145B_CN-ZH_CMCC_RWC_CN-YD-C.new.dat.br", "oem/OEM_PD2145B_CN-ZH_CMCC_RWC_CN-YD-C.patch.dat") ||
abort("E2001: Failed to update oem/OEM_PD2145B_CN-ZH_CMCC_RWC_CN-YD-C image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_oem_PD2145B_CN-ZH_CMCC_RWC_CN-YD-C.img", "/dev/block/bootdevice/by-name/vbmeta_oem"));
endif;
if getprop("ro.vivo.oem.name") == "PD2145C_CN-ZH_FULL_SC_CN-YD-A" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("oem/dynamic_partitions_op_list_PD2145C_CN-ZH_FULL_SC_CN-YD-A")));
# Patch partition oem
ui_print("Patching OEM_PD2145C_CN-ZH_FULL_SC_CN-YD-A image unconditionally...");
block_image_update(map_partition("oem"), package_extract_file("oem/OEM_PD2145C_CN-ZH_FULL_SC_CN-YD-A.transfer.list"), "oem/OEM_PD2145C_CN-ZH_FULL_SC_CN-YD-A.new.dat.br", "oem/OEM_PD2145C_CN-ZH_FULL_SC_CN-YD-A.patch.dat") ||
abort("E2001: Failed to update oem/OEM_PD2145C_CN-ZH_FULL_SC_CN-YD-A image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_oem_PD2145C_CN-ZH_FULL_SC_CN-YD-A.img", "/dev/block/bootdevice/by-name/vbmeta_oem"));
endif;
if getprop("ro.vivo.oem.name") == "PD2145B_CN-ZH_FULL_UNICOM_RWA_NULL" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("oem/dynamic_partitions_op_list_PD2145B_CN-ZH_FULL_UNICOM_RWA_NULL")));
# Patch partition oem
ui_print("Patching OEM_PD2145B_CN-ZH_FULL_UNICOM_RWA_NULL image unconditionally...");
block_image_update(map_partition("oem"), package_extract_file("oem/OEM_PD2145B_CN-ZH_FULL_UNICOM_RWA_NULL.transfer.list"), "oem/OEM_PD2145B_CN-ZH_FULL_UNICOM_RWA_NULL.new.dat.br", "oem/OEM_PD2145B_CN-ZH_FULL_UNICOM_RWA_NULL.patch.dat") ||
abort("E2001: Failed to update oem/OEM_PD2145B_CN-ZH_FULL_UNICOM_RWA_NULL image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_oem_PD2145B_CN-ZH_FULL_UNICOM_RWA_NULL.img", "/dev/block/bootdevice/by-name/vbmeta_oem"));
endif;
if getprop("ro.vivo.oem.name") == "PD2145B_CN-ZH_CTCC_RWC_NULL" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("oem/dynamic_partitions_op_list_PD2145B_CN-ZH_CTCC_RWC_NULL")));
# Patch partition oem
ui_print("Patching OEM_PD2145B_CN-ZH_CTCC_RWC_NULL image unconditionally...");
block_image_update(map_partition("oem"), package_extract_file("oem/OEM_PD2145B_CN-ZH_CTCC_RWC_NULL.transfer.list"), "oem/OEM_PD2145B_CN-ZH_CTCC_RWC_NULL.new.dat.br", "oem/OEM_PD2145B_CN-ZH_CTCC_RWC_NULL.patch.dat") ||
abort("E2001: Failed to update oem/OEM_PD2145B_CN-ZH_CTCC_RWC_NULL image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_oem_PD2145B_CN-ZH_CTCC_RWC_NULL.img", "/dev/block/bootdevice/by-name/vbmeta_oem"));
endif;
if getprop("ro.vivo.oem.name") == "PD2145_CN-ZH_CTCC_RWC_NULL" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("oem/dynamic_partitions_op_list_PD2145_CN-ZH_CTCC_RWC_NULL")));
# Patch partition oem
ui_print("Patching OEM_PD2145_CN-ZH_CTCC_RWC_NULL image unconditionally...");
block_image_update(map_partition("oem"), package_extract_file("oem/OEM_PD2145_CN-ZH_CTCC_RWC_NULL.transfer.list"), "oem/OEM_PD2145_CN-ZH_CTCC_RWC_NULL.new.dat.br", "oem/OEM_PD2145_CN-ZH_CTCC_RWC_NULL.patch.dat") ||
abort("E2001: Failed to update oem/OEM_PD2145_CN-ZH_CTCC_RWC_NULL image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_oem_PD2145_CN-ZH_CTCC_RWC_NULL.img", "/dev/block/bootdevice/by-name/vbmeta_oem"));
endif;
if getprop("ro.vivo.oem.name") == "PD2145_CN-ZH_FULL_UNICOM_RWA_NULL" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("oem/dynamic_partitions_op_list_PD2145_CN-ZH_FULL_UNICOM_RWA_NULL")));
# Patch partition oem
ui_print("Patching OEM_PD2145_CN-ZH_FULL_UNICOM_RWA_NULL image unconditionally...");
block_image_update(map_partition("oem"), package_extract_file("oem/OEM_PD2145_CN-ZH_FULL_UNICOM_RWA_NULL.transfer.list"), "oem/OEM_PD2145_CN-ZH_FULL_UNICOM_RWA_NULL.new.dat.br", "oem/OEM_PD2145_CN-ZH_FULL_UNICOM_RWA_NULL.patch.dat") ||
abort("E2001: Failed to update oem/OEM_PD2145_CN-ZH_FULL_UNICOM_RWA_NULL image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_oem_PD2145_CN-ZH_FULL_UNICOM_RWA_NULL.img", "/dev/block/bootdevice/by-name/vbmeta_oem"));
endif;
if getprop("ro.vivo.oem.name") == "PD2145C_CN-ZH_CMCC_RWA_CN-YD-A" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("oem/dynamic_partitions_op_list_PD2145C_CN-ZH_CMCC_RWA_CN-YD-A")));
# Patch partition oem
ui_print("Patching OEM_PD2145C_CN-ZH_CMCC_RWA_CN-YD-A image unconditionally...");
block_image_update(map_partition("oem"), package_extract_file("oem/OEM_PD2145C_CN-ZH_CMCC_RWA_CN-YD-A.transfer.list"), "oem/OEM_PD2145C_CN-ZH_CMCC_RWA_CN-YD-A.new.dat.br", "oem/OEM_PD2145C_CN-ZH_CMCC_RWA_CN-YD-A.patch.dat") ||
abort("E2001: Failed to update oem/OEM_PD2145C_CN-ZH_CMCC_RWA_CN-YD-A image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_oem_PD2145C_CN-ZH_CMCC_RWA_CN-YD-A.img", "/dev/block/bootdevice/by-name/vbmeta_oem"));
endif;
if getprop("ro.vivo.oem.name") == "PD2145C_CN-ZH_CTCC_RWC_NULL" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("oem/dynamic_partitions_op_list_PD2145C_CN-ZH_CTCC_RWC_NULL")));
# Patch partition oem
ui_print("Patching OEM_PD2145C_CN-ZH_CTCC_RWC_NULL image unconditionally...");
block_image_update(map_partition("oem"), package_extract_file("oem/OEM_PD2145C_CN-ZH_CTCC_RWC_NULL.transfer.list"), "oem/OEM_PD2145C_CN-ZH_CTCC_RWC_NULL.new.dat.br", "oem/OEM_PD2145C_CN-ZH_CTCC_RWC_NULL.patch.dat") ||
abort("E2001: Failed to update oem/OEM_PD2145C_CN-ZH_CTCC_RWC_NULL image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_oem_PD2145C_CN-ZH_CTCC_RWC_NULL.img", "/dev/block/bootdevice/by-name/vbmeta_oem"));
endif;
if getprop("ro.vivo.oem.name") == "PD2145B_CN-ZH_FULL_SC_NULL" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("oem/dynamic_partitions_op_list_PD2145B_CN-ZH_FULL_SC_NULL")));
# Patch partition oem
ui_print("Patching OEM_PD2145B_CN-ZH_FULL_SC_NULL image unconditionally...");
block_image_update(map_partition("oem"), package_extract_file("oem/OEM_PD2145B_CN-ZH_FULL_SC_NULL.transfer.list"), "oem/OEM_PD2145B_CN-ZH_FULL_SC_NULL.new.dat.br", "oem/OEM_PD2145B_CN-ZH_FULL_SC_NULL.patch.dat") ||
abort("E2001: Failed to update oem/OEM_PD2145B_CN-ZH_FULL_SC_NULL image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_oem_PD2145B_CN-ZH_FULL_SC_NULL.img", "/dev/block/bootdevice/by-name/vbmeta_oem"));
endif;
if getprop("ro.vivo.oem.name") == "PD2145C_CN-ZH_FULL_UNICOM_RWA_NULL" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("oem/dynamic_partitions_op_list_PD2145C_CN-ZH_FULL_UNICOM_RWA_NULL")));
# Patch partition oem
ui_print("Patching OEM_PD2145C_CN-ZH_FULL_UNICOM_RWA_NULL image unconditionally...");
block_image_update(map_partition("oem"), package_extract_file("oem/OEM_PD2145C_CN-ZH_FULL_UNICOM_RWA_NULL.transfer.list"), "oem/OEM_PD2145C_CN-ZH_FULL_UNICOM_RWA_NULL.new.dat.br", "oem/OEM_PD2145C_CN-ZH_FULL_UNICOM_RWA_NULL.patch.dat") ||
abort("E2001: Failed to update oem/OEM_PD2145C_CN-ZH_FULL_UNICOM_RWA_NULL image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_oem_PD2145C_CN-ZH_FULL_UNICOM_RWA_NULL.img", "/dev/block/bootdevice/by-name/vbmeta_oem"));
endif;
if getprop("ro.vivo.oem.name") == "PD2145C_CN-ZH_CMCC_RWC_CN-YD-C" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("oem/dynamic_partitions_op_list_PD2145C_CN-ZH_CMCC_RWC_CN-YD-C")));
# Patch partition oem
ui_print("Patching OEM_PD2145C_CN-ZH_CMCC_RWC_CN-YD-C image unconditionally...");
block_image_update(map_partition("oem"), package_extract_file("oem/OEM_PD2145C_CN-ZH_CMCC_RWC_CN-YD-C.transfer.list"), "oem/OEM_PD2145C_CN-ZH_CMCC_RWC_CN-YD-C.new.dat.br", "oem/OEM_PD2145C_CN-ZH_CMCC_RWC_CN-YD-C.patch.dat") ||
abort("E2001: Failed to update oem/OEM_PD2145C_CN-ZH_CMCC_RWC_CN-YD-C image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_oem_PD2145C_CN-ZH_CMCC_RWC_CN-YD-C.img", "/dev/block/bootdevice/by-name/vbmeta_oem"));
endif;
if getprop("ro.vivo.oem.name") == "PD2145B_CN-ZH_FULL_SC_CN-YD-A" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("oem/dynamic_partitions_op_list_PD2145B_CN-ZH_FULL_SC_CN-YD-A")));
# Patch partition oem
ui_print("Patching OEM_PD2145B_CN-ZH_FULL_SC_CN-YD-A image unconditionally...");
block_image_update(map_partition("oem"), package_extract_file("oem/OEM_PD2145B_CN-ZH_FULL_SC_CN-YD-A.transfer.list"), "oem/OEM_PD2145B_CN-ZH_FULL_SC_CN-YD-A.new.dat.br", "oem/OEM_PD2145B_CN-ZH_FULL_SC_CN-YD-A.patch.dat") ||
abort("E2001: Failed to update oem/OEM_PD2145B_CN-ZH_FULL_SC_CN-YD-A image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_oem_PD2145B_CN-ZH_FULL_SC_CN-YD-A.img", "/dev/block/bootdevice/by-name/vbmeta_oem"));
endif;
if getprop("ro.vgc.device.name") == "NULL_PD2145MA" || getprop("ro.vgc.device.name") == "" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("vgc/dynamic_partitions_op_list_NULL_PD2145MA")));
# Patch partition vgc
ui_print("Patching VGC_NULL_PD2145MA image unconditionally...");
block_image_update(map_partition("vgc"), package_extract_file("vgc/VGC_NULL_PD2145MA.transfer.list"), "vgc/VGC_NULL_PD2145MA.new.dat.br", "vgc/VGC_NULL_PD2145MA.patch.dat") ||
abort("E2001: Failed to update vgc/VGC_NULL_PD2145MA image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_vgc_NULL_PD2145MA.img", "/dev/block/bootdevice/by-name/vbmeta_vgc"));
endif;
if getprop("ro.vgc.device.name") == "SYS_VIVOTEST3_PD2145MA" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("vgc/dynamic_partitions_op_list_SYS_VIVOTEST3_PD2145MA")));
# Patch partition vgc
ui_print("Patching VGC_SYS_VIVOTEST3_PD2145MA image unconditionally...");
block_image_update(map_partition("vgc"), package_extract_file("vgc/VGC_SYS_VIVOTEST3_PD2145MA.transfer.list"), "vgc/VGC_SYS_VIVOTEST3_PD2145MA.new.dat.br", "vgc/VGC_SYS_VIVOTEST3_PD2145MA.patch.dat") ||
abort("E2001: Failed to update vgc/VGC_SYS_VIVOTEST3_PD2145MA image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_vgc_SYS_VIVOTEST3_PD2145MA.img", "/dev/block/bootdevice/by-name/vbmeta_vgc"));
endif;
if getprop("ro.vgc.device.name") == "SYS_VIVOTEST_PD2145MA" then
# --- Start patching dynamic partitions ---
# Update dynamic partition metadata
assert(update_dynamic_partitions(package_extract_file("vgc/dynamic_partitions_op_list_SYS_VIVOTEST_PD2145MA")));
# Patch partition vgc
ui_print("Patching VGC_SYS_VIVOTEST_PD2145MA image unconditionally...");
block_image_update(map_partition("vgc"), package_extract_file("vgc/VGC_SYS_VIVOTEST_PD2145MA.transfer.list"), "vgc/VGC_SYS_VIVOTEST_PD2145MA.new.dat.br", "vgc/VGC_SYS_VIVOTEST_PD2145MA.patch.dat") ||
abort("E2001: Failed to update vgc/VGC_SYS_VIVOTEST_PD2145MA image.");
# --- End patching dynamic partitions ---
assert(package_extract_file("firmware-update/vbmeta_vgc_SYS_VIVOTEST_PD2145MA.img", "/dev/block/bootdevice/by-name/vbmeta_vgc"));
endif;
ui_print("travel Update operation end");
ui_print("travel Other operation begin");
if delete_oem_zip("enable") then
ui_print("copy oem_xxx_xxx.zip to data");
package_extract_dir("oem_zip", "/data/media/0");
endif;
if getprop("ro.vivo.dyn.name") == "NULL" then
run_program("/system/bin/sh", "-c", "dd of=/data/vivo-common/dyn/system_dyn.img skip=0 count=0");
ui_print("Patching DYN_PD2145_NULL image unconditionally...");
block_image_update("/data/vivo-common/dyn/system_dyn.img", package_extract_file("dyn/DYN_PD2145_NULL.transfer.list"), "dyn/DYN_PD2145_NULL.new.dat.br", "dyn/DYN_PD2145_NULL.patch.dat") ||
abort("E2001: Failed to update dyn/DYN_PD2145_NULL image.");
endif;
if getprop("ro.vivo.dyn.name") == "DYNN" then
run_program("/system/bin/sh", "-c", "dd of=/data/vivo-common/dyn/system_dyn.img skip=0 count=0");
ui_print("Patching DYN_PD2145_DYNN image unconditionally...");
block_image_update("/data/vivo-common/dyn/system_dyn.img", package_extract_file("dyn/DYN_PD2145_DYNN.transfer.list"), "dyn/DYN_PD2145_DYNN.new.dat.br", "dyn/DYN_PD2145_DYNN.patch.dat") ||
abort("E2001: Failed to update dyn/DYN_PD2145_DYNN image.");
endif;
ui_print("travel Other operation end");
set_progress(1.000000);
As decribed here - LINK - BL unlock is possible via hardware"brick" ...
With BL Unlocked, you should be able to flash any rom with
Code:
fastboot --force
fastboot --disable-verity
fastboot --disable-verification
Be aware thats probably unsafe so...
Maybe there is a "Softwarekey", we can press.. Just a thought...
That is the fstab from CN Rom
Maybe i will add some later....
If it is possible to get into fastboot without shorting pins it should (in theory) be possible to unlock the bootloader with the Miracle Box Tool. This one guy here successfully unlocked the BL with that Tool but shorted pins to get there.
It is possible to find a cr*cked Loder Miracle 2.93 on the web if anyone wants to try. Tool usually needs a authenticator box and everything about it is kinda sketchy.
-deleted-
So there is no way to unlock bootloader at the moment , do you know how to disable or uninstall some bloatware apps on Ocean-os (jovy, vivo wallet, imanager...) I tried ADB command and ADBremove app but nothing work
nope, sorry can't help there, since i don't get those deleted either.
Ive found a way to DOWNGRADE to Origin OS 1.0. Maybe it is possible to swap the updater-script of the downgrade rom with any other rom so we can install what we want?
Thread: https://bbs.vivo.com.cn/newbbs/thread/32215628
Tool: https://zs.vivo.com/upload/aftool/downgrader-setup.exe
Edit: I've tried absolutely everything in Miracle Box to Unlock the BL to no avail. Booting into EDL mode seems to be mandatory. Which is only possible by bridging the pins (or maybe using a deep flash cable).
Edit2: Deep Flash Cable does NOT work to get into EDL. Only option is bridging pins then.
Edit3: Unlock might be possible via this method. Cant get vivo fastboot v2 to see my phone though:
Unlocking bootloader/ rebooting in edl without testpoint Vivo Y31 2021
Unlocked models with this method: Vivo Y31 PD2050F 2021 A12 6.7.20 Vivo V21e PD2107F A12 6.6.19 I did it from rooted Samsung J120F, I didn't try from PC///bc no PC =( My guide in Russian {Mod edit: Link removed} Custom fastboot for vivo in...
forum.xda-developers.com

Categories

Resources