Porting qualcomm. Porting Android firmware. How is the firmware porting

The topic of how to port Android firmware is rather hackneyed, but it does not lose its relevance. On the contrary, more and more people are beginning to be interested in it. In this article, we will only cover porting devices with the same kernel. If you want a super interesting firmware for yourself, then it's time to start dealing with the "kitchen" of this process.

Step-by-step instruction

What you need:

  • a computer with any OS;
  • WinRAR or a similar archiver;
  • Notepad ++;
  • two ROMs: portable (hereinafter PROM - from which we will take "tzatzki") and base (hereinafter BROM - on which we will collect).

* BROM - As a rule, native firmware.

** Since we will be looking at an ARM device here, you first need to find out which processor you have.

Action one

Create a backup from the system / app directory to any folder on the desktop. By copying the files, you will understand what is the matter, because if you started porting, then, probably, you have flashed your MID more than once.

Second action

Delete the directories shown in the picture from BROM and, accordingly, insert the folders from PROM instead.

Act three

Now we throw the files from the first action back into BROM.

Action four

Go to the system / lib BROM folder and copy and replace all the libraries into the corresponding PROM storage (don't be surprised, it's easier). We do the same along the paths /system/etc/init.d and / system / etc / permissions. The above three directories can now be destroyed (in BROM), and everything from PROM can be copied in their place.

Important: open the build.prop files in both ROMs via Notepad ++. This enhanced notepad shows tabs well. The latter must be one opposite the other, and the ro.build.description = entry must absolutely match, otherwise you will not be able to flash the device at all. If the entry is not the same, edit it. Do the same with updater-script located in META-INFcomgoogleandroid path. Naturally, the record must be identical with the PROM record.

Very important: you cannot change symlinks at all. You can change or fix or add ui_prints, run_programs, asserts and of course the kernel.

The most important: in Updater-script BROM Format values ​​should be for your device. Sometimes you need to fix BOOTCLASSPATH in init.rc or just copy it from RBOOT. Then, of course, repack the kernel.

Well, that's it! Porting Android firmware on the basis of ARM it is done like this. Good luck!

This article, which is dedicated to porting firmware to officially unsupported Android devices, will be useful to those who wish to update software their "robot", but for whom the "standard" set of official and custom firmware is not enough. Immediately, we note that in the process of creating such ports, certain errors or minor bugs may occur, however, the manual will only touch on general issues, without delving into fixing glitches.

For porting, you need programs such as Notepad ++ (or any other high-quality text editor), WinRar (or another archiving program), Personal Computer(with operating room Windows system or another), as well as at least a basic level of knowledge in the structure operating system Android and common sense (for example, it makes no sense to port HDPI-ROM directly to MDPI, and so on).

You will also need two ROMs - a portable one and CM7 / GB / Stock as a base for the created port. You must also be identified on the basis of which revision of the ARM platform your device was created (ARMv5, ARMv6 or ARMv7), since the ROM base and the ROM port must be for the same type of processor.

In fact, the work is carried out with three main folders - a portable ROM, from which we extract everything we need; base ROM - that is, where it is porting, and where we are already collecting new version ROM'a; backups created along the way.

First, let's create a backup from the base ROM folder, namely the files that are in the directory / system / app:

stk.apk
vpnservices.apk
camera.apk
bluetooth.apk

Backup can be put wherever you want, even on your desktop.

Remove the following folders from the base ROM and replace them with a portable one:

/ data
/ system / app
/ system / framework
/ system / fonts
/ system / media

Do not forget to copy from the portable ROM to the base library libandroid_runtime.so to folder / system / lib, because without it, the new ROM will most likely not start at all. However, if, under the condition of replacement, the device goes into a cyclic reboot, that is, it restarts non-stop and to no avail, it is worth trying to use libandroid_runtime.so from the base ROM.

Copy the files backups which was created into the base ROM. Next, we copy all libraries and folders located in system / lib base ROM to the appropriate ported directory. Replace all files if names match. In the database, delete the directory lib completely, move the same folder from the ported to the base ROM.

Go to the folder / system / etc base ROM, open the folder init.d... We copy all its contents into the same ( /system/etc/init.d) directory of the portable ROM. Then we delete the folder in the "base". Copy init.d to the "base" from the "port", to / system / etc.

Open the directory again / system / etc base ROM, where we open the folder permissions... Copy all its contents into the same folder ( / system / etc / permissions) of the portable ROM. Again, delete the folder permissions in the "base", after which we copy from the portable ROM permissions v / system / etc base ROM. Such simple actions can fix permission and gapps problems before they actually appear.

Open the file with a text editor (we recommend using Notepad ++) build.prop ported ROM and "base". Place two Notepad ++ windows next to each other, and edit build.prop ported ROM according to the base ROM, so that they match. It is very important that the parameters:

ro.build.description =
ro.build.fingerprint =

V build.prop of the ported ROM were the same as in the base ROM, otherwise the created firmware will not work at all. We save build.prop and close Notepad ++, then copy Build.prop from a portable ROM to a basic one.

