yashsingh1/xdaforums huggingface dataset:
[Sony Xperia S, Acro S, Ion] letama:
You should have flashed one of the repackaged one, I added both to first posts. Flashing kernel.elf flashes both bootmanager and kernels.

You can reflash only the kernel if you want:

1) extract zimage and initramfs.loop.gz from the zip file

2) do this from the directory where the files are extracted:

adb push zimage /tmp/
adb push initramfs.loop.gz /tmp/
adb shell kf 2 /tmp/zimage /tmp/initramfs.loop.gz

If you see the kernel properly flashed, you should be good.
[Sony Xperia S, Acro S, Ion] rolex0815:
Lol, I'm kinda busted.

adb.exe push zimage /tmp/
failed to copy 'zimage' to '/tmp/': Is a directory

I had repacked .211 stock with your script.

After changing initramfs.loop.gz within the zip file it booted and worked.

So I'm booting native and then I enter the adb commands?

Because I tried when bootmanager is having control, but the adb doesn't detect the device.
[Sony Xperia S, Acro S, Ion] letama:
Ah, no, that's ok... you can do it from recovery.
[Sony Xperia S, Acro S, Ion] Gallardo994:
/tmp

Powered by TVR 2.4.1 with Android 4.1.2 on the board.
[Sony Xperia S, Acro S, Ion] letama:
No, /tmp/ is fine. If it fails like this, it means that /tmp directory is not there or not accessible. It's safer to do /tmp/ because it would complains instead of having first one creating a tmp file and second one being overwriting it.
[Sony Xperia S, Acro S, Ion] rolex0815:
Thanks, I learned a lot.

Went to loop recovery and issued the "kf 2" command from there.

Stock JB booting! :victory::victory:

---------- Post added at 05:57 PM ---------- Previous post was at 05:43 PM ----------

JFYI:

Under "Custom / loopback partitions (flash them from custom recovery)", your "My JB 4.2.2 aosp build, beta 2, thread is here." is wrongly linked because it still points to beta 1.

I think you may have uploaded the wrong file, I downloaded it and checked if it's only renamed, but it's definitely beta 1.
[Sony Xperia S, Acro S, Ion] letama:
Thanks for the notice! Wrong copy paste in fact, I fixed the link and it should point to beta 2 now.
[Sony Xperia S, Acro S, Ion] rolex0815:
Still one hint:

Native is also not linked correctly.

Under "Stock / native partitions (flash them from stock recovery)", "My JB 4.2.2 aosp build, beta 2, thread is here." points to loop version. :)
[Sony Xperia S, Acro S, Ion] letama:
Ahhhhhh! Thanks! Note for self, don't link too early in the morning :)

Fixed.
[Sony Xperia S, Acro S, Ion] super hans:
Has anyone repackaged any of the latest cm10 updates for loopbacks? I've tried searching but couldn't find any, the latest I could find is FXP206 I was running FXP225 before installing boot manager,

Also has anyone repackaged any of the doomkernels for stock JB on native partition?

Any help greatly appreciated
[Sony Xperia S, Acro S, Ion] Soheil_rf:
[MENTION=834547]letama[/MENTION]

Can you please repack official .211 kernel for native ?
[Sony Xperia S, Acro S, Ion] AnaMajhol:
When I install an another loop kernel, boot manager disappears and phone stuck at kernel logo.. Any help ??
[Sony Xperia S, Acro S, Ion] mirhl:
Are you using a repackaged kernel? (Those posted in the OP?)

did you go into loop recovery to flash it?
[Sony Xperia S, Acro S, Ion] AnaMajhol:
I can't find repackaged kernels on the OP...

I installed Trinity Ultimate Kernel V2.0 for stock .211 loop rom.. and yes I installed from loop reovery :rolleyes:
[Sony Xperia S, Acro S, Ion] skifyr123:
Thanks, but I still have a problem pushing apps with adb. Copying works fine though.
[Sony Xperia S, Acro S, Ion] letama:
Yes. To adb push my_apk /system/app, you need ro.secure=0, for this you have to repackage cpio.

* edit *

I added to first post a zip with an unsecure kernel for 6.1.A.2.45. You just have to flash it from cwmod for stock.
[Sony Xperia S, Acro S, Ion] Soheil_rf:
@letama

