Troubadour666 said:
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
Click to expand...
Click to collapse
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.
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 :
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
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.
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.
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
Here, an image shows you how you can fix and manage rights on files while runing WINSCP interface .
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 ?
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
go to :
- dual-boot menu
- wipe 2ndROM data/cache
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
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.)
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):
let's see this in next 2 posts : HOW TO FINALY MODDED UPDATER-SCRIPT FOR YOUR BEST ROM IN 2ND ROM
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 :
NEXT : FINALY, YOUR BEST ROM IN 2ND ROM
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 :
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:
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 :
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.
[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
Hi Great Great Great +1000
You finally success my friend this is the best, I know your hard work, this is very useful
Thanks
i am here for anything
Keep it Up Your Good work my friend
+1000
Goodluck
Armin.
Sent from my GT-I9100 using xda premium
Thanks really great work!!!
whats the useful of that ?
WAAAAAAWWWW,
just like to say it's an awesome tutorial, now everybody can do this, and I don't have time anymore for maintaining the thread.
Nice work,
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
Amazing .. So much hard work... Thanks
Sent from my GT-I9100 using xda premium
OMG. I don't want dualboot thanks
Emre9110 said:
OMG. I don't want dualboot thanks
Click to expand...
Click to collapse
Don't bother reading or commenting then buddy
Sent from my GT-I9100 using Tapatalk 4 Beta
Amazing tutorial. Huge thumbs up and hopefully I can understand at least some of it by the time I finish my third read
Sent from my GT-I9100 using xda premium
@
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 too.
wis1152 said:
@
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.
Click to expand...
Click to collapse
Sent from my GT-I9100 using Tapatalk 4 Beta
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.
First I am no Real Developer. So read an test what I say.
In fact this may be a known issue for real developers.
This belongs to GT-P5210
I found my self installing various Zip files in recovery mod that Failed!
After carefully study various ZIP files that work and comparing them with the ZIP files that does not, I found that the ones that work have the "update-binary" with size of 322,688 bytes and the ones that fail have only 194,636!
Tis is for those of you like me that are starting to learn how to develop.
Get an update file that work in P5210: For example go and get
Code:
http://roms.bindroid.com/downloads/viewcategory/11-stock
and download the file : no_bloatware_stock_rom.zip
Now using 7zip or any other compressor, go ahead and decompress the file. You will see the following folders: META-INF\com\google\android
Inside android there is a binary called: update-binary
that I understand interprets the commands inside the script called: updater-script
Is this update-binary the one I am talking about. This is 322,688 bytes!
- - - - - - - - - - - - - - - - - - - - -
Now lest download a zip file that does not work in our P5210.
I been studying a way to back up our partitions. So I been reading on:
Online Nandroid / Nandroid Backup without re-booting
http://forum.xda-developers.com/showthread.php?t=1620255
At the bottom of the first post is the link to the program. This program is install on a rooted device via zip file on recovery mode.
Here is a direct link for "onandroidv9.20.zip" so you to follow me.
http://forum.xda-developers.com/attachment.php?attachmentid=2389865&d=1384355365
Try to install using TWRP by saving the file onandroidv9.20.zip on your Internal memory using the PC.
In TWRP then you will do Install and then search /emmc for onandroidv9.20.zip. Select the file and install.
You will see:
Code:
Updating partition details...
Installing '/emmc/onandroidv9.20.zip' ...
Check for MD5 file ...
Skip MD5 check: no MD5 file found.
[COLOR="Red"]E:Error executing updater binary in zip '/emmc/onandroidv9.20./onandroidv9.20.zip'
Error flashing zip '/emmc/onandroidv9.20./onandroidv9.20.zip'[/COLOR]
Injecting TWRP into boot Image...
TWRP Injection complete.
Updating partition details...
[COLOR="Red"]FAILED[/COLOR]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
So then I thought this has to be with the issue our P5210 is x86. And for sure my friend DutchDanny compiled that "update-binary" special for us.
So since this files have no signature I decide to copy the "update-binary" from the DutchDanny Files and replace the one inside onandroidv9.20.zip and I rename this modified file onandroidv9.20x86.zip
Then I try to install it in TWRP and guess what!!!! Yes it install without any issue.
So this "update-binary" that I saw first on DutchDanny files is been copied on all roms that we see posted here. So this is known to our real developers.
But I thought it should be shown, so that we can force the Failing Zip Files to work in P5210.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Now Here is an Interesting Thing.......
Our GT-P5210 is x86. Not : armeabi or armeabi-v7a nor mips!!!!!
But most of all application in the market are armeabi or armeabi-v7a. They do not have a x86 version.
But when you are running Android normally yesssssss all apks work fine. So how is that possible?
Some people has claim that there are a secondary armeabi processor inside or x86 device. Others think there is emulation!! I do not know.
But I know I had side load many apks really old at the beginning of Android when there was no x86 and they most all work. A few exceptions.
For example MXPlayer requires a special MXPlayer Code Pack. And if you look inside MXPlayer apk that there is a folder "lib" that have sub folders "x86, armeabi or armeabi-v7a and mips". With the applicable libraries that for sure are compiled for each different processor.
If you go into MX Player Codec (x86).apk in lib you will see only "Lib\x86" as expected. It is to be used only in x86.
What I a saying, It is possible that our P5210 have some sort of way of ruining armeabi code while ruining normally. But there are things that require true x86 code like some libraries. This only while you are ruining normally the OS. And I expect that when in Recovery this does not apply making many zip designed for armeabi to fail.
I hope this is useful for you.
Edited:
Correction: There is no second CPU but in fact allmost all apps run under Java Dalvik and libraries via emulation ( houdini library) please see below.
Wow, good info! It also makes me realize just how much I have to learn.
Wow, good troubleshooting. Thank you for taking the time and putting this on paper. I hope with more research somone will crack this x86 product.
Sent from my GT-P5210 using xda app-developers app
imagelost said:
Wow, good troubleshooting. Thank you for taking the time and putting this on paper. I hope with more research somone will crack this x86 product.
Sent from my GT-P5210 using xda app-developers app
Click to expand...
Click to collapse
Next see my post for more info in our OS , x86, armeabi and Java Virtual Machine (Dalvik)
http://forum.xda-developers.com/showpost.php?p=49316921&postcount=51
http://forum.xda-developers.com/showpost.php?p=49324166&postcount=54
Sorry for the slight OT post but the tab 3 10.1 has an intel X86 processor. It is able to run native android apps (compiled for ARM) using something called libhoudini
http://commonsware.com/blog/2013/11/21/libhoudini-what-it-means-for-developers.html
This is just my understanding. sorry if anythin gi've said is wrong.
Thanks
I kow there are many old developers that do not think like me. But I am greatfull of any information that gets to be publis here.
I searched for moths for the answer of how this P52xx where managing old ARM base apk and compiled libraries. No one gave published here an anser . Just A few day I relize that most work becouse of Java Dalvic, and that the libs where handle by this houdini magic.
But please understand that this update.zip are build to run in recovery mode. It is our understanding that there is no houdini magic runing on recovery mode. Thanksfull most is dome on script, but those scrit are translated by update-binary. As I understand this update-binary the is recquired to be compiled for x86. Since no houdini is availabe in recovery mode.
I have to make also clear, that it is my understanding that if an update.zip uses more binary files, they also may be required to be compiled for x86. We can mention busybox, toolbox but may be more!! So if you have an update.zip that keep failng, Bring the atention to the developer and ask him politely to understand that our tablets require this binaries compiled for x86.
Sory for the spelling errors I have no dictionary where I am at know.
Thank you a lot
Thanks a lot OP!that was really heplful thread:good::good::good:,i thought the problem was to rename the update-script to update-binary and delete the other 'update-binary'.
LYandroid;49475925... said:
i thought the problem was to rename the update-script to update-binary and delete the other 'update-binary':
Click to expand...
Click to collapse
I am no expert, but :
update-binary : is the program that interprets the instructions place in the "script", then execute them. Once compiled it never changes excepts for updates or improvements.
update-t or updater-script : is just a script, where we place our set of instructions to perform a task. This change all the time since it will contains different instructions, for every different task we desire to do.
You can not rename one to the other, they are two different things. Normally you need both the binary and the script. But I have seen binaries that do not require the script, I guess they are compile specially to include in them the commands!
I have a motorola xt890 "Razr i" who has also an intel processor atom z580 x86, some developers also try to port first cm for our devices, we already have a build that boot and everything its awesome, but hasnt have sound , also about the updater script, there is a special one for the x86 architechture, some devs on our forum have it already
Maybe you should check the info about, its on the Motorola Razr I development forum from here.
Enviado desde mi XT890 mediante Tapatalk
Thanks for the info on changing the update-binary. I also had to change the line in my updater-script that was trying to run busybox from /sbin to /system/xbin.
Sent from my SM-N900V using XDA Premium HD app
I am trying to install this script with TWRP using your method, but it seems failed.
http://forum.xda-developers.com/showthread.php?p=49903814
would you mind to try it?
I downloaded the script installation zip, changed the update-binary, and it gave an error before executing any of the updater-script. When I changed all lines in the updater-script trying to run programs in busybox from /sbin to /system/xbin, most of the updater-script executed. The one error was my fault in syntax. I know my busybox is installed to /system/xbin, but I don't know anything about busybox itself and it's symlinks. Where is everyone else's busybox installed? Is the location of busybox simply another difference with x86 android builds or am I missing some symlink?
Sent from my SM-N900V using XDA Premium HD app
I been busy. Sorry for the delay.
I am not sure of what I am about to say but here is my understanding. Please keep in mind I am also learning.
1) busybox is an added User binary file that we add to the Android system partition. Most of us did not actually added it ourself, we use an application to add it to Android "system" partition. So when we boot to Android OS it is then there ready for us.
2) But In linux (Yes Android Java Dalvik run on top of Linux) where the User place his own binaries is not well define or implemented. So you will find time after time a problem similar to this situation.
3) So, I confessed I am not sure where busybox binary should really be. I know that normally I will see the Real busybox is in one place and find simlinks ( shorcuts) in the rest of those locations.
4) Now it is important to keep in mind that the folders: /sbin, /xbin, /system, /system\bin, /system/xbin not necessary are the same when you boot in Android OS or when you boot in Recovery!!!!!! Read this 2 or 3 times!!! It is important.
5) In the case of Recovery Partition busybox is there because the developer that created that partition did it for us. Clearly where it is will depend on what the recovery partition's developer decided to place it. I do not know right now where is in CWM that DutchDanny made since I no longer have that in my Tablet. Latter I can try to inspect the recovery.img and tell you.
6) Where is busybox in my P5210:
* I am inspecting my TWRP and I can see that we have a "/bin/busybox". And I do not see folders "xbin" neither in "/xbin" nor in "\system\xbin".
* I am currently testing rom "Bindroid One ver 2.01". In this OS I can see only "/system/xbin/busybox". I have no sysmlinks! Interesting, Not important to me. Keep in mind that I am testing I had no need for it or installing any application that may had require it.
@chchia & @themoneyman It seems both of you are talking about same script but i can be wrong?
Butt....... lets look at the script anyway.
Code:
ui_print(" ");
ui_print("================================");
ui_print("********************************");
ui_print(" ");
ui_print(" T w e a k D r y p t ");
ui_print(" ");
ui_print(" by ");
ui_print(" ");
ui_print(" Team T.D.T ");
ui_print(" ");
ui_print("********************************");
ui_print("================================");
ui_print(" ");
ui_print("Mounting /system /data /cache");
ui_print("");
run_program("/sbin/mount", "/system");
run_program("/sbin/mount", "/data");
run_program("/sbin/mount", "/cache");
show_progress(1, 15);
run_program("/sbin/sleep", "5");
run_program("/sbin/busybox","mv","-f","/system/etc/init.d/50selinuxrelabel","/tmp");
run_program("/sbin/busybox","mv","-f","/system/etc/init.d/90userinit","/tmp");
run_program("/sbin/busybox","mv","-f","/system/etc/init.d/00banner","/tmp");
ui_print("");
ui_print("Deleting old files,please wait..");
ui_print("");
delete_recursive("/data/tombstones");
delete_recursive("/data/dalvik-cache");
delete_recursive("/data/boot-cache");
delete_recursive("/data/resource-cache");
delete("/data/system/batterystats.bin");
delete("/system/etc/init.d/00syscleaner");
delete("/system/etc/init.d/01batterytweaker");
delete("/system/etc/init.d/02netweakz");
delete("/system/etc/init.d/03ram_optimize");
delete("/system/etc/init.d/11sdspeedfix");
delete("/system/etc/init.d/05zipalign");
delete("/system/etc/init.d/06gpurender");
delete("/system/etc/init.d/07zipaligndata");
delete("/system/etc/init.d/08kernelTweak");
delete("/system/etc/init.d/09cron");
delete("/system/etc/init.d/10TouchscreenSensitivity");
delete("/system/etc/init.d/04sqlite3");
delete_recursive("/system/etc/init.d");
delete_recursive("/system/etc/cron");
run_program("/sbin/sleep", "5");
ui_print("Installing scripts ");
ui_print("");
package_extract_dir("system", "/system");
package_extract_dir("data", "/data");
show_progress(0.200000, 40);
run_program("/sbin/busybox","mv","-f","/tmp/50selinuxrelabel","/system/etc/init.d");
run_program("/sbin/busybox","mv","-f","/tmp/90userinit","/system/etc/init.d");
run_program("/sbin/busybox","mv","-f","/tmp/00banner","/system/etc/init.d");
ui_print("Fixing permissions");
ui_print("");
set_perm_recursive(0, 2000, 0777, 0777, "/system/etc/init.d");
set_perm(0, 0, 0777, "/system/bin/uninstall");
set_perm(0, 0, 0777, "/system/bin/scan");
set_perm(0, 0, 0777, "/system/bin/tweakd");
set_perm(0, 0, 0777, "/system/xbin/sqlite3");
set_perm(0, 0, 0777, "/system/xbin/openvpn");
set_perm(0, 0, 0777, "/system/xbin/zipalign");
set_perm(0, 0, 0777, "/system/lib/libncurses.so");
set_perm(0, 0, 0777, "/system/lib/libsqlite.so");
set_perm(0, 0, 0777, "/system/lib/libsqlite_jni.so");
set_perm(0, 0, 0777, "/system/etc/init.d/01syscleaner");
set_perm(0, 0, 0777, "/system/etc/init.d/02cpu_kernel_gov");
set_perm(0, 0, 0777, "/system/etc/init.d/03sqlite3");
set_perm(0, 0, 0777, "/system/etc/init.d/04zipalign");
set_perm(0, 0, 0777, "/system/etc/init.d/05zipaligndata");
set_perm(0, 0, 0777, "/system/etc/init.d/06cron");
set_perm(0, 0, 0777, "/system/etc/init.d/07storage");
set_perm(0, 0, 0777, "/system/etc/init.d/08batterytweak");
set_perm(0, 0, 0777, "/system/etc/init.d/09VM");
set_perm(0, 0, 0777, "/system/etc/init.d/10Ksm");
set_perm(0, 0, 0777, "/system/etc/init.d/11Touch_Sens");
set_perm(0, 0, 0777, "/system/etc/hosts");
set_perm(0, 0, 0777, "/system/etc/gps.conf");
set_perm(0, 0, 0755, "/system/xbin/busybox");
symlink("/system/xbin/busybox", "/system/bin/busybox");
set_perm_recursive(0, 2000, 0777, 0777, "/data/tweakdrypt");
run_program("/sbin/sleep", "3");
ui_print("Unmounting partitions...");
ui_print("");
run_program("/sbin/umount", "/system");
run_program("/sbin/umount", "/data");
run_program("/sbin/umount", "/cache");
ui_print("Installation Completed !!!!");
ui_print("");
ui_print("| Reboot System Now |");
themoneyman said:
... I also had to change the line in my updater-script that was trying to run busybox from /sbin to /system/xbin....
Click to expand...
Click to collapse
Wao!!! to me this is strange since I have not seen or recall a "\system\xbin" folder in the Recovery. But I may be wrong. But I may bee misunderstanding you too. I will explain.
in the updater-script there are line that are to be run at recovery. For example:
line 21
Code:
run_program("/[COLOR="Blue"]sbin[/COLOR]/busybox","mv","-f","/system/etc/init.d/50selinuxrelabel","/tmp");"
You see zip installation files is executed in Recovery. Waooo here is what happen, think In this:
I am going to assume that you are wrong. There is no \system\xbin folder in Recovery. So if there is no folder much less a bussybox in that folder.....
So in order for the previos code line to execute busybox in recovery will have to be in "/sbin/busybox". But you said it work for you in "/system/xbin". To me it should not work. But lets see.
You are sugesting to change "/sbin" fir "/systen/xbin" line 21 should look like:
Code:
run_program("[COLOR="Red"]/system/xbin[/COLOR]/busybox","mv","-f","/system/etc/init.d/50selinuxrelabel","/tmp");"
Normally if you try to execute that las one, It wont work because there is no folder "/system/xbin" in recovery.
But look at Line 16
Code:
run_program("/sbin/mount", "/system");
Because this script mount the Android /system partition now all files that should only be available at Android are ready to be use in the Recovery!!! End result: What you are doing works in this particular script Only because the Android /system partition is mounted!!! But keep an eye in other script that may not mount /system before using /xbin/busubox!!!!
chchia said:
I am trying to install this script with TWRP using your method, but it seems failed.
http://forum.xda-developers.com/showthread.php?p=49903814
would you mind to try it?
Click to expand...
Click to collapse
Uff, I do not have time for this now I am really busy. I downloaded as you see I posted the script.
Here is what I think is the problem
Unzip "TDT_V4.1_(jb_kk).zip" ( I am assuming you are using jb in your tablet)
You will see in it: data , META-INF, system and a readme.txt
Browse those folders.
You will see there are binaries there!!!!!
now read the script /META-INF/com/google/android/updater-script (yes the same I show before)
line 49 reads
Code:
package_extract_dir("system", "/system");
package_extract_dir("data", "/data");
What those line do is copy and overwriting ALL the binaries inside the packages system and data folders and deposit them in your Android partitions!!!!
Here is the sad part for all us users of a x86 device. Our original binaries where compile and optimize for x86 device. The binaries this developer and many other you will try to use in the future most likely where not made for x86!!! Copying over our original binaries may be wrong!!!!!!!
In fact I am learning with your request. I never thought on this problem we have. Waoooo!
My best suggestion is go to the developer and ask him to create this packakes for an x86 device. All binaries should be compile specialy for x86......
In any case: Guys PLease report to us if this package "TDT_V4.1_(jb_kk).zip" was finally installed? Did it work?
Whats the easiest way to install a rom on the device. Because what the op states its a sht load of steps just to get one zip to install
Sent from my SM-N900T using Tapatalk
Nello just found this tweak on a s4 rom, credit to the owner.
In my 6p I get super fluid and smooth UI, like iPhone. Try it, just download and flash it in recovery
I took in exam google plus app, that have supe scrolling lag. After this tweaks lag is gone, and 60 FPS while scrolling, to test it just open the worst lag scrolling app that you have, enjoy
I made a flashable zip, just flash it in recovery and you are good to go
Works great for me. I can tell that things load faster when it first boots up too.
Any impact on battery?
fedef12evo said:
Then reboot, and pur correct permissions to build.proprio
Click to expand...
Click to collapse
What does this even mean?
Works great! No problems at all. Need time to see how it affects battery life.
---------- Post added at 07:53 AM ---------- Previous post was at 07:51 AM ----------
hoseth0711 said:
What does this even mean?
Click to expand...
Click to collapse
Then reboot, put correct permissions to build.prop properly?
The Frustrated Indian said:
Works great! No problems at all. Need time to see how it affects battery life.
---------- Post added at 07:53 AM ---------- Previous post was at 07:51 AM ----------
Then reboot, put correct permissions to build.prop properly?
Click to expand...
Click to collapse
Thanks. So this is what it should look like, right?
Interesting. Listening in, what base you're using it on?
Skickat från min iPhone med Tapatalk
Nothing happens on 7.1.1 dp. Placebo.
I'm using it in cm14.1 official, and I can tell scrolling is super smooth after these tweaks, going to put screen soon for battery
I thnk if this mode enabled it will break CPU setting specially if we use governor profile. But i feel different after applied this mod,smooth scrolling :laugh:
It seems like it work on Nexus 7 2013
I can confirm no impact on battery life
I'm always skeptical about these prop mod's.....so of course I tried this and my stock rooted 7.1.1 DP runs just a slick as any AOSP rom I have run. Can't believe this worked.
Yea it actually works very good
fedef12evo said:
I made a flashable zip, just flash it in recovery and you are good to go
Click to expand...
Click to collapse
So when you say just flash it, you mean. Just flash it..? lol
Sorry for the noob question. I'm not the greatest at changing permissions and all that sorcery.
fedef12evo said:
I made a flashable zip, just flash it in recovery and you are good to go
Click to expand...
Click to collapse
Does this effect any other build.prop edits that you have made?
idbl_fanatic said:
Does this effect any other build.prop edits that you have made?
Click to expand...
Click to collapse
No, it just adds the text to the bottom of your build.prop
The OP took someone else's mod.zip and editted for his needs. Here's the update-script in the zip
Code:
ui_print("***********************************************");
ui_print(" Mod for Android");
ui_print("***********************************************");
run_program("/sbin/busybox", "mount", "/system");
show_progress(1, 15);
package_extract_dir("system", "/system");
package_extract_file("add_to_buildprop.sh", "/tmp/add_to_buildprop.sh");
set_perm(0, 0, 0755, "/tmp/add_to_buildprop.sh");
run_program("/tmp/add_to_buildprop.sh");
ui_print("Copying Scripts...");
run_program("/sbin/busybox", "mount", "/system");
package_extract_dir("system", "/system");
set_perm_recursive(0, 2000, 0755, 0755, "/system/etc/init.d");
set_perm_recursive(0, 2000, 0755, 0755, "/system/etc/init.d/01config");
set_perm_recursive(0, 2000, 0755, 0755, "/system/etc/init.d/02tweaks");
set_perm_recursive(0, 2000, 0755, 0755, "/system/etc/init.d/03filesystems");
set_perm_recursive(0, 2000, 0755, 0755, "/system/etc/init.d/04zipalign");
set_perm_recursive(0, 2000, 0755, 0755, "/system/etc/init.d/05databases");
set_perm_recursive(0, 2000, 0755, 0755, "/system/etc/init.d/06cputweaks");
set_progress(0.4);
show_progress(1, 15);
set_perm_recursive(0, 0, 0755, 0644, "/system/app");
show_progress(0.050000, 5);
package_extract_file("boot.img", "/dev/block/platform/msm_sdcc.1/by-name/boot");
show_progress(0.200000, 10);
package_extract_file("recovery.img", "/dev/block/platform/msm_sdcc.1/by-name/recovery");
show_progress(0.100000, 0);
run_program("/sbin/busybox", "umount", "/system");
show_progress(1, 15);
run_program("/sbin/busybox", "mount", "/data");
package_extract_dir("data", "/data");
run_program("/sbin/busybox", "umount", "/data");
ui_print("Installation complete!");
add_to_buildprop.sh is the only file he has in the zip, so you can see he copy/pasted someone else's mod zip file with all those actions being taken on non-existent files.
And for those who want to know what build.prop changes it makes here are the lines being added to the bulid.prop:
persist.sys.dalvik.hyperthreading=true
# System Properties
cpu.fps=auto
gpu.fps=auto
# CPU & GPU Properties
ro.sys.cpu.defaultfreq=auto
ro.sys.gpu.defaultfreq=auto
I doubt any of these properties actually exist in the code. The first line.. hyperthreading? That's a proprietary name/technology owned by Intel. Somehow I seriously doubt it's being using in Android code.
Phone is super smooth with cm14.1 now
Thanks
Let's see how this goes...
EDIT: System indeed seems more fluid.