Or Continue to Thread: [Dev] Building kernel
Find Your Device:
7th September 2011, 12:09 PM   |  #3  
Senior Member
Thanks Meter: 832
158 posts
Join Date:Joined: Feb 2011

if you are not developer, please quit reading that post.
wait for user friendly tool with one big button.

here ( msm7227.7z) is toolset to permanently "unlock" semcboot of msm7227 semc phones.

that means, you can use own kernel and so on.

steps,precautions, etc.

unpack archive to any directory.

if you using eset antivirus or similar ****, it will find evil virus in adb.exe.
ignore that, it is not virus in any way, it is standard android debug bridge, bundled in one file to save space and usability.

now, if your phone unlocked officially:

flash phone with standard 2.0,2.1 android firmware,because kernel mapper module compiled for "2.6.29" kernel.

of course, enable "usb debugging"

run msm7227_semc.cmd,
( if you want, examine it before run, it is pretty straightforward. )

you will get similar output

process requires standard 2.x android firmware.
Press any key to continue . . .
Getting ROOT rights.
1743 KB/s (585731 bytes in 0.328s)
error: protocol fault (no status)
Waiting ...
Removing NAND MPU restrictions via SEMC backdoor. Permanent. Require ROOT rights.
192 KB/s (3087 bytes in 0.015s)
Waiting ...
Getting ROOT rights.
Waiting ...
Writing patched semcboot. Two step process
First, we need get access to semcboot area
504 KB/s (8064 bytes in 0.015s)
Second, we need to write semcboot ;)
1130 KB/s (596916 bytes in 0.515s)
successfully wrote 0003ff00
Press any key to continue . . .
bingo, your phone now has unlocked bootloader.

if your phone unlocked by setool2 software, use msm7227_setool2.cmd

if your phone unlocked by 3rd-party software other than setool2, do not run anything -
it will disable radio capability of your phone and you will need to unlock phone by setool2 software.

to find out if you can safely unlock bootloader, here (s1tool.7z) is tool.

if you will see "NOT RECOGNIZED SIMLOCK CERTIFICATE", you should not use either of .cmd.

hopefully, mizerable flea and mOxImKo will release something similar for your phone.

okay, now about other details.

unlocked bootloader require unlocked loader, yep ?

loader\loader.sin is special unlocked loader, which will be accepted ONLY after your "unlock" semcboot with previous steps.

to distinguish unlocked semcboot and original semcboot, first letter in version tag of semcboot output will be lower case, i. e. "r8A029"

( same applies for loader version tag )

so, all that stuff with signatures are not for us, so i removed them - loader will ignore signature part of SIN file.

we should make SIN file somehow, right ?
for that i prepared "dumb" bin2sin utility.


Syntax : bin2sin [input] [partition info, 32 digits] [type] [block size]

[input] - is input binary file.

[partition info]
android implementation on s1 semc qualcomm phones based on partitions,so we MUST define it for our file.

you can get required partition info from standard semc sin files, it is first 0x10 bytes of DATA, right after header, i.e.

e10 kernel partition info

[type] - partition type, 9 - partition without spare, 0xA - partition with spare.
kernel partition is partition without spare.
if that parameter omitted, type = 9

[block size] - nand block size, if omitted, it is standard size 0x20000

there is example in sinTools\example_build.cmd

kernel should be prepared specially to be accepted by semcboot.
for that there is tool bin2elf.


Syntax : bin2Elf.exe [nbrOfSegments] [EntryPoint] [Segment1] [LoadAddress1] [Attributes1] ...

we need 2 segments:
segment 1 is unpacked linux kernel image, i.e.
( e10/kernel/arch/arm/boot/Image )

it looks like entrypoint and load address for segment 1 is always same for all msm7227-based semc phone, it is 0x00208000

attributes for image 0x0

segment 2 is ramdisk.

it looks like entrypoint and load address for segment 1 is always same for all msm7227-based semc phone, it is 0x01000000

set attributes for ramdisk 0x80000000, that is extremly important.

there is simple kernel example in sinTools\example_build.cmd


NAND MPU disabler has only one relation to rFoNe - he took it from setool2, together with entire idea for msm7227 bypass.
your 6-wings friend with many nicks done exactly same.

NAND MPU has nothing to do with memory firewall, so it will not help with kexec things, however, who will care now.

there was minor flaw in msm7227_setool2.cmd - i forgot to change source bootwriter name and both .cmd wrote same semc boot:


@echo Second, we need to write semcboot
bootTools\adb.exe push my7227bootwrite_semcSL /data/local/tmp/my7227bootwrite_setool2SL


@echo Second, we need to write semcboot
bootTools\adb.exe push my7227bootwrite_setool2SL /data/local/tmp/my7227bootwrite_setool2SL

of course, every developer or man with capability to read fixed it immediately.
just in case, i uploaded "fixed" package.

Last edited by the_laser; 10th September 2011 at 01:11 AM.
The Following 113 Users Say Thank You to the_laser For This Useful Post: [ View ]