Can you update CM 9.1 to 138 please ?
[Sony Xperia S, Acro S, Ion] letama:
I'll try, but don't expect me to follow FXP weekly release, I don't have enough free time for that.
[Sony Xperia S, Acro S, Ion] championswimmer:
just swapping out the system partition from the FXP137 dual zip will do the job....
[Sony Xperia S, Acro S, Ion] letama:
No change on kernel ? Then yes, swapping system in zip is enough.

Ah, and by the way championswimmer, can you enlight me about the branches on cyanogen kernel branches ?

android-msm-3.0 is cm9 I presume

jellybean is cm10

android-msm-3.0-jb is ?

And FXP ones are built from these gits or do they maintain a separate one?
[Sony Xperia S, Acro S, Ion] championswimmer:
fxp ones ARE built from here only

android-msm-3.0-jb was the previous cm10 branch (taken from ics, ported to jb)

the jellybean branch is newly switched to... has got fresh commits to make it especially compatible with jb

the jellybean branch shall be used from FXP139 onwards :)

(it fixes gralloc/mdp/fb errors, and thus probably the screen flicker issues too which are present on 3.0-jb branch)

from FXP137 to 138, swapping system is enough

for 138 to 139 we need to swap system and zImage too :)
[Sony Xperia S, Acro S, Ion] letama:
Ok, it's clear, thanks for the clarification!

Hopefully, I won't have to build zImage in coming builds, but it's good to know if I want to debug something in kernel.
[Sony Xperia S, Acro S, Ion] Felimenta97:
With installation is fine I mean that the CWM report is was fine, maybe due to the update-script nature.
[Sony Xperia S, Acro S, Ion] Felimenta97:
The insecure kernel, you just have to flash it with stock CWM?

Sent from my LT26i with Tapatalk 2
[Sony Xperia S, Acro S, Ion] letama:
Well, it doesn't fail because the script doesn't check that what it does goes well.

Yes, if you have Sony Firmware on stock menu.
[Sony Xperia S, Acro S, Ion] electrash:
Guys which combination of roms you reccomend?

Sent from my LT26i
[Sony Xperia S, Acro S, Ion] Felimenta97:
Stock + AOKP. Running it right now.

"I got my values. So you can keep yours, OK?"
[Sony Xperia S, Acro S, Ion] electrash:
Yea of course, just i cant decide by my self so asking it :P

Sent from my LT26i
[Sony Xperia S, Acro S, Ion] Apology11:
I extracted the boot.img with your tool, but now I have many files like "xaa" "xab" and so on...

But there is no file named "sec1-0x41300000.bin" so what did I do wrong?

I tried before with unpack-kernelsin from doomlord, but it didn´t worked also (there was no file sec1-0x41300000.bin too)
[Sony Xperia S, Acro S, Ion] letama:
Strange! Where and how did you get the boot.img ?

Can you show me output of the tool ?

You compile and run on PC, right ? Not on phone ?

unpack-kernelsin is naming sec1-0x41300000.bin differently, it should unpack to boot.img-ramdisk.cpio.gz or something like that, and it unpacks it directly into boot.img-ramdisk directory.
[Sony Xperia S, Acro S, Ion] marcoplo:
Guys that definatety should be build in to the flashtool it would be easier for people which like have gui on the top because it sound scary as it 's looks

Regard

M

i am not advance i admit, but still like to learn:angel:
[Sony Xperia S, Acro S, Ion] Felimenta97:
@letama, is it possible to install a custom ROM (such as SSpeed v13, based on .45 firmware) on the main partition? And what about init.d support?
[Sony Xperia S, Acro S, Ion] Apology11:
Nevermind. I compiled your program again and it worked! :good:

I made my own loop flashable zip :D

but maby you can explain a little more waht exactly I have to change in the init.semc.rc file, because I tried it with the AOKP build and it looked different to what you explain on the fourth post.

I saw that the file is grouped into different things like "fs" ...

and where do I have to add this

# losetup on storage
mkdir /sd
mount vfat /dev/block/mmcblk0p15 /sd wait rw
# ro directly as misc is created by install script
mount ext4 loop@/sd/custom_system.ext4 /system wait ro barrier=1
setprop ro.crypto.tmpfs_options size=128m,mode=0771,uid=1000,gid=1000
mount ext4 loop@/sd/custom_data.ext4 /data wait noatime nosuid nodev data=ordered noauto_da_alloc
mount ext4 loop@/sd/custom_cache.ext4 /cache wait noatime nosuid nodev data=ordered noauto_da_alloc

