[How To]Put Your BEST Rom In 2nd Rom -[DorimanX v8][Biftor V14 and AROMA V6]

Search This thread

Troubadour666

Recognized Contributor
Aug 3, 2012
3,140
7,035
43.7031 - 7.2661
Hi all @Biftor ROM dualbooters,
Only DorimanX 8.43 was added instead of original kernel.

DualBoot-Biftor™ Rom-V14-JB-XWMS1-No Wipe.zip - 453.78 MB

thanks

Original @Biftor thread : http://forum.xda-developers.com/showthread.php?t=2026911

thanks to @GamingDj for this video he made for @Biftor , so you can see the power of the DEV :)



Hi everybody,

Here is the story :

Some 7 days ago, i received a PM from Wiz1152 who told me that he tested one my updater-script provided for 2nd ROM and had success with it.

He gave a test with an updater-script i touch for use BIFTOR V9 ROM as 2nd ROM.

As he also has sent his PM to Biftor , he finaly asked us if we can share a thread to show ppl how to have Biftor V9 in 2nd ROM.

So i prepared this post to tell all ppl interested by a JB sammy 4.1.2 as 2nd rom that they could find here soon all tips, tricks and tweaks i have learnt on XDA to have Biftor V9 rom and also all jb sammy 4.1.2 rom, as a 2nd rom, with the only kernel i know to do this, DorimanX kernel, V8.xx version only.

Ambitious you can say, but i hope this would help many users to make any JB 4.1.2 ROM they want as their BEST 2nd ROM.

Before you thank me, thanks all these people, i've learnt by reading their threads and posts.
(i must say that sometimes, for a better undertanding of what i was doing for my 2nd ROM,
i had to PM some of them, and i always received a large and efficient detailled response
from each of them, i encourage you to always ask to DEV what are your troubles)

Disclaimer : before starting any operation, you have to know that you can damage your phone, use at your own risk !
before you mix my things , you have to know that you can damage and brick your tel

For the kernel you will GO here for your dualboot :
thanks DorimanX

For the ROMs i extract and mod updater-script here,
Biftor
Salesale
Indie
Wanam

I'm going to use mods from the following dev as demos, and one day,
you'll try some themes and mods from them, so thank them like me :
Spannaa
ApriliaM3
Carotix
engloa
and much others posts from XDA thread....
Like me, you should learn a lot with the NeatRom Family Members from this INCREDIBLE NEATROM FULL & LITE ROM THREAD


In this thread, i will never provide a link with an updater-script that will flash a kernel or a modem.
My modded updater-script doesn't work well if you flash a modded for 2nd ROM JB sammy 4.1.2 ROM on 1rst position ROM too.
The only one kernel i talk to you about in this thread is DORIMANX KERNEL all V8.xx releases. It's saying in XDA
that there is no BEST KERNEL for I9100 (and other tel), as we know too, there is no BEST ROM , but DorimanX V8.xx
all releases are the only one i can use to have my dualboot safe, so for me, it is the BEST KERNEL i use :)



expect all image are not too big for viewing, so works in progress, available very soon.
 
Last edited:

Troubadour666

Recognized Contributor
Aug 3, 2012
3,140
7,035
43.7031 - 7.2661
Preambule and Summary of this thread

I make this thread myself to show ppl my method to port all JB SAMMY 4.1.2 ROM
(MS1, LSE, LS8, LSJ, LSD, LSN, LSS and LSW) on 2nd ROM while having an AOSP 4.2.2 ROM at 1rst position.


You're always reading that it's impossible to dualboot jb sammy 4.1.2 roms,
and in fact, yes, it's impossible if we flash this type of ROM on our 2nd
rom as we usualy do it before JB SAMMY 4.1.2 ROM are outed with a permitted
kernel to do dualboot.


Samsung provide us JB 4.1.2 BIGs versions ROMs with so many bloatwares than ICS version before,
and for that they are obliged to add an extended partition named \PRELOAD\ to put all of them in.


So, as a stock kernel doesn't manage 2nd rom, we have to find a custom kernel to do this,
and we have to manage this \PRELOAD\ partition too, to flash rom in 2nd ROM.


I give you here all my learning from over XDA threads since 4 months of dualbooting JB SAMMY 4.1.2 ROMs.

All you have to know it's that we have to extract apks app files which are in \preload\ folder of a ZIP ROM
in an another partition when we want to run a JB SAMMY 4.1.2 700Mo BIG ROM as 2nd ROM,
with DorimanX kernel, 8.xx Version ONLY ! DorimanX kernel ONLY.


In 2nd ROM usage, DorimanX says us to put \preload\ folder content of a ZIP ROM in \DATA\ partition ,
exactly in \data\sec_data\ folder !


Somes months ago, 1rst version of dualboot have used \data\app\app\ folder as a deported \preload\ folder,
but this was abandonned, by me for instance, when DorimanX says me to use \data\sec_data\ folder instead
of \data\app\app\.


Why do we must need a valid 2nd ROM running ?
AFAIK, It's interesting to have a "robust" 1st rom like a ROOTBOX ROM and having a 2nd rom
like a jb 4.1.2 rom can give us totaly managment of all we want to change in our system without flashing
anything else at all (except kernel, modem and rom), we can theme and mod as we want and just reboot to take changes on.
With the help of soft like WINSCP i will show in a post below, just make your change and reboot, and finaly enjoy change you're made :)
(as command line utility, Putty seems to be a good alternative to ADB).


To enable WINSCP communication between your PC and your TEL, I also explain here how to include somes binaries
in your future modded ZIP JB 4.1.2 ROM for 2nd ROM, before flashing it, so you'll have an another way to pass some
command lines without ADB utility , but in a Putty terminal.


The good questions are :

How can we port a BIG ROM like 600-700Mo space large systems partitions (system & preload)
in our I9100 which ROM we want to run as a 2nd ROM with \SYSTEM\ partition about only 500Mo space large?

how to bypass the use of the \PRELOAD\ partition use when we run the JB 4.1.2 ROM as 2nd ROM ?


We know that Samsung add many more bloatware than possible in the JB 4.1.2
Firmware, and because of this addition, they must have to add a new partition they named
\PRELOAD\ , Samsung has deported many system files in this partition, in the
\preload\symlink\system\app\ folder.


As kernel stock doesn't manage directly files in \PRELOAD\ partition sub-folders,
and kernel stock doesn't know there are many apks in \preload\symlink\system\app\
to manage, Samsung has symlinked these apks to \SYSTEM\ partition in \system\app\
with many LNs files in \system\app\ folder.


Some rare Kernel can dualboot, like DorimanX kernel, and it give us the capabilities to port
a JB SAMMY 4.1.2 ROM in 2nd ROM by the deporting of all APKs in the \preload\symlink\system\app\
folder (when 1rst rom installed) to a sub-folder of the 2nd ROM \DATA\ partition,
named \data\sec_data\ (when ported rom in 2nd rom)


We can do this because DorimanX kernel v8.xx permit it .

At this point of dev, you have to know that while runing your 2nd rom as i show you this way,
your BEST kernel (DorimanX now because you use it now!!) makes the \PRELOAD\ partition
mounting point as a mirror of the \SYSTEM\ partition mounting point (of 2nd ROM too),
and now, you went to understand that you can easilly, completely, port your BEST JB SAMMY 4.1.2 ROM
in 2nd position ROM :)


When DorimanX boots our 2nd ROM, it do it as if \PRELOAD\ partition doesn't exist, i like to imagine that :)

An another way of a understanding this is :
with DorimanX kernel, when we have two roms like i have, and when you run your 4.2.2 1rst ROM like mine
(or a rootbox rom for sample), you can see your 1rst ROM \SYSTEM\ partition in the folder named \system\,
but we can see a named \preload\ folder, and you have to know that it's the \SYSTEM\ partition of your 2nd !
And so, after you have enable and well runing your 2nd ROM, you will be able to make all manipulations you want
on your system phone as you will never believe and dream it like that.


Plus, lastest DorimanX V8.xx kernel give us total mounted of 2nd ROM \DATA\ partition while
we are runing our 4.2.2 1rst rom, in a named \data_sec_rom\ folder ;
and when we run our new flsehly modded JB 4.1.2 2nd ROM, we can see 1rst ROM \DATA\ partition
in a named \data_pri_rom\ folder, so, again, imagine all advantages with that, you can manage
all apks and all folders of the two ROMs installed in your tel.


You have to know too that when you'are runing 1rst ROM, folder \data_sec_rom\ is the mounted
point of \sdcard\.secondrom\DATA.IMG file, corresponding of 2nd ROM \DATA\ partition, with
total access in it.


This image below shows us what we can do with all folders and partitions of 2nd ROM mounted while
we were runing our 1rst 4.2.2 ROM.

And i need between 1 and 5-6 steps to explain here all you have to do to accomplish this :

wqth.jpg



You will find in this thread all the needed steps and all the tools for you to put your BEST JB SAMMY 4.1.2
ROM in 2nd ROM, with DorimanX kernel V8.xx installed.

NEXT POST TO MAKE :

1 - HOW TO ENABLE WINSCP AND PUTTY COMMUNICATIONS BETWEEN PC and TEL

2 - WHY I ONLY USE DORIMANX KERNEL V8.xx.