Now you need to edit updater-script... Go to the folder META-INFcomgoogleandroid base ROM and open this file using Notepad ++. We also open and updater-script and a portable ROM. We place two Notepad ++ windows side by side, and change updater-script"Bases" for similarity with updater-script"Port". It is strongly discouraged to change symlinks... You just need to fix or add any permissions, asserts, ui_prints, run_programs and the installed firmware kernel. V updater-script"Bases" are carefully checked to Formatvalues were installed for the required mobile device model. We double-check, or choose the right kernel. If the device is not from the same manufacturer from which the kernel was taken, then it is imperative to unpack it, and then fix it BOOTCLASSPATH v init.rc. BOOTCLASSPATH copy from the "port" to the base ROM, and then pack the kernel again.

That's basically it. The final firmware came out in the base ROM folder. You can also add to it to taste different applications, patches, scripts and so on.

Porting firmware is of interest to many advanced users who want to adapt their device for a different environment while maintaining it useful properties... Usually the main goal of this process is to make the firmware on your gadget "more interesting" and. Let's take a look at how all this happens on Android technology with the ARM platform.

Each of the users would like to add something original to their gadget.

What do you need to port firmware?

To carry out this process, the following components are required:

  • Notepad or another text editor (however, this program is considered the most convenient and thoughtful among the rest).
  • WinRar archiver.
  • The computer through which the whole process is carried out.
  • Two ROMs - one is a source for transferring firmware data, on the other we will collect them for software.

How is the firmware porting?

First of all, we create a backup folder on the computer by copying the following files with the .apk extension from the system / app directory to the PC:

  • Vpnservices.
  • Camera.
  • Bluetooth.

Then, on the device where we will build the firmware (its other name is BROM), we delete these files, and instead of them, which is also called PROM, the following directories:

  • / data.
  • / system / app.
  • / system / framework.
  • / system / fonts.
  • / system / media.

We also copy the libandroid_runtime.so library to the / system / lib folder on the base ROM. Now we move to BROM again before deleted files from the first action.

Subsequently, we make a copy of such libraries from the base ROM to PROM, as:

  • system / lib.
  • /system/etc/init.d.
  • / system / etc / permissions.

Please note that copying is performed replacing existing data on other equipment, and not as a supplement. Now we delete these three directories on BROM and copy everything from PROM in their place.

We turn to work with the Notepad editor and perform the following actions:

  • Open the build.prop file on each ROM and place both windows opposite each other.
  • We check that the ro.build.description = entry is the same on both devices, otherwise the firmware will fail. If necessary, so that the entries in the PROM and BROM are identical.
  • We follow the path / META-INF / com / google / android and now open the files called updater-script for verification. If they are not identical, then they must be adjusted so that BROM matches the value specified in the portable ROM.

Note. You can edit or add parameters such as core or permissions, asserts, ui_prints, run_programs, but under no circumstances change the symlinks value.

The last thing to do is to check the Format values ​​parameter on the base ROM in the updater script (the specified data should be suitable for). If two cores different manufacturers, be sure to unpack the kernel and copy the BOOTCLASSPATH data from the portable ROM to the BROM at init.rc.

After all the performed actions, the firmware will be in the base ROM, and you can supplement it at your discretion. As you can see, the whole process takes a little time and does not require any special knowledge. Therefore, you can easily cope with porting the firmware yourself.

Qualcomm Smartphone Software Update Tool- a flasher for Android devices (smartphones and tablets) that have a Qualcomm processor under the hood. Multi-port, by the way, supports up to 16 devices with simultaneous firmware. Thus, you can reflash up to sixteen, for example, smartphones at once! And the process of flashing each of them takes about four minutes. The instructions with all the details are posted in the archive, or you can read a little more below. Also in the archive you will find the necessary drivers for the quilcom.


  • Genre: flashing
  • Platform: Windows


  • name_firmware_file.bin (maybe 7z) - archive with firmware

  • Qualcomm Smartphone Software Update Tool - flasher

  • Uniscope_Qualcomm driver_V1.0.1.zip - Qualcomm drivers

  • Flashing_Procedure_Instructions for flashing.pdf - instructions for flashing (all logins, passwords from the flasher are in this manual)


Turn off the phone, if before that you had it turned on and hold down the Volume + and Volume buttons - hold the power button until the phone turns on. We connect the phone to the PC with a cable and open the device manager.


If you did it right, in the device manager you will see the QHSUSB__BULK device with the following VID and PID: USB \ VID_05C6 & PID_9008 & REV_0000


Click on it with the right mouse button and select the item "Update drivers ...", then select the search for drivers on this computer and specify the Uniscope_Qualcomm driver_V1.0.1 folder as the path to the drivers, which we got when unpacking the archive:



Launch Qualcomm Smartphone Multi-Port Software Upgrade Tool. In the dialog that appears, click on Exclamation point so that the username Operator will change to Administrator and enter the password ustest, then click Ok.


In the program window, press the Load Soft Folder button and select the folder with the MMX_Q415_SW_V2.8_HW_V0.2__V25112015B1661_LCS4.bin firmware from the archive we unpacked. Next, in any of the windows, select the COM port on which we have the phone in Download Mode (in my case, this is COM3) and press the Start button. This is what the Qualcomm Smartphone Multi-Port Software Upgrade Tool window looks like before clicking Start:


The firmware process has gone


A successful sign of its completion is the appearance of the inscription Download finish! in the status window:


The phone after the completion of the firmware should reboot automatically, but not a fact

Problems