or do I just have to replace "mount ext4 /dev/block/xxx" with the correct loop partition? because in AOKP init.semc.rc file

there isn´t all of this

# mount mmc partitions
# mount /system, set up links to the modem, and remount r/o
mount ext4 /dev/block/mmcblk0p12 /system wait rw barrier=1
mkdir /system/etc/firmware/misc 0771 system system
mount ext4 /dev/block/mmcblk0p12 /system wait ro barrier=1
setprop ro.crypto.tmpfs_options size=128m,mode=0771,uid=1000,gid=1000
mount ext4 /dev/block/mmcblk0p14 /data wait noatime nosuid nodev data=ordered noauto_da_alloc
mount ext4 /dev/block/mmcblk0p13 /cache wait noatime nosuid nodev data=ordered noauto_da_alloc

also this files do not exist in AOKP build

e2fsck bootrec bootrec-device fix_permissions killrecovery.sh mke2fs nandroid-md5.sh parted postrecoveryboot.sh sdparted tune2fs

. So I skipped the step.

Sorry for bothering you and thank you for your help :)
[Sony Xperia S, Acro S, Ion] letama:
Sorry about the scary feeling... It's a bit experimental, but it's not very complicated to install, it's a simple kernel flash in fastboot mode. After first install, if you're used to cwmod, you should feel home.

Regarding FlashTool integration, well, you can ask Androxyde, but it only works on Xperia S and his tool aim to support every Sony device. I'm not sure he'd want to integrate something that only works on one device.
[Sony Xperia S, Acro S, Ion] mirhl:
effectively OP isn't updated (letama is not ubiquitous)

anyway, you can't flash the normal kernel like you have always do

you need to repack it (so that it doesn't wipe even dual boot kernel). i would do it, but i have no access to my linux partition atm

but you could kindly ask in the kernel thread if someone would be so gentle to repack it for you ;)
[Sony Xperia S, Acro S, Ion] AnaMajhol:
Thanks :)
[Sony Xperia S, Acro S, Ion] knut.funkel@gmail.com:
[ROM][WiP][4.2.2] CM-10.1 | OpenSEMC - RC0

Repacked for Native:

https://www.box.com/s/2ou59jj0bj7lt1as3zqs

Repacked for Loop (UNTESTED):

https://www.box.com/s/ospbvjqnmzok5yxa377n

Let me know if there is any issues with them.
[Sony Xperia S, Acro S, Ion] Gallardo994:
Can't download boot manager 0.8 from any of the mirrors listed: the files are deleted. Could someone upload it to box or smth?

Powered by TVR 2.4.1 with Android 4.1.2 on the board.
[Sony Xperia S, Acro S, Ion] knut.funkel@gmail.com:
Bootmanager 0.8 .zip

https://www.box.com/s/wyo7c4vvuji1s2whz3a2
[Sony Xperia S, Acro S, Ion] Soheil_rf:
Thank you

Can you repack official .211 kernel for native ?
[Sony Xperia S, Acro S, Ion] knut.funkel@gmail.com:
This seems to be the .211 for native?

http://ul.to/it3gj1e1

:)
[Sony Xperia S, Acro S, Ion] rahid4s:
I installed ubuntu last night..and tried to repack some roms and kernels....but always getting this following error......anyone can help??? i really don't have any idea about ubuntu..Just need it to repack roms.thanks.

rahid4s@rahid4s-desktop:~$ cd repackage

rahid4s@rahid4s-desktop:~/repackage$ ls

initramfs.native.gz init.semc.rc NovaKernel-nozomi-1.6.zip prebuilt repackage.sh zip_out

rahid4s@rahid4s-desktop:~/repackage$ sudo su

[sudo] password for rahid4s:

root@rahid4s-desktop:/home/rahid4s/repackage# ./repackage.sh NovaKernel-nozomi-1.6.zip NovaKernel-nozomi-1.6

Processing NovaKernel-nozomi-1.6 file:NovaKernel-nozomi-1.6.zip

rm: cannot remove `bm_native_NovaKernel-nozomi-1.6.zip': No such file or directory

rm: cannot remove `bm_loop_NovaKernel-nozomi-1.6.zip': No such file or directory