3 - What is doing, line by line, an UPDATER-SCRIPT from a JB SAMMY 4.1.2 ROM flashed as 1rst ROM (BIFTOR ROM inside demonstration)

4 - HOW TO MOD UPDATER-SCRIPT with \PRELOAD\ partition managment folder pushed in \DATA\ partition of a 2nd ROM,(on \data\sec_data\ folder) with two detailled ROMs such as :
- Biftor ROM and its last addon. (biftor_preload_symlink)
- NeatROM FULL & LITE portage to 2nd ROM

5 - Attachments

6 - How to theme and mod our new BEST 2nd ROM freshly flashed.
- vrtheme cwm flasher
- normal cwm mods




Requirements :

Tools you will use on your PC :

- WINRAR (to open, add, suppress all you want in the ZIP)
some advise with it : please you must let winrar working & repacking well before closing it, if not,
you can have 'big surprise' with broken zip and remember you have to never create or rename
a folder in the opened ZIP in winrar, by winrar menu choice, you must have just to delete a
folder instead of renaming it, and just re-drag it from you PC. be carrefull of this)

- Notepad ++ (you can use this simply guide i made to perform your use)

- WINSCP software (instead of ADB command lines, i use WINSCP to access my
tel folders and partitions by WIFI, i use droidsshd.apk app in tel to enable telnet access
(in WINSCP STAGE we can see all detail to enable this way of access )

- Initial JB SAMMY 4.1.2 ROM from DEV you want to use in 2nd ROM

- in this repos of samples i make : https://mega.co.nz/#F!6tQRBZCY!Fg0i0WNN00s4DznvVOuP5g, one of my
updater-script i modded for some lastest lsw 4.1.2 roms i found on i9100'xda thread.
(i expect after reading this thread, you can mod youself your BEST ROM for 2nd ROM)

- if you want to VRTHEME or MOD your new freshly 2nd ROM, take my toolpack here




On your TEL, runing a custom rom AOSP, AOKP CM in 1rst rom, in an external SD folder, you have put :

- Dorimanx V8.xx lastest kernel ZIP

- The ROM with my updater-script added as replacement of original

- insure you have a space for the 2nd rom created as the method below in the KERNEL step.
 
Last edited:

Troubadour666

Recognized Contributor
Aug 3, 2012
3,140
7,035
43.7031 - 7.2661
Binaries addons to enable WINSCP communications STEP

One day i ask myself how to bypass myself from adb command line.

I remember as an old Ipod user i'm that i can have access to its system partition with the use of winscp soft.

i try to find by myself the necessary binaries, and i find them .
i make myself an winscp-pack.rar or CWM-winscp-pack.zip to easily install it when i flash a rom, also this pack could be copied
in our new modded 2nd ROM structure before we flash it.
After that step, which can make communicate winscp installed on your PC with your i9100 system, on your personnal network.


Here, we can see how to put my winscp-pack.rar in our \system\ partition , by copying structure folder winscp-pack in external sdcard and
then with rootexplorer (or such a same tool) , we copy all folders form sdcard we have just talk to \system\ partition folders. we verify rights and change them if there are not good and we reboot.


5187.jpg


b6z5.jpg


vptc.jpg


61mf.jpg


you will find in some posts below WINSCP-PACK.rar (delete .pdf at end of WINSCP-PACK.rar.pdf) and CWM-winscp-pack.zip to flash.
use the first if you want put it manually in your future modded ZIP ROM 2nd ROM or on your phone like i describe you.


Now that we have the necessaries binaries installed on our system, we must have an application to enable SCP communication .

I found over the net an APK soft, Droidsshd.apk (https://code.google.com/p/droidsshd/)
i download APK from there, put it on my external sdcard and install it like normal apk by launching it using Rootexplorer.
result : it gives me a new installed APKs in \data\app\ named
br.com.bott.droidsshd-1.apk.



below, a little video to show how to set-up droidsshd.apk V0.5 options.


On your PC, once you have installed WINSCP download before, you have to set WINSCP options like this :








I specialized myself with dual-boot but i think this WINSCP-PACK could be integrated in ALL S2 JB SAMMY 4.1.2 ROMS, 1rst or 2nd position flashing.


I think that when you will have enable WINSCP to access on your phone like me , your understanding of your
system phone will change and so you will quickly learn more and more about your system phone , like i do it my friend !


This large confused image (my 1rst SHOOT) below resumes to you how you can integrate my winscp toolpack in your rooted tel or rom'zip
21f5.jpg


Here, an image shows you how you can fix and manage rights on files while runing WINSCP interface .

0u08.jpg


what we can do when WINSCP and TEL are communicating?
You can manage the entire system of your phone, in an explorer interface.
You can theme and add mods in your 2nd rom without flashig anything else (except vrtheme.zip files)



OTHER TWEAKS :

One day, i ask DorimanX how to mount the data partition from 2nd rom while runing 1rst rom,
he send me this 1rst response :

==================================================================================
all you do for adapt JB SAMMY to sec ROM is only your things, i am not interested.
about mounting the sec rom data!
i have added auto mount to kernel script!
so in next kernel it's will be by auto from now.
if you want to test now.
then do this!
using adb as su
losetup
this will show you all used LOOP devices.
see one that free (missing number)
then do this
mkdir /data_sec_rom;
chmod 777 /data_sec_rom;
losetup /dev/block/loop4 /sdcard/.secondrom/data.img;
mount -t ext4 /dev/block/loop4 /data_sec_rom;
ls -la /data_sec_rom;
i have used loop4 but if you see it already used then use other number!
then just go to /data_sec_rom;
and all files there
have fun.

==================================================================================

One another day, i ask DorimanX how to mount 1rst ROM \SYSTEM\ partition while i'm running my 2nd rom,
(dont forget that in 2nd rom, preload = system , so where is the mounted 1rst rom \SYSTEM\ partition ?)
so his response was :

==================================================================================
not mounted.
but exist
ADB:
mkdir /temp_system
chmod -R 777 /temp_system
mount -t ext4 /dev/block/mmcblk0p9 /temp_system
then you get system of PRI rom in folder /temp_system

==================================================================================

With this last sequence command lines, we have all systems partition mounted while we run our second rom, that's great, no ?
 
Last edited:

Troubadour666

Recognized Contributor
Aug 3, 2012
3,140
7,035
43.7031 - 7.2661
KERNEL STEP : Why DorimanX V8.xx ?

For dualboot like i do, we have to choose the good kernel that's can make it possible,
I know how to make it possible with only DORIMANX KERNEL 8.xx version,
the only one kernel i use since several months to improve my works on dualboot.


the 1rst step for dualboot like me is to flash Kernel DorimanX V8.xx lastest.
when you'have flash DorimanX V8.xx, ensure that your 1rst ROM boots and run well.


If your choice is made, you can continue .
just, If you have only one ROM and its Stock Kernel, you have to download lastest
Dorimanx Kernel here V8.xx and flash it to avoid second rom options opened and activated :)


After flashing Dorimanx V8.xx Kernel, you have to "initiate" space for your 2nd rom like the steps i describe below :
(so we assume you have Dorimanx V8.xx Kernel.ZIP in your external sdcard or internal)

Procedure to change stock kernel with DorimanX v8.xx and how to initialize 2nd ROM :

- in recovery mode of your current kernel (if you have this boot option )
- flash Dorimanx V8.xx Kernel.ZIP i say you to put in your External SDCARD before.

- again , if with your actual kernel permit it, reboot recovery,

- wait and it's booting on DorimanX v8.xx kernel CWM installed, with dual-boot options opened


739115IMGP2153.jpg


go to :

- dual-boot menu

- wipe 2ndROM data/cache

712215IMGP2170.jpg


So what is accomplished during this step:

wipe data\cache procedure have making (and formating if exist) the DATA.IMG file in an INTERNAL SDCARD \.secondrom sub-folder.
(expect you have 5Go minimum space free on your INTERNAL SDCARD before using a 2nd ROM)
(dont really know if CACHE.IMG is created too in this step)

DATA.IMG will be mounted as the \DATA\ partition when we run our 2nd ROM, while booting with Dorimanx V8.xx Kernel.


Other interesting Menu for 2nd ROM usage :

- mount and storage (if you need to perform some taskx on your 2nd rom partitions,
you will be use these choice below), you will find here many choice to mount and format partitions .

- mount /secondrom_cache
- mount /seconrom_data
- mount /secondrom_system

- format /secondrom_cache
- format /seconrom_data
- format /secondrom_system


620795171832IMGP2165.jpg



You can have a look at this great site about what i'm talking here, (with many interested screens :) i take from site).

Before continuing, and for a good understanding, I think you have to read my little noob explaination about my understanding about a 2nd rom.

What about the large space \SYSTEM\ and \PRELOAD\ partitions of a JB SAMMY 4.1.2 ROM and on a 2nd ROM too?

JB sammy 4.1.2 are coming with so much bloatwares which take so much space in system partition
that "Samsung DEV" has decided to add a 2nd extended partition system , named \PRELOAD which
contain some most important apks for the system, deported in, instead of being in \SYSTEM partition
like in ICS or GB firmware.

As runing an entire system ROM is depending of system or app apks only exclusively stored in \system\app\ folder
(or \data\app\ and in \system\framework\ too but not talking about it here), Samsung DEV used symlinking
method to create symlink from all APKS in \preload\symlink\system\app\ folder to \system\app\ folder.

Also, you must know that when we run a ROM like a 4.2.2 rom, like a rootbox rom for example, in 1st position,
the \PRELOAD\ partition (\SYSTEM\ partition of 2nd ROM down, is showed and can been totaly accessibled.

When you understand that you can understand everything here

this image below shows the structure phone which become when you have your 2nd ROM installed
on your tel, (screenshot of winscp folder view while phone running on 1rst rom.)


montagesdcard.png


About Biftor V9 ROM i take to my show, how can i do to put this structure folder on
the left side of image below, on my tel 2nd position rom ,when i'm runing my 2nd ROM following these folders (in the right side of image):


montagec.png


let's see this in next 2 posts : HOW TO FINALY MODDED UPDATER-SCRIPT FOR YOUR BEST ROM IN 2ND ROM
 
Last edited:

Troubadour666

Recognized Contributor
Aug 3, 2012
3,140
7,035
43.7031 - 7.2661
Updater-script Analyse

Here we can find the most important part of this thread !

For a flash in 2nd position, we have to understand how updater-script runs its lines when we flash a JB 4.1.2 ROM as a unique 1rst ROM.

1rst, in many XDA threads and on other forums, you must know that you will find many ROMs, with full wipe or not. Dont care about it now, my purpose is to use 2nd rom as tests roms so it's not necessary to keep some line in modded updater-script, like formating partition or wiping, we can manage this ourselves , no? And because of winscp access , we can do what we want too.

lines like :
- formating system or data partition, we can manage them.
- flashing kernel, kernel has been already flashed before, dorimanx v8.xx lastest.
- flashing modem, modem of 1rst rom already exist and is i think it's fine


2nd, and see below, this is a list of tasks executed by an original updater-script : (on 1rst rom usage)

- presentation rom and dev
- unmount some partitions
- formatting \system\ and \preload\ partitions sometimes, without mounting them
- wiping data lines
- re-mounting system and preload partitions
- extracting zip \data folder if exist in zip rom, on data partition mounted before
- extracting zip \system folder to system partiton mounted before
- extracting zip \preload folder to preload partition mounted before
- installing busybox lines
- symlinking system binaries
- symlinking apks from preload partition to system partition
- the fix of the effective rights on new system partition flashed
- the EFS backuping
- flashing kernel lines
- flashing modem lines
- unmounting partitions lines
- "say thanks dev" lines


it's saying that BIFTOR ROM is a rom that ppl want to have as their 2nd ROM,
so i take its updater-script for my purpose of demonstration :

Here, images with detailled blocks lines of BIFTOR V9 updater-script :

1xnw.jpg


spml.jpg


7h07.jpg


gcqp.jpg


NEXT : FINALY, YOUR BEST ROM IN 2ND ROM
 
Last edited:

Troubadour666

Recognized Contributor
Aug 3, 2012
3,140
7,035
43.7031 - 7.2661
Put ALL THE BESTs ROMs in 2nd ROM - DorimanX V8.xx ONLY : BIFTOR,NEATROM,WANAM....

SO, if you understand what i'm saying before, my Biftor V9 updater-script for 2nd ROM purpose is :

ATTENTION
DELETE BLUE LINES IN THIS BLOCK
ADD OR REPLACE RED LINES IN SAME PLACE AS I SHOW YOU HERE
Code:
show_progress(0.500000, 0);
ui_print("");
ui_print("");
ui_print("!..............................................!");
ui_print("!.........Welcome To Biftor Rom V9 JB..........!");
ui_print("!.........Welcome To Biftor Rom V9 JB..........!");
ui_print("!.........Welcome To Biftor Rom V9 JB..........!");
ui_print("!.........Welcome To Biftor Rom V9 JB..........!");
ui_print("!.........Welcome To Biftor Rom V9 JB..........!");
ui_print("!.........Welcome To Biftor Rom V9 JB..........!");
ui_print("!.........Welcome To Biftor Rom V9 JB..........!");
ui_print("!..............................................!");
ui_print("A       R        M       I       N");
ui_print("AA       RR       MM       II       NN");
ui_print("AAA       RRR       MMM       III       NNN");
ui_print("AAAA       RRRR       MMMM       IIII       NNNN");
unmount("/system");
unmount("/cache");
unmount("/preload");
ui_print("mounting...");
ui_print("mount System");
run_program("/sbin/mount", "/dev/block/mmcblk0p9", "/system");
ui_print("mount data");
run_program("/sbin/mount", "/dev/block/mmcblk0p10", "/data");
ui_print("mount cache");
run_program("/sbin/mount", "/dev/block/mmcblk0p7", "/cache");
[COLOR="Blue"][B]ui_print("mount preload");
run_program("/sbin/mount", "/dev/block/mmcblk0p12", "/preload");[/B][/COLOR]
delete_recursive("/system");
[COLOR="Red"][B]delete_recursive("/data/sec_data");[/B][/COLOR]
delete_recursive("/cache");
delete_recursive("/data/dalvik-cache");
[COLOR="Blue"][B]delete_recursive("/preload");[/B][/COLOR]
delete_recursive("/data/data/com.android.providers.settings");
delete_recursive("/data/data/com.android.settings");
delete_recursive("/data/data/com.android.SystemUI");
delete("/data/system/batterystats.bin");
package_extract_dir("data", "/data");
set_perm(2000, 2000, 0771, "/data/local");
set_perm_recursive(1000, 1000, 0771, 0644, "/data/app");
ui_print("Installing system ...");
show_progress(0.500000, 80);
package_extract_dir("system", "/system");
[COLOR="Red"][B]package_extract_dir("preload/symlink/system/app", "/data/sec_data");[/B][/COLOR]

No change HERE :
Code:
set_perm(0, 1000, 0755, "/system/xbin/busybox");
run_program("/system/xbin/busybox", "--install", "-s", "/system/xbin");
symlink("/system/xbin/busybox", "/system/bin/busybox");
ui_print("Simlinking ...");
symlink("busybox", "/system/xbin/[");
symlink("busybox", "/system/xbin/[[");
symlink("busybox", "/system/xbin/acpid");
symlink("busybox", "/system/xbin/addgroup");
symlink("busybox", "/system/xbin/adduser");
symlink("busybox", "/system/xbin/adjtimex");
symlink("busybox", "/system/xbin/ar");
symlink("busybox", "/system/xbin/arp");
symlink("busybox", "/system/xbin/arping");
symlink("busybox", "/system/xbin/ash");
symlink("busybox", "/system/xbin/awk");
symlink("busybox", "/system/xbin/basename");
symlink("busybox", "/system/xbin/lzop");
symlink("busybox", "/system/xbin/lzopcat");
symlink("busybox", "/system/xbin/makedevs");
|
|let the line i switch here
|
symlink("busybox", "/system/xbin/makemime");
symlink("busybox", "/system/xbin/man");
symlink("toolbox", "/system/bin/start");
symlink("toolbox", "/system/bin/stop");
symlink("toolbox", "/system/bin/sync");
symlink("toolbox", "/system/bin/top");
symlink("toolbox", "/system/bin/umount");
symlink("toolbox", "/system/bin/uptime");
symlink("toolbox", "/system/bin/vmstat");
symlink("toolbox", "/system/bin/watchprops");
symlink("toolbox", "/system/bin/wipe");
symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");


Most important lines changing :
ALL THE LINES of this block below have their "symlink("/preload/symlink/system/app/" chain replaced by "symlink("/data/sec_data/" chain.
I show you at middle of this post how Biftor want you to replace all these lines by a called external script during process flash
Code:
[COLOR="Red"]symlink("/data/sec_data/AllshareMediaServer.apk", "/system/app/AllshareMediaServer.apk");
symlink("/data/sec_data/AllSharePlay.apk", "/system/app/AllSharePlay.apk");
symlink("/data/sec_data/AllshareService.apk", "/system/app/AllshareService.apk");
symlink("/data/sec_data/ApplicationsProvider.apk", "/system/app/ApplicationsProvider.apk");
symlink("/data/sec_data/BackupRestoreConfirmation.apk", "/system/app/BackupRestoreConfirmation.apk");
symlink("/data/sec_data/BadgeProvider.apk", "/system/app/BadgeProvider.apk");
symlink("/data/sec_data/BasicLiveWallpapers.apk", "/system/app/BasicLiveWallpapers.apk");
symlink("/data/sec_data/BCService.apk", "/system/app/BCService.apk");
symlink("/data/sec_data/BluetoothAvrcp.apk", "/system/app/BluetoothAvrcp.apk");
symlink("/data/sec_data/BluetoothMap.apk", "/system/app/BluetoothMap.apk");
symlink("/data/sec_data/CapabilityManagerService.apk", "/system/app/CapabilityManagerService.apk");
symlink("/data/sec_data/CertInstaller.apk", "/system/app/CertInstaller.apk");
symlink("/data/sec_data/ChromeBookmarksSyncAdapter.apk", "/system/app/ChromeBookmarksSyncAdapter.apk");
symlink("/data/sec_data/ClipboardSaveService.apk", "/system/app/ClipboardSaveService.apk");
symlink("/data/sec_data/ClockPackage.apk", "/system/app/ClockPackage.apk");
symlink("/data/sec_data/ContextAwareService.apk", "/system/app/ContextAwareService.apk");
symlink("/data/sec_data/CSC.apk", "/system/app/CSC.apk");
symlink("/data/sec_data/DigitalClock.apk", "/system/app/DigitalClock.apk");
symlink("/data/sec_data/DefaultContainerService.apk", "/system/app/DefaultContainerService.apk");
symlink("/data/sec_data/Divx.apk", "/system/app/Divx.apk");
symlink("/data/sec_data/DrmProvider.apk", "/system/app/DrmProvider.apk");
symlink("/data/sec_data/DSMForwarding.apk", "/system/app/DSMForwarding.apk");
symlink("/data/sec_data/DSMLawmo.apk", "/system/app/DSMLawmo.apk");
symlink("/data/sec_data/EdmVpnServices.apk", "/system/app/EdmVpnServices.apk");
symlink("/data/sec_data/EnterprisePermissions.apk", "/system/app/EnterprisePermissions.apk");
symlink("/data/sec_data/FaceLock.apk", "/system/app/FaceLock.apk");
symlink("/data/sec_data/FlashBarService.apk", "/system/app/FlashBarService.apk");
symlink("/data/sec_data/FmmDM.apk", "/system/app/FmmDM.apk");
symlink("/data/sec_data/FmmDS.apk", "/system/app/FmmDS.apk");
symlink("/data/sec_data/FmRadio.apk", "/system/app/FmRadio.apk");
symlink("/data/sec_data/Gmail.apk", "/system/app/Gmail.apk");
symlink("/data/sec_data/GmsCore.apk", "/system/app/GmsCore.apk");
symlink("/data/sec_data/GoogleBackupTransport.apk", "/system/app/GoogleBackupTransport.apk");
symlink("/data/sec_data/GoogleCalendarSyncAdapter.apk", "/system/app/GoogleCalendarSyncAdapter.apk");
symlink("/data/sec_data/GoogleContactsSyncAdapter.apk", "/system/app/GoogleContactsSyncAdapter.apk");
symlink("/data/sec_data/GoogleFeedback.apk", "/system/app/GoogleFeedback.apk");
symlink("/data/sec_data/GoogleLoginService.apk", "/system/app/GoogleLoginService.apk");
symlink("/data/sec_data/GooglePartnerSetup.apk", "/system/app/GooglePartnerSetup.apk");
symlink("/data/sec_data/GoogleServicesFramework.apk", "/system/app/GoogleServicesFramework.apk");
symlink("/data/sec_data/GoogleTTS.apk", "/system/app/GoogleTTS.apk");
symlink("/data/sec_data/HelvNeueLT.apk", "/system/app/HelvNeueLT.apk");
symlink("/data/sec_data/InputDevices.apk", "/system/app/InputDevices.apk");
symlink("/data/sec_data/InputEventApp_U1_EUR_OPEN.apk", "/system/app/InputEventApp_U1_EUR_OPEN.apk");
symlink("/data/sec_data/JobManager.apk", "/system/app/JobManager.apk");
symlink("/data/sec_data/KeyChain.apk", "/system/app/KeyChain.apk");
symlink("/data/sec_data/Keystring_factory_JBUP.apk", "/system/app/Keystring_factory_JBUP.apk");
symlink("/data/sec_data/LogsProvider.apk", "/system/app/LogsProvider.apk");
symlink("/data/sec_data/MediaUploader.apk", "/system/app/MediaUploader.apk");
symlink("/data/sec_data/minimode-res.apk", "/system/app/minimode-res.apk");
symlink("/data/sec_data/MobileTrackerEngineTwo.apk", "/system/app/MobileTrackerEngineTwo.apk");
symlink("/data/sec_data/MtpApplication.apk", "/system/app/MtpApplication.apk");
symlink("/data/sec_data/MusicFX.apk", "/system/app/MusicFX.apk");
symlink("/data/sec_data/MusicPlayer.apk", "/system/app/MusicPlayer.apk");
symlink("/data/sec_data/NetworkLocation.apk", "/system/app/NetworkLocation.apk");
symlink("/data/sec_data/OmaCP.apk", "/system/app/OmaCP.apk");
symlink("/data/sec_data/OmaDrmPopup.apk", "/system/app/OmaDrmPopup.apk");
symlink("/data/sec_data/PackageInstaller.apk", "/system/app/PackageInstaller.apk");
symlink("/data/sec_data/PanningTryActually.apk", "/system/app/PanningTryActually.apk");
symlink("/data/sec_data/PCWClientS.apk", "/system/app/PCWClientS.apk");
symlink("/data/sec_data/PhoneErrService.apk", "/system/app/PhoneErrService.apk");
symlink("/data/sec_data/Phonesky.apk", "/system/app/Phonesky.apk");
symlink("/data/sec_data/Phone_Util_U1_EUR_OPEN.apk", "/system/app/Phone_Util_U1_EUR_OPEN.apk");
symlink("/data/sec_data/PopupuiReceiver.apk", "/system/app/PopupuiReceiver.apk");
symlink("/data/sec_data/Preconfig.apk", "/system/app/Preconfig.apk");
symlink("/data/sec_data/PreloadInstaller.apk", "/system/app/PreloadInstaller.apk");
symlink("/data/sec_data/PRUI.apk", "/system/app/PRUI.apk");
symlink("/data/sec_data/SamsungCamera.apk", "/system/app/SamsungCamera.apk");
symlink("/data/sec_data/SamsungIME.apk", "/system/app/SamsungIME.apk");
symlink("/data/sec_data/SamsungTTS.apk", "/system/app/SamsungTTS.apk");
symlink("/data/sec_data/SecBluetooth.apk", "/system/app/SecBluetooth.apk");
symlink("/data/sec_data/SecBrowser.apk", "/system/app/SecBrowser.apk");
symlink("/data/sec_data/SecCalculator2.apk", "/system/app/SecCalculator2.apk");
symlink("/data/sec_data/SecCalendarProvider.apk", "/system/app/SecCalendarProvider.apk");
symlink("/data/sec_data/SecContacts.apk", "/system/app/SecContacts.apk");
symlink("/data/sec_data/SecContactsProvider.apk", "/system/app/SecContactsProvider.apk");
symlink("/data/sec_data/SecDownloadProvider.apk", "/system/app/SecDownloadProvider.apk");
symlink("/data/sec_data/SecDownloadProviderUi.apk", "/system/app/SecDownloadProviderUi.apk");
symlink("/data/sec_data/SecFactoryPhoneTest.apk", "/system/app/SecFactoryPhoneTest.apk");
symlink("/data/sec_data/SecFileShareClient.apk", "/system/app/SecFileShareClient.apk");
symlink("/data/sec_data/SecFileShareServer.apk", "/system/app/SecFileShareServer.apk");
symlink("/data/sec_data/SecGallery2.apk", "/system/app/SecGallery2.apk");
symlink("/data/sec_data/SecHTMLViewer.apk", "/system/app/SecHTMLViewer.apk");
symlink("/data/sec_data/SecLauncher2.apk", "/system/app/SecLauncher2.apk");
symlink("/data/sec_data/SecLiveWallpapersPicker.apk", "/system/app/SecLiveWallpapersPicker.apk");
symlink("/data/sec_data/SecMediaProvider.apk", "/system/app/SecMediaProvider.apk");
symlink("/data/sec_data/SecMemoWidget.apk", "/system/app/SecMemoWidget.apk");
symlink("/data/sec_data/SecMms.apk", "/system/app/SecMms.apk");
symlink("/data/sec_data/SecNoteMyFiles.apk", "/system/app/SecNoteMyFiles.apk");
symlink("/data/sec_data/SecOmaDownloadProvider.apk", "/system/app/SecOmaDownloadProvider.apk");
symlink("/data/sec_data/SecPhone.apk", "/system/app/SecPhone.apk");
symlink("/data/sec_data/SecSetupWizard.apk", "/system/app/SecSetupWizard.apk");
symlink("/data/sec_data/SecSettings.apk", "/system/app/SecSettings.apk");
symlink("/data/sec_data/SecSettingsProvider.apk", "/system/app/SecSettingsProvider.apk");
symlink("/data/sec_data/SecTelephonyProvider.apk", "/system/app/SecTelephonyProvider.apk");
symlink("/data/sec_data/SecurityProvider.apk", "/system/app/SecurityProvider.apk");
symlink("/data/sec_data/SerialNumberLabelIndicator_JBUP.apk", "/system/app/SerialNumberLabelIndicator_JBUP.apk");
symlink("/data/sec_data/serviceModeApp_U1_EUR_OPEN.apk", "/system/app/serviceModeApp_U1_EUR_OPEN.apk");
symlink("/data/sec_data/SetupWizard.apk", "/system/app/SetupWizard.apk");
symlink("/data/sec_data/SharedStorageBackup.apk", "/system/app/SharedStorageBackup.apk");
symlink("/data/sec_data/shutdown_JBUP.apk", "/system/app/shutdown_JBUP.apk");
symlink("/data/sec_data/SlideShow.apk", "/system/app/SlideShow.apk");
symlink("/data/sec_data/SmartcardService.apk", "/system/app/SmartcardService.apk");
symlink("/data/sec_data/SNS.apk", "/system/app/SNS.apk");
symlink("/data/sec_data/SPlannerAppWidget.apk", "/system/app/SPlannerAppWidget.apk");
symlink("/data/sec_data/SPPPushClient_Prod.apk", "/system/app/SPPPushClient_Prod.apk");
symlink("/data/sec_data/Stk.apk", "/system/app/Stk.apk");
symlink("/data/sec_data/SyncmlDS.apk", "/system/app/SyncmlDS.apk");
symlink("/data/sec_data/SystemInfo_U1_EUR_OPEN.apk", "/system/app/SystemInfo_U1_EUR_OPEN.apk");
symlink("/data/sec_data/SystemUI.apk", "/system/app/SystemUI.apk");
symlink("/data/sec_data/TasksProvider.apk", "/system/app/TasksProvider.apk");
symlink("/data/sec_data/TwDVFSApp.apk", "/system/app/TwDVFSApp.apk");
symlink("/data/sec_data/UserDictionaryProvider.apk", "/system/app/UserDictionaryProvider.apk");
symlink("/data/sec_data/VideoPlayer.apk", "/system/app/VideoPlayer.apk");
symlink("/data/sec_data/VoiceRecorder.apk", "/system/app/VoiceRecorder.apk");
symlink("/data/sec_data/VoiceSearchStub.apk", "/system/app/VoiceSearchStub.apk");
symlink("/data/sec_data/VpnDialogs.apk", "/system/app/VpnDialogs.apk");
symlink("/data/sec_data/WAPPushManager.apk", "/system/app/WAPPushManager.apk");[/COLOR]


In this block, you have to delete BLEUE lines.
Code:
ui_print("Done!");
ui_print("");
ui_print("Setting Permissions");
set_perm_recursive(0, 0, 0755, 0644, "/system");
set_perm_recursive(0, 0, 0755, 0755, "/system/etc/init.d");
set_perm(0, 0, 0755, "/system/etc/init.d/85sqlite");
set_perm(0, 0, 0755, "/system/etc/init.d/Seeder");
set_perm(0, 0, 0755, "/system/etc/init.d/08darky_zipalign");
set_perm(0, 0, 0755, "/system/etc/be_photo");
set_perm(0, 0, 0755, "/system/etc/be_movie");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
set_perm(0, 3003, 06755, "/system/bin/ip");
set_perm(0, 3003, 02750, "/system/bin/netcfg");
set_perm(0, 3004, 02755, "/system/bin/ping");
set_perm(0, 2000, 06750, "/system/bin/run-as");
set_perm_recursive(1002, 1002, 0755, 0440, "/system/etc/bluetooth");
set_perm(0, 0, 0755, "/system/etc/bluetooth");
set_perm(1000, 1000, 0640, "/system/etc/bluetooth/auto_pairing.conf");
set_perm(3002, 3002, 0444, "/system/etc/bluetooth/blacklist.conf");
set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");
set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");
set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");
set_perm(0, 0, 06755, "/system/bin/su");
symlink("/system/bin/su", "/system/xbin/su");
set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor");
set_perm_recursive(0, 0, 0755, 0644, "/system/vendor/firmware");
set_perm(0, 2000, 0755, "/system/vendor/firmware");
set_perm(0, 0, 0777, "/system/etc/init.d/85sqlite");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 1000, 0755, "/system/xbin/busybox");
set_perm(0, 0, 0644, "system/etc/permissions/com.sonyericsson.navigationbar.xml");
set_perm(0, 0, 0755, "system/etc/customization");
set_perm(0, 0, 0755, "system/etc/customization/content");
set_perm(0, 0, 0755, "system/etc/customization/settings");
set_perm(0, 0, 0755, "system/etc/customization/content/com");
set_perm(0, 0, 0755, "system/etc/customization/content/com/sonyericsson");
set_perm(0, 0, 0755, "system/etc/customization/content/com/sonyericsson/r2r");
set_perm(0, 0, 0755, "system/etc/customization/content/com/sonyericsson/r2r/client");
set_perm(0, 0, 0755, "system/etc/customization/content/com/sonyericsson/wallpaperpicker");
set_perm(0, 0, 0755, "system/etc/customization/content/com/sonyericsson/wallpaperpicker/wallpapers");
set_perm(0, 0, 0755, "system/etc/customization/settings/com");
set_perm(0, 0, 0755, "system/etc/customization/settings/com/sonyericsson");
set_perm(0, 0, 0755, "system/etc/customization/settings/com/sonyericsson/android");
set_perm(0, 0, 0755, "system/etc/customization/settings/com/sonyericsson/android/support");
set_perm(0, 0, 0755, "system/etc/customization/settings/com/sonyericsson/androidapp");
set_perm(0, 0, 0755, "system/etc/customization/settings/com/sonyericsson/androidapp/storefront");
set_perm(0, 0, 0755, "system/etc/customization/settings/com/sonyericsson/appextensions");
set_perm(0, 0, 0644, "system/fonts/SoMADigitLight.ttf");
set_perm(0, 0, 0644, "system/framework/com.sonyericsson.navigationbar_impl.jar");
set_perm(0, 0, 0644, "system/app/UxpNxtLockScreen.apk");
symlink("/system/xbin/busybox", "/system/bin/busybox");
run_program("/system/xbin/busybox", "--install", "-s", "/system/xbin");
show_progress(0.100000, 0);
[COLOR="Blue"][B]ui_print("Backing up EFS");
package_extract_file("Biftor/efs_backup.sh", "/tmp/efs_backup.sh");
set_perm(0, 0, 0755, "/tmp/efs_backup.sh");
run_program("/tmp/efs_backup.sh");
ui_print("Flashing kernel ...");
package_extract_file("Biftor/flash_image", "/tmp/flash_image");
set_perm(0, 0, 0777, "/tmp/flash_image");
assert(package_extract_file("Biftor/zImage", "/tmp/zImage"),
       run_program("/tmp/flash_image", "/dev/block/mmcblk0p5", "/tmp/zImage"),
       delete("/tmp/zImage"));
ui_print("Flashing modem ...");
assert(package_extract_file("Biftor/modem.bin", "/tmp/modem.bin"),
       run_program("/tmp/flash_image", "/dev/block/mmcblk0p8", "/tmp/modem.bin"),
       delete("/tmp/modem.bin"));
delete("/tmp/flash_image");
delete("/tmp/efs_backup.sh");[/B][/COLOR]
run_program("/sbin/umount", "/system");
run_program("/sbin/umount", "/data");
run_program("/sbin/umount", "/cache");
[COLOR="Blue"][B]run_program("/sbin/umount", "/preload");[/B][/COLOR]
ui_print("complete enjoy it");
ui_print("Thanks for using Biftor ROM");
ui_print("");
ui_print("");
ui_print("");
ui_print("");
ui_print("");
ui_print("");
ui_print("");
ui_print("");
ui_print("");
ui_print("B I F T O R");



SPECIAL biftor_symlink_preload USE :

We can replace all the symlink lines in original updater-script by a called external script.
I want to talk about all lines with "symlink("/preload/symlink/system/app/" chain replaced by "symlink("/data/sec_data/" chain.

When we tchat about it, Biftor provide me a biftor_script_test2.zip that contains a \tmp\biftor_symlink_preload file to add in our final ZIP ROM modded for 2nd position run.

Like me, if you want to use this file; just put this file in \Biftor\ folder of your ZIP ROM and do the change below in your future updater-script


In updater-script , we can call this biftor_symlink_preload script like this : replace all the block lines with :

symlink("/data/sec_data/xxxxxxxxxxxxxxxx.apk", "/system/app/xxxxxxxxxxxxxxxxxxxxxx.apk");

with only these 6 lines between ##### lines

##############Biftor###########
show_progress(0.100000, 0);
package_extract_file("Biftor/biftor_symlink_preload", "/tmp/biftor_symlink_preload");
set_perm(0, 0, 0777, "/tmp/biftor_symlink_preload");
run_program("/tmp/biftor_symlink_preload");
delete("/tmp/biftor_symlink_preload");
###############


in your updater-script , you will have now :

Code:
symlink("toolbox", "/system/bin/sync");
symlink("toolbox", "/system/bin/top");
symlink("toolbox", "/system/bin/umount");
symlink("toolbox", "/system/bin/uptime");
symlink("toolbox", "/system/bin/vmstat");
symlink("toolbox", "/system/bin/watchprops");
symlink("toolbox", "/system/bin/wipe");
symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");

[COLOR="DarkRed"][B]##############Biftor###########
show_progress(0.100000, 0);
package_extract_file("Biftor/biftor_symlink_preload", "/tmp/biftor_symlink_preload");
set_perm(0, 0, 0777, "/tmp/biftor_symlink_preload");
run_program("/tmp/biftor_symlink_preload");
delete("/tmp/biftor_symlink_preload");
###############[/B][/COLOR]

ui_print("Done!");
ui_print("");
ui_print("Setting Permissions");
set_perm_recursive(0, 0, 0755, 0644, "/system");
set_perm_recursive(0, 0, 0755, 0755, "/system/etc/init.d");
set_perm(0, 0, 0755, "/system/etc/init.d/85sqlite");
set_perm(0, 0, 0755, "/system/etc/init.d/Seeder");

Here the result in image :
97k3.jpg


Have a see of biftor_symlink_preload file script detail :

#!/system/bin/mksh

mount -o remount rw /system
cd /data/sec_data

apk_list=( `ls | grep .apk` )
odex_list=( `ls | grep .odex` )
items=${apk_list[*]}" "${odex_list[*]}

for item in ${items[@]}
do
ln -s /data/sec_data/$item /system/app/$item
done



In an original preload_symlink for 1rst rom, like in NeatRom we have :

#!/system/bin/mksh

mount -o remount rw /system
cd /preload/symlink/system/app

# Can't create array with /sbin/sh, hence we use mksh
apk_list=( `ls | grep .apk` )
odex_list=( `ls | grep .odex` )
items=${apk_list[*]}" "${odex_list[*]}

for item in ${items[@]}
do
ln -s /preload/symlink/system/app/$item /system/app/$item
done

do you see the <> symlinking ? :)

IMPORTANT : other symlink_preload script can be encountered
If this file exists in one of any folder of your future modded ZIP ROM, never forget to change its countains,
this file is <> named , depending of DEV have name it, you can take my universal symlink_preload_for_2nd_rom_only, rename it
as DEV name it in its ROM and place it in the same folder that you find it in the original ZIP ROM. is that seems clear to your ?

In provide 2 version of Biftor ROM V9 updater-script to use to have his great rom in 2nd ROM: just download what you want with the symlink file if needed.



My analyse and result for NeatRom FULL and LITE ROMs updater-script for 2nd ROM:

dth0.jpg


We can find some other updater-script with some other commands ,
i think with aroma-installer in, like WANAM 14.6 ROM ,
so this is my analyse and result for WANAM V14.6 ROM :


gih7.jpg
 
Last edited:

Troubadour666

Recognized Contributor
Aug 3, 2012
3,140
7,035
43.7031 - 7.2661
some modded updater-script and others tools to mod and theme your BEST 2nd ROM

General Attachments :

all file i provide have to be renamed, without ".pdf" at their end, there are txt files.

Biftor™ Rom-V9-JB- XWLSS-No Wipe
you will find here 2 versions of Biftor ROM V9 updater-script that you can use to have his great rom in 2nd ROM: just download what you want and rename it as the blue colored caracters.

VERSION A : For2ndRomONLY-BIFTORV9-updater-script-without-external-symlink-script.pdf"

VERSION B :For2ndRomONLY-BIFTORV9-updater-script-with-called-external-symlink-script.pdf + biftor_symlink_preload.pdf (drag it in your modded ZIP ROM opened with WINRAR in \Biftor\ folder, if you use this updater-script.

A litle gift : 2ndRomONLY-updater-script-Biftor™ Aroma-Mod-V2-JB-LS8-LSD-LSE-LSN-LSS-LSW.pdf



XWLSW NeatRom Full & XWLSW NeatROM Lite v4.8

For2ndRomONLY-updater-script-I9100XWLSW_NeatROM_Full.pdf
and
For2ndRomONLY-updater-script-I9100XWLSW_NeatROM_Lite.pdf


WanamLite JB LSW V14.6

For2ndRomONLY-updater-script-GT-I9100_WanamLite.XWLSW.V14.6.NO-WIPE.pdf


TOOLS

universal symlink_preload_for_2nd_rom_only.pdf to rename to symlink_preload and replace in ZIP ROM for 2nd ROM usage.

Winscp-Pack.zip to flash (see post 3)
Winscp-Pack.rar to uncompress and drag in ZIP ROM (see post 3)

CWM_symlinker_data-data_sec_to_system_app - For2ndRomONLY.zip (to recreate symlinks of apks from \data\sec_data to \system\app\ folder)

CWM_VRTHEMER - For2ndRomONLY.zip to make your own vrtheme_mod file for your new 2nd rom.
 

Attachments

  • For2ndRomONLY-BIFTORV9-updater-script-without-external-symlink-script.pdf
    29.9 KB · Views: 12
  • For2ndRomONLY-BIFTORV9-updater-script-with-called-external-symlink-script.pdf
    20.9 KB · Views: 6
  • biftor_symlink_preload.pdf
    250 bytes · Views: 5
  • 2ndRomONLY-updater-script-Biftor-Aroma-Mod-V2-JB-LS8-LSD-LSE-LSN-LSS-LSW.pdf
    20.4 KB · Views: 9
  • For2ndRomONLY-updater-script-I9100XWLSW_NeatROM_Full.pdf
    18.7 KB · Views: 11
  • For2ndRomONLY-updater-script-I9100XWLSW_NeatROM_Lite.pdf
    18.8 KB · Views: 20
  • For2ndRomONLY-updater-script-GT-I9100_WanamLite.XWLSW.V14.6.NO-WIPE.pdf
    12.3 KB · Views: 15
  • Winscp-Pack.zip
    477.6 KB · Views: 14
  • Winscp-Pack.rar
    331.5 KB · Views: 6
Last edited:

Troubadour666

Recognized Contributor
Aug 3, 2012
3,140
7,035
43.7031 - 7.2661
[how to] put U BEST Mod or Vrtheme CWM File in U BEST 2nd ROM "coolly" flashed :)

Coming soon :)


You will find here, with my personnal understanding :

- what is a mod or a theme ?

- APK file analyse before mod or theme it .

- Analyse and good understanding of a ZIP MOD or VRTHEME file : (detail for 1rst rom exploitation)
- updater-script and symlink_preload purpose for 2nd ROM[/COLOR]
- detailled installtheme.sh analyse universal script for 2nd ROM

- Finaly, [how to] put U BEST Mod or Vrtheme CWM File in U BEST 2nd ROM "coolly" flashed :)
 
