[HOW-TO]Heimdall One-Click - ROM Packaging and Distribution System - Android Software Development

Introduction
Heimdall One-Click is a open-source stack of software intended to eliminate our dependence on Odin and provide an unrivaled safe method to perform a complete flash of a device. Heimdall One-Click will work on any device which Heimdall covers. Heimdall One-click and Heimdall One-Click Packager can be used to distribute custom or stock firmware upgrades or downgrades currently on most Samsung devices. Each of the sections in this post could be an entire post on its own. I want to consolodate this information into a single area here on XDA.
Heimdall One-Click is a project which I have been perfecting for months. After 147 revisions I feel it is time to release. It is my hope that the use of this software will enable users to safely flash and understand what is going on while they are flashing firmware. Heimdall One-Click is based on Heimdall by Benjamin Dobell.
The basic outline goes like this...
Obtain firmware
Use Heimdall frontend to package a tar.gz
Select your tar.gz file with Heimdall One-Click. Your final package will be a executable cross-platform JAR file for redistribution which will deploy everything needed to flash your ROM.
{
"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"
}
It's really that simple. See the Downloads and Source section. I will now discuss how everything works in depth.
Warning
You have the power to damage your device and others! Several times during the development cycle I had asked myself if it was ethical to release a packager. A lack of skill can easily brick a device. Building a flashable package is a skill and I do not want to see any One-Click Nukes released into the public. So I want to set some rules-of-thumb:
1. If you are unsure, do not package bootloaders into a distribution.
2. If you are going to package bootloaders, include boot.bin, Params.lfs, Sbl.bin and repartitioning option should be checked.
3. Always flash the firmware from Heimdall-Frontend before creating a one-click. Never assume it will work.
4. Please watch this video in its entirety before attempting to package a one-click.
Heimdall & Heimdall Frontend
Heimdall is a cross-platform open-source tool suite used to flash firmware (aka ROMs) onto Samsung devices. Heimdall is an "upstream package" contained within Heimdall One-Click. Heimdall is Maintained by Benjamin Dobell http://forum.xda-developers.com/member.php?u=2710388 from Glass Echidna. Heimdall has its own discussion thread here: http://forum.xda-developers.com/archive/index.php/t-1104826.html
Heimdall Frontend allows a graphical user interface for flashing firmware, packaging and deploying Heimdall tar.gz files. It also provides several additional tools. Heimdall Frontend has its own discussion thread here: http://forum.xda-developers.com/archive/index.php/t-1104826.html
Heimdall One-Click Packager
Heimdall One-Click packager is a tool which will take a Heimdall tar.gz file and package it into a Heimdall One-Click. Heimdall One-Click Packager is an open-source cross-platform(win/linux/mac) program with no dependencies. After execution, the user selects a tar.gz package for one-click and the program:
1. Decompresses firmware.xml from tar.gz
2. Deploys an empty one-click java jar.
3. Writes the Tar.gz and firmware.xml into the one-click jar thereby creating a new one-click executable firmware package.
Heimdall One-Click
Heimdall One-Click's job is simple; it deploys firmware with one click while keeping the user informed. Heimdall One-Click is an open-source cross-platform(win/linux/mac), dependency installing, easy-to-use, automation tool which can install firmware onto a device in download mode. Heimdall One-Click's operation is very simple from the outside, but the operation is very complex inside. See source code for more information. Heimdall One-Click has several safety features built in which make it the safest method of deploying firmware to any compatible device.
Why use Heimdall One-Click over Odin or other methods of software distribution?
Heimdall is Open-Source software. Without Open-Source software we would not have android or custom ROMs. Open-Source developers should support and expand the work of other Open-Source developers.
Odin is closed source and propritary. Not only is the application proprietary, but the drivers are also proprietary. Open-Source developers do not support Closed-Source work as it is a hindrance to development.
Heimdall supports Open-Source Tar.GZ compression which ensures file integrity and provides higher compression than zip formats. A 500 megabyte ROM can compress to less than 200 megabytes.
Heimdall can restore operation to a device which does not even have access to recovery mode. Heimdall does not require the kernel to be operational, it works at a higher level in the Secondary Bootloader.
A Heimdall One-Click is a single executable file which contains everything needed to flash a ROM.
A Heimdall One-Click works on Windows, Linux or Mac OS-X.
A Heimdall One-Click is not a final output format. Once you make a One-Click, the contents are not lost forever. The ROM package contained within can be unzipped using your favorite archive program, modified and redistributed.
Easiest, most portable, and foolproof method of flashing
Heimdall One-Click has been designed to be the easiest, most portable and foolproof method of flashing. The requirements are that the user knows how to put their device into "Download Mode" and that the user has Java installed on their computer.
Heimdall One-Click contains:
A deployable and unpackable firmware located in /com/adamoutler/heimdalloneclick/
Installer routines
Windows Drivers
Windows C++ Redistributable Package
Windows Heimdall binary
Linux32 Debian package
Linux64 Debian package
Mac OS-X Installation package
You can find a repository of prepackaged ROMs here at the Team Komin website: http://files.teamkomin.com/ Please note, some of these were packaged during beta testing so not all of them are high quality builds.
Obtaining firmware
Before you can package a ROM for distribution, you must have firmware to package. Here are two methods of obtaining firmware.
Obtaining firmware from a live device
The following commands can be used on most Samsung Android devices to make a backup of everything but bootloaders. Bootloaders must be obtained from official builds and cannot be pulled off a working device after you have finished developing. This may not work on devices designed for RFS filesystems if the filesystems have been converted
Open a terminal to your device (terminal emulator or QuickSSHD, or adb shell)
Enter the following commands into the terminal
Code:
su
#Remove the target folder if it is present
rm -r -f /sdcard/firmwarepackage
#Write all zeros to data partition to zero flash memory until the partition is full
dd if=/dev/zero of=/data/big_zero bs=1048576
#Remove the zerod out dummy file
rm -r -f /data/big_zero
#Mount The /system folder as RW so we can read and write to it
mount -o remount,rw /system /system
#Drop all zeros into a file on the /system partition until it is full
dd if=/dev/zero of=/system/big_zero bs=1048576
#Remove the zerod out dummy file
rm /system/big_zero
#Make our folder to write the firmware package onto the SDCard
mkdir /sdcard/firmwarepackage
#Begin transfer of all relevant blocks to sdcard
dd if=/dev/block/stl9 of=/sdcard/firmwarepackage/factoryfs.img bs=4096
dd if=/dev/block/bml7 of=/sdcard/firmwarepackage/zImage bs=4096
dd if=/dev/block/stl10 of=/sdcard/firmwarepackage/dbdata.img bs=4096
dd if=/dev/block/stl11 of=/sdcard/firmwarepackage/cache.img bs=4096
dd if=/dev/block/bml12 of=/sdcard/firmwarepackage/modem.bin bs=4096
#Done
echo done
copy the files from your sdcard in the firmwarepackage folder to your desktop/laptop computer.
Never mount an RFS filesystem to your computer Your computer is not equipped to handle the RFS filesystem. All permissions data will be lost and the filesystem will be rendered useless.
Using Heimdall Frontend, you can download the part.pit from the options tab to obtain the partition tables for custom ROM use.
Use Heimdall frontend to package a tar.gz
Use Heimdall One-Click Packager to make a One-Click
Obtaining firmware from Odin packages
You will need a base firmware package to obtain bootloaders for your device. Firmware can be obtained from several sites. Some of the more common are:
http://Xda-developers.com developer forums
http://rootzwiki.com
http://sammobile.com
http://samfirmware.com
http://sampro.pl
It is important that these firmwares be verified on your own device before distribution.
Totally decompress the entire firmware package down to its individual files
Use heimdall-frontend to create a package
Use One-Click Packager to generate a one-click.
Recommended Distribution Instructions
Once you have verified that your package has been made correctly, you will want to distribute it. Here is a recommended blurb which I have found to be effective from multiple tests. Replace "MY ROM" with your ROM name and MYROM.COM with your download link.
You will need Java installed on your computer Do you have java?
right click and open with Java
Put your device in "Download Mode" and click the flash button
Problems? Enter "Recovery Mode" and select "factory reset"
Download MY ROM!
Code:
[ list=1]
[ *]You will need Java installed on your computer [url=http://www.java.com/en/download/installed.jsp?detect=jre&try=1]Do you have java?[/url]
[ *]right click and open with Java
[ *]Put your device in "Download Mode" and click the flash button
[ *]Problems? Enter "Recovery Mode" and select "factory reset"
[/list]
[ size=4][ url=MYROM.COM]Click here to Download My ROM![/url][/size]
Downloads and Source
Heimdall One-Click Packager: http://code.google.com/p/heimdall-one-click/downloads/list
Heimdall Frontend: http://www.glassechidna.com.au/products/heimdall/
Heimdall One-Click Source Code:http://heimdall-one-click.googlecode.com/svn/trunk/
Heimdall one-Click Change Log:Change Log: http://code.google.com/p/heimdall-one-click/source/list
Heimdall Source Code: https://github.com/Benjamin-Dobell/Heimdall
Conclusion and Disclaimer
The source and applications are released under the MIT License. I have provided these resources at no cost to you without warranty. I will not be held liable. It is up to you to use these programs responsibly.
History
Heimdall One-Click saw its first appearance as "One-Click UnBrick http://forum.xda-developers.com/showthread.php?t=1153310". Since then, it has been tested and distributed as part of UnBrickable Mod, restoration back to stock, and upgrading firmware in the following threads:
http://forum.xda-developers.com/showthread.php?t=1191924 http://forum.xda-developers.com/showthread.php?t=1331381 http://forum.xda-developers.com/showthread.php?t=1330491 http://forum.xda-developers.com/showthread.php?t=1341666 http://forum.xda-developers.com/showthread.php?t=1312391 http://forum.xda-developers.com/showthread.php?t=1333423 http://forum.xda-developers.com/showthread.php?t=1333424 http://forum.xda-developers.com/showthread.php?t=1238093 http://forum.xda-developers.com/showthread.php?t=1266172
http://forum.xda-developers.com/showthread.php?t=1323527 http://forum.xda-developers.com/showthread.php?t=1288130 http://forum.xda-developers.com/showthread.php?t=1216790 http://forum.xda-developers.com/showthread.php?t=1221491
Forward
We are looking to expand Heimdall to work on more devices. We need devices to work with. Please see http://www.glassechidna.com.au/open for more information

RFS is full of bugs, you cannot read/write RFS filesystems on any computer.
RFS is prone to corruption (in many more ways you can expect)
RFS doesn't have a "packer" that zeroes empty portions in order to get filesystem images with good compressibility (IE: free space will be by default full of junk)
Also, compared to the well established update.zip format: this method doesn't provide a clean method to execute post-flashing scripts.
Why I advice not using the method described here to distribute custom ROMs as RFS.
However, distributing official firmwares in this format could be nice, but I'm not sure it's worth the hassle of re-packaging.
Note: for Ext4 based ROMs and devices like Galaxy S II or Galaxy Tab 10.1, this tool can make sense (ext4 fs packing tools are available in AOSP)

Yay!!! Thanks again
Sent from my SGH-I897 using xda premium

Supercurio, your notes on RFS are appreciated, but irrelevant if the guide I've provided is followed.
As a precaution, never mount an RFS Filesystem to your computer directly. It will corrupt the filesystem and Voodoo Lagfix will fail and bootloop. Apply Voodoo Lagfix after pulling the partitions. Flash a kernel, reboot, then pull partitions. This way you can mount it on your computer.
why to use this? using this method you will be able to ensure what is on your device is on your user's device. Rather than expecting that they are running a certain version of a certain firmware prior to applying an update.zip Heimdall One-Click also provides the easiest method to installing a custom kernel in order to get ClockWork Mod on a stock device.
As Supercurio mentioned, repackaging an odin file as a Heimdall One-Click may be a hassel, but Heimdall One-Clicks work on Linux, Windows or Mac OS-X.
I'm not going to go through all methods of development nor the functions of each file. However, if you wish to perform a factory reset, use a params.lfs from an official firmware package. If not, use the params from an active device.
There's downfalls to each method of distribution.
Update.zip requires that the user have a specific version of a specific firmware on their device. Heimdall One-Click does not require this.
Update.zip allows modification of firmware on a device. Heimdall One-Click will obliterate all firmware.
Update.zip is exactly as it says, it is an update. Heimdall One-Click is an entire firmware package.
Update.zip requires knowledge of a proprietery scripting format. Heimdall One-Click requires knowledge of Android filesystems only.
For this reason, packaging as a Heimdall One-Click makes your firmware package immortal rather than having a lifespan/dependency. A properly packaged Heimdall One-Click will always work without any expectation of the firmware on a user's device. It's a very clean way to distribute firmware.

Awesome piece of software, incredibly easy to use, and extremely useful. Thanks for releasing this to the community!

Thank you!
I have a 1007 Captivate and Odin / Keis were unreliable at best.
I'd love to see some Odin 1-Click repackaging for this. I could use them!!!
Downloads / upgrades with the Heimdall method have been easy to monitor and and
part that failed could easily be retried.
Without the Odin 1-click to stock being available (or failing, leaving me in an unknown state), I found the ability to use PIT, and target each section of the ROM to be critical in booting a new ROM if there is any reason the upgrade went awry from within Android.
Stock ROMs repackaged will help Odinphobes!
Erbid

Adam,
Does Heimdall frontend know which cache and dbdata file to use from a stock package, or do i need to manually select them? I've noticed that in a full package, there is a cache and dbdata file in two different places, but I do not know which one should be used. Also, should the param.lfs file be used only if flashing bootloaders, or should it always be included?
Edit
I am using stock firmware for a Captivate.

mrhaley30705 said:
Adam,
Does Heimdall frontend know which cache and dbdata file to use from a stock package, or do i need to manually select them? I've noticed that in a full package, there is a cache and dbdata file in two different places, but I do not know which one should be used. Also, should the param.lfs file be used only if flashing bootloaders, or should it always be included?
Edit
I am using stock firmware for a Captivate.
Click to expand...
Click to collapse
Dbdata goes in dbdata. Cache goes in cache. Paramaribo is a bootloaders. Watch the video.

Ok, I watched the video (great tutorial,btw), but I still don't know what to do about my problem. In a stock captivate package, there is a dbdata and cache file in the pda package, and another dbdata and cache file in the csc package. Which one gets used and which one gets tossed?

mrhaley30705 said:
Ok, I watched the video (great tutorial,btw), but I still don't know what to do about my problem. In a stock captivate package, there is a dbdata and cache file in the pda package, and another dbdata and cache file in the csc package. Which one gets used and which one gets tossed?
Click to expand...
Click to collapse
Just use one or the other.

Ok, thanks.
Just so I know, what does the dbdata and cache files do? What is in them?

mrhaley30705 said:
Ok, thanks.
Just so I know, what does the dbdata and cache files do? What is in them?
Click to expand...
Click to collapse
The database data and cache. Dbdata is where things like contacts are stored. Cache is where application preloading data is stored.

Ok, thanks again.
Any chance you are going to attempt a mobile Heimdall, similar to Mobile Odin I've been hearing about?

mrhaley30705 said:
Ok, thanks again.
Any chance you are going to attempt a mobile Heimdall, similar to Mobile Odin I've been hearing about?
Click to expand...
Click to collapse
No. ThaT method requires the device to be running and be rooted. This is way more valuable. I had considered it... until we figure out how to flash a PBL, that wont happen. Like, the software on the device, modifies the PBL as it is written.

I finally had a chance to try this. It is so easy. Your video is spot on (love the Spider Man reference ) This is so much easier than making a tar.md5 file for Odin.
One question, in your video, I noticed your terminal screen was transparent. How did you do that? It looks cool.

this seems to be a very valuable tool for developers and I am very glad you posted it,,watched the video,,sounds like a good thing,, could not see what you were doing,,read the post repeatedly,,yep this will be useful to the devs,, truly had hoped it would be useful to those of us on here that have figured out how to follow instructions and flash roms but really do not understand what we are doing,,now I understand why odin is so useful,,it allows people to do the job without knowing how to make the tools to do the job ( although I would like to learn that) unfortunately this seems to be a common "open source" mindset,,thats why apple sells so many overpriced machines,, they expect people to know nothing and intend to keep them that way,,so their machines are simplified and locked,, but they work without having to know how to program them,,without having to understand the whole command line BS,,yes I am guilty of being uneducated,,I am not guilty of being stupid,, I do not use tools or equipment that assumes I do not know,, I do not use tools or equipment that assumes I know more than I do,,I will continue to follow this because I still have hopes it will become useful,,to the common run of the mill user,,thanks for your work,, it is impressive,,now to get it useable to those of us that do not have years of programming experience,,that went to school when punch cards were still in existance

stayintwisted said:
this seems to be a very valuable tool for developers and I am very glad you posted it,,watched the video,,sounds like a good thing,, could not see what you were doing,,read the post repeatedly,,yep this will be useful to the devs,, truly had hoped it would be useful to those of us on here that have figured out how to follow instructions and flash roms but really do not understand what we are doing,,now I understand why odin is so useful,,it allows people to do the job without knowing how to make the tools to do the job ( although I would like to learn that) unfortunately this seems to be a common "open source" mindset,,thats why apple sells so many overpriced machines,, they expect people to know nothing and intend to keep them that way,,so their machines are simplified and locked,, but they work without having to know how to program them,,without having to understand the whole command line BS,,yes I am guilty of being uneducated,,I am not guilty of being stupid,, I do not use tools or equipment that assumes I do not know,, I do not use tools or equipment that assumes I know more than I do,,I will continue to follow this because I still have hopes it will become useful,,to the common run of the mill user,,thanks for your work,, it is impressive,,now to get it useable to those of us that do not have years of programming experience,,that went to school when punch cards were still in existance
Click to expand...
Click to collapse
what?
get some firmware, make a heimdall package, run the one-click maker. No matter what level you're at, this is as easy as it gets. It does not get easier.

ok sorry to have bothered you,, I will try to find someplace to learn enough to understand what you consider stupidly simple,,I will just stick to odin and cwm they just work,,was my error for thinking that you would be able to write at a level I would understand,, but it is still going to be a very useful tool for those who can use it and I thank you for the work you have put into it

stayintwisted said:
ok sorry to have bothered you,, I will try to find someplace to learn enough to understand what you consider stupidly simple,,I will just stick to odin and cwm they just work,,was my error for thinking that you would be able to write at a level I would understand,, but it is still going to be a very useful tool for those who can use it and I thank you for the work you have put into it
Click to expand...
Click to collapse
If you're not a developer, you don't have anything to package and this thread does not apply to you. The end result is a one-click and probly is what you are looking for. This tool is for packaging your work. You must have something to package.

This IS super simple. I did it. On2 different operating systems. It's literally point and click, but a minimal amount of typing involved. And i am no good at command line. I also don't claim to be a developer, or even an advanced user.

Related

[I9000][Heimdall][Jan.30.2012] Firmware packages for stock ROMs

Heimdall firmware packages for stock GT-I9000 firmwares​
Heimdall 1.3 included support for "Heimdall Firmware Packages," an XML-driven way to define, create, and distribute firmwares. This is a powerful tool for ROM developers, but I haven't seen it being used yet. In order to encourage and support the use of these new firmware packages, I've packaged up a few stock Samsung firmwares for use with Heimdall.
For those that don't know, Heimdall is an open-source, cross-platform tool written by Benjamin Dobell which can flash complete ROMs, kernels, modems, etc to Samsung Galaxy S devices. It's preferable over Odin as its source code is open and it is therefore undergoing public development, and we can review the code. In comparison, Odin is a closed-source, Windows-only internal Samsung utility, and what we know very little about it.
Downloads​
These are stock ROMs, just as you'd find on Samfirmware or wherever else. I have not modified them other than unpacking and repacking for flashing with Heimdall (meaning they are odexed). If the upstream firmware includes bootloaders, I've included them*. I'll do my best to indicate additional information next to each ROM.
Gingerbread:
XXJVQ (2.3.4): MultiUpload
XXJVR (2.3.4): MultiUpload
XXJVS (2.3.5): MultiUpload / BayFiles
XXJVT (2.3.5): MultiUpload
XWJVZ (2.3.6): MultiUpload, BayFiles / MediaFire (md5sum: dbfcb621f666b224751a3bd2bf9abbba)
XXJVU (2.3.6): BayFiles (md5sum: ede04385b889651c31ce669044ec5ee6)
*Note: Even though I've included bootloaders you'll be able to remove them in Heimdall's GUI right before flashing if you so please.
Froyo:
XWJSD (2.2.1): MirrorCreator - thanks Motthat
Credits...​
Thanks to Benjamin Dobell for writing Heimdall. Thanks to [Ramad] for the idea of listing unadulterated stock ROMs. Thanks to Supercurio for being a role model of openness and transparency. We need more pro-community devs.
Flashing instructions
Flashing instructions​
Make sure you've installed Heimdall version 1.3 or higher. Do not unzip the firmware package, we open it up directly in the heimdall frontend graphical user interface! This procedure will wipe your device and you will lose all your installed applications.
Step 1: Open Heimdall's frontend (heimdall-frontend on Linux)
Step 2: Load the downloaded tar.gz into Heimdall
{
"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"
}
Step 3: Press "Load / Customize"
Step 4: Reboot your phone in Download mode and connect it to your computer
Step 5 (optional): Customize the installation before flashing by removing or adding different files (such as pre-rooted kernels or different modems)
Step 6: Press "Start"
Your phone will begin to flash and then reboot.
Reserved...
It's great to see some Heimdall Firmware Packages for the GT-I9000. The instructions and screenshots you've included should make it super easy for beginners to get going. Keep up the good work!
I put together an XWJSD package (latest 2.2.1 firmware) which you're welcome to add to the collection. http://mir.cr/0XZMZGFA
Mothatt said:
I put together an XWJSD package (latest 2.2.1 firmware) which you're welcome to add to the collection. http://mir.cr/0XZMZGFA
Click to expand...
Click to collapse
Ok, cool. I thought it might be useful to have some Froyo packages around. I've added it, thanks!
You are both legendy legends from the land of the legendary legend people! I was beginning to get beside myself with frustration - no matter how hard I tried I simply couldn't get kies/samsung drivers installed ON ANYTHING - I tried about 4 different Win7 x64 machines, a 2008R2 and even a Vista x86 and NONE of them would get me a working install. I inherently mistrust odin and when I saw heimdall (so I could run it on Linux) I was just over the moon. Not having any heimdall-native packages though, I got pretty frustrated and ended up soft-bricking my phone at about 2am this morning . So after arriving after a long day at work I was very happy to see some packages finally get released and what's more - my phone was back up and running from the death-screen in under 10 minutes!
So now I can experiment with lots of funky ROMs and I know I'll always be able to get my I9000 back again!
You both rock.
A
AntonDreams said:
You are both legendy legends from the land of the legendary legend people! I was beginning to get beside myself with frustration - no matter how hard I tried I simply couldn't get kies/samsung drivers installed ON ANYTHING - I tried about 4 different Win7 x64 machines, a 2008R2 and even a Vista x86 and NONE of them would get me a working install. I inherently mistrust odin and when I saw heimdall (so I could run it on Linux) I was just over the moon. Not having any heimdall-native packages though, I got pretty frustrated and ended up soft-bricking my phone at about 2am this morning . So after arriving after a long day at work I was very happy to see some packages finally get released and what's more - my phone was back up and running from the death-screen in under 10 minutes!
So now I can experiment with lots of funky ROMs and I know I'll always be able to get my I9000 back again!
You both rock.
A
Click to expand...
Click to collapse
Yes, we're really lucky that this phone is so robust and the bootloaders are open. As long as download mode is working you can resurrect your phone (and even sometimes when download mode isn't working)!
Thanks for these man, it really is the best way to flash everything, pity it isn't as widely used as it should be! Keep it up
First of all thank you!
Kies for Mac was really harassing me for such a long time nor I could using Odin on Parallels.
After playing with some roms and messing up my device (Samsung Galaxy S)I was happy to come back to an official release.
Your guide to Heimdall was simply great.
Now that I'm on Gingerbread JVR 2.3.4 I wanted to root my phone.
Here I found CF-Root and I downaloaded the zip file for my firmware (JVR)
http://forum.xda-developers.com/showthread.php?t=788108
The file is zip and when you unpack you get a Zimage file.
I'm using Heimdall fronted 1.3.0 how can I flash this file in order to toot my phone ?
Realy glad that you let us take one more step to the use of Heimdall.
Is this JVR rom NEE/XEE csc compatible?
Don't want to screw up to KOR again
zidz said:
Realy glad that you let us take one more step to the use of Heimdall.
Is this JVR rom NEE/XEE csc compatible?
Don't want to screw up to KOR again
Click to expand...
Click to collapse
I'm not sure... I've never bothered to figure out what the deal with CSCs is. I downloaded XXJVR from samfirmware, does that help ?
aorth said:
I'm not sure... I've never bothered to figure out what the deal with CSCs is. I downloaded XXJVR from samfirmware, does that help ?
Click to expand...
Click to collapse
I've downloaded it from SamFirmware, that one is a KOR one :/
enomis74 said:
Your guide to Heimdall was simply great.
Now that I'm on Gingerbread JVR 2.3.4 I wanted to root my phone.
Here I found CF-Root and I downaloaded the zip file for my firmware (JVR)
http://forum.xda-developers.com/showthread.php?t=788108
The file is zip and when you unpack you get a Zimage file.
I'm using Heimdall fronted 1.3.0 how can I flash this file in order to toot my phone ?
Click to expand...
Click to collapse
Anyone?????
jaystarrr said:
Anyone?????
Click to expand...
Click to collapse
On the flash page add the pit file then Click the Add Button under Partition (Files) Section. Choose Kernel from the Partition Name dropdown box, then click browse and select the zImage file.
Error loading firmware tar.gz file
Hi,
Do you know what can be this error, i installed heimdall and frontend, downloaded tar.gz files from this post, and i get "Failed to open package:
/home/jtextori/Téléchargements/XXJVQ_heimdall.tar.gz" ??
Thanks
If you root it you must reflash the orginal KERNEL
Don't know if it is what you mean, but moving the file into a directory without accentuated characters allowed to load the file into heimdall-frontend ! it was that simple !
Thx soo much for the job! and also thx for the heimdall developper. happy to can do a flash to my galaxy phone from my mac.
jtextori said:
Hi,
Do you know what can be this error, i installed heimdall and frontend, downloaded tar.gz files from this post, and i get "Failed to open package:
/home/jtextori/Téléchargements/XXJVQ_heimdall.tar.gz" ??
Thanks
Click to expand...
Click to collapse
maybe the file are bad downloaded and are bad. my md5 is: 502288c2261cdfbe41ce401128cffb27
and the file size are 259.060.144 bytes (259,1 MB)