kernel 'kernel.elf' found

./repackage.sh: line 19: ../prebuilt/sksplit: cannot execute binary file

mv: cannot stat `sec0-*': No such file or directory

mv: cannot stat `sec1-*': No such file or directory

cat: ../initramfs.src.gz: No such file or directory

gzip: stdin: unexpected end of file

cpio: premature end of archive

Old FXP recovery

rm: cannot remove `res': No such file or directory

rm: cannot remove `recovery.fstab': No such file or directory

./repackage.sh: line 59: cd: sbin: No such file or directory

rm: cannot remove `e2fsck': No such file or directory

rm: cannot remove `fix_permissions': No such file or directory

rm: cannot remove `mke2fs': No such file or directory

rm: cannot remove `nandroid-md5.sh': No such file or directory

rm: cannot remove `parted': No such file or directory

rm: cannot remove `sdparted': No such file or directory

rm: cannot remove `tune2fs': No such file or directory

rm: cannot remove `fota-mke2fs': No such file or directory

rm: cannot remove `fota-ua': No such file or directory

rm: cannot remove `mr': No such file or directory

rm: cannot remove `autoroot.sh': No such file or directory

rm: cannot remove `checkabortedflash': No such file or directory

grep: bootrec*: No such file or directory

result:2

rm: cannot remove `bootrec': No such file or directory

rm: cannot remove `bootrec-device': No such file or directory

rm: cannot remove `bootrec-device-fs': No such file or directory

sed: can't read init.semc.rc: No such file or directory

sed: can't read default.prop: No such file or directory

14340 blocks

cp: cannot stat `cpio_native': No such file or directory

cp: cannot stat `cpio_native': No such file or directory

./repackage.sh: line 90: cd: cpio_alt: No such file or directory

44361 blocks

./repackage.sh: line 122: cd: cpio_loop: No such file or directory

cp: cannot stat `../../prebuilt/losetup-static': No such file or directory