Last edited:

Troubadour666

Recognized Contributor
Aug 3, 2012
3,140
7,035
43.7031 - 7.2661
Work in progress

next show , next week : how to port themes and mods like : (with 'alive' Aroma)

Biftor™ Aroma-Mod-V2-JB-LS8-LSD-LSE-LSN-LSS-LSW : updater-script ported for 2nd rom

Jelly Bean Style Reloaded 1.07 - AROMA : updater-script, create_sec_data_symlinks and installtheme.sh ported for 2nd rom

[AROMA]Criskelo Theme v5.1 [Bitfor v9.X] : updater-script and installtheme.sh ported for 2nd rom

thanks


i realize now that i have not enough time to post this "big show" "how to port themes and mods to 2nd rom", but i can share if someone want to test.

thanks
 
Last edited:

grimworld

Member
Jul 29, 2008
12
1
Amazing tutorial. Huge thumbs up and hopefully I can understand at least some of it by the time I finish my third read :rolleyes:

Sent from my GT-I9100 using xda premium
 
  • Like
Reactions: Biftor

wis1152

Senior Member
Jun 8, 2011
2,729
2,644
44
luton uk
media.xda-developers.com
@
Troubadour666
and Biftor

This is a very good tutorial BUT there are lots of people that will not understand it, as seen in other posts. I still think it would be worth posting a complete Biftor v9 2nd rom zip for people just to download and flash but of-course this is down to you two.



