Related
INTRO
I started trying to make a kitchen for our Elves based on bepe's Extended Kitchen and Elf(in) Hybrid Kitchen was "born".
Since then, bepe released his famous PlatformReBuilder(PRB) and I followed him, creating B2 Kitchen (page41 and on).
The Hybrid Kitchen is discontinued but I will keep it posted here for anyone who wants to play with it.
B2_Kitchen has started as an Elf(in) kitchen, but became a multidevice kitchen.
B2_Kitchen has started as a simple batch-file kitchen, but became a multifunctional kitchen.
At the end it is a GUI based on command-line tools just like some other visual kitchens.
The main applications are PlatformReBuilder and ImgfsTools.
So I don't actually feel that I made something new...
I take no credit!
CREDITS TO
bepe for the kitchens and other tools,
pof for the USPL, cmonex for the HSPL,
itsme , mamaich & tadzio for the brilliant but simple tools,
ervius for the great tools,
Noonski for the cooking class [This is how newbies gain the knowledge to cook] and for the inspiration,
Ababrekar for guideness in porting OS from another device,
Aman for sharing his knowledge&helping me make any fixes&upgrades
and many more members/developers of this forum which I consider as a free on line school whose tools and guides made this possible!
These kitchens are free to use or edit but at your own risk, I take no responsibility for any damage caused to your phone!
B2 Kitchen
B2 Kitchen GUI (LATEST VERSION 2.0.0.0)
Supported Devices:
Elfin
Leo
Diamond
? (Testers Needed for other devices)
INSTALLATION:
Prerequisites:
Microsoft .NET Framework 3.5 (Windows Vista / Windows 7 have it pre-installed)
If you're using Windows Vista / Windows 7, make sure USER ACCESS CONTROL is turned OFF!
DO NOT change the structure of the kitchen!
If you don't want to use ImDisk Driver, you should get another 3rd party software able to create a RamDisk in order to use the relevant feature.
Installation:
Once you download the kitchen, install it following on screen instructions.
When you launch the kitchen for first time you'll get the chance to install ImDisk Driver if it isn't already installed.
(RECOMMENDED if you don't have another 3rd party software for Virtual Drive Management)
To get started, you should import a device by using an official_shipped_ruu.exe as a source.
Otherwise you could place your files manually.
(Be careful to put them in the correct way, respecting the kitchen's structure)
Download links:
Mediafire(For ALL users)
XDA(For XDA members)
********************************************************************************************************************
DESCRIPTION:(Video)
{
"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"
}
Dump any source you want in almost any known format:
RUU_Device_HTC_Version_Signed_Ship.exe
RUU_Signed.nbh
Flash.dio
OS.nbf
OS.nb.payload
OS.nb
nk.fat
Imgfs.bin
xip.bin
Part01.raw and Part02.raw
Import a new device by dumping the device's OFFICIAL Rom RUU_Device_HTC_Version_Signed_Ship.exe.
The kitchen will even create a CustomRUU.exe AND a Task29.exe for the imported device.
Import any new leaked build just with one click.
When you dump a rom / import a new device the kitchen is able to:
Remove any empty packages if you select -EmptyPkgs.
Sort each registry file from your dump to make it more readable if you select SortRegistry.
Sort all Packages into the required style.
Sort all manila localization files by lcid.
Build your rom according to your taste:
Set which packages will be included from the "Packages Selection" area.
Set Rom version, language, ModelID and CountryID that are required for generating the final flashable *.nbh. The Rom date will always be automatically set to current date.
Select among various builds and lcids which one to use for building your Rom.
Select whether to use a real 6.5 nk (if your device has a 6.5 nk) or not in your generated Rom by selecting 6.5nk.
Select whether to use ShaDrac's driver - Extendir - or not by selecting Extendir, without messing up (adding/removing Extendir.dll - editing boot.rgu) your XIP each time.
Select whether to reduce/remove ULDR or not at your generated Rom by selecting -uldr.
Select whether to increase the Storage Memory of your Rom or not by selecting -imgstart.
Choose your Rom's PagePool Size (0-20).
Select compression (XPR-LZX-None) method for building your Rom.
Add Radio and Splashscreen to your final flashable *.nbh.
Set the kitchen to take care the "SLOT 0 overfloating" issue when building a 6.5 Rom while your nk.exe is not a real 6.5 nk.exe by selecting Rec.Mod SYS
If you have used the above option and have recmodded some modules inside SYS/Shared in order to fix the "SLOT 0 overfloating" issue when no real 6.5 nk.exe is available, but now you want to use the same Build (= the same SYS/Shared) for building a new Rom for a device that has a real 6.5 nk.exe you can reversmode the same files by selecting Rev.Mod SYS.
Set the kitchen to search and find any duplicate items in your compilation that would cause crashing issues to PRB before starting the real building process by selecting DuplicateCheck.
Each time you build a rom a log file is created which you can easily see by clicking the "Process" Label.
Search for files or file's content (i.e. Search for a certain registry entry among *.reg files) using the search engine of the kitchen.
Access fast and easy certain files that are commonly used inside a Rom.
You can see lists of *.txt, *.mscr , *.xml , *.provxml , *.cpr & *_manila inside your kitchen by simply clicking the relevant button.
If you click on any file you see in those lists you open it for editing.
Flash any ROM you selected from a list of your created Roms to your device.
You'll get the chance to perform task29 on your PDA - THEN manualy enter Bootloader and FINALLY update the ROM if you have that special CustomRUU inside the kitchen.
Use a RamDisk (ImDisk Driver comes with this kitchen) for the building and dumping processes in order to gain speed and decrease hard disk fragmentation.
Cfc manila files and convert any normal Manila_package to a compressed one just with one click.
Exploit the possibilities of MortScript even during building your Rom:
Forget about app.dat - app.mscr is introduced in this kitchen.
Don't cook in hundreds of files that get copied to various locations but at the same time stay in your "Windows" directory slowing down your device - Create just one archive (app.xdaz) which extracts the files to the correct locations during boot leaving in "Windows" directory only one file with an unknown extension.
Convert cabs--->EXT Packages just with one drag n' drop on a button.
Convert files<-->modules just with one drag n' drop on a button.
Convert rgu files<-->hives just with one drag n' drop on a button.
Convert provxml files<-->reg files just with one drag n' drop on a button.
Convert bmp<-->nb just with one drag n' drop on a button.
Install any cab file to your pda just with one drag n' drop on a button.
Manipulate each package from the "Packages Selection" area just with one click:
Double click on the package to open its folder
Right click on the package to:
Edit directly the package's app.reg.
Edit directly the package's app.dat.
Edit directly the package's app.mscr.
UPX one/all package's executable(s).
Optimize package's png(s).
Optimize package's bmp(s).
Repack package's *.mui files.
Recmod one/all package's module(s).
NosplitMod one/all package's module(s).
Revmod one/all package's file(s).
Install the package to your pda.
Edit directly the initflashfiles.dat of the selected language just by right clicking inside the "Locale" box in the "Configuration" area.
Edit directly the boot.rgu of the selected build just by right clicking inside the "Build" box in the "Configuration" area.
If you want to edit directly the boot.rgu for the Extendir driver just right click the Extendir checkbox.
Read/Write directly the packages.cif and packages.sof of the selected build just by right clicking inside the "Build" box in the "Configuration" area.
Optimize XIP & SYS of the selected build just by right clicking inside the "build" box.
Build 3 different editions of your rom just by selecting an "Edition" (Premium, Basic, Lite) in the "Configuration" area.
This is optional, so if you leave "Edition" blank, then the "P" , "B" , "L" selection in the "Packages Selection" area doesn't matter!
Keep the kitchen accessible at all time. When you close the kitchen, it minimizes to tray from where you can access many functions and browse the kitchen's folders. By double clicking the tray icon you restore the kitchen's window.
If you want to really exit the kitchen while it is visible press F1!
Easily uninstall the kitchen from your system.
Easily save/load your project:
If you double click the "Save" icon then you'll save your current project (its name will be the Edition.build.locale.date&time of saving).
If you click the "Save" icon then you can select from a list of your projects which one to load.
Easily access all the tools that come with the kitchen. Even assign your own favorites to ALL the bottom buttons.
Check existing registry files for errors before building your Rom by right clicking the "Packages Selection" Label.
The time of this operation depends from the number of registry files, so you either give it enough time to finish if you have a lot of packages in your compilation or you click the Stop button to abort it.
Control your pda from inside the kitchen:
Restart your connected pda without even touching it.
Enter BootLoader.
Watch a list of processes currently running on your device.
View/edit/dump your device's registry.
********************************************************************************************************************
BASIC USAGE:
***Valid for any device - Just consider your device's name instead of the Elfin***
Packages Selection:
You can see all the SYS Packages from the BUILD & LOCALE you've chosen.
You can see all the EXT Packages you have in the kitchen's directories.
You can make sub-directories(limitation:up to 16!) to organize them better(i.e. EXT\Elfin\Tweaks , EXT\Elfin\TodayItems , EXT\Elfin\Apps , EXT\Elfin\Utilities , etc) and place your packages inside each sub-directory.
You can select which packages to include in your ROM by ticking the checkbox in front of the package's name. If you have it unticked then the package will be skipped.
If you double click inside the selection cell but not on the checkbox then you can select/deselect ALL packages.
You can see in the "Packages Selection" area that there are 3 columns "P" , "B" , "L" following the Package's name.
These will have an effect ONLY IF you select an Edition under "Configuration" area!
Code:
If you want "Package1" to be [COLOR="YellowGreen"]included[/COLOR]/[COLOR="Red"]excluded[/COLOR] in your [B]P[/B]remium edition then you must have the checkbox under "[B]P[/B]" [COLOR="YellowGreen"]ticked[/COLOR]/[COLOR="Red"]unticked[/COLOR].
If you want "Package1" to be [COLOR="YellowGreen"]included[/COLOR]/[COLOR="Red"]excluded[/COLOR] in your [B]B[/B]asic edition then you must have the checkbox under "[B]B[/B]" [COLOR="YellowGreen"]ticked[/COLOR]/[COLOR="Red"]unticked[/COLOR].
If you want "Package1" to be [COLOR="YellowGreen"]included[/COLOR]/[COLOR="Red"]excluded[/COLOR] in your [B]L[/B]ite edition then you must have the checkbox under "[B]L[/B]" [COLOR="YellowGreen"]ticked[/COLOR]/[COLOR="Red"]unticked[/COLOR].
There is also a ZIP Column. That Column is used to "mark" which EXT Packages you wish to convert to "Mscr_Packages" when you click "ExtToMscr" option.
Code:
If checkbox = unticked then nothing will change.
If checkbox = ticked then Selected Package will be converted to a Mscr Package (this is useful ONLY for applications that get installed to Program Files)
If checkbox = greyed then Selected Package will be converted to an Extendir Package (this is useful ONLY for applications that get installed to Windows and you're cooking Extendir in your Rom)
When you click the "ExtToMscr" the kitchen creates an archive (with the extension *.xdaz) from the Package's files and writes the necessary "app.mscr" (something like the equivalent of "app.dat").
For this it needs the "app.dat" inside the EXT Package so that it translates it to "app.mscr".
(This operation doesn't take place each time you hit the build button)
Your (original) EXT Packages will be copied to TOOLS\pkg\EXT.bak as a backup and only the (converted) Mscr Packages will be kept inside EXT[folder].
These new packages will be used ONLY IF you select "mscr" for ARType( = AutoRun Type) in the "Configuration" area.
Of course MortScript MUST be included in your Rom AND you must have the ARMS.mscr (script with #INSERTLINE switch) inside Autorun.mscr\Elfin folder.
Click to expand...
Click to collapse
Main Functions:
Obligatory routine:
Select device.
Select build.
Select locale.
Clicking the "Dump" button presupposes that you have placed a Rom file inside BaseROM folder.
When the process finishes you'll get a full dump of that Rom.
Drag n' drop a Rom file on this button works the same way!
Right Click on "Dump" button will show you two options:
Import New Device
meaning use another device's official rom to dump&prepare everything that is required by the kitchen to operate.
When everything is completed you'll be asked whether to auto move files or not!
Import New Build
meaning use any archive with the new leaked build to import the included SYS and XIP packages to the kitchen.
Next to the "Dump" button is 1 icon :
The folder-icon is a menu that includes shortcuts to various kitchen's folders.
Clicking the "Build" button starts the building process.
Next to the "Build" button are 3 icons :
The first one is a menu that includes :
ImDiskGui
ExtToMscr
RomTools
RePackOEM
CFCManila
The second one opens the below window. From there you can turn on/off the RamDisk feature, uninstall the kitchen, set your custom (build) commands, etc.!
The third one opens the Search utility of the kitchen.
Clicking the "Stop" button you stop the process you've started.
Clicking the "Phone-icon" button you have the options to:
Select from a list with your created Roms which rom to flash.
Restart your connected pda without even touching it.
Enter BootLoader.
Watch a list of processes currently running on your device.
Launch CeRegEdit
Double clicking the "Phone-icon" button you access the RELEASE\Elfin folder.
Clicking the "Flash" button you minimize the kitchen and start the CustomRUU (ElfinCustomRUU) in order to flash the ROM you selected to your device.
Right Click on "Flash" button will show you the option to Format&Flash, meaning that you'll get the chance to FIRST perform task29 on your PDA (ElfinTask29) - THEN manualy enter Bootloader and FINALLY update the ROM.
Right Click on "Configuration" label will show you the Advanced PRB Settings panel.
Clicking on "Radio" label opens the radio sub-folder.
Clicking on "Splash" label opens the splash sub-folder.
Addons:
You can easily access all the extra tools that come with the kitchen. - Drag n' Drop works for every dark-GRAY button.
You can assign your favorite links to ALL the buttons you see at the bottom!
Those links can be applications, folders, batch files or urls.
In order to set your own you should edit the file myaddons.ini under TOOLS\addons\ keeping the format addon#|Name|Path :
(Just right click on the button you want to change)
Code:
addon1|CFF Explorer|C:\Program Files (x86)\Explorer Suite\CFF Explorer.exe
addon2|Tiny Hexer|C:\Program Files (x86)\mirkes.de\Tiny Hexer\mpth.exe
addon3|Icon Editor|C:\Program Files (x86)\Icon Editor\IcoFX.exe
addon4|Manila Kitchen|C:\Program Files (x86)\Manila_Kitchen
.
.
.
********************************************************************************************************************
TO DO:
Any suggestions are welcomed!
Any bug reports are appreciated!
B2 Kitchen's Structure
This is the structure of the kitchen after importing a device and you shouldn't try to change it because you will have errors!
The build 23545 you'll see in the below pictures is an example in order to help you understand the kitchen's structure.
Autorun.mscr is the folder where you can put your mortscript file that runs at first boot(named ARMS.mscr).
This mscr must include a line "#INSERTPOINT" !!! This line is required so that all "app.mscr" will be added at that exact point of your script!
The ARMS.mscr must be placed inside the subfolder named after your device.
BaseRom is the folder where you can put any rom you want to dump.
EXT is the folder where you store all your EXT Packages that you want to try in your ROM.
Here you can put any application,utility,todayitem,etc. and choose whether to include it or not, having in mind if it is or not essential for the windows to work!
Those Packages must be placed inside the subfolder named after your device.
OEM is the folder where you have OEMApps, OEMDrivers and other OEMFolders (Device Specific). Check out trueg's posts for more information about these folders.
Those OEMFolders must be placed inside the subfolder named after your device.
If you are cooking a rom in a different language than WWE, then create that subfolder.
For example if I want to cook a greek rom I'll create a subfolder 0408 along with 0409 and place my local.files in 0408.
If you are using the kitchen in OEM mode you can put inside the "Pkgs" subfolder your old-style packages (with *.dsm , *.rgu , etc.). You'll be able to choose whether to include or not each of those from the kitchen's packages selection!
RELEASE is the folder where your custom ROM (i.e.Yourdevice_ROM_Lang_0409_Build_21056.nbh) will be placed after cooking in order to flash it to your device using your CustomRUU.
You must have a subfolder named after your device under RELEASE and be careful with the names of the included *.exes (YourdeviceCustomRUU.exe & Task29\YourdeviceTask29.exe).
ROM is the folder where the XIP is placed.
If you enter this folder you'll see :
Like it is shown above, you must have all the XIP elements, except MSXIPKernel, inside the subfolder named after your device.
If your device has WinCENLS_Lang_0*** as part of XIP leave it there, otherwise an adviced location to store it is OEM\Yourdevice\0***\.
SYS is the folder where all the OS Packages (Not device Specific , but I'd say Screen Resolution Specific) are stored categorized by build number. Check out trueg's and Da_G's posts for more information about these Packages.
You must place those OS Packages inside the subfolders SHARED, dpi_96 , dpi_96_resh_240_resv_320 , etc. like it is shown below.
TOOLS is obviously the kitchen's "engine".
(Each time you build a rom you should find in there a log file from the building process which you can access by clicking on the Process label of the main application)
Inside CORE\Saved folder you must have a subfolder named after your device.
Inside CORE\Devices.list(file) you must have the settings for your device.
$DEV=YourDevice'sName
<1 for device that has only wm6.1kernel , 2 for device that has wm6.1kernel AND wm6.5kernel , 3 for device that has only wm6.5kernel>
KERNEL=3
dpi=192
resh=480
resv=800
ModelID=PB8110000
CID=11111111
chunksize=64
GSMHeaderType=0x301
<" -s" Switch if device's Splash.nb requires smartphone signature , leave blank if device's Splash.nb DOESN'T require smartphone signature>
SplashSwitch=
SplashHeaderType=0x600
<Size of device's Splash.nb>
SplashSize=786432
<" -t 0" for 0x00 or " -t 255" for 0xFF>
SplashPaddingType= -t 255
OSHeaderType=0x400
<hermes for Sectorsize=0x208 , kaiser for Sectorsize=0x808 , titan for Sectorsize=0x800 , leave blank for Sectorsize=0x200>
NBMerge=kaiser
<reduce for device that ULDR can ONLY be reduced , remove for device that ULDR can be totaly removed>
ULDR=reduce
Click to expand...
Click to collapse
Inside Radios folder (see below) you can store any %radio%_0x30$.nb in order to use in your Rom:
You must place those Radios inside the subfolder named after your device.
You can find all Elf(in) Radios here.
Inside splash folder (see below) you can store any
%##splash%_0x60$.nb in order to use in your Rom.
%##splash%_0x60$.bmp is required for previewing!
You must place those Splashscreens inside the subfolder named after your device.
You can find more SplashScreens here or you could make your own with the kitchen tools.
B2_Kitchen_GUI is the GUI that combines all the command line tools. Screenshots here.
Elfin Hybrid Kitchen
ELF(in) Hybrid Kitchen (DISCONTINUED - NEWER KITCHEN @ 2nd POST)
INSTALLATION:
1. Install on your pc Microsoft Visual C++ 2008 Redistributable Package and Microsoft .NET Framework 3.5!
2. Remove any previous version(if any)of the kitchen(shortcuts too) before "installing" the newer!
3. The archive should be extracted directly to the Drive where Windows are installed (most cases C:\) , otherwise nothing will work!
4. Once you do that, go into C:\ELF(in)_Hybrid_Kitchen and double-click "First_Run_For_ELF(in)_Hybrid_Kitchen.bat"!
5. IF you're using Windows Vista, make sure USER ACCESS CONTROL is turned OFF!
Download through: Mediafire
********************************************************************************************************************
DESCRIPTION:
(Be patient and keep your eyes on the DOS window for additional help&instructions while using this kitchen)
Main Functions:
[a] Dump any ROM from Kaiser, Polaris, Diamond, Xperia, Raphael, Elf(in)...
You may use these formats:
****.nbh (eg: RUU_Signed.nbh, Blue_Elves.nbh, etc) ,
****OS.nb (eg: New-OS.nb, 19588-OS.nb, etc) or ***windows.nb (eg:Mobile_windows.nb, New_windows.nb, etc) ,
****imgfs.bin (eg: imgfs.bin, new_imgfs.bin, etc) .
****.payload (eg: OS.nb.payload, 20270_OS.nb.payload, etc) . <- NOT FOR ELF(in) !
****.raw(only Part01.raw & Part02.raw) .
You get new OEM, SYS and xip.bin(unless you used *imgfs.bin) into C:\ELF(in)_Hybrid_Kitchen\Extract_ROM\Temp .
If you used an ELF(in) ROM then you'll get a full dump, OEM, SYS and XIP, that you could move to C:\ELF(in)_Hybrid_Kitchen\ELFIN_DEV_v2.1_Build_19XXX\ and use it as a cooking base .
[b] Port any XIP from Kaiser, Polaris, Diamond, Xperia... You need xip.bin .
It requires:
NOT to change Ref_XIP folder inside C:\ELF(in)_Hybrid_Kitchen\Prepare_XIP and
If you have any problems in XIP Porting you have all the needed tools inside C:\ELF(in)_Hybrid_Kitchen\Prepare_XIP to try manually port the xip .
[c] Build your OS.nb (using the Ervius PkgToolsBuildos which can autofix & autorelocate SYS) .
You'll get the option to make a dumpable ROM using PkgToolsBuildos (by keeping unticked the box next to "All packages in one:") .
NOTE1: Inside ..\Build_ROM the OEM , SYS and ROM\XIP folders are empty . You may "fill" them with the required files .
NOTE2: Because Ervius PkgToolsBuildos is included in the kitchen, you could always use the functions that it provides apart from those described here .
NOTE3: If your xip_out.bin or out.bin is smaller than 2,49MB you could use the attached os.nb.payload (where imgfs start @ 0x280000)
[d] Flash any ROM to your device .
If you have a CID Locked device you have the option to flash a ROM using SoftSPL & your device remains CID Locked with the same SPL !
Additional Functions:
[1] Convert any cab to an OEM Package using Ervius Package Creator .
[2] Create a cab using IABovine's QuickCab 2.0 .
[3] Convert a bitmap to a Splash.nb (& reverse) using pof's nbimg .
[4] Convert files to modules & reverse using RecMod and reversmode . Not all files can be converted to modules.
[5] Convert 24 bit .bmp to .brn and reverse (for editing Cube gfx) .
[6] Compress executable files using UPX 3.03 .
Panel:
Easy access for many tools .
BASIC USAGE:
(Check out ayyu3m's great [PICTORIAL] COOKING YOUR 6.1 ROMS USING ELF(in) HYBRID KITCHEN)
1. Lets say you want to use a SHIPPED or DUMPED (NOT a COOKED!) ELF(IN) ROM as a Base.
--1.1.Double click the desktop-shortcut "Main Menu"
--1.2.Press [a]
--1.3.A window pops up beside the DOS screen. Place in there the RUU_Signed.nbh and close the window!
--1.4.Press [1]
--1.5.When the process is completed (& pressing any key returns you to main menu), you get another window opened with the files you want:
Packages(OEM&SYS)
XIP(folder)
xip.bin
--1.6.Keep that window open and double click the desktop-shortcut "Kitchen"
--1.7.Copy OEM and SYS to C:\ELF(in)_Hybrid_Kitchen\Build_ROM\
--1.8.Copy the XIP(folder) to C:\ELF(in)_Hybrid_Kitchen\Build_ROM\ROM\
2. The Base for cooking your ROM is set! Either clean up the OEM folder from things you wish to be removed or just (re)build the ROM.
--2.1.Double click the desktop-shortcut "Main Menu" (if you closed the main menu window)
--2.2.Press [c]
--2.3.PkgToolsBuildos starts
--2.4.Go to BuildOS Tab and click Load Rom.Select which Packages to include and press the green play button[Go]
--2.5.When this process is completed you'll have your OS.nb inside the "temp" folder and the (final product) RUU_Signed.nbh is generated in two places,
(i)..\CustomRUU\ <= For flashing CID Unlocked phones
&
(ii)..\RUU\ <= For flashing CID Locked phones using SoftSPL
NOTES:
A) Ref_XIP folder inside Prepare_XIP is the latest 3.10ROM's XIP, but modified as follows:
-removed modules:
cachefilt.dll, hd.dll, mencfilt.dll, osaxst0.dll
-removed files:
boot_ms.rgu, bmui.nb0
-edited files:
boot.hv, boot.rgu,
Code:
REMOVED ENTRIES:
[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS\Filters\CacheFilt]
"Dll"="CacheFilt.dll"
"Order"=dword:2
[-HKEY_LOCAL_MACHINE\System\StorageManager\FATFS\Filters\CacheFilt]
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\LSOMACORE]
"Index"=dword:00000001
"Prefix"="DRM"
"Dll"="lsomacore.dll"
[HKEY_LOCAL_MACHINE\System\StorageManager\Filters\LsFilter]
"Order"=dword:00000001
"Dll"="LSFILTER.dll"
[HKEY_LOCAL_MACHINE\Init]
"Launch98"="TimeWizard.exe"
-edited modules:
nk.exe
Code:
RTC is enabled
-ALL MSXIPKernel modules are relocated to achieve better XIPPorting
**If you include LockStreamDRM PACKAGE in your ROM and you use the Ref_XIP as your \ROM\XIP(folder), ADD the removed (from boot.rgu) entries
Code:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\LSOMACORE]
"Index"=dword:00000001
"Prefix"="DRM"
"Dll"="lsomacore.dll"
[HKEY_LOCAL_MACHINE\System\StorageManager\Filters\LsFilter]
"Order"=dword:00000001
"Dll"="LSFILTER.dll"
[HKEY_LOCAL_MACHINE\Init]
"Launch98"="TimeWizard.exe"
in the PACKAGE's *.rgu.
B) Building your ROM
When you are building your ROM you need:
ROM\XIP(ALL FILES and MODULES) ,
ROM\romhdr.bin and
ROM\OS.nb.payload
This option builds the out.bin(buildxip.exe is used)from the XIP(folder).
C) PP Patching is included in the kitchen operation!
You just set your favorite pp size at the beginning(installing) and each Rom you build is already patched!
If you make the following hex change in nk.exe's S000
Aman said:
i've another method for u guys to change the PP. search the 03 15 A0 03 02 15 A0 13 00 10 83 E5 62 C2 FF EB in yours S000 of nk.exe and change the string marked in Red color to 00 00 A0 E1. from there onwards u can simply use the old Multi-platform PP changer.exe (that is also found in kaiser kitchen) to change ur PP on the OS.nb. this should make the kitchen even simpler
PS: this method works regardless of the device
Click to expand...
Click to collapse
then the kitchen's PP Patching doesn't work!
You should use the suggested by Aman Multi-platform PP changer v2.21 which is included in the kitchen's panel!
NOTE: I don't have an ELF to test, but after the above change then I think that the pp size is the same for both ELF&ELFIN(not dynamic).
Nice job Kokotas.
great job bro
i would like to test ur kitchen.
Repository:
ElfinCustomRUU.exe
ElfinTask29.exe
Task29&CustomRUU
B2_Kitchen_GUI_Setup
B2_Kitchen_GUI.exe
kokotas said:
Thanks man, but it will be great only if it works for everybody!
I'll pm you the password for the download link.
Regards!
Click to expand...
Click to collapse
TOGETHER we all can MAKE SURE that it works for everybody
how can I obtain pass? I will translate ebglish rom to Turkish and I need that tool..
Nice work.
Not going to switch right away at the moment.
But this looks very good.
I'm on the lookout for a cheep Touch so this will come in handy if I get my hands on a touch....
gullum said:
I'm on the lookout for a cheep Touch so this will come in handy if I get my hands on a touch....
Click to expand...
Click to collapse
gullum I have touch and I can't wait to cook a new room for touch
ill have a go i got a rom on my phone that that is needed in the upgrade rom list but i have been able to remove it
Project for work
i need to lock down some features of my works PDAs and would love to try your kitchen to attempt this.
can i have a password?
Got a Touch tonight for under 200$ used of cause so now I want a kitchen to make roms
kokotas said:
Sit taken
Click to expand...
Click to collapse
Well deserved!
Gr8 job, Ill keep an eye.
This is fantastic and I'd like to try it. I'd like to cook my rom using this kitchen. Would you pls. give me a password.
Removed password protection!The download link is open for everyone!
Read 1st post before starting to play with it!Get used to it and read carefully!
Some features are NOT tested yet!
Hope to hear some good news!
Even better...hope to hear that someone makes it better!
I'm done!Back to my readings and to Solid State Physics(I hate that lesson)
Best Regards!
This is on it's way to my pc now thanks in advance
I've already changed Bepe's kitchen to fit my cooking but this one seams more advanced so thanks again
kokotas said:
Removed password protection!The download link is open for everyone!
Read 1st post before starting to play with it!Get used to it and read carefully!
Some features are NOT tested yet!
Hope to hear some good news!
Even better...hope to hear that someone makes it better!
I'm done!Back to my readings and to Solid State Physics(I hate that lesson)
Best Regards!
Click to expand...
Click to collapse
u need to modify the Create_ROM_for_ELF.bat file used for Ervius' buildOS tool. its not working right now, pls check it
v1.09 Should be final version ,at lease I have no idea what should I add right now.
Update from old version : copy userapp.dbf and userapp.cdx inside old one to new one. That's it
Update note aviliable at the bottom of this post
-------------------------------------------
[7 Nov 2012]
Upload new database
-------------------------------------------
Why Literom Creator ?
No recovery in need ,just Root ,everything fine
Easy to restore app
Define your own db with windows GUI interface
Switch between Phone with some clicks ,right now support N7000 and N7100
You can even make a new list yourself and share to your friend .Work on EVERY phones with ICS that have root.(For GB rom ,file script-begin must change something
Total free ,of coz you can buy me a beer
Download link : See attachment
[Inside package ,there is two EXE file
literom-creator.exe : Main Program
DBEdit.exe : Use this if you want to edit entry yourself]
DBEdit Readme aviliable here
Remark since v1.03
How can I switch database ?
1. Open dbEdit.exe
2. Inside dbEdit ,click Restore ,choose database that you want
3. Done
How can I make a lite-rom script quickly with new function : Combine App List?*
1. Open dbEdit.exe
2. Copy all apk files ,inside /system/app/ ,to folder [Place_System_App_Here]
3. Inside dbEdit ,click Restore ,choose file [FULL DB include everything] **You may want to backup the db you are using right now.
4. Click [Combine App List]
5. Done . Now you have a database that match your rom.
-------------- Readme of main program --------------
Before I wrote a windows base program that can create your own lite-rom script for N7000.
Now it's aviliable at Galaxy Note2
I think it should simple enough to use it yourself
{
"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"
}
Double click on any item that you want to remove
Filter : ALL mean list all / Remove mean list all you have choose to remove / Include mean that will keep in your rom
After select all you want to remove ,click [Export Lite-ROM Script] ,then you will get a file called [fish-literom.TXT]
Place [fish-literom.TXT] in your SDCard .
Now ,move to your phone ,download Script Manager from Market .
https://play.google.com/store/apps/details?id=os.tools.scriptmanager
You MUST browse as ROOT like this.
Browse to fish-literom.TXT ,choose Su
After that ,click Run.
After delete files ,it should have some force close .Ignore it .
Then ,restart your phone .
Finished .Now you may uninstall Script manager as well .
- Remark : File backup to folder /sdcard/fishliterom .If you want to restore ,simple copy file to /system/app ,set premission rw- r-- r-- ,reboot
- I search though XDA ,all the files listed should safe to remove ,if I make any mistake ,please tell me
- Hit Thanks if you like this
Release note.
- Add a pre-define db : Full DB include everything.txt ,you can use this to generate your script quickly.
dbEdit.exe v1.03 / Oct 29 2012
- Inside [Manage DB] ,add new function : Combine App List
After you put apk into folder [Place_System_App_Here]
It will compare folder items to database ,remove non-exist apk,add new apks ,keep item with same APK name .
So you can build a new lite-rom database quickly
- Double click on grid item ,it will copy apk name to clipboard ,and use default browser search XDA
- Add button : Clear Item - info2 ,
this will remove all item description in description 2
- Add button : Generate APK List ,
this will generate apk list into a text file call 'apk.txt'
Lite-Rom creator.exe v1.09 / Oct 29 2012
- Add multi lanaugae support .
You can place a file called [lauguage.txt] to default folder .
Then literom creator will read item layout from that .
If there is no language.txt inside ,program will show default language (English)
- Add Export Restore Script
Run this and restore all deleted file to system .
DBEdit v1.02 released Oct 27 2012
Thank Crushader for the idea .
Now it's much easy to create your own app list .Even switch between phones.
v1.08 Oct 26 2012
Change icon
Layout change
applist.dbf add remote control / change minimode-res.apk details.
Now you can edit the output script by
- Using Editplus (or sth like that) - open
script-begin : Inside this ,you can mount system ,set backup path ,and etc
script-main : main script to delete bloatware .Don't change keyword : #ThisIsApkToRemove that will replace with apk name when output
This two file MUST save as UNIX format
DB Reference : Search in XDA / http://goo.gl/8QSVX
v1.07 Oct 24 2012
Change DB from N7000 to N7100
goddamnit said:
Download link : http://goo.gl/l1GsE
- Remark : File backup to folder /sdcard/fishliterom .If you want to restore ,simple copy file to /system/app ,set premission rw- r-- r-- ,reboot
- I search though XDA ,all the files listed should safe to remove ,if I make any mistake ,please tell me
- Hit Thanks if you like this
Click to expand...
Click to collapse
minimode-res.apk : I found what is it now .
It's for mini popup browser .
Will change db details next time
v1.08 Oct 26 2012
Change icon
Layout change
applist.dbf add remote control / change minimode-res.apk details.
Now you can edit the output script by
- Using Editplus (or sth like that) - open
script-begin : Inside this ,you can mount system ,set backup path ,and etc
script-main : main script to delete bloatware .Don't change keyword : #ThisIsApkToRemove that will replace with apk name when output
This two file MUST save as UNIX format
great
will test it tnt
I checked your script, doesnt do anything to the libs, maybe u can improve on your script by adding or removing un-needed libraries also.
thanks.
nishbul said:
I checked your script, doesnt do anything to the libs, maybe u can improve on your script by adding or removing un-needed libraries also.
thanks.
Click to expand...
Click to collapse
Hi nishbul.
I have think about this too .
But ,if I remove the lib also ,user will hard to restore the apps.
And ,mainly ,this script is to stop that auto-load apps .
Maybe I will add delete libraries too if I let literom creator gen. restore script .
Anyway ,thanks for comment :laugh:
Regards,
Great tool! But would it possible to have an option to load the ROM into the tool and select list of bloatware you want to remove and export the script?
Crushader said:
Great tool! But would it possible to have an option to load the ROM into the tool and select list of bloatware you want to remove and export the script?
Click to expand...
Click to collapse
Hi Crushader,
It's easy to generate file list from ROM file.
But it's not easy to let literom creator think about which is bloatware.
Hmm.. maybe I will add import function then.Seem useful
Regards
Sent from my GT-N7100 using xda app-developers app
goddamnit said:
Hi Crushader,
It's easy to generate file list from ROM file.
But it's not easy to let literom creator think about which is bloatware.
Hmm.. maybe I will add import function then.Seem useful
Regards
Sent from my GT-N7100 using xda app-developers app
Click to expand...
Click to collapse
Cool, looking forward to that update =]!!!
Crushader said:
Cool, looking forward to that update =]!!!
Click to expand...
Click to collapse
I doubt if I should add function that read default db from internet.
So we can switch db ,like n7000-> n7100 more easy.
Or simple create a txt file to store db ,so can import / export.from txt ?
Or ...both of them ? lol
Because this script should work on ALL android system 4.0+ (2.3 too ,but need to modify script-begin)
Maybe there is Moto db ,HTC db and etc.. later
Sent from my GT-N7100 using xda app-developers app
goddamnit said:
I doubt if I should add function that read default db from internet.
So we can switch db ,like n7000-> n7100 more easy.
Or simple create a txt file to store db ,so can import / export.from txt ?
Or ...both of them ? lol
Because this script should work on ALL android system 4.0+ (2.3 too ,but need to modify script-begin)
Maybe there is Moto db ,HTC db and etc.. later
Sent from my GT-N7100 using xda app-developers app
Click to expand...
Click to collapse
Hmm I see, either way its a great tool =]
New version of DBEdit aviliable here :
http://forum.xda-developers.com/attachment.php?attachmentid=1435054&d=1351348939
Simple unzip ,place new file to folder Lite-ROM Creator
------------------------------------------------------------------------------------
I think this main screen is simply enough to use .
If you cannot understand what it do .Please skip this post
This version of DBEdit ,added a new function Manage DB
Now you can :
Backup your DB List
Import List
Restore to default list
Clear Database
and ,create your own list
---------------------------------------------
Backup : After you click this button ,current database with backup to a textfile with timestamp ,then open the directory location .You can feel free to change the file name you want.
Import : Read a text file ,all NEW entry will add into database .Old db will remain unchange
Restore : Read a text file ,old db will be delete ! And save all item aviliable inside text file . You can use this to switch between phones ,like from N7000 -> N7100 ,and vice versa .
Clear : All db will delete !
---------------------------------------------
Follow is test function ,read a list of apk and generate a new db.
it should work fine on EVERY Android Phones with ICS .
(Note : For GB rom ,you will need to modify file [script-begin] ,line4 ,then it will work fine .Message me if you need it)
First ,you must have a system dump (or something like that)
Method 1 ,Get from your phone : Great tutor here : http://forum.xda-developers.com/showpost.php?p=7204732&postcount=1
Method 2 ,download system dump files from XDA or somewhere else .I think you can download the system dump file before you get your new phone .
Method 3 ,download a CWM flashable ROM
After that ,
open the zip (RAR maybe) file
Inside the file ,there is a folder [system] ,open it
Inside [system] ,open folder[app]
Copy all files ,to folder [Place_System_App_Here] which is aviliable @ Lite-ROM creator folder
You can go back to Lite-ROM Creator now
Now ,click button Clear (depends)
click Generate App List in Lite-ROM Creator.
You will get a list like this .
Then start to create your own db.
If you want to know if the apk safe to remove . You can double click grid item ,
A search link to XDA will be opened with your stock browser .
If you created a new db .Please tell me so I can put it into db_list
---------------------------------------------------
Remark since v1.03
How can I switch database ?
1. Open dbEdit.exe
2. Inside dbEdit ,click Restore ,choose database that you want
3. Done
How can I make a lite-rom script quickly with new function : Combine App List?
1. Open dbEdit.exe
2. Copy all apk files ,inside /system/app/ ,to folder [Place_System_App_Here]
3. Inside dbEdit ,click Restore ,choose file [FULL DB include everything] **You may want to backup the db you are using right now.
4. Click [Combine App List]
5. Done . Now you have a database that match your rom.
Remove Bloatware in Sprint Galaxy Note2
Just download Sprint Galaxy Note2 system dump from here
http://forum.xda-developers.com/showthread.php?t=1875773
and make a /system/apk list of that .
You can set db to Sprint Galaxy Note2 by dbedit.exe ,using restore function .
Database file can found in OP .
Item with no details that I cannot comfirm if it's safe to remove .
I do not own a Sprint Galaxy Note2 :laugh:
--------------------
Right now target on T889 and Veizon
Release note.
- Add a pre-define db : Full DB include everything.txt ,you can use this to generate your script quickly.
dbEdit.exe v1.03 / Oct 29 2012
- Inside [Manage DB] ,add new function : Combine App List
After you put apk into folder [Place_System_App_Here]
It will compare folder items to database ,remove non-exist apk,add new apks ,keep item with same APK name .
So you can build a new lite-rom database quickly
- Double click on grid item ,it will copy apk name to clipboard ,and use default browser search XDA
- Add button : Clear Item - info2 ,
this will remove all item description in description 2
- Add button : Generate APK List ,
this will generate apk list into a text file call 'apk.txt'
Lite-Rom creator.exe v1.09 / Oct 29 2012
- Add multi lanaugae support .
You can place a file called [lauguage.txt] to default folder .
Then literom creator will read item layout from that .
If there is no language.txt inside ,program will show default language (English)
- Add Export Restore Script
Run this and restore all deleted file to system .
-------------------------------------------
[7 Nov 2012]
Upload new database
-------------------------------------------
Hi,
Not working on my standard 7100.
BusyBox 1.202 and SManager 2.6.0.2 installed. Stock rom and kernel XXDLL4, JB 4.1.2, root with CF-autoroot from Chainfire.
The script start, mkdir command ok then go to finished, I retry twice, second time mkdir logically failed and same, other commands did not apply (see attachment).
Anyway thanks for your work.
Pax_fr said:
Hi,
Not working on my standard 7100.
BusyBox 1.202 and SManager 2.6.0.2 installed. Stock rom and kernel XXDLL4, JB 4.1.2, root with CF-autoroot from Chainfire.
The script start, mkdir command ok then go to finished, I retry twice, second time mkdir logically failed and same, other commands did not apply (see attachment).
Anyway thanks for your work.
Click to expand...
Click to collapse
Please import full db using dbedit.exe,then try again.
I doubt if you are using the.right one
Sent by N7100
{
"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"
}
SELENIUM by Ravi H Basawa
This will be a Full Tutorial on Selenium Automation Tool
I will be updating this thread as I get time. SO NO ETA's.
Click to expand...
Click to collapse
If anybody wants to use / copy this tutorial to their Website or Blog please feel free to contact me at my personal email id: [email protected]
or at our official Website: www.rhbroms.com
Click to expand...
Click to collapse
Please Click on Thanks button if this tutorial by me had helped you for some extent !!!
Click to expand...
Click to collapse
Contents:
1. What is Selenium?
2. What all we need before we get it started?
3. How to setup Selenium for Eclipse?
4. Simple Selenium Test Script for google.co.in
5. Execution using Junit
5a. Execution using TestNG
6. DataDriven Testing using POI jar files
7. Issues or challenges with Selenium
Credits:
@Swaroop Bandagadde
My Other Works:
1. ROBOTIUM AUTOMATION TOOL
2. MONKEYRUNNER AUTOMATION TOOL
Selenium
1. What is Selenium?
Selenium is an open source ( It's free !!!!) automation testing tool used for automating websites under any browser(not all).
Selenium supports the following browsers: IE, FireFox(Default), Chrome, Safari, Opera.
We write Selenium WebDriver Scripts in Eclipse. These scripts are written in Java language.
Things that you should be good at Java are: Constructors, Overriding, Overloading, Constructor Chaining, Interface, Inheritance, Abstract Class and UpCasting - DownCasting concepts are enough to write Selenium WebDriver Script.
What all we need before we get it started?
2. What all we need before we get it started?
1. Windows 7 / 8
2. Java
3. Eclipse ((Juno or ADT) what I have worked on !! )
4. selenium-server-standalone-2.38.0
5. TestNG plugin for Eclipse
6. POI jar files
Downloads:
POI jar files: POI.zip
Selenium Jar file
How to setup Selenium for Eclipse?
3. How to setup Selenium for Eclipse?
1. Open Eclipse goto Help -> Install new software.. -> give work with edittext field value as " TestNG - http://beust.com/eclipse " -> select all -> Next -> Finish
2. when you create a new test project inside its build path add selenium webdriver jar files. I will show it in next chapter.
4. Simple Selenium Test Script for Google website
4. Simple Selenium Test Script for Google website
1. Create new java project with name Selenium Test as shown below:
2. Now we have to add the selenium Jar file to the build path ( Goto project -> Properties -> Java Build path ) as shown in below screen shot and add the downloaded selenium-server-standalone-2.38.0.jar file. by clicking on the add external Jar's button. After this goto "Order and Export" tab click on "Select All" button and click "ok" button.
3.After completion of the above step now create a new java class ( Goto Project -> New -> Class) as shown in below ss and give name as TestWebDriver
4. After this now we will write a code to open Mozilla FireFox Browser and also open Google website inside it. The code for this is as below:
package com.rhb.selenium; // package name what I have given. It can differ with yours
import org.openqa.selenium.WebDriver; // Automatically imported by eclipse [This is for invoking the WebDriver class from selenium API]
import org.openqa.selenium.firefox.FirefoxDriver; // Automatically imported by eclipse [This is for invoking the FireFoxDriver class from selenium API]
public class TestWebDriver {
static WebDriver driver = null; // initialization
//the below method is made static to call this method inside our package without creating any instance for it.
public static void setup(){
driver = new FirefoxDriver(); // inbuilt method called from selenium class
driver.get("http://www.google.co.in"); // opens the website which is written inside the braces.
}
}
Click to expand...
Click to collapse
5. Now Lets create another java class called FunLib and inside this what we do is we will try to enter some text into the edit text box of the Google website and also we will click on the search button. the code for this is as below:
import org.openqa.selenium.By;
public class FunLib extends TestWebDriver {
public static void Search() throws InterruptedException {
driver.findElement(By.xpath("//div[@id='hplogo']")).click(); // clicks on the Google Logo
Thread.sleep(3000); // sleeps for 3000 milliseconds
driver.findElement(By.xpath("//input[@name='q']")).sendKeys("RHBROMS"); // type as RHBROMS in the edit text field
driver.findElement(By.xpath("//button[@id='gbqfb']")).click(); // Click on the Search button
Thread.sleep(3000); // again sleeps for 3000 milliseconds
driver.findElement(By.xpath("//li[1]/div/div/h3/a")).click(); // Click on the first link that is rhbroms.com
System.out.println("button got clicked"); // displays the msg on console.
}
}
Click to expand...
Click to collapse
6. Okay now you might be thinking as how to identify the edit text field as well as other elements.!! Its easy for that we need some Extensions for FireFox they are as below:
7. After installing these Extensions we now see how to use them to Identify the objects. Thing is we don't use all these but some, It again depends on which tool u want to use!!. which one is best for you.
8. First I will show you how to Identify the Google Logo by using Xpath. To do this open FireFox and open Google website and right click on Google Logo and select View XPath. After this you will see something like as shown below:
9. As you can see from the image as XPath is given as : id('hplogo') but thing is how to use this in our code.. Simple just add the tag type in this case it is <div> (The <div> tag defines a division or a section in an HTML document.) the changes what u have to do is as shown in below Screen Shot.
10. Now the same goes for other objects too..!! If you find any doubts on this feel free to ask me by either commenting here or by emailing me.
11. Now we will see how to execute our first Automation Script in the next chapter.
5. Execution using Junit and TestNG
5. Execution using Junit
1. First we will see how to execute our script via JUnit Suit.
2. Let us create a new JUnit test case (project -> New -> Junit test case) as shown in below screen shot:
3. Now let us give the Junit test case name as "Junit" as shown below in the screen shot. NOTE: Uncheck setup and teardown options.
4. Okay as we are done with creating new Junit test case just do the below editing:
package com.rhb.selenium; // package name
import junit.framework.TestCase; // auto import
import org.testng.annotations.Test; // auto import to give annotations that are necessary
public class Junit extends TestCase {
@Test
public void test1() throws Exception{
Main m = new Main(); // creating instance for Main class as "m"
m.setup(); // as setup is a method which is declared under Main class we can access it using access specifier "m"
m.Search(); // as Search is a method which is declared under Main class we can access it using access specifier "m"
}
}
Click to expand...
Click to collapse
5. To run the above JUnit Test right click on Junit.java file -> RunAs -> Junit Test
6. When you run the Junit test FireFox runs automatically in WebDriver mode as shown below and all the operations that we have specified in the Main class will be performed. Screen Shot of this is as shown below:
7. The below snap shows the test case is pass and the color is changed to Green. And also we got a msg at console as "button got clicked" what we have written in FunLib.java !!
8. The Result at FireFox WebDriver should be as shown below:
9. Okay now we will see how to execute using TestNG ( Easy one )
5a. Execution using TestNG
5a. Execution using TestNG
1. Don't worry it is very easy compared to JUnit.
2. I hope you have installed the plugin of TestNG to your Eclipse.
3. Lets Create a new java class with name TestNGSuite1. Copy paste the below code after creation:
package com.rhb.selenium;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.testng.annotations.Test;
public class TestNGSuite1 {
@Test
public void testngtest() throws FileNotFoundException, InvalidFormatException, IOException, Exception {
Main m = new Main(); // instance of Main class
m.setup(); // call for setup method
m.Search(); // call for Search method
}
}
Click to expand...
Click to collapse
3. Right click on TestNGSuite1.java file -> TestNG -> Convert to TestNG as shown in below screen shot:
4. Now you will see as below Screen Shot, here TestNG is converting our java file to executable xml format.
5. Now click on Finish button and you will see a Testing.xml file as shown below:
6. Now Just right click on the xml file -> RunAs -> TestNG Suite as shown below:
7. Finally you will see the final result as below:
6. DataDriven Testing using POI jar files and TestNG XSLT + ANT
6. DataDriven Testing using POI jar files
1.We go for data driven testing when we have some modules that need to be tested for multiple values. For example in a application which has a login page with username and password field we have to test these edit text boxes for multiple inputs, It can be a number or it also can be a string or both together.
2. Here I will take Google.com as example and show you how to extract data from a excel file and push the same to Google website.
3. First we will create an excel file with some data present in it to test our application. (An Excel file for testing our app is attached here)
4. To extract data from Excel we use “FileInputStream” Class by which we can create/delete and modify a file.
5. Now add POI.jar files to Java Build Path same as how we added Selenium Jar file.
6. After adding of POI jar files to Java Build Path you will see them added as shown below:
7. After this is done we will create a new java class and will give the name as "DataDriveTest" and extend it from "TestWebDriver" Class.
8. Now what we will do is we will open google.com enter "search" value as "RHBROMS" ( 1st value from the excel sheet ) click on the first link and then we will click on back button of the browser and then we will clear the search box and enter "xda developers" ( 2nd value from the excel sheet ) and click on first link that will be xda developers website.
9. The code for this is as written below with explanation.
package com.rhb.selenium;
// below package imports are for File I/O operations
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
// below packages are for excel sheet operations
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.openqa.selenium.By;
public class DataDriveTest extends TestWebDriver {
public static void test() throws Exception, IOException,
FileNotFoundException,InvalidFormatException {
String cellval1 = null; // set the current value of cellval1 as NULL
String cellval2 = null; // set the current value of cellval2 as NULL
FileInputStream fis= new FileInputStream("E:\\Test.xls");
Workbook wb = WorkbookFactory.create(fis); // creates object for workbook Test.xls
Sheet ws = wb.getSheet("Sheet1"); // opens Sheet1 from workbook Test.xls
int rc = ws.getLastRowNum(); // counts the number of rows which are used
for(int i=1; i<=rc; i++)
{
Row r = ws.getRow(i); // ponts to the i'th ROW
for (int j=0;j==0;j++){
{
Cell c = r.getCell(j); // points to the j'th Column
cellval1=c.getStringCellValue(); // gets the data from J'th cell
Cell c1 = r.getCell(j+1); // ponts to the J+1'th column
cellval2=c1.getStringCellValue(); // gets the data from J+1'th cell
driver.findElement(By.xpath("//div[@id='hplogo']")).click(); // Clicks on the google logo
driver.findElement(By.xpath("//input[@name='q']")).sendKeys(cellval1); // take the first value from first column and paste it at the search box
driver.findElement(By.xpath("//button[@id='gbqfb']")).click(); // clicks on the search button
Thread.sleep(3000); // sleeps for 3000milisecs
driver.findElement(By.xpath("//li[1]/div/div/h3/a")).click(); // clicks on first link
driver.navigate().back(); // clicks on the back button of the browser
driver.findElement(By.xpath("//input[@name='q']")).clear(); // clears the search box
driver.findElement(By.xpath("//input[@name='q']")).sendKeys(cellval2); // enters the second value from the excel sheet
driver.findElement(By.xpath("//button[@id='gbqfb']")).click(); // clicks on the search button again
Thread.sleep(3000);
driver.findElement(By.xpath("//li[1]/div/div/h3/a")).click(); // clicks on the first link
}
}
}
}
}
Click to expand...
Click to collapse
10. Now to execute this we have to do some editing at Main.java file as:
Code:
public class Main extends DataDriveTest {
public static void main(String args[]) throws FileNotFoundException, InvalidFormatException, IOException, Exception{
setup();
test();
}
11. And also in TestNGSuit1.java file as:
Code:
@Test
public void testngtest() throws FileNotFoundException, InvalidFormatException, IOException, Exception {
Main m = new Main();
m.setup();
m.test();
}
12. Now as usual convert the TestNGSuit1 file to TestNG and execute. :victory:
13. To see your TestNG results go to your eclipse workspace and open selenium project inside that you will find test-output folder. As shown in below Screen Shot:
14. For Generation of Graphical and more clean Results we use TestNG xslt with ANT. lets see how to do it in Next Chapter :laugh::laugh:
6. TestNG xslt with ANT
1. Download Ant from here: http://ant.apache.org/
2. Unzip it and rename the folder as ant.
3. Set ANT_HOME to environmental variables.( In windows 7 Right click on Computer -> properties -> “Advance system setting”
-> Choose Advanced Tab
-> Press Environment Variables Button
-> In the System Variables, click New Button
Give the Variable Name:ANT_HOME
Give the Value: E:\ant
Click OK )
as shown in Below Screen Shot.
4. Set ANT_HOME path,
go to path
Give the Value C:\ANT\bin
Click OK
5. To check ANT works properly or not
In the command prompt, type:
Code:
ant -version
you will see as below Screen Shot:
6. Now download testng-xslt from HERE
7. After this extract the downloaded zip file and go to testNG-xslt -> src -> main -> resources and copy the file testng-results.xsl and also copy this file from testNG-xslt -> lib that is saxon-8.7.jar and keep them at any folder for time being.
8. Now go to your project workspace and goto SeleniumTest -> test-output and paste testing-results.xsl that you copied.
9. and now goto eclipse and add saxon-8.7.jar to buildpath.
NOTE: the thing is you have to keep all your jar files in a same folder as I have kept at jar folder as shown below in my setup:
10. Now after doing all this create new xml file and call it as Build.xml
11. After creating this just copy paste the below code:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<project name="SeleniumTest" default="compile" basedir=".">
<path id="cp">
<pathelement path="bin" />
<fileset dir="jars"/>
</path>
<!-- for compiling -->
<target name="compile">
<javac classpathref="cp" srcdir="src" destdir="bin"/>
</target>
<!-- for running -->
<target name="run" depends="compile">
<java classpathref="cp" classname="org.testng.TestNG" args="testng.xml"/>
</target>
<!-- for report generation -->
<target name="report" depends="run">
<xslt in="./test-output/testng-results.xml" style="./test-output/testng-results.xsl" out="./test-output/testng-xslt.html">
<param expression="${basedir}/test-output/" name="testNgXslt.outputDir" />
<classpath refid="cp"/>
</xslt>
</target>
</project>
12. After this save the file.
13. Now right click on the project and do as below and select TestNG:
14. Now Run the Build.xml file. and your results will be stored at Index.html at test-output folder.
To be continued .. NEXT will be Maven with TestNG!!
Excellent..
This tutorial helps in starting up with Selenium with all the configuration.
Thanks
Swaroop Bandagadde said:
This tutorial helps in starting up with Selenium with all the configuration.
Click to expand...
Click to collapse
Thank you @Swaroop Bandagadde for helping me to write this Tutorial !!..:victory:
Hello, recently I looked into LG backup and restore application using static analysis.
Note: this is based on version lg bnr 8.0.26 from 2020-02-13, tested with 7.0.20 from 2008-12-31
Here is the extract tool:
https://github.com/Mysak0CZ/LBFtool
And here is the technical part (you don't need to read this, if you just want to extract your data):
The file contains 2 headers (one of them is referred to as "new")
These are XML documents encrypted using AES/ECB/PKCS5Padding + SHA256 and null IV with static password
Code:
cd562f61-5399-3978-ac76-7c54b0508010
And they look like this:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<BackUp>
<Common>
<Name>LGBackup_200217_1</Name> <!-- Name of the backup file -->
<Id>Randomly generated UUID</Id> <!-- Id of the backup file -->
<IsNew>True</IsNew> <!-- IsNew is same in new and old header -->
<Version>1.00</Version>
<Attr Name="product_model">LM-X525</Attr>
<Attr Name="os_version">9</Attr>
<!-- And other attributes including google email -->
</Common>
<BackupItem Category="settings_DB" StartOffset="59392" DataSize="136626" />
<BackupItem Category="MEDIA_DB" StartOffset="901169" DataSize="78393344" FileName="external.db" />
<!-- Other backuped items -->
</BackUp>
The "new" header has more information than original header, but same structure.
The attribute "IsNew" signals the presence of the new header. (and is True in both files)
All numbers inside file are in Big-endian.
And this is the structure of the file (decimal position):
Code:
0: Unknown - 0x00 for me
1: Int32 - size of the new header
5: Int64 - offset to the new header (usually 13)
13 ... EOF-33: data
EOF-33: 20 bytes - SHA1 hash of the password (if present, otherwise still data)
EOF-13: Int64 - offset to the (old) header
EOF-5: Int32 - size of the (old) header
EOF-1: Bool - Lock byte - the file is (0x01) or isn't (0x00) protected by password
The password is only checked during import, not used to encrypt data (so to remove password, just set the last byte to 0)
Every "BackupItem" entry has a "Category".
Special case is Category="APPLICATION" with this structure:
Code:
<BackupItem Category="APPLICATION">
<APPLICATION Name="com.lge.ime" StartOffset="19221586" DataSize="2385983" Package="com.lge.ime">
<Attr Name="com.lge.ime">com.lge.ime</Attr>
</APPLICATION>
<APPLICATION Name="org.exmple.app" StartOffset="1429652009" DataSize="3420160" FileName="org.exmple.app.tar" Package="org.exmple.app">
<Attr Name="org.exmple.app">org.exmple.app</Attr>
</APPLICATION>
<!-- ... -->
</BackupItem>
All applications are tar files that contain 2 folders:
app - contains the apk file
data - application's internal data
All other items have:
StartOffset - Offset inside file
DataSize - Self explanatory
FileName - Not all have this, but most do; it is the original name of the backuped file.
The files are not compressed nor encrypted.
Footnote: This is my first post on XDA, so sorry for any mistakes I made (including my english) and feel free to correct me/give me advice.
Mysak0CZ said:
Hello, recently I looked into LG backup and restore application using static analysis.
Note: this is based on version lg bnr 8.0.26 from 2020-02-13, tested with 7.0.20 from 2008-12-31
Here is the extract tool:
And here is the technical part (you don't need to read this, if you just want to extract your data):
The file contains 2 headers (one of them is referred to as "new")
These are XML documents encrypted using AES/ECB/PKCS5Padding + SHA256 and null IV with static password
And they look like this:
The "new" header has more information than original header, but same structure.
The attribute "IsNew" signals the presence of the new header. (and is True in both files)
All numbers inside file are in Big-endian.
And this is the structure of the file (decimal position):
The password is only checked during import, not used to encrypt data (so to remove password, just set the last byte to 0)
Every "BackupItem" entry has a "Category".
Special case is Category="APPLICATION" with this structure:
All applications are tar files that contain 2 folders:
app - contains the apk file
data - application's internal data
All other items have:
StartOffset - Offset inside file
DataSize - Self explanatory
FileName - Not all have this, but most do; it is the original name of the backuped file.
The files are not compressed nor encrypted.
Footnote: This is my first post on XDA, so sorry for any mistakes I made (including my english) and feel free to correct me/give me advice.
Click to expand...
Click to collapse
Nice job dude! just a the quick recommendation: I would suggest that you put your code on gitlab or GitHub so it will become easier for others to contribute
Sent from my OnePlus 6T using XDA Labs
Hi. I'm trying to use this tool but I don't know how to use it. I followed the instructions and downloaded Python. but none of the other steps are working for me. I have my backup on my PC and am trying to extract my files into normal formats as I wish to move away from the LG platform. Thank you.
---------- Post added at 07:20 AM ---------- Previous post was at 06:57 AM ----------
Nevermind, I found a work around.
For anyone else in the future wondering: If you select backup with the app on the phone and backup to the internal memory, it will create .pdf files of all text/images in internal storage>>Quickmemo+. This doesn't help to retrieve the audio or video recordings, but at least that way you can retrieve your text files/images.
Tried script on old backup, failed with error.
Mysak0CZ said:
Hello, recently I looked into LG backup and restore application using static analysis.
Note: this is based on version lg bnr 8.0.26 from 2020-02-13, tested with 7.0.20 from 2008-12-31
Here is the extract tool:
And here is the technical part (you don't need to read this, if you just want to extract your data):
The file contains 2 headers (one of them is referred to as "new")
These are XML documents encrypted using AES/ECB/PKCS5Padding + SHA256 and null IV with static password
Code:
cd562f61-5399-3978-ac76-7c54b0508010
...
[/CODE]
All applications are tar files that contain 2 folders:
app - contains the apk file
data - application's internal data
All other items have:
StartOffset - Offset inside file
DataSize - Self explanatory
FileName - Not all have this, but most do; it is the original name of the backuped file.
The files are not compressed nor encrypted.
Footnote: This is my first post on XDA, so sorry for any mistakes I made (including my english) and feel free to correct me/give me advice.
Click to expand...
Click to collapse
My first post as well. Thanks for the script. I ran it on an old backup I was hoping to extract contacts from. See excerpt with error below.
C:\Temp\LG G4\Backup>python extract.py LGBackup_190218.lbf
[+] Backup size: 597864605
Parsing...
Reading header
[*] Header start offset: 597792768
[*] Header length: 71824
[+] Header read OK
Reading header (new)
[*] Header start offset: 7021235167904623918
Traceback (most recent call last):
File "extract.py", line 125, in <module>
root = readHeader(True)
File "extract.py", line 99, in readHeader
size = getBackupInfoSize(isNew)
File "extract.py", line 88, in getBackupInfoSize
raise Exception("Invalid header length.")
Exception: Invalid header length.
C:\Temp\LG G4\Backup>
Click to expand...
Click to collapse
I'm a complete newbie with Python, haven't done any coding in over a decade. Where do I go from here?
Ninja_Toad said:
My first post as well. Thanks for the script. I ran it on an old backup I was hoping to extract contacts from. See excerpt with error below.
I'm a complete newbie with Python, haven't done any coding in over a decade. Where do I go from here?
Click to expand...
Click to collapse
Hi! Your backup seem to be at least partially corrupted. (The new header position seems to start at 7021235167904623918, however the file is only 597864605 bytes long). Fortunatly there are two headers in the backup and the old one seems to be ok (You got "[+] Header read OK" for the old header). So you can try ignoring the "new" header.
To ignore the faulty header just set the relevant "FORCE_*_HEADER" to True in the script header. In your case just set "FORCE_OLD_HEADER = True".
Also note, that extracting contacts in readable format is beyond this script's current scope. This can however be done manually. After you get your data successfully extracted, look for export/data/contacts_DB file. This is a TAR file in which you need to find file "data/data/user/0/com.android.providers.contacts/databases/contacts2.db". This is the contact database as your phone stores it. To actually extract the contacts, you will need to find a way to convert the database to some other format (I have't looked into how the contacts are stored, you will need to do your own googling)
Files extracted but...
hello guys,
I also managed to extract my files using the hack mentioned above (force old headers to TRUE) since by using the default script i was also getting a similar error as above.
However now all of my files (pictures in particular) are corrupted and i cannot seem to be able to open them using several editors.
Anyone else had the same issue?
Thanks in advance!
serlal said:
hello guys,
I also managed to extract my files using the hack mentioned above (force old headers to TRUE) since by using the default script i was also getting a similar error as above.
However now all of my files (pictures in particular) are corrupted and i cannot seem to be able to open them using several editors.
Anyone else had the same issue?
Thanks in advance!
Click to expand...
Click to collapse
Yes I have exactly same issue as you have. All exported files cannot be read.
Hello @tking2000 and @serlal, this script was written based on versions that are available to me. There are two possibilities of what is happening:
1) The file was badly corruped, however the old header stayed itact. (This is the likely case, if you are trying this tool because your phone refused to restore the backup)
2) The file was made by version that does something differently and the script doesn't account for it.
In the first case there is nothing anyone can do (short of trying some corrupted file recovery software hoping the corruption is only minor)
In the second case, you can try sending me a PM with following information, so I can have a look and confirm whether this is truly the case (and improve the script)
1) The script's output
2a) The <Version> and <Attr Name="settingVersionName"> from the <Common> part of the header
2b) If you aren't concerned about privacy or it is just easier for you: just send the whole header file
3) The version of the com.lge.bnr app (LG Mobile Switch); this is not necessary, but may help me
Feel free to censor anything you are sending with [CENSORED] (like your email or filenames)
I have no experience with python, but I have one of these lbf files and I'm trying to figure out how to make it work and all I get is couldn't get library pycryptodome. How do I get Python 3.8.3 to get this library?
Multipart backups
Hello everyone,
I just finished an update, that should enable the tool to extract backups that have multiple files.
If you received "Exception: Invalid header length." in the past and your backup has multiple files, try the script now; your backups are likely to extract correctly now.
This is the likely case for: @Ninja_Toad @serlal and @tking2000
This was made possible thanks to @cheesyzombie who sent me the data I asked for.
@kamikazkid, You don't need to know Python to use this tool, the easiest way is to enter the commands in quotes on the github page into the console (To open the console Shift+Right click in the folder with backups and choose "Open command window here").
Just:
Download the zip on the github page (Under "Code" button)
Make sure the extract.py and your backup are in the same folder
Follow the usage, skip the 4th step and replace xxxxxx to match your backup name.
I figured it out, it was something with windows 10 and the version of python installation I used. Microsoft garbaging things up as usual, thanks for the help though. Thanks, I recovered my files from my old phone successfully.
I have no experience withc++, but I have one of these lbf files and I'm trying to figure out how to make it work, it is a great this forum
Is there a way to import the _DB files (contacts, messages, call logs etc.) back to a phone?
I asked before:
https://forum.xda-developers.com/lg-g3/general/restore-backup-lbf-lineage-17-t4172483#post83644281
Thank you so much for this! I was able to extract the Messaging data from an LG G8 ThinQ. Does anybody know the easiest way to view that data on my PC?
Hi, you can follow these steps to extract data fron _db files:
1) Send the _db files like contacts_db, messages_db to any android phone
2) Double tap on the file and open it using File Manager (which is by default on Mi phones)
3) The file will now open as a folder. Continue opening the folders until you reach to the last file.
4) The last file is the database file. It won't open directly. Select the file and extract the file.
5) Now transfer the file to computer and you can now view it using SQLite DB Browser if its a contacts file or you can use any VMG reader if its a messages file.
Hope this helps you.
Hi @Mysak0CZ, just follow your instructions on GitHub but when I run the command on Command Prompt, nothing happens. Just like this:
F:\>python -m pip install pycryptodome
F:\>python extract.py LGBackup-201031.lbf
When I enter nothing happened. Kindly help to advise for this.
Thank you
Problem in powershell
Mysak0CZ said:
Hi! Your backup seem to be at least partially corrupted. (The new header position seems to start at 7021235167904623918, however the file is only 597864605 bytes long). Fortunatly there are two headers in the backup and the old one seems to be ok (You got "[+] Header read OK" for the old header). So you can try ignoring the "new" header.
To ignore the faulty header just set the relevant "FORCE_*_HEADER" to True in the script header. In your case just set "FORCE_OLD_HEADER = True".
Also note, that extracting contacts in readable format is beyond this script's current scope. This can however be done manually. After you get your data successfully extracted, look for export/data/contacts_DB file. This is a TAR file in which you need to find file "data/data/user/0/com.android.providers.contacts/databases/contacts2.db". This is the contact database as your phone stores it. To actually extract the contacts, you will need to find a way to convert the database to some other format (I have't looked into how the contacts are stored, you will need to do your own googling)
Click to expand...
Click to collapse
Hi, I am trying to extract via your method but in the power shell in sending the command "python extract.py LGBackup_1x0x07.lbf" it does not execute and brings me back the initial path line. Do you have solutions in this regard? Thanks in advance
Ps. I use Win10
Worked so well. I only needed to recover images and audio recordings after realizing that LG backup tool won't restore on other brand phones.
Thank you!!
Mysak0CZ said:
Hello, recently I looked into LG backup and restore application using static analysis.
Note: this is based on version lg bnr 8.0.26 from 2020-02-13, tested with 7.0.20 from 2008-12-31
Here is the extract tool:
https://github.com/Mysak0CZ/LBFtool
And here is the technical part (you don't need to read this, if you just want to extract your data):
The file contains 2 headers (one of them is referred to as "new")
These are XML documents encrypted using AES/ECB/PKCS5Padding + SHA256 and null IV with static password
Code:
cd562f61-5399-3978-ac76-7c54b0508010
And they look like this:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<BackUp>
<Common>
<Name>LGBackup_200217_1</Name> <!-- Name of the backup file -->
<Id>Randomly generated UUID</Id> <!-- Id of the backup file -->
<IsNew>True</IsNew> <!-- IsNew is same in new and old header -->
<Version>1.00</Version>
<Attr Name="product_model">LM-X525</Attr>
<Attr Name="os_version">9</Attr>
<!-- And other attributes including google email -->
</Common>
<BackupItem Category="settings_DB" StartOffset="59392" DataSize="136626" />
<BackupItem Category="MEDIA_DB" StartOffset="901169" DataSize="78393344" FileName="external.db" />
<!-- Other backuped items -->
</BackUp>
The "new" header has more information than original header, but same structure.
The attribute "IsNew" signals the presence of the new header. (and is True in both files)
All numbers inside file are in Big-endian.
And this is the structure of the file (decimal position):
Code:
0: Unknown - 0x00 for me
1: Int32 - size of the new header
5: Int64 - offset to the new header (usually 13)
13 ... EOF-33: data
EOF-33: 20 bytes - SHA1 hash of the password (if present, otherwise still data)
EOF-13: Int64 - offset to the (old) header
EOF-5: Int32 - size of the (old) header
EOF-1: Bool - Lock byte - the file is (0x01) or isn't (0x00) protected by password
The password is only checked during import, not used to encrypt data (so to remove password, just set the last byte to 0)
Every "BackupItem" entry has a "Category".
Special case is Category="APPLICATION" with this structure:
Code:
<BackupItem Category="APPLICATION">
<APPLICATION Name="com.lge.ime" StartOffset="19221586" DataSize="2385983" Package="com.lge.ime">
<Attr Name="com.lge.ime">com.lge.ime</Attr>
</APPLICATION>
<APPLICATION Name="org.exmple.app" StartOffset="1429652009" DataSize="3420160" FileName="org.exmple.app.tar" Package="org.exmple.app">
<Attr Name="org.exmple.app">org.exmple.app</Attr>
</APPLICATION>
<!-- ... -->
</BackupItem>
All applications are tar files that contain 2 folders:
app - contains the apk file
data - application's internal data
All other items have:
StartOffset - Offset inside file
DataSize - Self explanatory
FileName - Not all have this, but most do; it is the original name of the backuped file.
The files are not compressed nor encrypted.
Footnote: This is my first post on XDA, so sorry for any mistakes I made (including my english) and feel free to correct me/give me advice.
Click to expand...
Click to collapse
ok I am so lost. And here is the technical part (you don't need to read this, if you just want to extract your data):
that statement would make it appear easy. well the link only takes you to the code, there is no tool and nothing with "new" as header. so ive tried deciphering what to do for hours now and i cant figure npthing out. rooted and flashed my lgv20 and did a backup with lg bridge beforehand. trying to restore and phone connects to computer fine but doesnt regster in lg bridge so that is why i need to extract .lbf file. can someone make this easier?
hello..it ended up successful.but there is no jpeg or mp4 file on DCIM folder..how can i restore them?should i do somthing with the script? i don't know pyton
This guide is purely for educational purposes. I am not responsible for anything wrong that happens to your browser when doing this method.
Also note that this isn't a very user friendly way of doing it. This is purely for educational purposes. I'll provide a user-friendly way of doing it soon!!
Follow the steps exactly as I do in the video or follow steps below video
YouTube Tutorial
*Requirements*
1. Rooted phone with Magisk
2. A file explorer!!
3. My extension template
Steps:
1. Find what extension you want to download. Any links from Gitlab or GitHub will work. For example, any extension with the release links on GitHub you will copy into your clipboard.
2. Download my template and store is somewhere. You'll be editing THREE things inside it. They are the following:
public","url":"INSERT URL HERE!!!!!",
"name":"INSERT NAME HERE!!!!",
"summary":"INSERT SUMMARY HERE!!!",
You will replace url with the url download link to the xpi file you copied into your clipboard.
Add a name to the extension
Then lastly, provide a summary.
Save the file.
3. Copy the entire code to your clipboard. Then, with a root browser, navigate to this location:
/data_mirror/data_ce/0/org.mozilla.fenix/files
You will see a file called: mozilla_components_addon_collection_en_Extensions-for-Android.json
Open it up with a text editor
Scroll all the way to the bottom where there will be ":null}]} at the end of the code
Delete the last two characters: ]} and add "," Then PASTE your code.
4. Once pasted, make sure the end of the code ends with
]}
5. Close Firefox and relaunch it. You should see an additional extension added at the bottom of the list of extensions.
6. Profit!!!!!!!
Additional Notes
I will be making an Apk or a script soon that will make the process much easier and quicker. I'll provide more updates soon!!!!