[GUIDE] Rooting s3 mini from Linux with heimdall

Hey.
Just wanted to share my rooting experience.
My girlfriend just bought her S3 mini few days ago - and because Samsung Dive sucks balls (can be erased by doing factory reset), I felt the need to root, so cerberus anti-theft (http://cerberusapp.com, try it out, its awesome) could be written to /system (which requires root & survives factory resets).
Because I use Ubuntu Linux, I couldn't use Odin. Also from what I've read Odin reflashes whole phone, including bootloaders, recovery images and so on.
Because I've had XXALJL build originally in my phone, I've used this uk rooted rom as my rooting source.
Also, because the baseband is identical, I only flashed the system image, where /system/bin/su resides.
If you have a different baseband than your rooted image, this guide will not help you and you probably need to either: a) use odin to reflash everything. b) use your brain to figure your what to flash and where.
So here we go!
Flashing
I'm using ubuntu 12.10, 64 bit:
Code:
[email protected]:~/Downloads/rooted# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.10
DISTRIB_CODENAME=quantal
DISTRIB_DESCRIPTION="Ubuntu 12.10"
Code:
[email protected]:~/Downloads/rooted# uname -a
Linux cyrix 3.5.0-21-generic #32-Ubuntu SMP Tue Dec 11 18:51:59 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
The only thing you should be concerned about is whether you're using 32 or 64 bit OS.
I've used heimdall 1.3.1, because 1.3.2 has issues and I didn't want to risk. Perhaps 1.3.2 or 1.4-RC1 would work just fine too, but I've used 1.3.1 and that did work for me.
Get heimdall 1.3.1 from http://www.glassechidna.com.au/products/heimdall/ (choose 32 bit (i386) or 64 bit (x64) debian package appropriately). Install those. And lets get down to bussiness.
I RECOMMEND RUNNING ALL COMMANDS FROM ROOT USER
Some guides recommend rebooting your pc after heimdall install (it inserts some udev rules). I didn't do that (completely forgot), but do it, just to be on a safe side.
So first step is to determine what partition identifier does your system partition has. Put your device into download mode (power off. Then hold vol down + home + power & click vol up once).
After doing that, connect your usb cable to computer and run:
Code:
# heimdall detect
It should say:
Code:
Device detected
If it doesn't - none of the following commands will probably work.
Then - lets see what our PIT (partition information table? not sure about the acronym) looks like:
Code:
# heimdall print-pit
What we are looking for is system partition. Mine looked like this:
Code:
--- Entry #21 ---
Unused: No
Partition Type: 2 (EXT4)
Partition Identifier: 20
Partition Flags: 5 (R)
Unknown 1: 5
Partition Block Size: 524288
Partition Block Count: 2457600
Unknown 2: 0
Unknown 3: 0
Partition Name: SYSTEM
Filename: system.img
From this we can see that our partition identifier is 20.
So extract the downloaded .rar ROM file, then again, extract rooted.tar and go into that directory. And lets flash our system image (around 900mb).
If everything is fine it should look like this:
Code:
[email protected]:~/Downloads/rooted# heimdall flash --20 system.img
Heimdall v1.3.1, Copyright (c) 2010-2011, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au
This software is provided free of charge. Copying and redistribution is
encouraged.
If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/
Initialising connection...
Detecting device...
Claiming interface...
Attempt failed. Detaching driver...
Claiming interface again...
Setting up interface...
Checking if protocol is initialised...
Protocol is not initialised.
Initialising protocol...
Handshaking with Loke...
Beginning session...
Session begun with device of type: 131072
Downloading device's PIT file...
PIT file download sucessful
Uploading SYSTEM
100%
SYSTEM upload successful
Ending session...
Rebooting device...
Re-attaching kernel driver...
Do not touch your PC while flashing. Do not move the phone. Do not fiddle with the cables. Hold your breath and wait. If all is fine, the phone should turn off itself. Wait until you get charging screen, then turn it back on.
You should have supersu installed. You can also install terminal emulator and try running su to make sure you have the root.
Congrats on having root!
Great tutorial! Thanks a lot, from a fellow Linux user!
Hi dudes,
I have mi SGS2 soft bricked and I'm trying to recover it.
I've already opened a post here.
The thing is that I have discovered Heimdall by chance.
Fed up with the errors from Odin I decided to try in Linux.
I think my System partition is missing.
Find attached my result for heimdall print-pit.
Hope you can help me.
Regards,
Mario.
thanks for remaind me about heimdall, that was long time since heard about this tool. :beer:
Thanks! (But should I backup something first?)
Thanks, exactly what I was looking for
One quick question: by rooting with Heimdall (on Linux), will I loose all my apps/accounts ? (It will take ages to recover them all..)
(also, where could I get updated as new Heimdall-friendly firmwares become available?)
Thank you again for your time.
arturaz said:
Hey.
Just wanted to share my rooting experience.
My girlfriend just bought her S3 mini few days ago - and because Samsung Dive sucks balls (can be erased by doing factory reset), I felt the need to root, so cerberus anti-theft (http://cerberusapp.com, try it out, its awesome) could be written to /system (which requires root & survives factory resets).
Because I use Ubuntu Linux, I couldn't use Odin. Also from what I've read Odin reflashes whole phone, including bootloaders, recovery images and so on.
Because I've had XXALJL build originally in my phone, I've used this uk rooted rom as my rooting source.
Also, because the baseband is identical, I only flashed the system image, where /system/bin/su resides.
If you have a different baseband than your rooted image, this guide will not help you and you probably need to either: a) use odin to reflash everything. b) use your brain to figure your what to flash and where.
So here we go!
Flashing
I'm using ubuntu 12.10, 64 bit:
Code:
[email protected]:~/Downloads/rooted# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.10
DISTRIB_CODENAME=quantal
DISTRIB_DESCRIPTION="Ubuntu 12.10"
Code:
[email protected]:~/Downloads/rooted# uname -a
Linux cyrix 3.5.0-21-generic #32-Ubuntu SMP Tue Dec 11 18:51:59 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
The only thing you should be concerned about is whether you're using 32 or 64 bit OS.
I've used heimdall 1.3.1, because 1.3.2 has issues and I didn't want to risk. Perhaps 1.3.2 or 1.4-RC1 would work just fine too, but I've used 1.3.1 and that did work for me.
Get heimdall 1.3.1 from http://www.glassechidna.com.au/products/heimdall/ (choose 32 bit (i386) or 64 bit (x64) debian package appropriately). Install those. And lets get down to bussiness.
I RECOMMEND RUNNING ALL COMMANDS FROM ROOT USER
Some guides recommend rebooting your pc after heimdall install (it inserts some udev rules). I didn't do that (completely forgot), but do it, just to be on a safe side.
So first step is to determine what partition identifier does your system partition has. Put your device into download mode (power off. Then hold vol down + home + power & click vol up once).
After doing that, connect your usb cable to computer and run:
Code:
# heimdall detect
It should say:
Code:
Device detected
If it doesn't - none of the following commands will probably work.
Then - lets see what our PIT (partition information table? not sure about the acronym) looks like:
Code:
# heimdall print-pit
What we are looking for is system partition. Mine looked like this:
Code:
--- Entry #21 ---
Unused: No
Partition Type: 2 (EXT4)
Partition Identifier: 20
Partition Flags: 5 (R)
Unknown 1: 5
Partition Block Size: 524288
Partition Block Count: 2457600
Unknown 2: 0
Unknown 3: 0
Partition Name: SYSTEM
Filename: system.img
From this we can see that our partition identifier is 20.
So extract the downloaded .rar ROM file, then again, extract rooted.tar and go into that directory. And lets flash our system image (around 900mb).
If everything is fine it should look like this:
Code:
[email protected]:~/Downloads/rooted# heimdall flash --20 system.img
Heimdall v1.3.1, Copyright (c) 2010-2011, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au
This software is provided free of charge. Copying and redistribution is
encouraged.
If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/
Initialising connection...
Detecting device...
Claiming interface...
Attempt failed. Detaching driver...
Claiming interface again...
Setting up interface...
Checking if protocol is initialised...
Protocol is not initialised.
Initialising protocol...
Handshaking with Loke...
Beginning session...
Session begun with device of type: 131072
Downloading device's PIT file...
PIT file download sucessful
Uploading SYSTEM
100%
SYSTEM upload successful
Ending session...
Rebooting device...
Re-attaching kernel driver...
Do not touch your PC while flashing. Do not move the phone. Do not fiddle with the cables. Hold your breath and wait. If all is fine, the phone should turn off itself. Wait until you get charging screen, then turn it back on.
You should have supersu installed. You can also install terminal emulator and try running su to make sure you have the root.
Congrats on having root!
Click to expand...
Click to collapse
pminervini said:
Thanks, exactly what I was looking for
One quick question: by rooting with Heimdall (on Linux), will I loose all my apps/accounts ? (It will take ages to recover them all..)
(also, where could I get updated as new Heimdall-friendly firmwares become available?)
Thank you again for your time.
Click to expand...
Click to collapse
This only rewrites /system partition, while all your apps/accounts are stored in /data. So in theory you shouldn't lose things. However I do recommend you always backup your stuff with `adb backup` before doing this. You can never be too sure.
As for new firmwares - no idea. OTAs should probably work.
Thanks For the other Debian guys out there, I've just found out "adb" comes available for Sid ( packages debian org /sid/android-tools-adb -- there is a similar package in the Ubuntu repos) and requires MTP mode with USB debug on: bernaerts dyndns org /linux/245-ubuntu-precise-install-android-sdk
While the backup goes on (I'm doing "adb backup -apk -shared -all -f 08062013.ab", hope it's right), I'm looking for the right image file.
May this one fit? "Android 4.1.2 XXAMD3 official firmware"
www hotfile com /dl/209515302/bd1d1a3/I8190XXAMD3_I8190OXAAMD3_DBT.zip.html
UPDATE: no it's not, i should look for something fitting GT-I8190N; checking what I can do from OTA..
UPDATE 2: I've found this file: GT-I8190N-BTU-I8190NXXALL6-1356151513.rar ; I'm going to try to push its system.img with heimdall *crossed fingers*
Thank you again for all your help, you're awesome!
arturaz said:
This only rewrites /system partition, while all your apps/accounts are stored in /data. So in theory you shouldn't lose things. However I do recommend you always backup your stuff with `adb backup` before doing this. You can never be too sure.
As for new firmwares - no idea. OTAs should probably work.
Click to expand...
Click to collapse
After a weekend trying to revive the I8190N (at least it was raining..) I tried to sum up my problem with Heimdall here:
forum xda-developers com/showthread.php?t=2317198
pminervini said:
Thanks For the other Debian guys out there, I've just found out "adb" comes available for Sid ( packages debian org /sid/android-tools-adb -- there is a similar package in the Ubuntu repos) and requires MTP mode with USB debug on: bernaerts dyndns org /linux/245-ubuntu-precise-install-android-sdk
While the backup goes on (I'm doing "adb backup -apk -shared -all -f 08062013.ab", hope it's right), I'm looking for the right image file.
May this one fit? "Android 4.1.2 XXAMD3 official firmware"
www hotfile com /dl/209515302/bd1d1a3/I8190XXAMD3_I8190OXAAMD3_DBT.zip.html
UPDATE: no it's not, i should look for something fitting GT-I8190N; checking what I can do from OTA..
UPDATE 2: I've found this file: GT-I8190N-BTU-I8190NXXALL6-1356151513.rar ; I'm going to try to push its system.img with heimdall *crossed fingers*
Thank you again for all your help, you're awesome!
Click to expand...
Click to collapse
Is there any way to make Phone to original Samsung phone with heimdall? Unroot, Stockrecovery etc?
arturaz said:
Just wanted to share my rooting experience....
Click to expand...
Click to collapse
Thank you, arturaz!
Why did I waste so much of my valuable lifetime by trying to get Odin to work on XP/W7 in a VBox?
Gonna donate to Benjamin now. He really deserves a beer or two
BTW: heimdall can be found in the Debian testing branch now. Look out for "heimdall-flash" (Don't be confused by some "heimdal"-packages [only one 'L'], which are something completely different)
Hey I'm using Linux Mint 32bits, I wonder if I can use the ubuntu 32 version for the software Heimdall ? if so, which one ?
Thanks
I'm not sure I understand the question.
Hello,
lov8 said:
Hey I'm using Linux Mint 32bits, I wonder if I can use the ubuntu 32 version for the software Heimdall ?
Click to expand...
Click to collapse
because linux mint and fork ubuntu I would say yes
lov8 said:
if so, which one ?
Click to expand...
Click to collapse
????
Fred6681 said:
Hello,
????
Click to expand...
Click to collapse
Ah! I have the version 1.4 RC1 from the Linux mint repository. I hope this version is stable enough. I will give it a try in a few days .. :-/
Alternatively you can root your phone by flashing a custom recovery using heimdall, then going in recovery mode and installing supersu.
Tested with heimdall 1.40 and TWRP custom recovery, worked fine.
You have just to pay attention and find the right partition id for flashing "recovery.img".
Why no solution to "Device not detected" ?!
Im using Ubuntu 13.10 64, the S3 Mini is in download mode but not seen by Heimdall... any solutions?
Thanks
ateap0tist said:
Why no solution to "Device not detected" ?!
Im using Ubuntu 13.10 64, the S3 Mini is in download mode but not seen by Heimdall... any solutions?
Thanks
Click to expand...
Click to collapse
Which version of heimdall are you using?
Clostry said:
Which version of heimdall are you using?
Click to expand...
Click to collapse
Heimdall v. 1.4
Can you post the output of this commands? With phone in download mode attached ofc.
Code:
lsusb
heimdall detect --usb-log-level debug
heimdall tar gz error
When I try to load the system.img file (from cm10.2_golden.maclaw.20140118.ODIN_TWRP.tar.md5) from heimdall, before beginning to flash, I get the following error: Tar header contained an invalid file size.
I tried to load the uncopressed file too, then the file cm10.2_golden.maclaw.20140119.zip not for odin and I get the same error, what am I doing of wrong?
Thanks

[DIY GUIDE] Create a personalized ROM yourself! [UPDATED: 28-07-2014]

Introduction
After releasing my 'Update to .253' thread, I've figured it is something you might want to do your self, maybe because you like to use your own created FTF, or even want to modify your ROM a bit before flashing. This guide will help you through it, as secure and successful as possible!
Anyone can do it!
There is no need to unlock your bootloader to work this guide, however it did help me out of some sticky situations myself, as long as you keep a cool head while working on your ROM, you'll be able to get out of any situation.
The XDA mantra: MAKE BACKUPS!
Before you do anything on your phone, make sure you create a solid backup first. As CWM and TWRP both do not backup your internal storage, create a backup of it's contents too before trying to install your very own ROM.
Prerequisites
Flashtool version 0.9.x.x (the latest) - Windows / Linux / Mac
Needed to flash your phone, also needed to create the FTF bundle. The Linux version is already installed in the VM but you can download any other version too, to do the flashing and FTF building before hand in a desktop enviroment you are accustomed to.
[GUIDE] Download ANY firmware customization from Sony & create an FTF with Flashtool
This thread will help you make an FTF file for your DIY project, as we already have this excelent thread I will save myself the trouble of creating a guide for that
VMWare Player (76Mb) (Free for non-commercial use) and [NUT]'s UbuntuHost VM (Bittorrent: 4.84Gb)
The VM you download is OK to use on any 4.1.2 ROM as base.
If you wish to use a 4.2.2 ROM, you will need the DIYGuide UPDATE PACKAGE 1 (Bittorrent: 169Mb).
If you wish to use a 4.3 or 4.4 ROM, you will be needing DIYGuide UPDATE PACKAGE 2 (Bittorrent: 159Mb). Flashtool however needs to be updated to 0.9.15.0 if you are going to build a 4.4 ROM
See the index below for the link to the guide post that explains how to use it.
This you will need for the tricky bits, as modifying a ROM is safer on a Linux host with less chances of breaking file permissions. As most of the world around us uses Windows, I've created a VM to support you in your tasks. I've installed the Linux tools you need, for me this VM works just fine.
The VM needs about 10Gb space on your pc and you need around 1Gb of free RAM when trying to use it smoothly.
This VM also contains a build script, simple but effective, which will create the (unsigned) flashable zip for you, grabbing all the files it needs along the way and giving you time to edit what ever you want during the building process.
I've made sure you have fastboot and adb commands to be found in the PATH variable, and that the connection to most android phones and tablets will most probably work just fine. You can do adb and fastboot commands to your phone without having them in the directory where you keep the files, easy to use!
The VM has one user, which is called XDA Community. To log in on Ubuntu, use the following credentials:
User: xda
Password: xdauser
This user has SUDO privileges, so expect to type that password again when prompted to do so while installing packages or even when running the rombuilder script.
Download and install WinRAR or 7Zip to be able to unpack my VM.
Included in the ROM you will build using this DIY Guide
Your DIY ROM will be rooted with SuperUser (or SuperSU when you used an update package), including the reboot fix. It will also include XZDualRecovery 2.3 RELEASE (or newer if you used an update package). So you will end up with a cool ROM!
Extra's
You will be able to use my AROMA ROM Mutator package to fix your JB 4.1 ROM if anything might fall to pieces in the future regarding root. You'll also be able to use it to make the switch from SuperUser to SuperSU using the mutator, if you might change your mind in the future.
Guide Index
Chapter 1: Introduction and Prerequisites
Chapter 2: Installing VMWare Player and getting 'UbuntuHost' running
Chapter 3: Preparing the FTF for NOOB use
Chapter 4: Preparing and Extracting the ROM
Chapter 5: Building the (unsigned) flashable ZIP
Chapter 6: Installing your DIY ROM
Addendum: How to replace the recoveries to suit your device
Addendum: How to update your VM
Frequently Asked Questions
Installing VMWare Player and getting 'UbuntuHost' running
I'm assuming you have downloaded the VMWare Player application suitable for your system. Installing it is a basic knowledge to most Windows users, so I'm not going to elaborate on the actual installation.
I'm also assuming you have downloaded the VM. You can now unpack it to your Documents folder.
Now, fire up VMware player and when you see the following...
{
"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"
}
Then click on 'Open a Virtual Machine' and navigate to the folder you just extracted:
Click on the UbuntuHost.vmx and confirm the choice. You'll end up with this view:
Now you can either double click on the name in the list on the left or click play on the right to start it.
Remember, the password is xdauser
NOTE: This Ubuntu has the Unity interface which means, among other things, the menus are moved from the application window to the top bar. Move your mouse over it and the menus will appear.
And you are ready for the next chapter!
Preparing the FTF for NOOB use
Why would you do that? Well... to make sure you won't screw up flashing the wrong bits and make it erase your userdata... better safe then sorry!
This step is actually also needed to unpack the system partition from the FTF you created using the guide I put in the OP.
Copy the FTF you created to the VM by dragging the file in to the VM window. You can see Ubuntu recognizes it as a ZIP, which it essentially is.
Open it by double clicking on it.
Now delete userdata.sin, cache.sin and appslog.sin from it. Then drag system.sin to the DIY Guide folder on the desktop. Once it's unpacked, delete system.sin from the FTF as well.
That was easy, wasn't it? Lets move on to the next chapter.
Preparing and Extracting the ROM
Click on the Terminal icon on the left, type 'cd FlashTool' and then './FlashTool'.
NOTE: Use 'sudo' and your password you used to login to run FlashTool as root if you run in to problems.
In the Tools menu, you can select Sin Editor, select the system.sin in your DIY_Guide folder in your home.
Then click 'Extract data' to start the extraction, now go get a cup of coffee, this might take a while
Once it's done you will end up with a file called 'system.ext4' inside your DIY_Guide directory.
Click Close and close FlashTool using the orange X in the top left corner.
You can rename it to something you like but it should end with '.ext4' to allow the scripts to recognize it. Just open up the DIY Guide folder on the desktop and right click on the system.ext4 file and choose 'Rename'. For purpose of demonstration I renamed mine to 'nuts.ext4'
NOTE: The scripts allow for more then one flashable system to be created, so you can repeat the above multiple times, just remember to rename the system.ext4 to something else, otherwise you'll just end up overwriting the same file over and over again
Because of size considerations, the virtual disk is not really big (10Gb) so you'll run out of space fairly quickly, do not forget to empty the trash after this step!
That's it for this chapter, lets move on!
Building the (unsigned) flashable ZIP
Now we can open the Terminal by clicking on the icon on the left with the '>_' sign in the 'monitor'. Change directory to DIY_Guide and type 'ls -la' to show the following
You can start the build process using the rombuilder script by typing './rombuilder' and it will ask you for your password before it starts.
Once it successfully mounts the system partition it will open it for you. The script will pause for you to complete whatever modifications you want to do to it. Remember the XDA Mantra? Well... a backup would be good to make right now.
If you have more then one system.sin extracted, the above process will repeat itself until it passes all the various .ext4 files it has found.
NOTE: The mounted ext4 image has been mounted as root and as the contents are owned by root, you will need to sudo your actions when modifying the contents!
Tip: To make it easy on yourself you can use the terminal to open a file manager running as root. Type ctrl+shift+t, this will open a new terminal tab. In there type 'sudo nautilus' which starts the file manager again, but with an appropriate warning at the top of the explorer window, that one will be running as root. Be careful, you might wreck your entire VM if you mess things up big!
Once you are finished with the modifications or just enter through to the next bit, it will pack up the system partition and repeat or when done it will continue to create a flashable ZIP for each of the different .ext4 files you created.
You're almost done! Lets move to the next chapter...
Installing your DIY ROM
FOR 4.1.2 ROM's:
Before doing these steps, remember to have any recovery installed on your phone if you are doing this with a locked bootloader, otherwise you won't be able to flash the zip you've built!
Put your '$NAME.flashable.zip' on (the external) SDcard;
Put the 'FTF' inside the FlashTool/firmwares folder;
Create a backup of your phone in CWM or TWRP and don't forget to backup the contents of 'SDCard0';
Flash everything in the 'FTF' to your phone and boot the phone straight to recovery after that;
NOTE: If you have an unlocked bootloader, you CAN flash the kernel, but you do not need to, to keep your custom kernel.
Flash '$NAME.flashable.zip' in recovery (Works in both CWM and TWRP!)
Reboot to system without clearing (dalvik-/)cache.
And you're done! :victory:
FOR 4.2.2 AND 4.3 ROM's:
Before doing these steps, remember to have any recovery installed on your phone if you are doing this with a locked bootloader, otherwise you won't be able to flash the zip you've built! You will need XZDualRecovery 2.5 BETA or newer to make this work.
NOTE: This guide assumes you are coming from a 4.1.2 ROM. If you have a 4.2.2 ROM already installed, you can skip this one and use the above guide.
Put your '$NAME.flashable.zip' on (the external) SDcard;
Put the 'FTF' inside the FlashTool/firmwares folder;
Create a backup of your phone in CWM or TWRP and don't forget to backup the contents of 'SDCard0';
Flash '$NAME.flashable.zip' in TWRP, then TURN YOUR PHONE OFF AFTERWARDS - DO NOT BOOT IT YET!
Flash everything in the 'FTF' to your phone;
Now boot to system without clearing (dalvik-/)cache.
And you're done! :victory:
Addendum: How to replace the recoveries to suit your device
Download XZDualRecovery specific for your device, the flashable package to be precise.
Drag the file to the VM window and open the zip. You will see 2 folders in there, traverse in to system/bin where you will see the files you need most.
Open the DIY_Guide on the VM's desktop, traverse to updater/system/bin and drag all the files from the zip in to this directory, replacing all the files already in your VM and you are set to go
On the Xperia Z Ultra, Z1 Compact, Z1 and (Tablet) Z2, don't forget to copy the disableric file from the tmp folder inside the recovery zip to the updater/system/xbin folder. Forgetting to do so will cause your system partition to be not fully accessible from the fully booted ROM.
For completeness, you could copy the dr.prop file inside the zip to the updater directory too: this will ensure people downloading your package will know what XZDR version was included.
Addendum: How to update your VM
The update package 1 contains the following:
FlashTool 0.9.11.0
XZDualRecovery 2.5 BETA
The Remount-Reboot fix
Superuser has been replaced by SuperSU
IMPORTANT NOTE: This update makes your flashable ZIP assume you are updating from a 4.1.2 ROM to a 4.2.2 ROM. So the resulting flashable ZIP will move the contents of your internal storage to the new 4.2.2 location. If you are creating a package to go from a 4.2.2 ROM to a 4.2.2 ROM, you will need to edit the updater-script to stop it from doing that
Code:
ui_print(" Moving contents of the internal storage to it's new location...");
ui_print("");
ui_print(" NOTE: This may take a while!");
ui_print("");
run_program("/sbin/busybox", "mv", "/data/media", "/data/temporary");
run_program("/sbin/busybox", "mkdir", "/data/media");
run_program("/sbin/busybox", "mv", "/data/temporary", "/data/media/0");
set_progress(0.850000);
Remove the above portion from updater/META-INF/com/google/android/updater-script using gedit and you're set! :fingers-crossed:
The update package 2 contains the following:
Flashtool 0.9.13.0
SuperSU 1.86
XZDualRecovery 2.7.62.
How to update:
Download the update package from the link in the OP;
Open the Home directory in the VM on the bar on the left;
Drag the file in to the home directory straight from your host PC's location where you stored the downloaded package;
Remove the FlashTool and DYI_Guide folders or rename them (to rename, right click on them to get the menu with the rename option);
Now open the diyvm-update.tar.gz, drag the 2 folders in to the Home directory.
All done! :good:
Frequently Asked Questions
Q: Could I use this for any other Xperia device?
A: Sure you can! The proof is starting to pop up now and then
Just make sure you put in the right recovery pieces to support your specific device
Q: Am I allowed to release my ROM to the public?
A: Of course! I only require a simple mention or a humble thank you in your topic, where ever that may be. I like to know where my work travels to, so post or PM me the links to it
Q: Am I allowed to change the updater script to suit my needs?
A: You are allowed to change whatever you wish, I have NO copyright or license stuck to my work, simply because I consider anything with a license or copyright not to be 100% pure open source.
Q: I would like to make a ROM for my device, but there is no XZDualRecovery for it?
A: Try to integrate a recovery package available for your device. You can of course also request XZDR support, but it can take some time before that happens.
Q: I want to expand the storage capacity of the VM, is there any guide for that?
A: Yes, @gregbradley posted one here.
Q: My VM disk is slowly filling up, while I am keeping the trash empty, how come?
A: @GavTheStoner found out why, read his post on the subject and the solution he found.
Would be very useful! Thank you for the nice and clear guide!
Could you please also provide the script and other files needed such recovery etc. ? The whole VM image is large...
Fishmanzero said:
Would be very useful! Thank you for the nice and clear guide!
Could you please also provide the script and other files needed such recovery etc. ? The whole VM image is large...
Click to expand...
Click to collapse
No
It's not hard to find parts in my releases...
Sent from my C6603 using xda app-developers app
Great guide! Thanks a lot for this!
Gesendet von meinem Xperia Z via Tapatalk
Don't suppose anyone's come up with a way to rebuild to FTF?
Would love to be able to do that and just load with FlashTool.
Johbremat said:
Don't suppose anyone's come up with a way to rebuild to FTF?
Would love to be able to do that and just load with FlashTool.
Click to expand...
Click to collapse
Me too, but unfortunately that's just impossible... Sorry
Sent from my C6603 using xda app-developers app
Great Guide
Thanks for sharing - I was able to create my own deodexed and zipaligned 10.1.1.A.1.307 firmware. I tweaked it a bit so it doesn't reboot when changing system to R/W.
Next I'll try creating one for the Japanese 10.1.D.0.343 build
I was able to create a working 10.1.D.0.343 build for the SO-02E variant using your guide. Is it cool with you if I upload it and share it for our Japanese friends? I'll give you credit of course. :good:
lancebukkake said:
I was able to create a working 10.1.D.0.343 build for the SO-02E variant using your guide. Is it cool with you if I upload it and share it for our Japanese friends? I'll give you credit of course. :good:
Click to expand...
Click to collapse
Of course you can
If I didn't want you to release it to the public I'd have that explicitly stated in the OP ... which I haven't, so go right ahead! :good:
--- ON A DIFFERENT NOTE ---
I'll be updating the VM soon to reflect the changes in the updater script, the remount-reboot fix and the latest XZDualRecovery.
I'll also make a tar archive with a little guide in one of the reserved posts to help you update your VM so you won't have to download it all over again
Thanks!
But its possible to create a ROM out of a CWM Backup on Windows.. I.E. thats more simple
Thanks for the VM though
jader13254 said:
Thanks!
But its possible to create a ROM out of a CWM Backup on Windows.. I.E. thats more simple
Thanks for the VM though
Click to expand...
Click to collapse
I know it is, but that is basically a TAR backup and requires a few extra steps: flashing the FTF to your phone, then booting to recovery to make that backup, dragging that to your PC and stripping the META info from the nandroid backup process adds to the TAR (which makes it a non-standard tar archive!) and you still risk losing all permissions and ownership information on the files inside the archive when extracting that to integrate it in your flashable zip... which is a ZIP and does not know about the extended file permissions and ownership from a Linux system... so you will have to make your updater-script reset permissions or instruct your users to do so using recovery... :silly:
Using this VM and my method of using the SIN file to extract a ROM prevents a huge heap of possible issues and keeps the updater-script nice and small and the installation a breeze
[NUT] said:
I know it is, but that is basically a TAR backup and requires a few extra steps: flashing the FTF to your phone, then booting to recovery to make that backup, dragging that to your PC and stripping the META info from the nandroid backup process adds to the TAR (which makes it a non-standard tar archive!) and you still risk losing all permissions and ownership information on the files inside the archive when extracting that to integrate it in your flashable zip... which is a ZIP and does not know about the extended file permissions and ownership from a Linux system... so you will have to make your updater-script reset permissions or instruct your users to do so using recovery... :silly:
Using this VM and my method of using the SIN file to extract a ROM prevents a huge heap of possible issues and keeps the updater-script nice and small and the installation a breeze
Click to expand...
Click to collapse
I just used a nice tool called "yaffey" which keeps the file structure and I set permissions via updater-script.
Works really fine but may be more difficult
Reall great way though and big thanks for this guide

One Plus One Toolkit v1.2b + ADB/python library - OSX, Linux, and Windows!

i present to you the latest STABLE release from vvn's secret underground laboratory.......
THE HALF-ASSED ONE PLUS ONE TOOLKIT v1.2b!
UPDATED!!! LATEST RELEASE: August 24, 2014
{
"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"
}
i'm copying and pasting from the thread i have on the oneplus one forum because i am lazy and i already worked hard enough coding the damn thing read on for changes/updates/fixes, or check out the README file which is also the changelog!
LATEST UPDATE RELEASED (cumulative v1.1 and v1.2b update since oneplus decided to release 33R so damn fast)!
TOOLKIT SOURCE CODE/PYTHON SCRIPT:
http://pastebin.com/y511TjV1 -or- http://notworth.it/opo/opotoolkit.py
PYADB LIBRARY SOURCE CODE:
http://pastebin.com/7VSpinAz -or- http://notworth.it/opo/pyadb.py
README FILE:
http://notworth.it/opo/README
download ZIP file containing scripts and adb/fastboot binaries:
http://notworth.it/opo/1plus1-halfassedtoolkit_v1.2b.zip
SHA1: eb2ddd5eeddd51cbc863100422ffa84bfb568a8e
same ZIP above PLUS a few useful apps:
http://notworth.it/opo/1plus1-halfassedtoolkit_v1.2b-withapps.zip
SHA1: 6528af01ce50e544f5b1c143659f0ef357b0895b
##################################################################
HALF-ASSED ONEPLUS ONE TOOLKIT v1.2b
BY vvn (eudemonics on xda-developers)
release date: AUGUST 24, 2014
##################################################################
PASTED FROM README FILE:
this is a very half-assed project, as you can guess from the name, and i cannot guarantee fast or frequent updates.
REQUIREMENTS FOR SCRIPT TO WORK:
* opotoolkit.py is the main script. that's the one file you REALLY need.
- get it here: http://pastebin.com/y511TjV1 -or- here: http://notworth.it/opo/opotoolkit.py
* my PYADB library needs to be in the same directory as filename "pyadb.py".
- get it here: http://pastebin.com/7VSpinAz -or- here: http://notworth.it/opo/pyadb.py
* obviously, you'll need python 2.7. download python here: https://www.python.org/downloads/
* you need ADB and FASTBOOT from the android SDK. download the SDK here: https://developer.android.com/sdk/
* finally, you need an OS that supports Python and the android SDK, which I'm afraid narrows it down to:
- Linux (all flavors)
- Mac OSX (exotic jungle cats and beyond)
- Windows (pretty much all releases, or starting from whichever one could support Python.)
i apologize for limiting your options like that.
you can either put the scripts and other files in the same directory as your android SDK,
or set an environmental path variable for your android SDK directory.
##################################################################
USE AT YOUR OWN RISK. i am not responsible for any damage to your device.
i have tested every function except the unlock bootloader and sync functions.
everything works except the uninstall APK function, but i think i just don't quite understand the adb command.
to report bugs, ask questions, offer suggestions, explain the adb uninstall and sync functions(?!), ***** at me, propose marriage, or send anonymous death threats, email me: vvn (at) eudemonics (dot) org
feel free to share, modify, whatever.
some credit would be nice but it's not a big deal if you don't. donations are super nice.
but buying & sharing my EP would be the most awesome way to show your appreciation. really, it would mean the world to me.
you can stream and buy the EP at: http://dreamcorp.bandcamp.com or any major online music retailer (itunes, google play, amazon, spotify, cdbaby, etc.) - just search for "the dream corporation" and album title "last night on earth"
follow on facebook: http://www.facebook.com/dreamcorporation
and of course, more music on soundcloud: http://www.soundcloud.com/dreamcorp
##################################################################
CHANGES IN v1.2B (released same day as v1.1):
new SuperSU binary - we are now on v2.02! many thanks to chainfire for the development and maintenance of SuperSU. also updated the TWRP image, which is bacon 2.7.1 or 2.7.1.1 i believe.... it's the one that's about 12mb. the 15mb version was the one that was giving me the problems i complain about below.
also added some more flashing options and made the sideload/install from device/fastboot options a bit more flexible instead of always following the same path.
probably not even noticeable to most people, but for some reason TWRP hasn't been behaving all the time, especially with installing the SuperSU binaries for rooting. so instead of TWRP or stock recovery being the only options, i added ClockworkMod and Philz as options to whatever functions (flash and sideload) that use a custom recovery and were previously only able to use TWRP. i've tested rooting with the towelroot method on my samsung galaxy note 3 and it works perfectly, doesn't even trigger the knox 0x1 bit (as long as firmware is NE6 or earlier) and no reboot required. towelroot will not work for the oneplus one though - i tested the latest superSU (2.02) update on the OPO's latest update (33R) and it flashes successfully through Philz Recovery.
developing and running the script primarily on a Macbook Pro OSX 10.8 with Python 2.7.x, though sometimes i work on it in a Linux Debian environment. i have no clue how this script will run in Python 3, i could try it and find out, but i just don't care.
also new - check out the sweet ASCII art i added (even in oneplus' signature colors)! since it's the first thing you see when you run the script, you probably can't miss it. added because, obviously, it's an absolute REQUIREMENT that every terminal application (at least, the ones that matter) include some uber leet ASCII. like, the functionality doesn't even matter. handling exceptions doesn't matter (i don't do much of that here, by the way). all that matters is whether or not you have ASCII art, and how uberleet it is. otherwise, nobody will give a **** about you or your app. (at least, that's what i was told. mommy????)
in a future release there will be more functionality for other phones. i plan to add a script for deodexing, and maybe if i am not too tired i'll create a stock ROM with root already injected into it.
my github repository is still being a jerk and won't let me commit anything. sorry. keep checking my pastebin until then to get the latest updates:
http://pastebin.com/u/eudemonics
there might be some errors. i don't know. i thought i fixed the ones i came across. i really need sleep.
##################################################################
CHANGES IN v1.1:
- most files in script can be downloaded directly from script by demand to proper location, making it an easier install and a more seamless user experience
- added support and files for latest updates: XNPH33R released 8/22/2014, and XNPH30O updates #1 and #2
- can now flash entire factory stock ROMs - full XNPH30O and XNPH25R stock images - or flash your own custom ROM
- updated PYADB library to return STDOUT response instead of just a '0' success or error if not 0.
- reboot functions should behave a bit more sanely now that the piped STDOUT response can be used as qualifiers
- added more details and instructions in certain procedures, especially those having to do with booting into recovery.
- several root options available now: superSU is recommended for OnePlus One. TowelRoot is recommended for Android firmware releases earlier than June 2014. I also included a "superuser" zip file which is also supposed to be for rooting, but unless you are well acquainted with what it does, which devices it supports, and what to do with it, I would advise you not to try flashing it.
- i shuffled a lot of items around, it's very likely that there may be some syntax errors floating around. Please report any errors you come across to me at vvn (at) eudemonics (dot) org. thanks!!
~*~
NOTES FROM RELEASE v1.0:
MORE UNIVERSAL FEATURES TO SUPPORT ALL ANDROID DEVICES!
added a bunch of features to the pyadb python library, as well as including them in the toolkit. if there are any features you'd like to see in the toolkit, whether for the oneplus one or for android devices in general, please let me know and if it's possible, i'll add it! wiping and flashing options work now - you can choose the specific partitions you want to wipe, or flash everything back at once. i have also added the towelroot option, which should work on quite a few android devices as long as they are running firmware released before june 2014. also included a few APK's in the package that aren't available from the google play store, so you can install 'em if you want. tested most functions on my macbook pro (running OSX mountain lion) and they all seem to be working, except the uninstall APK function, but it's not a problem with the code, it's my failure to grasp what the <package> parameters should be. also, the latest OTA updates (30O) aren't installing from the fastboot update method, so i've added other options to install them such as ADB sideload and through custom recovery. i haven't tested the sync, wipe, restore, or unlock bootloader functions yet. they should all be working though, except maybe the sync (as i don't completely understand the ADB command myself. i just know the sync command alone without any args syncs your device's /system and /data directories).
one thing that may or may not work sometimes is running the reboot function from the toolkit while you're in recovery mode. i'm not sure if it's even possible to send a command from the computer to make it reboot while in recovery mode, though it shows up under "adb devices" as device type "recovery". i've added to the dialogue of the script directions to carry out certain functions from the device, such as rebooting from recovery back into android. also, the latest OTA updates (30O) *might* not install from the fastboot update method, so i've added both the ADB sideload method as well as installing updates from a custom recovery.
USE AT YOUR OWN RISK. i'm not responsible for anything that might happen to your device as a result of using the toolkit. if you use the correct files in the package and follow the toolkit directions onscreen, your device should be just fine. i assume if you have the technical know-how to install python, the android SDK, and run the script, then you've got a pretty good idea of what you're doing already. if you need help, send me a message. the best way to reach me, to get the quickest response, is probably on facebook, as i do not log onto xda-developers or my email accounts regularly:
http://www.facebook.com/dreamcorporation
requirements: python 2.7, android SDK, opotoolkit.py, pyadb.py
you can either supply the files referenced in the script, or download them from my site. links are in the opotoolkit.py source code pastebin link.
opotoolkit.py source code: http://pastebin.com/ciAj8NJy | download: http://notworth.it/opo/opotoolkit.py
pyadb.py source code: http://pastebin.com/g2Z08JN1 | download: http://notworth.it/opo/pyadb.py
for your convenience, i put together a ZIP file with most of the files you need - scripts, superSU, recovery images, apps, adb/fastboot binaries, etc. all that's missing are the stock images referenced in option #8.
download package here: http://notworth.it/opo/android-1plus1-halfassedtoolkit_v1.zip
there are also a couple large ZIP files available if you want to use the flash stock images functions in option #8 - links are in the source code for opotoolkit.py. or you can just download the XNPH25R stock firmware file from the official cyanogenmod page and unzip the contents into a subdirectory called "XNPH25R" of the script location, and the OTA updates for XNPH30R can be placed into another subdirectory of the script location called "XNPH30O". i will eventually add the functionality to download all the files directly from the toolkit itself, to make it easier for you guys so you don't have to scramble all over the place downloading and collecting files.
any APK's you'd like to install from the toolkit to the phone should go into the /apps subdirectory (already included in the ZIP package file along with a few apps). i have created the github repository for the project, but github is still refusing to acknowledge its existence on the web. once i get it sorted out i'll add a git link. keep checking this space as well as the pastebin links for any updates!
##################################################################
installation:
download and install python 2.7: https://www.python.org/downloads/
download and install android SDK: https://developer.android.com/sdk/
download toolkit package: http://notworth.it/opo/android-1plus1-halfassedtoolkit_v1.zip
-or-
download the python scripts/copy + paste source code from pastebin links into a text editor:
opotoolkit.py source - http://pastebin.com/ciAj8NJy | download: http://notworth.it/opo/opotoolkit.py
pyadb.py source - http://pastebin.com/g2Z08JN1 | download: http://notworth.it/opo/pyadb.py
extract files from the ZIP package or save the *.py scripts to a new directory, "opotoolkit" or whatever you want to name it.
it should work with the adb and fastboot binaries provided in the ZIP, but if not, you should install the android SDK. i recommend even MORE that you create an environmental path variable to the android SDK so you can run the commands from any directory.
setting up an environmental path variable (optional - recommended):
if you're on windows you can go to my pastebin, find the only powershell script on there, and steal/adapt the code to create your own environment path variable. but it's much easier to configure in system properties - i'm not on windows right now so these may not be exact instructions, but you should be able to right click on "my computer", select "properties", go to the "environment" tab in system settings, and add the environment path there. linux and OSX users just need to add the android SDK directory to their ~/.bash_profile or ~/.bashsrc or wherever environment paths are defined. if you still don't understand environmental path variables or symbolic links, i highly recommend google (or startpage.com, the private version).
if you don't want to go to the trouble of creating the environmental path variables, and you want to use the android SDK on your computer, then just extract all the files from the ZIP into your android SDK directory.
##################################################################
how to run the toolkit:
plug phone to computer via USB, turn on android debugging.
open command prompt or terminal window to scripts directory. start toolkit by entering:
"python opotoolkit.py"
if everything is installed and in the right places, you should see a menu like the attached screenshot. if for some reason you get a permission denied error, try launching the command prompt or terminal as administrator or superuser.
i'll continue working on it and adding more when i can so keep checking this space. everything's open source; use, share, steal whatever you want from the code. some credit would be nice, though.
you can use the pyadb.py library to incorporate adb/fastboot commands into your own python projects. i'll be adding more features to that, but for now most of the common features are covered.
here's the github link - it still won't acknowledge my repository exists, and if i try to create it again locally it gives me a fatal error. so it's not letting me add or commit any files, since it says the repository doesn't exist - though trying to create the repository gives me the warning that it already exists. [[email protected]#[email protected]#] let's just say github and i are not exactly BFF's.
project github home whenever it decides to start working: https://github.com/eudemonics/1plus1toolkit
i've been working to expand this so it can be used with all android devices, though it'll require people to supply their own device files to use with it! just because the toolkit can flash device firmware DOES NOT MEAN that the included files meant for the oneplus one will work on a NON oneplus one device! hopefully that's not something i needed to emphasize. if there is enough positive feedback and support i'll create a GUI since people like to click things more than type into a terminal window
my half-assed oneplus one toolkit was featured on cyberwarzone!
http://cyberwarzone.com/android-toolkit-python-2-7/
not gonna bug you for donations - all my code is open source - if you'd like to donate, please do so by purchasing my EP. hey, you might even like the music, too:
buy it here: http://dreamcorp.bandcamp.com
or search for it on itunes, google play, amazon, spotify, last.fm, cdbaby, and so on.
there are also links in the description for my video:
https://www.youtube.com/watch?v=2i-F4jiKtGg
##################################################################
special thanks to chainfire for superSU, cyanogenmod for CM11S, geohot for the towelroot exploit, oneplus for manufacturing such an excellent and affordable product, and everyone here on xda-developers for growing and developing the android community into the vital and creative force it is today!
XDA:DevDB Information
Half-Assed One Plus One Toolkit v1 in Python/ADB-python library - ALL OS' SUPPORTED!, Tool/Utility for the ONEPLUS ONE
Contributors
eudemonics
Version Information
Status: Stable
Current Stable Version: 1.2b STABLE
Stable Release Date: 2014-08-24
Current Beta Version: 1.2.3 BETA BLOCKERS
Beta Release Date: 2014-08-22
Created 2014-08-18
Last Updated 2014-08-25
Reserved
Reserved

How to create custom EDL packages?

I have an interest in creating some custom EDL packages for personal use, to automate a few things and just generally make things easier. Like modem packages, bootstack packages, etc. Can someone point out some tutorials that outline things like:
1. Structure of an EDL and the meanings of the files and what they do (ex. firehose file, gpt***, rawprogram***, etc)
2. Utilities for packaging an EDL
3. Anything else I can't think of offhand
I know that many of the files in an EDL are nothing more than raw partition images that are to be written to a corresponding partition on the device, other files are partition layout/size files, and others provide instructions for the EDL flashing program to execute.
I already have some experience in how to create zip packages that are flash able in TWRP, as well as experience with Linux commands and scripting, so that should prove useful as well.
Thanks!
I've been experimenting with my current Edls. (ones I have downloaded not my own)
Changing boot.img and splash.img etc.
There are various tools on the net to modify the img, extract and repack img files if your into modifications to the img?
I'm not 100% sure however I think the Edl is created via twrp of your current setup. (backup files) (Please correct me if I'm wrong)
If I understand correctly,
Firehose is an exploit used to access the phones root directory. (again please correct me if I'm wrong)
I've had to modify firehose in some cases for it to work. (Causes error if incorrect)
You should be able to pack with WinZip or winrar if using Windows, I'm not sure with Linux tho.
@Syberclone: Well, like I said, they are mostly just raw partition images that correspond to partitions on the device. Like for example, boot.img is boot partition, recovery.img is recovery partition, etc. As far as modding a boot.img, there is Android Image Kitchen, which runs on Android, Windows, and Linux, maybe Mac too. There are surely also tools out there that can create/modify TWRP images, but I'm not aware of any by name. However, neither of those has anything to do with creating an EDL.
I have seen a feature in @Oki's Oreo TWRP that can back up the bootstack/firmware into an EDL, but there must be PC tools out there for this.
It's my understanding that firehose is the binary/executable programmer file that the EDL flasher tool (MiFlash/A7 EDL Tool, DFU MultiDL Tool, etc) uses.
There is no WinZip, WinRAR or 7-Zip for Linux, but there are other far superior archiving tools for Linux that can do the same and much more. Linux is a far superior OS than Windows in almost every way (except gaming), in my experience. It is much more stable, rarely crashes (unless you screw up), and has a diversified range of software for accomplishing almost any task. There are a lot of things you can do with Linux that are either difficult/impossible/impractical in Windows.
@Syberclone: Well, like I said, they are mostly just raw partition images that correspond to partitions on the device. Like for example, boot.img is boot partition, recovery.img is recovery partition, etc. As far as modding a boot.img, there is Android Image Kitchen, which runs on Android, Windows, and Linux, maybe Mac too. There are surely also tools out there that can create/modify TWRP images, but I'm not aware of any by name. However, neither of those has anything to do with creating an EDL.
I have seen a feature in @Oki's Oreo TWRP that can back up the bootstack/firmware into an EDL, but there must be PC tools out there for this.
It's my understanding that firehose is the binary/executable programmer file that the EDL flasher tool (MiFlash/A7 EDL Tool, DFU MultiDL Tool, etc) uses.
There is no WinZip, WinRAR or 7-Zip for Linux, but there are other far superior archiving tools for Linux that can do the same and much more. Linux is a far superior OS than Windows in almost every way (except gaming), in my experience. It is much more stable, rarely crashes (unless you screw up), and has a diversified range of software for accomplishing almost any task. There are a lot of things you can do with Linux that are either difficult/impossible/impractical in Windows.
Yes, I am familiar with the Edls and how they are structured.
I am familiar with Linux too, and it is diverse and has a lot of great OS's and great applications, I have many discs with Linux but very rarely use them or Windows much any more. We could debate the ins and outs, ups and downs of all OS's however that's kind of off topic.
The topic at hand is Edls, its only been since I've owned this Axon 7 that I've experienced Edls, I've seen some tools that could possibly do the job, however haven't had time to really study these.
One such app is "Smart Flasher tool" that is a Qualcomm chipset app for use with several different phones.
This looks very promising from a couple of YouTube vids I've watched, however the download links seem to be malicious.
There is also Sahara and firehose, as well as eMMC raw tool utility.
Both via a Russian website.
The most amazing thing would be if there were a one step process of unlocking the bootloader, and getting TWRP + a custom ROM installed.
For example, imagine if there were an EDL package that flashed the device to a state where it cleared partitions as needed, and got a working and rooted copy of lineage installed, thus instead of users having to follow like a 20+ step guide, they would instead just enable OEM unlock, reboot into EDL, then flash a single package that did everything.
@Razor512: That's the lazy way of doing things. I would rather do it step by step, and get the learning experience and understanding of the overall process. An all in one package does it all for you, but that's spoonfeeding. You dont learn anything, unless you already understand how everything works.
AnonVendetta said:
@Razor512: That's the lazy way of doing things. I would rather do it step by step, and get the learning experience and understanding of the overall process. An all in one package does it all for you, but that's spoonfeeding. You dont learn anything, unless you already understand how everything works.
Click to expand...
Click to collapse
The process is simple enough, but it can get time consuming since you have to be present for it all when you want to jump back to the stock builds once in a while, e.g., if traveling, and you want android pay and other stock functions under android 8.0, and then jump back to lineage, or if you are periodically testing lineage in the hopes that a ported dolby atmos finally works reliable, it is easier if you have an EDL package that you can flash. Also, if things are not good, just flash the stock ZTE EDL and be back on stock immediately.

Categories

Resources