Sent from my GT-I9100 using Tapatalk 4 Beta
 

Troubadour666

Recognized Contributor
Aug 3, 2012
3,140
7,035
43.7031 - 7.2661
about uploading an entire rom for 2nd position

Hi Wiz :)

i think i will do this when i finish next last part of thread, "vrthemes and moding a 2nd rom".

Is it so hard to download an "updater-script + some addons" PACK i made for a rom to be run in 2nd position, and drag them in ZIP ROM opened with, at the same place there are in my RAR PACK extracted by ppl?

the only thing we have to do to run a ROM in second position is to modify its updater-script and preload_symlink script.

RAR are 10ko large, ROM is 700Mo .

but if ppl are so embarassed with reading my english and understand my work, i upload rom on sunday i think.

thanks

ppl find BIFTOR_V9_FOR_2ndROM.ZIP here now :) NOT GOOD, DELETED

if you still dont boot your BEST ROM in 2nd ROM and rest on a black screen, please go download this tool from post #7 "universal symlink_data_sec_data_for_2nd_rom_only.pdf" , rename it with .ZIP at the end instead of .PDF, put in your SDCARD EXT, REBOOT recovery, flash it in your 2nd rom by dual-boot menu.

universal symlink_data_sec_data_for_2nd_rom_only.pdf : http://forum.xda-developers.com/attachment.php?attachmentid=2053031&d=1371592714