chmod: cannot access `sbin/losetup-static': No such file or directory

CM9 / ICS cpio

cpio: ./.gvfs: Cannot stat: Permission denied
[Sony Xperia S, Acro S, Ion] letama:
It looks like sksplit doesn't work properly on your machine, ubuntu 32 bits?

You can recompile sksplit and replace it in the prebuilt directory, or install Ubuntu 64 bits...
[Sony Xperia S, Acro S, Ion] rahid4s:
no..i've dual booted ubuntu alongside my Windows 8...nd its ubuntu lts 12.10 64 bit..

sorry,but can u tell more about recompiling sksplit? im really new to this and have very lil idea..

thanks.
[Sony Xperia S, Acro S, Ion] knut.funkel@gmail.com:
You can read all about it in the fouth post in this thread:

Here is the link to the sksplit source:

https://gitorious.org/sony-tools/sony-tools/blobs/master/split_sony_kernel.c

To compile it yourself:

gcc split_sony_kernel.c -o sksplit

Hope it helps :)
[Sony Xperia S, Acro S, Ion] letama:
That's correct, yes.

rahid4s, you can try that, but I believe the problem is elsewhere, it should work directly if this ubuntu 64 bits.

You should also try to launch directly sksplit to see what it says, it's located in the prebuilt directory... and if it doesn't say much, check dmesg.
[Sony Xperia S, Acro S, Ion] rahid4s:
Ohh...im really sorry for all trouble....its 32 bit..

Bt I wonder how...i remember I only downloaded the 64 bit version :banghead:

So, now, I should just follow that post for my 32 bit??

---------- Post added at 03:20 PM ---------- Previous post was at 03:14 PM ----------

Im sorry..its 32 bit actually...no idea how...

So, what do I need to do?

Can u help me with the full procedure? If u have the time......or link me to a tutorial...i really want to learn this thing.

Thanks a lot for ur kind reply. :)
[Sony Xperia S, Acro S, Ion] letama:
That's easy:

cd ~/repackage/prebuilt
sudo su
wget https://gitorious.org/sony-tools/sony-tools/blobs/raw/master/split_sony_kernel.c
gcc split_sony_kernel.c -o sksplit

then check that sksplit works, just type sksplit. If it shows help, you're good to go and you can try again to run the script.
[Sony Xperia S, Acro S, Ion] rahid4s:
Oh...thanks..i'll try asap and feedback....but im not sure if I get the part after sudo su...do I have to copy the code from that link and paste there?

Sorry for the noobish questions.
[Sony Xperia S, Acro S, Ion] letama:
No, just type these commands as is, wget will download the source code file in your virtual machine(if your virtual machine has internet access), gcc will compile it.

My post is showing a link because the xda post editor recognized an url, you don't have to download it separately.

*edit* original post modified, just copy past the code: block content into your vm.
[Sony Xperia S, Acro S, Ion] rahid4s:
Oh..I'll try soon as I get home....can't thank you enough..u r great mate.... :thumbup:
[Sony Xperia S, Acro S, Ion] letama:
You're welcome! Let us know how it goes...
[Sony Xperia S, Acro S, Ion] rahid4s:
I didn't have line in PC..so just downloaded 64 bit by phone and installed...everything works fine..all repacked ROMs are working great..thanks a lot :D

1 query though..the repacked trinity vengeance 2.5 rom isn't working..it flashes OK..but doesn't boot...may be because its aroma based ? Any other ways to repack it may be? :confused:
[Sony Xperia S, Acro S, Ion] rolex0815:
repacking fails

I'm not able to repackage the OpenSEMC ROM with kernel 3.4.

I mean the repacking process itself gives no error, but at least the resulting file for native doesn't boot.

Bootsplash appears, but before Cyanogenmod logo comes up, I'm encountering a bootloop and phone restarts with bootmanager.

What do others here different to repackage a ROM?
[Sony Xperia S, Acro S, Ion] mirhl:
check this

and this
[Sony Xperia S, Acro S, Ion] rolex0815:
That doesn't help, because as I wrote I'm trying to boot native, not loop.

And basically I don't know what to change on native and why some people managed to repack on native.

EDIT:

In this file https://gitorious.org/sony-tools/dual_loader_kf/blobs/master/kernel_flasher.c I can find the following line:

printf("Syntax: kf [0|1|2] zImage cpio.gz\n\n");

I can't find any comment explaining the numbers.

I know that "2" is loop, but what is native?
[Sony Xperia S, Acro S, Ion] letama:
Native is 1

0 is recovery/bootmanager kernel
[Sony Xperia S, Acro S, Ion] rolex0815:
Maybe someone could check this file if it's booting.

http://www17.zippyshare.com/v/22521233/file.html

EDIT:

Did you use the script or "by hand"?
[Sony Xperia S, Acro S, Ion] rolex0815:
letama can you repack the following kernel for native?

Thanks in advance.
[Sony Xperia S, Acro S, Ion] letama:
I'm on vacation currently, I can't work on it, but what kernel is it ? Stock or something else ? I have to know which rom I should test it against.
[Sony Xperia S, Acro S, Ion] rolex0815:
It's 3.4 kernel from OpenSEMC.

I don't get it to boot on native partition.

Went manually through your script and entered the commands. Ok, that helps for a deeper understanding. :D

Resulting initramfs.native.gz has same filesize as done with your script (no surprise).

Problem remains: It doesn't boot.

I miss some points why the filesize of initramfs.native.gz is so different on different ROMs.

Even taking the ramdisk of your native AOSP build it does not work. (~220KB of ramdisk OpenSEMC against ~800KB of your AOSP build).

With 3.0.x kernel it was never a problem.
[Sony Xperia S, Acro S, Ion] letama:
When you do it manually, do you do it as root ?

For OpenSEMC, it's easy: for native, you shouldn't have anything to do inside the initramfs. Basically, you split the kernel image with sksplit, and sec1-xxxx is the initramfs.native.gz. Size is ok, mine is bigger because I embed kernel flasher and strace commands, it's easier for me when I debug or flash kernel from command line.

I suspect more a problem in the updater-script, you should check if the kf 1 zimage initramfs.native.gz goes well. Be careful with files naming too, it's case sensitive.

What does say the /tmp/recovery.log ?
[Sony Xperia S, Acro S, Ion] aiola1982:
[MENTION=4594721]rolex0815[/MENTION]

For repacking only a kernel you can use the attached zip, just put the boot.img in it (i prefer 7-zip but other tools should work fine, too) and use letamas repack script.

OpenSEMC has currently two 3.4 kernels maybe you used the wrong one for your rom ("chocolate" kernel will only work with OpenSEMC-RC1-chocolate)
[Sony Xperia S, Acro S, Ion] rolex0815:
Sure! That was the first I learned for repacking if you remember. :)

Exactly.

After using sksplit, the sec-1*** is about 3.1MB, then after unzip with cpio I have the small ramdisk.cpio (and a large *recovery* with about 4.1MB) which is about 440KB.

I can see, that you change ro.secure from 1 to 0 in the build.prop and then the ramdisk is being repacked and renamed.

I flashed it with kf to avoid such problems, "kf 1 zimage initramfs.native.gz" doesn't complain.

When should I pull this file?

Directly after flashing?

After first boot attempt?

I will try.

Thanks for your updater script.

I'm compiling OpenSEMC directly from source, so I don't want to mess up with existing kernels from other (older) releases.

That's why I need to get it going. :)

EDIT: Here's a recovery.log, pulled after a boot attempt on native.
[Sony Xperia S, Acro S, Ion] letama:
Ok, so yes, this is the new cpio / recovery scheme and effectively, the needed cpio is the smallest one. You have to unpack it (cat ramdisk.cpio | cpio -i --make-directories, without gzip as it's uncompressed) and repack it.

Directly after flashing, while still in recovery.

So, this is your build ? Maybe the repack is good but the build has something wrong ?

Next step is to force reboot and use last_kmsg to troubleshoot, but you need a 3.4 kernel on your loopback to be able to see it. And probably increase loglevel in init.rc to see what runs and what fails.
[Sony Xperia S, Acro S, Ion] letama:
No, this one will only show something if you grab it just after flashing the build. There is nothing in this one.

After a boot attempt, you have to grab /proc/last_kmsg after booting a working 3.4 kernel on loop.
[Sony Xperia S, Acro S, Ion] rolex0815:
How is that possible?

Booting loop and within this file system kernel messages from a different system are present?

Something magic happens here or are this just symlinks to the same file used by native and loop?

Anyway, I've got something.

Thanks for your help and patience!
[Sony Xperia S, Acro S, Ion] letama:
Thanks for the donation [MENTION=4594721]rolex0815[/MENTION]!

Very much appreciated!
[Sony Xperia S, Acro S, Ion] rolex0815:
Thanks for helping AND explaining. :)
[Sony Xperia S, Acro S, Ion] knut.funkel@gmail.com:
I used the script. No workarounds. :)
[Sony Xperia S, Acro S, Ion] letama:
Hello guys,

I just posted an experimental new recovery, the big differences are TWRP 2.6 and a new 3.4 kernel for bootmanager.

The new kernel should solve the issue some are facing with partition format.

It's marked as experimental as I didn't do much test with it and the 3.4 kernel has a "bug" that adds 4 to 5 seconds to boot delay.

I'm still working on it, but the main reason is that initramfs decompression is blocking kernel boot, it was done in parallel in 3.0 kernel. As the initramfs is quite big and lzma, at the end we loose few seconds at boot. For the braves who install it, please report any problem, thanks!
[Sony Xperia S, Acro S, Ion] mirhl:
[MENTION=834547]letama[/MENTION]

I read that linux kernel should now support even lzo and lz4 compression.. (could it be?)

Have you tried it?
[Sony Xperia S, Acro S, Ion] letama:
I tried lzo but it ended up with something too big for boot manager. I'll check lz4 but I mostly want the parallel decompression back.

Any compression scheme will take time as I need high compression ratio. It doesn't make sense to wait for initramfs, this delay will be better used continuing kernel startup.
[Sony Xperia S, Acro S, Ion] mirhl:
xz then should be the solution (it's an improvement of lzma)

(at least from what i read here http://free-electrons.com/blog/arm-xz-kernel-decompression-benchmarks/)

btw, if you have an opinion on THE QUESTION of the month, i wanted to use this occasion to incite you give your say :D
[Sony Xperia S, Acro S, Ion] letama:
I think I tried, my computer xz didn't match kernel and uncompress fails. Anyway, it's 0.1s on dual core, it won't be radically faster. I'm thinking of using the recovery kernel partition more or less like cm to reduce the main initramfs, but it kills simplicity of current installation process. We'll see...

:) Well, no, I don't have opinion about this, difficult choice.