thanks.


Cause symlink process doesn't works, i re-upload 2ndRomONLY-BiftorRom-V9-JB- XWLSS-No Wipe-V9_XWLSS_Fix-PATCHED-V2.zip here without biftor_settings.apk and XWLSS FIX PATCHED included.

thanks a lot and i apologized for last bad version too.
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 21
    Hi all @Biftor ROM dualbooters,
    Only DorimanX 8.43 was added instead of original kernel.

    DualBoot-Biftor™ Rom-V14-JB-XWMS1-No Wipe.zip - 453.78 MB

    thanks

    Original @Biftor thread : http://forum.xda-developers.com/showthread.php?t=2026911

    thanks to @GamingDj for this video he made for @Biftor , so you can see the power of the DEV :)



    Hi everybody,

    Here is the story :

    Some 7 days ago, i received a PM from Wiz1152 who told me that he tested one my updater-script provided for 2nd ROM and had success with it.

    He gave a test with an updater-script i touch for use BIFTOR V9 ROM as 2nd ROM.

    As he also has sent his PM to Biftor , he finaly asked us if we can share a thread to show ppl how to have Biftor V9 in 2nd ROM.

    So i prepared this post to tell all ppl interested by a JB sammy 4.1.2 as 2nd rom that they could find here soon all tips, tricks and tweaks i have learnt on XDA to have Biftor V9 rom and also all jb sammy 4.1.2 rom, as a 2nd rom, with the only kernel i know to do this, DorimanX kernel, V8.xx version only.

    Ambitious you can say, but i hope this would help many users to make any JB 4.1.2 ROM they want as their BEST 2nd ROM.

    Before you thank me, thanks all these people, i've learnt by reading their threads and posts.
    (i must say that sometimes, for a better undertanding of what i was doing for my 2nd ROM,
    i had to PM some of them, and i always received a large and efficient detailled response
    from each of them, i encourage you to always ask to DEV what are your troubles)

    Disclaimer : before starting any operation, you have to know that you can damage your phone, use at your own risk !
    before you mix my things , you have to know that you can damage and brick your tel

    For the kernel you will GO here for your dualboot :
    thanks DorimanX

    For the ROMs i extract and mod updater-script here,
    Biftor
    Salesale
    Indie
    Wanam

    I'm going to use mods from the following dev as demos, and one day,
    you'll try some themes and mods from them, so thank them like me :
    Spannaa
    ApriliaM3
    Carotix
    engloa
    and much others posts from XDA thread....
    Like me, you should learn a lot with the NeatRom Family Members from this INCREDIBLE NEATROM FULL & LITE ROM THREAD


    In this thread, i will never provide a link with an updater-script that will flash a kernel or a modem.
    My modded updater-script doesn't work well if you flash a modded for 2nd ROM JB sammy 4.1.2 ROM on 1rst position ROM too.
    The only one kernel i talk to you about in this thread is DORIMANX KERNEL all V8.xx releases. It's saying in XDA
    that there is no BEST KERNEL for I9100 (and other tel), as we know too, there is no BEST ROM , but DorimanX V8.xx
    all releases are the only one i can use to have my dualboot safe, so for me, it is the BEST KERNEL i use :)



    expect all image are not too big for viewing, so works in progress, available very soon.
    11
    Preambule and Summary of this thread

    I make this thread myself to show ppl my method to port all JB SAMMY 4.1.2 ROM
    (MS1, LSE, LS8, LSJ, LSD, LSN, LSS and LSW) on 2nd ROM while having an AOSP 4.2.2 ROM at 1rst position.


    You're always reading that it's impossible to dualboot jb sammy 4.1.2 roms,
    and in fact, yes, it's impossible if we flash this type of ROM on our 2nd
    rom as we usualy do it before JB SAMMY 4.1.2 ROM are outed with a permitted
    kernel to do dualboot.


    Samsung provide us JB 4.1.2 BIGs versions ROMs with so many bloatwares than ICS version before,
    and for that they are obliged to add an extended partition named \PRELOAD\ to put all of them in.


    So, as a stock kernel doesn't manage 2nd rom, we have to find a custom kernel to do this,
    and we have to manage this \PRELOAD\ partition too, to flash rom in 2nd ROM.


    I give you here all my learning from over XDA threads since 4 months of dualbooting JB SAMMY 4.1.2 ROMs.

    All you have to know it's that we have to extract apks app files which are in \preload\ folder of a ZIP ROM
    in an another partition when we want to run a JB SAMMY 4.1.2 700Mo BIG ROM as 2nd ROM,
    with DorimanX kernel, 8.xx Version ONLY ! DorimanX kernel ONLY.


    In 2nd ROM usage, DorimanX says us to put \preload\ folder content of a ZIP ROM in \DATA\ partition ,
    exactly in \data\sec_data\ folder !


    Somes months ago, 1rst version of dualboot have used \data\app\app\ folder as a deported \preload\ folder,
    but this was abandonned, by me for instance, when DorimanX says me to use \data\sec_data\ folder instead
    of \data\app\app\.


    Why do we must need a valid 2nd ROM running ?
    AFAIK, It's interesting to have a "robust" 1st rom like a ROOTBOX ROM and having a 2nd rom
    like a jb 4.1.2 rom can give us totaly managment of all we want to change in our system without flashing
    anything else at all (except kernel, modem and rom), we can theme and mod as we want and just reboot to take changes on.
    With the help of soft like WINSCP i will show in a post below, just make your change and reboot, and finaly enjoy change you're made :)
    (as command line utility, Putty seems to be a good alternative to ADB).


    To enable WINSCP communication between your PC and your TEL, I also explain here how to include somes binaries
    in your future modded ZIP JB 4.1.2 ROM for 2nd ROM, before flashing it, so you'll have an another way to pass some
    command lines without ADB utility , but in a Putty terminal.


    The good questions are :

    How can we port a BIG ROM like 600-700Mo space large systems partitions (system & preload)
    in our I9100 which ROM we want to run as a 2nd ROM with \SYSTEM\ partition about only 500Mo space large?

    how to bypass the use of the \PRELOAD\ partition use when we run the JB 4.1.2 ROM as 2nd ROM ?


    We know that Samsung add many more bloatware than possible in the JB 4.1.2
    Firmware, and because of this addition, they must have to add a new partition they named
    \PRELOAD\ , Samsung has deported many system files in this partition, in the
    \preload\symlink\system\app\ folder.


    As kernel stock doesn't manage directly files in \PRELOAD\ partition sub-folders,
    and kernel stock doesn't know there are many apks in \preload\symlink\system\app\
    to manage, Samsung has symlinked these apks to \SYSTEM\ partition in \system\app\
    with many LNs files in \system\app\ folder.


    Some rare Kernel can dualboot, like DorimanX kernel, and it give us the capabilities to port
    a JB SAMMY 4.1.2 ROM in 2nd ROM by the deporting of all APKs in the \preload\symlink\system\app\
    folder (when 1rst rom installed) to a sub-folder of the 2nd ROM \DATA\ partition,
    named \data\sec_data\ (when ported rom in 2nd rom)


    We can do this because DorimanX kernel v8.xx permit it .

    At this point of dev, you have to know that while runing your 2nd rom as i show you this way,
    your BEST kernel (DorimanX now because you use it now!!) makes the \PRELOAD\ partition
    mounting point as a mirror of the \SYSTEM\ partition mounting point (of 2nd ROM too),
    and now, you went to understand that you can easilly, completely, port your BEST JB SAMMY 4.1.2 ROM
    in 2nd position ROM :)


    When DorimanX boots our 2nd ROM, it do it as if \PRELOAD\ partition doesn't exist, i like to imagine that :)

    An another way of a understanding this is :
    with DorimanX kernel, when we have two roms like i have, and when you run your 4.2.2 1rst ROM like mine
    (or a rootbox rom for sample), you can see your 1rst ROM \SYSTEM\ partition in the folder named \system\,
    but we can see a named \preload\ folder, and you have to know that it's the \SYSTEM\ partition of your 2nd !
    And so, after you have enable and well runing your 2nd ROM, you will be able to make all manipulations you want
    on your system phone as you will never believe and dream it like that.


    Plus, lastest DorimanX V8.xx kernel give us total mounted of 2nd ROM \DATA\ partition while
    we are runing our 4.2.2 1rst rom, in a named \data_sec_rom\ folder ;
    and when we run our new flsehly modded JB 4.1.2 2nd ROM, we can see 1rst ROM \DATA\ partition
    in a named \data_pri_rom\ folder, so, again, imagine all advantages with that, you can manage
    all apks and all folders of the two ROMs installed in your tel.


    You have to know too that when you'are runing 1rst ROM, folder \data_sec_rom\ is the mounted
    point of \sdcard\.secondrom\DATA.IMG file, corresponding of 2nd ROM \DATA\ partition, with
    total access in it.


    This image below shows us what we can do with all folders and partitions of 2nd ROM mounted while
    we were runing our 1rst 4.2.2 ROM.

    And i need between 1 and 5-6 steps to explain here all you have to do to accomplish this :

    wqth.jpg



    You will find in this thread all the needed steps and all the tools for you to put your BEST JB SAMMY 4.1.2
    ROM in 2nd ROM, with DorimanX kernel V8.xx installed.

    NEXT POST TO MAKE :

    1 - HOW TO ENABLE WINSCP AND PUTTY COMMUNICATIONS BETWEEN PC and TEL

    2 - WHY I ONLY USE DORIMANX KERNEL V8.xx.

    3 - What is doing, line by line, an UPDATER-SCRIPT from a JB SAMMY 4.1.2 ROM flashed as 1rst ROM (BIFTOR ROM inside demonstration)

    4 - HOW TO MOD UPDATER-SCRIPT with \PRELOAD\ partition managment folder pushed in \DATA\ partition of a 2nd ROM,(on \data\sec_data\ folder) with two detailled ROMs such as :
    - Biftor ROM and its last addon. (biftor_preload_symlink)
    - NeatROM FULL & LITE portage to 2nd ROM

    5 - Attachments

    6 - How to theme and mod our new BEST 2nd ROM freshly flashed.
    - vrtheme cwm flasher
    - normal cwm mods




    Requirements :

    Tools you will use on your PC :

    - WINRAR (to open, add, suppress all you want in the ZIP)
    some advise with it : please you must let winrar working & repacking well before closing it, if not,
    you can have 'big surprise' with broken zip and remember you have to never create or rename
    a folder in the opened ZIP in winrar, by winrar menu choice, you must have just to delete a
    folder instead of renaming it, and just re-drag it from you PC. be carrefull of this)

    - Notepad ++ (you can use this simply guide i made to perform your use)

    - WINSCP software (instead of ADB command lines, i use WINSCP to access my
    tel folders and partitions by WIFI, i use droidsshd.apk app in tel to enable telnet access
    (in WINSCP STAGE we can see all detail to enable this way of access )

    - Initial JB SAMMY 4.1.2 ROM from DEV you want to use in 2nd ROM

    - in this repos of samples i make : https://mega.co.nz/#F!6tQRBZCY!Fg0i0WNN00s4DznvVOuP5g, one of my
    updater-script i modded for some lastest lsw 4.1.2 roms i found on i9100'xda thread.
    (i expect after reading this thread, you can mod youself your BEST ROM for 2nd ROM)

    - if you want to VRTHEME or MOD your new freshly 2nd ROM, take my toolpack here




    On your TEL, runing a custom rom AOSP, AOKP CM in 1rst rom, in an external SD folder, you have put :

    - Dorimanx V8.xx lastest kernel ZIP

    - The ROM with my updater-script added as replacement of original

    - insure you have a space for the 2nd rom created as the method below in the KERNEL step.
    11
    some modded updater-script and others tools to mod and theme your BEST 2nd ROM

    General Attachments :

    all file i provide have to be renamed, without ".pdf" at their end, there are txt files.

    Biftor™ Rom-V9-JB- XWLSS-No Wipe
    you will find here 2 versions of Biftor ROM V9 updater-script that you can use to have his great rom in 2nd ROM: just download what you want and rename it as the blue colored caracters.

    VERSION A : For2ndRomONLY-BIFTORV9-updater-script-without-external-symlink-script.pdf"

    VERSION B :For2ndRomONLY-BIFTORV9-updater-script-with-called-external-symlink-script.pdf + biftor_symlink_preload.pdf (drag it in your modded ZIP ROM opened with WINRAR in \Biftor\ folder, if you use this updater-script.

    A litle gift : 2ndRomONLY-updater-script-Biftor™ Aroma-Mod-V2-JB-LS8-LSD-LSE-LSN-LSS-LSW.pdf



    XWLSW NeatRom Full & XWLSW NeatROM Lite v4.8

    For2ndRomONLY-updater-script-I9100XWLSW_NeatROM_Full.pdf
    and
    For2ndRomONLY-updater-script-I9100XWLSW_NeatROM_Lite.pdf


    WanamLite JB LSW V14.6

    For2ndRomONLY-updater-script-GT-I9100_WanamLite.XWLSW.V14.6.NO-WIPE.pdf


    TOOLS

    universal symlink_preload_for_2nd_rom_only.pdf to rename to symlink_preload and replace in ZIP ROM for 2nd ROM usage.

    Winscp-Pack.zip to flash (see post 3)
    Winscp-Pack.rar to uncompress and drag in ZIP ROM (see post 3)

    CWM_symlinker_data-data_sec_to_system_app - For2ndRomONLY.zip (to recreate symlinks of apks from \data\sec_data to \system\app\ folder)

    CWM_VRTHEMER - For2ndRomONLY.zip to make your own vrtheme_mod file for your new 2nd rom.
    10
    Binaries addons to enable WINSCP communications STEP

    One day i ask myself how to bypass myself from adb command line.

    I remember as an old Ipod user i'm that i can have access to its system partition with the use of winscp soft.

    i try to find by myself the necessary binaries, and i find them .
    i make myself an winscp-pack.rar or CWM-winscp-pack.zip to easily install it when i flash a rom, also this pack could be copied
    in our new modded 2nd ROM structure before we flash it.
    After that step, which can make communicate winscp installed on your PC with your i9100 system, on your personnal network.


    Here, we can see how to put my winscp-pack.rar in our \system\ partition , by copying structure folder winscp-pack in external sdcard and
    then with rootexplorer (or such a same tool) , we copy all folders form sdcard we have just talk to \system\ partition folders. we verify rights and change them if there are not good and we reboot.


    5187.jpg


    b6z5.jpg


    vptc.jpg


    61mf.jpg


    you will find in some posts below WINSCP-PACK.rar (delete .pdf at end of WINSCP-PACK.rar.pdf) and CWM-winscp-pack.zip to flash.
    use the first if you want put it manually in your future modded ZIP ROM 2nd ROM or on your phone like i describe you.


    Now that we have the necessaries binaries installed on our system, we must have an application to enable SCP communication .

    I found over the net an APK soft, Droidsshd.apk (https://code.google.com/p/droidsshd/)
    i download APK from there, put it on my external sdcard and install it like normal apk by launching it using Rootexplorer.
    result : it gives me a new installed APKs in \data\app\ named
    br.com.bott.droidsshd-1.apk.



    below, a little video to show how to set-up droidsshd.apk V0.5 options.


    On your PC, once you have installed WINSCP download before, you have to set WINSCP options like this :








    I specialized myself with dual-boot but i think this WINSCP-PACK could be integrated in ALL S2 JB SAMMY 4.1.2 ROMS, 1rst or 2nd position flashing.


    I think that when you will have enable WINSCP to access on your phone like me , your understanding of your
    system phone will change and so you will quickly learn more and more about your system phone , like i do it my friend !


    This large confused image (my 1rst SHOOT) below resumes to you how you can integrate my winscp toolpack in your rooted tel or rom'zip
    21f5.jpg


    Here, an image shows you how you can fix and manage rights on files while runing WINSCP interface .

    0u08.jpg


    what we can do when WINSCP and TEL are communicating?
    You can manage the entire system of your phone, in an explorer interface.
    You can theme and add mods in your 2nd rom without flashig anything else (except vrtheme.zip files)



    OTHER TWEAKS :

    One day, i ask DorimanX how to mount the data partition from 2nd rom while runing 1rst rom,
    he send me this 1rst response :

    ==================================================================================
    all you do for adapt JB SAMMY to sec ROM is only your things, i am not interested.
    about mounting the sec rom data!
    i have added auto mount to kernel script!
    so in next kernel it's will be by auto from now.
    if you want to test now.
    then do this!
    using adb as su
    losetup
    this will show you all used LOOP devices.
    see one that free (missing number)
    then do this
    mkdir /data_sec_rom;
    chmod 777 /data_sec_rom;
    losetup /dev/block/loop4 /sdcard/.secondrom/data.img;
    mount -t ext4 /dev/block/loop4 /data_sec_rom;
    ls -la /data_sec_rom;
    i have used loop4 but if you see it already used then use other number!
    then just go to /data_sec_rom;
    and all files there
    have fun.

    ==================================================================================

    One another day, i ask DorimanX how to mount 1rst ROM \SYSTEM\ partition while i'm running my 2nd rom,
    (dont forget that in 2nd rom, preload = system , so where is the mounted 1rst rom \SYSTEM\ partition ?)
    so his response was :

    ==================================================================================
    not mounted.
    but exist
    ADB:
    mkdir /temp_system
    chmod -R 777 /temp_system
    mount -t ext4 /dev/block/mmcblk0p9 /temp_system
    then you get system of PRI rom in folder /temp_system

    ==================================================================================

    With this last sequence command lines, we have all systems partition mounted while we run our second rom, that's great, no ?
    10
    Updater-script Analyse

    Here we can find the most important part of this thread !

    For a flash in 2nd position, we have to understand how updater-script runs its lines when we flash a JB 4.1.2 ROM as a unique 1rst ROM.

    1rst, in many XDA threads and on other forums, you must know that you will find many ROMs, with full wipe or not. Dont care about it now, my purpose is to use 2nd rom as tests roms so it's not necessary to keep some line in modded updater-script, like formating partition or wiping, we can manage this ourselves , no? And because of winscp access , we can do what we want too.

    lines like :
    - formating system or data partition, we can manage them.
    - flashing kernel, kernel has been already flashed before, dorimanx v8.xx lastest.
    - flashing modem, modem of 1rst rom already exist and is i think it's fine


    2nd, and see below, this is a list of tasks executed by an original updater-script : (on 1rst rom usage)

    - presentation rom and dev
    - unmount some partitions
    - formatting \system\ and \preload\ partitions sometimes, without mounting them
    - wiping data lines
    - re-mounting system and preload partitions
    - extracting zip \data folder if exist in zip rom, on data partition mounted before
    - extracting zip \system folder to system partiton mounted before
    - extracting zip \preload folder to preload partition mounted before
    - installing busybox lines
    - symlinking system binaries
    - symlinking apks from preload partition to system partition
    - the fix of the effective rights on new system partition flashed
    - the EFS backuping
    - flashing kernel lines
    - flashing modem lines
    - unmounting partitions lines
    - "say thanks dev" lines


    it's saying that BIFTOR ROM is a rom that ppl want to have as their 2nd ROM,
    so i take its updater-script for my purpose of demonstration :

    Here, images with detailled blocks lines of BIFTOR V9 updater-script :

    1xnw.jpg


    spml.jpg


    7h07.jpg


    gcqp.jpg


    NEXT : FINALY, YOUR BEST ROM IN 2ND ROM
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone