http://droid-developers.org/api.php?action=feedcontributions&user=Ixc&feedformat=atomMILEDROPEDIA - User contributions [en]2024-03-29T11:28:01ZUser contributionsMediaWiki 1.23.2http://droid-developers.org/wiki/Open_recoveryOpen recovery2010-08-25T07:34:25Z<p>Ixc: TOC moved to right</p>
<hr />
<div>{| align="right"<br />
| __TOC__<br />
|}<br />
Developed by Skrilax_CZ.<br><br />
Credit for mankind (from alldroid) for the CustomUpdate, on which this recovery is based,<br><br />
credit for poseidon (also from alldroid) for ADBRecovery,<br><br />
credit for koush for mtd-utils and nandroid (uses script based on it),<br><br />
credit for nadlabak for keyboard layout change script.<br><br />
Current version 1.37 [08/23/2010]<br />
<br />
====Features====<br />
- on-phone console (limited) - MILESTONE ONLY!<br><br />
- rooting the phone from menu (using ChainsDD su and SuperUser.apk (version 2.2.2))<br><br />
- nandroid backup/restore from menu<br><br />
- apply update *.zip files from menu (located in OpenRecovery/updates under the sdcard root folder, there is a sample one (just unpacks a file named "babble" to /system), no signatures are needed :)<br><br />
- wipe data (factory reset)<br><br />
- wipe cache<br><br />
- wipe dalvik-cache<br><br />
- adb in recovery, using bash shell<br><br />
- run a script<br><br />
- recovery options for applications<br><br />
<br />
The open recovery files are located under the OpenRecovery folder under the root of the sd card. The own update *.zip files are under the "updates" folder, sample one is included. The scripts must have *.sh extension and reside under the "scripts" folder. The recovery contains an update.zip with payload, which doesn't do anything else than restarts to the open recovery. All the files for OpenRecovery are under the OpenRecovery folder under the root of the sdcard. The payload installs busybox to /sbin runs the "switch.sh" under the bin folder in open recovery. The initial menu file is in OpenRecovery/menu/init.menu under sdcard root.<br />
<br />
====Download & Installation (MILESTONE)====<br />
1) You need to have the vulnerable recovery installed.<br><br />
2) Download the archive and unpack it to the root folder of the sdcard.<br><br />
<br />
====Usage (MILESTONE)====<br />
1) Reboot into recovery (hold 'X' button on bootloader 90.78, on others hold camera button; until you see triangle; then press camera + volume up)<br><br />
2) Apply the update.zip<br><br />
3) You are now in Open Recovery<br><br />
<br />
====Download & Installation (XT701)====<br />
1) Download the archive and unpack it.<br><br />
2) Either flash the sbf file using RSD Lite (preffered, recommended version 4.6+), or flash using the flash_image the *.img file to recovery partition.<br><br />
3) Unpack the "OpenRecovery" folder and "OpenRecovery.zip" to the root folder of the sdcard.<br><br />
<br />
====Usage (XT701)====<br />
1) Reboot into recovery (hold camera button; until you see triangle; then press camera + volume up)<br><br />
2) If no error occurs, you're now in Open Recovery. If error occurs you're in Open Recovery Lite.<br><br />
<br />
==Notes==<br />
<br />
====Console (MILESTONE ONLY)====<br />
- MENU key is CTRL, pressing MENU + ALT + C forcibly quits the console<br><br />
- scrolling (pressing volume keys by a row (or eight rows if ALT is pressed))<br><br />
- don't forget to select correct keyboard layout (under settings menu)<br><br />
- search key is tab<br><br />
- Alt+A prints "|" instead of Euro, Alt+F prints "$" instead of Pound<br><br />
- limited support for escape characters but allowing to use "clear" and "ls" coloured<br><br />
<br />
====Changing a theme====<br />
On /sdcard/OpenRecovery, the current theme is in "res" subfolder. The other two included are under "res.stock" or "res.squirtle". To change to another theme, let's say stock theme, rename the current "res" folder to "res.or" and "res.stock" to "res".<br><br />
<br />
====OR update.zip format====<br />
- the update.zip is extracted to "/sdcard/OpenRecovery/tmp/update"<br><br />
- shell script, located in the archive in "META-INF/update-or.sh" is called; under env. variable PACKAGE is the root folder of the extraction: "/sdcard/OpenRecovery/tmp/update"<br><br />
- the script can do the very same as script called from the menu (can call imenu)<br><br />
- progress bar is not supported in this format<br><br />
<br />
====ui.prop file====<br />
This file sets the colors for the theme. It's located right under the "res" folder.<br><br />
color3.LED=#100 <- led diode color (3-bit RGB, use only 0 or 1)<br><br />
color32.background=#000000A0 <- recovery background color<br><br />
color32.menu=#FF3705FF <- recovery menu color<br><br />
color32.selection=#FFFFFFFF <- recovery selected item color<br><br />
color32.script=#FFFF00FF <- recovery script color<br><br />
<br><br />
color24.console.header=#FFFF00 <- console header color<br><br />
color24.console.background=#000000 <- console background color<br><br />
color24.console.front=#E5E5E5 <- console foreground color<br><br />
<br><br />
(The example values are used by default when the property is not found.)<br><br />
<br />
====Lite vs. Full version (XT701 ONLY)====<br />
- The recovery image contains Lite version, with minimal options (moreless only difference from stock recovery is the GUI and applying update.zip doesn't need any signatures.)<br><br />
- When booting into recovery, the Lite version is started. It will automatically switch to full version by applying the OpenRecovery.zip).<br><br />
<br />
==Changelog==<br />
<br />
====Version 1.37====<br />
Bugfixes<br><br />
- fixed nandroid restore not properly restoring yaffs2 partitions in old format<br><br />
- fixed nandroid restore not restoring compressed backups<br><br />
- fixed nandroid backup not taking md5 checksums<br><br />
<br><br />
Changes<br><br />
- console buffers up to 1000 lats printed lines (extended from 200)<br><br />
<br />
====Version 1.36====<br />
Bugfixes<br><br />
- fixed nandroid when doing "Backup All" and not having apps2sd; which would fail complaining that /sddata could not be mounted<br><br />
(Ticking all partitions in the menu and selecting "Backup Selected" was working properly and the backup has been done correctly.)<br><br />
- fixed console cursor blinking<br><br />
- squirtle theme fixed<br><br />
<br />
====Version 1.35====<br />
Features<br><br />
- update.zip can be in new OR format using a shell script (described lower, there are samples of each one)<br><br />
- console has now signalling implemented (menu key = CTRL)<br><br />
- console has arrow keys implemented<br><br />
- console has support for displaying front colors; thus it is no longer needed to disable bash colors<br><br />
- console supports calling clear<br><br />
<br><br />
Changes<br><br />
- recovery binary will exit if not run by init (to prevent running it from adb or console)<br><br />
- scripts in scripts folder are dos2unixed (on -FuFu- advice)<br><br />
- switch files (.nobashcolors, .kdb_qwertz, etc.) are now located in /etc<br><br />
- manual settings of the timezone (/etc/timezone), applied if the env. variable TZ doesn't exist<br><br />
- update.zip no longer need to have the "update-binary", a default one is used if not found<br><br />
<br><br />
Bugfixes<br><br />
- fixed unyaffs not restoring sticky bit / suid / sgid<br><br />
- fixed displaying long menus (it will not be truncated, instead a scrollbar appears)<br><br />
- fixed error in switch.sh for XT701<br><br />
- fixed color24.console.front in the themes -> default is supposed to be #E5E5E5<br><br />
<br />
====Version 1.32====<br />
Features<br><br />
- pressing MENU + ALT + C forcibly quits the console<br><br />
<br><br />
Changes<br><br />
- ui.prop contains more options<br><br />
- when applying any update.zip package, there is a confirmation menu<br><br />
- cursor in console blinks<br><br />
<br><br />
Bugfixes<br><br />
- Error message when ext2 partition on sdcard doesn't exist fixed<br><br />
- fixed the bug with imenu when ran more than once in one script<br><br />
<br />
====Version 1.30a====<br />
Bugfixes<br><br />
- Console layout for QWERTZ / AZERTY fixed<br><br />
<br />
====Version 1.30====<br />
Features<br><br />
- on-phone console<br><br />
- keyboard layout changer included<br><br />
- new nandroid, with support of backing up and restoring ext2 partition on sdcard (Note: uses new format of the backup, new backups are located in /sdcard/nandroid/openrecovery, there is a backwards compatibility to restore the old backups)<br><br />
- ability to create compressed backups (and autoreboot when done)<br><br />
- better nandroid menu<br><br />
- menus wrap around<br><br />
- theming for the recovery (3 themes included, to apply just rename the "res.*" folder to "res"); color settings can be manipulated in the ui.prop file under the res folder)<br><br />
- new commands for menu (tag, label, break)<br><br />
- scripts (command "shell") are able to show menu interactively when requesting user feedback (sample included)<br><br />
<br />
====Version 1.14====<br />
Changes<br><br />
- UI<br><br />
- switch.sh is separated (menu creation is in init_recovery.sh and called later by the recovery)<br><br />
- Volume keys and Camera key can be used to navigate in Open Recovery<br><br />
<br />
====Version 1.12d====<br />
Bugfixes<br><br />
- wipe commands working properly<br><br />
<br><br />
Changes<br><br />
- Bash Settings menu, to enable/disable coloured output (preset to disabled), this is persistent settings, it will last through reboots<br><br />
<br><br />
Features<br><br />
- ability to wipe dalvik-cache only (via script)<br><br />
<br />
====Version 1.12c====<br />
Bugfixes<br><br />
- reboot command is working properly<br><br />
- the content of the sdcard is no longer changed when running, everything is being copied into the ramdisk<br><br />
- minor fixes<br><br />
<br><br />
Changes<br><br />
- removed the 'init' command, instead uses 'scripted_menu'<br><br />
- adbd uses bash (interactively) instead of sh<br><br />
- payload installs also bash and toolbox<br><br />
- different the menu system (deprecated 'init' command, used), each menu must be generated from a script (notes later)<br><br />
- added init folder, scripts (with extension *.sh) are ran there on startup of the open recovery.<br><br />
- the diode is blinking in blue instead of red.<br><br />
<br><br />
Features<br><br />
- the recovery prints the output of the scripts / programs (prints their stdout)<br><br />
- application menu (described later)<br><br />
- new su and SuperUser.apk by ChainsDD<br><br />
- if sdcard has ext2 partition, it is noted in fstab under "/sddata" (the module is inserted automatically)<br><br />
<br />
====Version 1.05====<br />
Bugfixes<br><br />
- fixed a bug in payload making it dependant on the system<br><br />
- there is now nothing in the /system folder when unmounted<br><br />
- toolbox linked statically<br><br />
- busybox now installs symlinks, instead of copying itself<br><br />
- fixed a bug in adb about the shell being in /sbin/sh instead of /system/bin/sh<br><br />
- cleaned up, removed unecessary libraries and binaries<br><br />
- switch.sh now initializes the Open Recovery completely, no other script is used for initialization<br><br />
- permissions set correctly<br><br />
<br><br />
Features<br><br />
- added option to wipe<br><br />
- menu's now have header (the menu file structure has been changed)<br><br />
- added the possibility to run scripts, with .*sh extension located in scripts folder under OpenRecovery folder (shell is /sbin/sh or /sbin/bash)<br><br />
<br />
====Version 1.02====<br />
- fixed root install<br />
<br />
====Version 1.01====<br />
- initial release<br />
<br />
==Developer Notes==<br />
<br />
The recovery contains an update.zip with payload, which doesn't do anything else than restarts to the open recovery. All the files for OpenRecovery are under the OpenRecovery folder under the root of the sdcard. The payload installs busybox to /sbin runs the "switch.sh" under the bin folder in open recovery.<br />
<br />
====Menu System====<br />
<br />
The menu for the Open Recovery is created dynamically. The files must be created inside "/menu" folder by scripts, which can either be specified (if the menu is scripted_menu) or created by a *.sh script in /sdcard/OpenRecovery/init where the scripts are executed at startup. A menu creating script has to create a *.menu file inside the /menu folder. If the menu is supposed to be created on startup and not modified, place the script into /init folder, otherwise use "scripted_menu" item, where the script is ran right before the menu is created. sdcard, system and data partitions are mounted when the scripts are ran. A typical example for "scripted_menu" item is under the tutorial for application menu. For application menu see lower section. The structure of the menu file is different from the CustomUpdate by mankind:<br />
First line is the menu name (normal string), then use the following structure:<br><br />
"item name:type:argument"<br><br />
- item name is what is seen in the menu<br><br />
- type: type of the command (described later)<br><br />
- argument: argument passed to the command (file, or anything else; if empty, put "*" there, otherwise the item will be discarded)<br><br />
<br />
====Commands====<br />
<br />
- reboot: reboots the phone<br><br />
- shell: calls a file specified in arguments (default path is to /bin, if not specified)<br><br />
- menu: opens another menu file (specified in argument), if the argument is "..", it returns to up one level meu<br><br />
- scripted_menu: argument is in format "menu file:menu script", the menu script is called with variable MENU_FILE containing the menu name (default path for the script is to /bin, if not specified)<br><br />
- update: applies an update *.zip file, specified in argument (format SDCARD:$path_to_the_file_in_sdcard)<br><br />
- tag: if ticked, file "tags/.[I]argument[/I]" is created<br><br />
- break: unselectable item, argument is ignored (use "*") and creates a menu item like "---- name ----"; using "*" as name will create just "--------------"<br><br />
- label: unselectable item, argument is ignored (use "*") and creates normal menu item "name "<br><br />
- wipe_data: factory reset<br><br />
- wipe_cahce: wipe cache<br><br />
<br><br />
The menu is refreshed (the script is called if the menu is scripted) on a menu change, applying an update or running a script. Whenever a script is ran, system, data and sdcard is mounted.<br><br />
<br />
====Application menu====<br />
<br />
Application menu is designed for anything that is run on the startup and can malfunction under any circumstances. Here is one example - suppose you have a mount on font in the startup. You'll have something like this in your startup script:<br />
<pre><br />
mount -o bind /system/myfonts/segoeui.ttf /system/fonts/DroidSans.ttf<br />
mount -o bind /system/myfonts/segoeuib.ttf /system/fonts/DroidSans-Bold.ttf<br />
</pre><br />
<br />
Well the idea is that you add a condition to the script, to run only under some circumstances, like:<br />
<br />
<pre><br />
if [ ! -f /system/switch/.nocustomfont ]; then<br />
mount -o bind /system/myfonts/segoeui.ttf /system/fonts/DroidSans.ttf<br />
mount -o bind /system/myfonts/segoeuib.ttf /system/fonts/DroidSans-Bold.ttf<br />
fi<br />
</pre><br />
<br />
which mounts the font only when /system/switch/.nocustomfont is not existing. If you want this controlable from the recovery, you register in into the application menu this way: all *.sh scripts in /app (where /sdcard/OpenRecovery/app is copied) are called at startup. They are passed variable "APP_MENU_FILE", which is the name of the used menu file (preinitalized). The script will look like this:<br />
<br />
<pre><br />
#!/sbin/sh<br />
<br />
#create the menu item<br />
echo "Custom Font:scripted_menu:custfont.menu:/app/custfont/menu.sh" >> "$APP_MENU_FILE"<br />
</pre><br />
<br />
Since the scripts are in /app and not /bin, use absolute path. This will add an item to the applications menu, now we need a menu when it is selected, which is the "/app/custfont/menu.sh":<br />
<br />
<pre><br />
#!/sbin/sh<br />
<br />
if [ -f /system/switch/.nocustomfont ]; then<br />
# menu name - custom font is disabled<br />
echo "Custom Font (Disabled)" > "$MENU_FILE"<br />
# go to upper level menu<br />
echo "Go Back:menu:.." >> "$MENU_FILE"<br />
# enable it<br />
echo "Enable:shell:/app/custfont/enable.sh" >> "$MENU_FILE"<br />
else<br />
# menu name - custom font is enabled<br />
echo "Custom Font (Enabled)" > "$MENU_FILE"<br />
# go to upper level menu<br />
echo "Go Back:menu:.." >> "$MENU_FILE"<br />
# disable it<br />
echo "Disable:shell:/app/custfont/disable.sh" >> "$MENU_FILE"<br />
fi<br />
</pre><br />
Notice the shells are in /sbin, so use /sbin/sh (or /sbin/bash). The script checks if the switch is on or off and generates the menu accordingly. Since the menu is refreshed each time the script is run, it will always submit the correct option. The "enable.sh" simply touches the file and "disable.sh" just deletes it.<br />
<br />
==Download==<br />
Binaries: [[http://rapidshare.com/files/414530880/OpenRecovery_v1_37_SHOLS.rar.html Open Recovery 1.37 for Milestone]], [[http://rapidshare.com/files/414925211/OpenRecovery_v1_37_STCU.rar.html Open Recovery 1.37 for Sholes Tablet]]<br><br />
Source: [[http://rapidshare.com/files/414696074/OpenRecovery_v1_37_src.tar.gz.html Open Recovery 1.37 source]]<br><br />
<br />
==Support forum==<br />
[[http://www.modmymobile.com/forums/showthread.php?t=531599 ModMyMobile]]</div>Ixchttp://droid-developers.org/wiki/SBFSBF2010-08-23T15:11:06Z<p>Ixc: TOC posited to right</p>
<hr />
<div>{| align="right"<br />
| __TOC__<br />
|}<br />
== SBF ==<br />
<br />
SBF seems to stand for Single Binary File, containing the firmware image. None of the SBFs contain a subsidy lock and flashing a SBF will not unlock the phone. These files could be flashed into the milestone via [[rsd_lite|RSD Lite]] Interface. The updates of this page can be seen above the download page links.<br />
<br />
The device should be put into [[bootloader_mode|Bootloader Mode]] and then attached via USB to the PC. After the PC recognizes the phone, you could use [[rsd_lite]] for flashing the SBF to your Milestone.<br />
<br />
== SBF-Recalc ==<br />
The latest SBF-Recalc (1.2.9.1) is available for windows here ((see http://modmymoto.com/forums/showthread.php?t=525344 for the original post by its author and for Linux/OS X versions)): http://www.megaupload.com/?d=Y8RDIZGA<br />
<br />
Previous version 1.2.9 for windows and OS X: http://www.megaupload.com/?d=7J9EOZT0<br />
<br />
Previous version 1.2.9 for Linux ((According to the developer you need libstdc++5 for the linux version)): http://www.megaupload.com/?d=03M0GM36<br />
<br />
'''Note:''' Everything works except checksums recalculating. RSD Lite prints the correct ones in its log though, so the SBF file can be edited by hand to use those CRC codes if really needed (by tryout & error).<br />
<br />
== SBF / MBN Depacker ==<br />
The latest version (1.2 ALPHA 3) is availabe for .NET 3.5 here ((see http://www.modmymoto.com/forums/showthread.php?t=530781 for post by author)): http://rapidshare.com/files/386624716/MotoAndroidDepacker-1.2alpha3.rar.html<br />
<br />
Supports repacking for the Milestone SBF, including the checksum recalculation.<br />
<br />
== Comments ==<br />
<br />
Flashing the "Service" version will not wipe userdata partition. Looking on the flex version (ro.gsm.flexversion): B1B8 is for WCDMA 900 / 2100 and B1B2B5 is for WCDMA 850 / 1900 / 2100, some firmwares doesn't have that string in the flex version, so it cannot be determined from that (All Latin American firmwares and Retail Thai are WCDMA 850 / 1900 / 2100).<br />
<br />
Flashing an SBF file from a different country could cause problems with cellular communications. For example, some people have applied the HK SBF in Europe and in Latin America and their phones stopped working with 3G (due to different frequencies, presumably).<br />
<br />
Here's an attempt to parse the firmware filename structure with an informal shell/re syntax:<br />
<pre><br />
${ro.build.id}_${ro.gsm.flexversion}_${ro.build.config.version#3}_${ro.build.config.version#4}_A[0-9][0-9][0-9]_HWp2a_{Service|}1FF.sbf<br />
</pre><br />
<br />
== RSD web service ==<br />
<br />
Officially distributed builds are exposed by a public web service at ''https://rsd.motorola.com/cs/servlets/SRPConsumerServlet'' used by Motorola's end-user update tool. Motorola's internal service tool use a similar service at ''https://rsd.motorola.com/cs/servlets/SRPServlet'', but it appears to be restricted to authorized sessions.<br />
<pre><br />
<code xml Request><br />
<?xml version="1.0" encoding="UTF-8" standalone="no"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><br />
<srpmessage><br />
<srpoperation><br />
<fungrp></fungrp><br />
<opcode></opcode><br />
<parameterlist><br />
<parameter><name></name></value></parameter><br />
</parameterlist><br />
</srpoperation><br />
</srpmessage><br />
</soap-env:Body><br />
</soap-env:Envelope><br />
</code><br />
</pre><br />
<br />
===Known functions===<br />
<br />
{| border="1" cellpadding="5" cellspacing="0"<br />
!style="background: #DEE7EC;"| Function<br />
!style="background: #DEE7EC;"| fungrp<br />
!style="background: #DEE7EC;"| opcode<br />
!style="background: #DEE7EC;"| Parameter name<br />
!style="background: #DEE7EC;"| Parameter value<br />
|-<br />
| MSU version check<br />
| 02<br />
| 01<br />
| consumerclientversion<br />
| Version string, e.g. ''C01.11.79''<br />
|-<br />
|rowspan="2" colspan="3"|<br />
| Use_case_set<br />
| ''Inapplicable''<br />
|-<br />
| countrycode<br />
| Three-letter code<br />
|-<br />
| USB driver version check<br />
| 02<br />
| 05<br />
| hardware<br />
| 00<br />
|-<br />
|rowspan="2" colspan="3"|<br />
| OS<br />
| Four-digit MS Windows version, e.g. ''0601'' for Win7<br />
|-<br />
| driverversion<br />
| Version string, e.g. ''DD04.05.00''<br />
|-<br />
| Warranty status<br />
| 07<br />
| 13<br />
| serialnumbertype<br />
| IMEI<br />
|-<br />
|colspan="3"|<br />
| serialnumber<br />
| IMEI string<br />
|-<br />
| Firmware version check<br />
| 10<br />
| 01<br />
| flex<br />
| ro.gsm.flexversion<br />
|-<br />
|rowspan="13" colspan="3"|<br />
| firmware<br />
| ro.build.id+gsm.version.baseband<br />
|-<br />
| apversion<br />
| ro.build.id+gsm.version.baseband<br />
|-<br />
| apsetup<br />
| ''Inapplicable''<br />
|-<br />
| apresourceflex<br />
| ''Inapplicable''<br />
|-<br />
| aplogo<br />
| ''Inapplicable''<br />
|-<br />
| apsecuresetup<br />
| ''Inapplicable''<br />
|-<br />
| rofs<br />
| ''Inapplicable''<br />
|-<br />
| rofsextension<br />
| ''Inapplicable''<br />
|-<br />
| apflex<br />
| ro.build.config.version<br />
|-<br />
| bootloader<br />
| Four-digit version, eg. ''9073''<br />
|-<br />
| lang<br />
| ''Inapplicable''<br />
|-<br />
| kjava<br />
| ''Inapplicable''<br />
|-<br />
| pri<br />
| ''Inapplicable''<br />
|}<br />
<br />
The only parameter required for firmware version checks is ''flex''. The service will only respond successfully if the query is unambiguous and matched phone model is cleared for user upgrades. (see ''Known return codes'')<br />
<br />
===Known return codes===<br />
<br />
{| border="1" cellpadding="5" cellspacing="0"<br />
!style="background: #DEE7EC;"| fungrp<br />
!style="background: #DEE7EC;"| opcode<br />
!style="background: #DEE7EC;"| operation status<br />
!style="background: #DEE7EC;"| Returned message<br />
!style="background: #DEE7EC;"| Comment<br />
|-<br />
| 06<br />
| 50<br />
| 00<br />
| success<br />
| Update URL to .sbf included in return xml scheme<br />
|-<br />
| 06<br />
| 50<br />
| 01<br />
| Cannot ID the phone as the flex is blank.<br />
|<br />
|-<br />
| 06<br />
| 50<br />
| 02<br />
| No Phone found with the given phone parameters<br />
|<br />
|-<br />
| 06<br />
| 50<br />
| 03<br />
| Multiples phones found with the same configuration.<br />
| This needs to be investigated, since the rsd servers reply this for some phones. For example for a brazilian Milestone with flex version ''USASHLSRETBRLA02C.0R'' (Vivo). Trying to fetch .sbf files from the servers for the DroidX shows the same results. (Note - for NA queries, you must always supply firmware version along the flex, otherwise you get the ''Multiples phones found with the same configuration.'' as result, even if the flex version is invalid (like just ''NA'').)<br />
|}<br />
<br />
===Example queries===<br />
<br />
'''GB Retail (SM1658AXXB1)'''<br />
$ curl -H 'Content-Type: text/xml' -d '<?xml version="1.0" encoding="UTF-8"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><srpmessage><srpoperation><fungrp>10</fungrp><opcode>01</opcode><parameterlist><br />
<parameter><name>flex</name><value>UCASHLSEMEAB1B803F.0R</value></parameter><br />
<parameter><name>apflex</name><value>GAS_EMEA_USASHLS00RTGB_P008</value></parameter><br />
</parameterlist></srpoperation></srpmessage></soap-env:Body></soap-env:Envelope>' \<br />
https://rsd.motorola.com/cs/servlets/SRPConsumerServlet<br />
<br />
'''CA Telus (81130CHEPA)'''<br />
$ curl -H 'Content-Type: text/xml' -d '<?xml version="1.0" encoding="UTF-8"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><srpmessage><srpoperation><fungrp>10</fungrp><opcode>01</opcode><parameterlist><br />
<parameter><name>flex</name><value>USASHLSTLSB1B2B5051.0R</value></parameter><br />
</parameterlist></srpoperation></srpmessage></soap-env:Body></soap-env:Envelope>' \<br />
https://rsd.motorola.com/cs/servlets/SRPConsumerServlet<br />
<br />
==OTA updates==<br />
<br />
Just downloaded on phone in /cache/fota/update.zip<br />
and have this structure:<br />
<br />
* CERT.RSA<br />
* CERT.SF<br />
* MANIFEST.MF<br />
* __binary_firmware_file__<br />
* boot.img<br />
* bp.img<br />
* mbm.img<br />
* cdt.bin<br />
* lbl.bin<br />
* logo.bin<br />
* install-recovery.sh<br />
* recovery-from-boot.p<br />
* updater-script<br />
* mtd.cfg<br />
<br />
CERT.SF - contain sha1 digest of all files in update.zip<br />
<br />
CERT.RSA - certificate ASN1.DER ( parsed struct http://pastebin.ca/1849789 ). It parsed by command "openssl asn1parse -inform DER -in CERT.RSA"<br />
<br />
If any files unneeded in update - update.zip does not include this file.<br />
This is a sample OTA update package(SHOLS_U2_01.03.1_to_SHOLS_U2_01.14.0_REQ563): [[http://www.xvilka.org/update.zip update.zip]]<br />
== Retail SBF Files ==<br />
<br />
=== Updates ===<br />
<br />
03/08/2010: Added Milestone XT720 firmware for South-East Asia (STR_U2_01.18.2)<br />
28/07/2010: Added Blur_Version.0.18.4.ME511.ChinaRetail.en.CN and bootloader for ME511<br />
24/07/2010: Added STR_U2_01.18.2 (Singapore) for XT720<br />
23/07/2010: Added SHOLS_U2_02.38.0 (Italy)<br />
21/07/2010: Added SHOLS_U2_02.36.0 (DACH, O2 DE, VF DE)<br />
16/07/2010: Added XT800 firmwares and Droid X bootloaders<br />
11/07/2010: Added Thai 02.36.0 firmware<br />
10/07/2010: Added bootloader 90.78ch and new XT702 firmware<br />
05/07/2010: Added SHOLS_U2_02.36.0 (Starhub SG)<br />
01/07/2010: Added SHOLS_U2_02.36.0 (Central Europe, Southeast Asia)<br />
21/06/2010: Added SHOLS_U2_02.27.6 (Israel)<br />
09/06/2010: Corrected - XT701 firmwares are Taiwan.<br />
09/06/2010: Corrected - XT701 firmwares are not signed.<br />
06/06/2010: Added XT701 new 2.1 Taiwan firmware and bootloader 80.99<br />
31/05/2010: Added XT701 new 2.1 firmware and bootloader 80.98<br />
26/05/2010: Added SHOLS_U2_02.34.3 (Hong Kong / Maccau); SHLA_U2_03.05.0 (TIM Brasil, Service Version only)<br />
26/05/2010: Initial creation.<br />
<br />
=== Downloads ===<br />
* [http://and-developers.com/sbf milestone Milestone (A853, XT702)]<br />
* [http://and-developers.com/sbf droid Droid (A855)]<br />
* [http://and-developers.com/sbf xt701 Sholes Tablet (XT701)]<br />
* [http://and-developers.com/sbf xt720 Motoroi / Milestone XT720 (XT720)]<br />
* [http://and-developers.com/sbf xt800 Titanium (XT800)]<br />
* [http://and-developers.com/sbf droidx Droid X (MB810)]<br />
* [http://and-developers.com/sbf ruth Ruth (ME511)]<br />
<br />
== Custom SBF Files ==<br />
<br />
=== Vulnerable Recovery SBF Flash ===<br />
<br />
This SBF file will flash only the vulnerable recovery from 2.0.1 without modifying other partitions.<br />
* Download (Milestone): [http://www.mediafire.com/?jzzjmmrvwkz MediaFire]<br />
* Download (XT800): [http://droid-developers.org/files/uploads//XT800-vulnerable-recovery.rar Droid-Developers]<br />
<br />
=== 2.1 kernel fix of scheduled CPU wake-ups ===<br />
<br />
This SBF file will flash only the boot.img (kernel+init) from SHOLS_U2_03.10.0: [http://www.mediafire.com/?mlyneqhk1zl mediafire], [http://rapidshare.com/files/378277372/2.1-03.10.0-kernel-only.rar.html rapidshare]</div>Ixchttp://droid-developers.org/wiki/SBFSBF2010-08-23T15:06:20Z<p>Ixc: reformat</p>
<hr />
<div>== SBF ==<br />
<br />
SBF seems to stand for Single Binary File, containing the firmware image. None of the SBFs contain a subsidy lock and flashing a SBF will not unlock the phone. These files could be flashed into the milestone via [[rsd_lite|RSD Lite]] Interface. The updates of this page can be seen above the download page links.<br />
<br />
The device should be put into [[bootloader_mode|Bootloader Mode]] and then attached via USB to the PC. After the PC recognizes the phone, you could use [[rsd_lite]] for flashing the SBF to your Milestone.<br />
<br />
== SBF-Recalc ==<br />
The latest SBF-Recalc (1.2.9.1) is available for windows here ((see http://modmymoto.com/forums/showthread.php?t=525344 for the original post by its author and for Linux/OS X versions)): http://www.megaupload.com/?d=Y8RDIZGA<br />
<br />
Previous version 1.2.9 for windows and OS X: http://www.megaupload.com/?d=7J9EOZT0<br />
<br />
Previous version 1.2.9 for Linux ((According to the developer you need libstdc++5 for the linux version)): http://www.megaupload.com/?d=03M0GM36<br />
<br />
'''Note:''' Everything works except checksums recalculating. RSD Lite prints the correct ones in its log though, so the SBF file can be edited by hand to use those CRC codes if really needed (by tryout & error).<br />
<br />
== SBF / MBN Depacker ==<br />
The latest version (1.2 ALPHA 3) is availabe for .NET 3.5 here ((see http://www.modmymoto.com/forums/showthread.php?t=530781 for post by author)): http://rapidshare.com/files/386624716/MotoAndroidDepacker-1.2alpha3.rar.html<br />
<br />
Supports repacking for the Milestone SBF, including the checksum recalculation.<br />
<br />
== Comments ==<br />
<br />
Flashing the "Service" version will not wipe userdata partition. Looking on the flex version (ro.gsm.flexversion): B1B8 is for WCDMA 900 / 2100 and B1B2B5 is for WCDMA 850 / 1900 / 2100, some firmwares doesn't have that string in the flex version, so it cannot be determined from that (All Latin American firmwares and Retail Thai are WCDMA 850 / 1900 / 2100).<br />
<br />
Flashing an SBF file from a different country could cause problems with cellular communications. For example, some people have applied the HK SBF in Europe and in Latin America and their phones stopped working with 3G (due to different frequencies, presumably).<br />
<br />
Here's an attempt to parse the firmware filename structure with an informal shell/re syntax:<br />
<pre><br />
${ro.build.id}_${ro.gsm.flexversion}_${ro.build.config.version#3}_${ro.build.config.version#4}_A[0-9][0-9][0-9]_HWp2a_{Service|}1FF.sbf<br />
</pre><br />
<br />
== RSD web service ==<br />
<br />
Officially distributed builds are exposed by a public web service at ''https://rsd.motorola.com/cs/servlets/SRPConsumerServlet'' used by Motorola's end-user update tool. Motorola's internal service tool use a similar service at ''https://rsd.motorola.com/cs/servlets/SRPServlet'', but it appears to be restricted to authorized sessions.<br />
<pre><br />
<code xml Request><br />
<?xml version="1.0" encoding="UTF-8" standalone="no"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><br />
<srpmessage><br />
<srpoperation><br />
<fungrp></fungrp><br />
<opcode></opcode><br />
<parameterlist><br />
<parameter><name></name></value></parameter><br />
</parameterlist><br />
</srpoperation><br />
</srpmessage><br />
</soap-env:Body><br />
</soap-env:Envelope><br />
</code><br />
</pre><br />
<br />
===Known functions===<br />
<br />
{| border="1" cellpadding="5" cellspacing="0"<br />
!style="background: #DEE7EC;"| Function<br />
!style="background: #DEE7EC;"| fungrp<br />
!style="background: #DEE7EC;"| opcode<br />
!style="background: #DEE7EC;"| Parameter name<br />
!style="background: #DEE7EC;"| Parameter value<br />
|-<br />
| MSU version check<br />
| 02<br />
| 01<br />
| consumerclientversion<br />
| Version string, e.g. ''C01.11.79''<br />
|-<br />
|rowspan="2" colspan="3"|<br />
| Use_case_set<br />
| ''Inapplicable''<br />
|-<br />
| countrycode<br />
| Three-letter code<br />
|-<br />
| USB driver version check<br />
| 02<br />
| 05<br />
| hardware<br />
| 00<br />
|-<br />
|rowspan="2" colspan="3"|<br />
| OS<br />
| Four-digit MS Windows version, e.g. ''0601'' for Win7<br />
|-<br />
| driverversion<br />
| Version string, e.g. ''DD04.05.00''<br />
|-<br />
| Warranty status<br />
| 07<br />
| 13<br />
| serialnumbertype<br />
| IMEI<br />
|-<br />
|colspan="3"|<br />
| serialnumber<br />
| IMEI string<br />
|-<br />
| Firmware version check<br />
| 10<br />
| 01<br />
| flex<br />
| ro.gsm.flexversion<br />
|-<br />
|rowspan="13" colspan="3"|<br />
| firmware<br />
| ro.build.id+gsm.version.baseband<br />
|-<br />
| apversion<br />
| ro.build.id+gsm.version.baseband<br />
|-<br />
| apsetup<br />
| ''Inapplicable''<br />
|-<br />
| apresourceflex<br />
| ''Inapplicable''<br />
|-<br />
| aplogo<br />
| ''Inapplicable''<br />
|-<br />
| apsecuresetup<br />
| ''Inapplicable''<br />
|-<br />
| rofs<br />
| ''Inapplicable''<br />
|-<br />
| rofsextension<br />
| ''Inapplicable''<br />
|-<br />
| apflex<br />
| ro.build.config.version<br />
|-<br />
| bootloader<br />
| Four-digit version, eg. ''9073''<br />
|-<br />
| lang<br />
| ''Inapplicable''<br />
|-<br />
| kjava<br />
| ''Inapplicable''<br />
|-<br />
| pri<br />
| ''Inapplicable''<br />
|}<br />
<br />
The only parameter required for firmware version checks is ''flex''. The service will only respond successfully if the query is unambiguous and matched phone model is cleared for user upgrades. (see ''Known return codes'')<br />
<br />
===Known return codes===<br />
<br />
{| border="1" cellpadding="5" cellspacing="0"<br />
!style="background: #DEE7EC;"| fungrp<br />
!style="background: #DEE7EC;"| opcode<br />
!style="background: #DEE7EC;"| operation status<br />
!style="background: #DEE7EC;"| Returned message<br />
!style="background: #DEE7EC;"| Comment<br />
|-<br />
| 06<br />
| 50<br />
| 00<br />
| success<br />
| Update URL to .sbf included in return xml scheme<br />
|-<br />
| 06<br />
| 50<br />
| 01<br />
| Cannot ID the phone as the flex is blank.<br />
|<br />
|-<br />
| 06<br />
| 50<br />
| 02<br />
| No Phone found with the given phone parameters<br />
|<br />
|-<br />
| 06<br />
| 50<br />
| 03<br />
| Multiples phones found with the same configuration.<br />
| This needs to be investigated, since the rsd servers reply this for some phones. For example for a brazilian Milestone with flex version ''USASHLSRETBRLA02C.0R'' (Vivo). Trying to fetch .sbf files from the servers for the DroidX shows the same results. (Note - for NA queries, you must always supply firmware version along the flex, otherwise you get the ''Multiples phones found with the same configuration.'' as result, even if the flex version is invalid (like just ''NA'').)<br />
|}<br />
<br />
===Example queries===<br />
<br />
'''GB Retail (SM1658AXXB1)'''<br />
$ curl -H 'Content-Type: text/xml' -d '<?xml version="1.0" encoding="UTF-8"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><srpmessage><srpoperation><fungrp>10</fungrp><opcode>01</opcode><parameterlist><br />
<parameter><name>flex</name><value>UCASHLSEMEAB1B803F.0R</value></parameter><br />
<parameter><name>apflex</name><value>GAS_EMEA_USASHLS00RTGB_P008</value></parameter><br />
</parameterlist></srpoperation></srpmessage></soap-env:Body></soap-env:Envelope>' \<br />
https://rsd.motorola.com/cs/servlets/SRPConsumerServlet<br />
<br />
'''CA Telus (81130CHEPA)'''<br />
$ curl -H 'Content-Type: text/xml' -d '<?xml version="1.0" encoding="UTF-8"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><srpmessage><srpoperation><fungrp>10</fungrp><opcode>01</opcode><parameterlist><br />
<parameter><name>flex</name><value>USASHLSTLSB1B2B5051.0R</value></parameter><br />
</parameterlist></srpoperation></srpmessage></soap-env:Body></soap-env:Envelope>' \<br />
https://rsd.motorola.com/cs/servlets/SRPConsumerServlet<br />
<br />
==OTA updates==<br />
<br />
Just downloaded on phone in /cache/fota/update.zip<br />
and have this structure:<br />
<br />
* CERT.RSA<br />
* CERT.SF<br />
* MANIFEST.MF<br />
* __binary_firmware_file__<br />
* boot.img<br />
* bp.img<br />
* mbm.img<br />
* cdt.bin<br />
* lbl.bin<br />
* logo.bin<br />
* install-recovery.sh<br />
* recovery-from-boot.p<br />
* updater-script<br />
* mtd.cfg<br />
<br />
CERT.SF - contain sha1 digest of all files in update.zip<br />
<br />
CERT.RSA - certificate ASN1.DER ( parsed struct http://pastebin.ca/1849789 ). It parsed by command "openssl asn1parse -inform DER -in CERT.RSA"<br />
<br />
If any files unneeded in update - update.zip does not include this file.<br />
This is a sample OTA update package(SHOLS_U2_01.03.1_to_SHOLS_U2_01.14.0_REQ563): [[http://www.xvilka.org/update.zip update.zip]]<br />
== Retail SBF Files ==<br />
<br />
=== Updates ===<br />
<br />
03/08/2010: Added Milestone XT720 firmware for South-East Asia (STR_U2_01.18.2)<br />
28/07/2010: Added Blur_Version.0.18.4.ME511.ChinaRetail.en.CN and bootloader for ME511<br />
24/07/2010: Added STR_U2_01.18.2 (Singapore) for XT720<br />
23/07/2010: Added SHOLS_U2_02.38.0 (Italy)<br />
21/07/2010: Added SHOLS_U2_02.36.0 (DACH, O2 DE, VF DE)<br />
16/07/2010: Added XT800 firmwares and Droid X bootloaders<br />
11/07/2010: Added Thai 02.36.0 firmware<br />
10/07/2010: Added bootloader 90.78ch and new XT702 firmware<br />
05/07/2010: Added SHOLS_U2_02.36.0 (Starhub SG)<br />
01/07/2010: Added SHOLS_U2_02.36.0 (Central Europe, Southeast Asia)<br />
21/06/2010: Added SHOLS_U2_02.27.6 (Israel)<br />
09/06/2010: Corrected - XT701 firmwares are Taiwan.<br />
09/06/2010: Corrected - XT701 firmwares are not signed.<br />
06/06/2010: Added XT701 new 2.1 Taiwan firmware and bootloader 80.99<br />
31/05/2010: Added XT701 new 2.1 firmware and bootloader 80.98<br />
26/05/2010: Added SHOLS_U2_02.34.3 (Hong Kong / Maccau); SHLA_U2_03.05.0 (TIM Brasil, Service Version only)<br />
26/05/2010: Initial creation.<br />
<br />
=== Downloads ===<br />
* [http://and-developers.com/sbf milestone Milestone (A853, XT702)]<br />
* [http://and-developers.com/sbf droid Droid (A855)]<br />
* [http://and-developers.com/sbf xt701 Sholes Tablet (XT701)]<br />
* [http://and-developers.com/sbf xt720 Motoroi / Milestone XT720 (XT720)]<br />
* [http://and-developers.com/sbf xt800 Titanium (XT800)]<br />
* [http://and-developers.com/sbf droidx Droid X (MB810)]<br />
* [http://and-developers.com/sbf ruth Ruth (ME511)]<br />
<br />
== Custom SBF Files ==<br />
<br />
=== Vulnerable Recovery SBF Flash ===<br />
<br />
This SBF file will flash only the vulnerable recovery from 2.0.1 without modifying other partitions.<br />
* Download (Milestone): [http://www.mediafire.com/?jzzjmmrvwkz MediaFire]<br />
* Download (XT800): [http://droid-developers.org/files/uploads//XT800-vulnerable-recovery.rar Droid-Developers]<br />
<br />
=== 2.1 kernel fix of scheduled CPU wake-ups ===<br />
<br />
This SBF file will flash only the boot.img (kernel+init) from SHOLS_U2_03.10.0: [http://www.mediafire.com/?mlyneqhk1zl mediafire], [http://rapidshare.com/files/378277372/2.1-03.10.0-kernel-only.rar.html rapidshare]</div>Ixchttp://droid-developers.org/wiki/SBFSBF2010-08-23T14:58:44Z<p>Ixc: example queries reformated</p>
<hr />
<div>===== SBF =====<br />
<br />
SBF seems to stand for Single Binary File, containing the firmware image. None of the SBFs contain a subsidy lock and flashing a SBF will not unlock the phone. These files could be flashed into the milestone via [[rsd_lite|RSD Lite]] Interface. The updates of this page can be seen above the download page links.<br />
<br />
The device should be put into [[bootloader_mode|Bootloader Mode]] and then attached via USB to the PC. After the PC recognizes the phone, you could use [[rsd_lite]] for flashing the SBF to your Milestone.<br />
<br />
===== SBF-Recalc =====<br />
The latest SBF-Recalc (1.2.9.1) is available for windows here ((see http://modmymoto.com/forums/showthread.php?t=525344 for the original post by its author and for Linux/OS X versions)): http://www.megaupload.com/?d=Y8RDIZGA<br />
<br />
Previous version 1.2.9 for windows and OS X: http://www.megaupload.com/?d=7J9EOZT0<br />
<br />
Previous version 1.2.9 for Linux ((According to the developer you need libstdc++5 for the linux version)): http://www.megaupload.com/?d=03M0GM36<br />
<br />
'''Note:''' Everything works except checksums recalculating. RSD Lite prints the correct ones in its log though, so the SBF file can be edited by hand to use those CRC codes if really needed (by tryout & error).<br />
<br />
===== SBF / MBN Depacker =====<br />
The latest version (1.2 ALPHA 3) is availabe for .NET 3.5 here ((see http://www.modmymoto.com/forums/showthread.php?t=530781 for post by author)): http://rapidshare.com/files/386624716/MotoAndroidDepacker-1.2alpha3.rar.html<br />
<br />
Supports repacking for the Milestone SBF, including the checksum recalculation.<br />
<br />
===== Comments =====<br />
<br />
Flashing the "Service" version will not wipe userdata partition. Looking on the flex version (ro.gsm.flexversion): B1B8 is for WCDMA 900 / 2100 and B1B2B5 is for WCDMA 850 / 1900 / 2100, some firmwares doesn't have that string in the flex version, so it cannot be determined from that (All Latin American firmwares and Retail Thai are WCDMA 850 / 1900 / 2100).<br />
<br />
Flashing an SBF file from a different country could cause problems with cellular communications. For example, some people have applied the HK SBF in Europe and in Latin America and their phones stopped working with 3G (due to different frequencies, presumably).<br />
<br />
Here's an attempt to parse the firmware filename structure with an informal shell/re syntax:<br />
<pre><br />
${ro.build.id}_${ro.gsm.flexversion}_${ro.build.config.version#3}_${ro.build.config.version#4}_A[0-9][0-9][0-9]_HWp2a_{Service|}1FF.sbf<br />
</pre><br />
<br />
===== RSD web service =====<br />
<br />
Officially distributed builds are exposed by a public web service at ''https://rsd.motorola.com/cs/servlets/SRPConsumerServlet'' used by Motorola's end-user update tool. Motorola's internal service tool use a similar service at ''https://rsd.motorola.com/cs/servlets/SRPServlet'', but it appears to be restricted to authorized sessions.<br />
<pre><br />
<code xml Request><br />
<?xml version="1.0" encoding="UTF-8" standalone="no"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><br />
<srpmessage><br />
<srpoperation><br />
<fungrp></fungrp><br />
<opcode></opcode><br />
<parameterlist><br />
<parameter><name></name></value></parameter><br />
</parameterlist><br />
</srpoperation><br />
</srpmessage><br />
</soap-env:Body><br />
</soap-env:Envelope><br />
</code><br />
</pre><br />
<br />
===Known functions===<br />
<br />
{| border="1" cellpadding="5" cellspacing="0"<br />
!style="background: #DEE7EC;"| Function<br />
!style="background: #DEE7EC;"| fungrp<br />
!style="background: #DEE7EC;"| opcode<br />
!style="background: #DEE7EC;"| Parameter name<br />
!style="background: #DEE7EC;"| Parameter value<br />
|-<br />
| MSU version check<br />
| 02<br />
| 01<br />
| consumerclientversion<br />
| Version string, e.g. ''C01.11.79''<br />
|-<br />
|rowspan="2" colspan="3"|<br />
| Use_case_set<br />
| ''Inapplicable''<br />
|-<br />
| countrycode<br />
| Three-letter code<br />
|-<br />
| USB driver version check<br />
| 02<br />
| 05<br />
| hardware<br />
| 00<br />
|-<br />
|rowspan="2" colspan="3"|<br />
| OS<br />
| Four-digit MS Windows version, e.g. ''0601'' for Win7<br />
|-<br />
| driverversion<br />
| Version string, e.g. ''DD04.05.00''<br />
|-<br />
| Warranty status<br />
| 07<br />
| 13<br />
| serialnumbertype<br />
| IMEI<br />
|-<br />
|colspan="3"|<br />
| serialnumber<br />
| IMEI string<br />
|-<br />
| Firmware version check<br />
| 10<br />
| 01<br />
| flex<br />
| ro.gsm.flexversion<br />
|-<br />
|rowspan="13" colspan="3"|<br />
| firmware<br />
| ro.build.id+gsm.version.baseband<br />
|-<br />
| apversion<br />
| ro.build.id+gsm.version.baseband<br />
|-<br />
| apsetup<br />
| ''Inapplicable''<br />
|-<br />
| apresourceflex<br />
| ''Inapplicable''<br />
|-<br />
| aplogo<br />
| ''Inapplicable''<br />
|-<br />
| apsecuresetup<br />
| ''Inapplicable''<br />
|-<br />
| rofs<br />
| ''Inapplicable''<br />
|-<br />
| rofsextension<br />
| ''Inapplicable''<br />
|-<br />
| apflex<br />
| ro.build.config.version<br />
|-<br />
| bootloader<br />
| Four-digit version, eg. ''9073''<br />
|-<br />
| lang<br />
| ''Inapplicable''<br />
|-<br />
| kjava<br />
| ''Inapplicable''<br />
|-<br />
| pri<br />
| ''Inapplicable''<br />
|}<br />
<br />
The only parameter required for firmware version checks is ''flex''. The service will only respond successfully if the query is unambiguous and matched phone model is cleared for user upgrades. (see ''Known return codes'')<br />
<br />
===Known return codes===<br />
<br />
{| border="1" cellpadding="5" cellspacing="0"<br />
!style="background: #DEE7EC;"| fungrp<br />
!style="background: #DEE7EC;"| opcode<br />
!style="background: #DEE7EC;"| operation status<br />
!style="background: #DEE7EC;"| Returned message<br />
!style="background: #DEE7EC;"| Comment<br />
|-<br />
| 06<br />
| 50<br />
| 00<br />
| success<br />
| Update URL to .sbf included in return xml scheme<br />
|-<br />
| 06<br />
| 50<br />
| 01<br />
| Cannot ID the phone as the flex is blank.<br />
|<br />
|-<br />
| 06<br />
| 50<br />
| 02<br />
| No Phone found with the given phone parameters<br />
|<br />
|-<br />
| 06<br />
| 50<br />
| 03<br />
| Multiples phones found with the same configuration.<br />
| This needs to be investigated, since the rsd servers reply this for some phones. For example for a brazilian Milestone with flex version ''USASHLSRETBRLA02C.0R'' (Vivo). Trying to fetch .sbf files from the servers for the DroidX shows the same results. (Note - for NA queries, you must always supply firmware version along the flex, otherwise you get the ''Multiples phones found with the same configuration.'' as result, even if the flex version is invalid (like just ''NA'').)<br />
|}<br />
<br />
=== Example queries ===<br />
<br />
'''GB Retail (SM1658AXXB1)'''<br />
$ curl -H 'Content-Type: text/xml' -d '<?xml version="1.0" encoding="UTF-8"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><srpmessage><srpoperation><fungrp>10</fungrp><opcode>01</opcode><parameterlist><br />
<parameter><name>flex</name><value>UCASHLSEMEAB1B803F.0R</value></parameter><br />
<parameter><name>apflex</name><value>GAS_EMEA_USASHLS00RTGB_P008</value></parameter><br />
</parameterlist></srpoperation></srpmessage></soap-env:Body></soap-env:Envelope>' \<br />
https://rsd.motorola.com/cs/servlets/SRPConsumerServlet<br />
<br />
'''CA Telus (81130CHEPA)'''<br />
$ curl -H 'Content-Type: text/xml' -d '<?xml version="1.0" encoding="UTF-8"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><srpmessage><srpoperation><fungrp>10</fungrp><opcode>01</opcode><parameterlist><br />
<parameter><name>flex</name><value>USASHLSTLSB1B2B5051.0R</value></parameter><br />
</parameterlist></srpoperation></srpmessage></soap-env:Body></soap-env:Envelope>' \<br />
https://rsd.motorola.com/cs/servlets/SRPConsumerServlet<br />
<br />
===== OTA updates =====<br />
<br />
Just downloaded on phone in /cache/fota/update.zip<br />
and have this structure:<br />
<br />
* CERT.RSA<br />
* CERT.SF<br />
* MANIFEST.MF<br />
* __binary_firmware_file__<br />
* boot.img<br />
* bp.img<br />
* mbm.img<br />
* cdt.bin<br />
* lbl.bin<br />
* logo.bin<br />
* install-recovery.sh<br />
* recovery-from-boot.p<br />
* updater-script<br />
* mtd.cfg<br />
<br />
CERT.SF - contain sha1 digest of all files in update.zip<br />
<br />
CERT.RSA - certificate ASN1.DER ( parsed struct http://pastebin.ca/1849789 ). It parsed by command "openssl asn1parse -inform DER -in CERT.RSA"<br />
<br />
If any files unneeded in update - update.zip does not include this file.<br />
This is a sample OTA update package(SHOLS_U2_01.03.1_to_SHOLS_U2_01.14.0_REQ563): [[http://www.xvilka.org/update.zip update.zip]]<br />
===== Retail SBF Files =====<br />
==== Updates ====<br />
<br />
03/08/2010: Added Milestone XT720 firmware for South-East Asia (STR_U2_01.18.2)<br />
28/07/2010: Added Blur_Version.0.18.4.ME511.ChinaRetail.en.CN and bootloader for ME511<br />
24/07/2010: Added STR_U2_01.18.2 (Singapore) for XT720<br />
23/07/2010: Added SHOLS_U2_02.38.0 (Italy)<br />
21/07/2010: Added SHOLS_U2_02.36.0 (DACH, O2 DE, VF DE)<br />
16/07/2010: Added XT800 firmwares and Droid X bootloaders<br />
11/07/2010: Added Thai 02.36.0 firmware<br />
10/07/2010: Added bootloader 90.78ch and new XT702 firmware<br />
05/07/2010: Added SHOLS_U2_02.36.0 (Starhub SG)<br />
01/07/2010: Added SHOLS_U2_02.36.0 (Central Europe, Southeast Asia)<br />
21/06/2010: Added SHOLS_U2_02.27.6 (Israel)<br />
09/06/2010: Corrected - XT701 firmwares are Taiwan.<br />
09/06/2010: Corrected - XT701 firmwares are not signed.<br />
06/06/2010: Added XT701 new 2.1 Taiwan firmware and bootloader 80.99<br />
31/05/2010: Added XT701 new 2.1 firmware and bootloader 80.98<br />
26/05/2010: Added SHOLS_U2_02.34.3 (Hong Kong / Maccau); SHLA_U2_03.05.0 (TIM Brasil, Service Version only)<br />
26/05/2010: Initial creation.<br />
<br />
==== Downloads ====<br />
* [http://and-developers.com/sbf milestone Milestone (A853, XT702)]<br />
* [http://and-developers.com/sbf droid Droid (A855)]<br />
* [http://and-developers.com/sbf xt701 Sholes Tablet (XT701)]<br />
* [http://and-developers.com/sbf xt720 Motoroi / Milestone XT720 (XT720)]<br />
* [http://and-developers.com/sbf xt800 Titanium (XT800)]<br />
* [http://and-developers.com/sbf droidx Droid X (MB810)]<br />
* [http://and-developers.com/sbf ruth Ruth (ME511)]<br />
<br />
===== Custom SBF Files =====<br />
<br />
==== Vulnerable Recovery SBF Flash ====<br />
<br />
This SBF file will flash only the vulnerable recovery from 2.0.1 without modifying other partitions.<br />
* Download (Milestone): [http://www.mediafire.com/?jzzjmmrvwkz MediaFire]<br />
* Download (XT800): [http://droid-developers.org/files/uploads//XT800-vulnerable-recovery.rar Droid-Developers]<br />
<br />
==== 2.1 kernel fix of scheduled CPU wake-ups ====<br />
<br />
This SBF file will flash only the boot.img (kernel+init) from SHOLS_U2_03.10.0: [http://www.mediafire.com/?mlyneqhk1zl mediafire], [http://rapidshare.com/files/378277372/2.1-03.10.0-kernel-only.rar.html rapidshare]<br />
<br />
~~DISCUSSION|SBF Firmwares~~</div>Ixchttp://droid-developers.org/wiki/SBFSBF2010-08-23T14:51:40Z<p>Ixc: /* Known return codes */</p>
<hr />
<div>===== SBF =====<br />
<br />
SBF seems to stand for Single Binary File, containing the firmware image. None of the SBFs contain a subsidy lock and flashing a SBF will not unlock the phone. These files could be flashed into the milestone via [[rsd_lite|RSD Lite]] Interface. The updates of this page can be seen above the download page links.<br />
<br />
The device should be put into [[bootloader_mode|Bootloader Mode]] and then attached via USB to the PC. After the PC recognizes the phone, you could use [[rsd_lite]] for flashing the SBF to your Milestone.<br />
<br />
===== SBF-Recalc =====<br />
The latest SBF-Recalc (1.2.9.1) is available for windows here ((see http://modmymoto.com/forums/showthread.php?t=525344 for the original post by its author and for Linux/OS X versions)): http://www.megaupload.com/?d=Y8RDIZGA<br />
<br />
Previous version 1.2.9 for windows and OS X: http://www.megaupload.com/?d=7J9EOZT0<br />
<br />
Previous version 1.2.9 for Linux ((According to the developer you need libstdc++5 for the linux version)): http://www.megaupload.com/?d=03M0GM36<br />
<br />
'''Note:''' Everything works except checksums recalculating. RSD Lite prints the correct ones in its log though, so the SBF file can be edited by hand to use those CRC codes if really needed (by tryout & error).<br />
<br />
===== SBF / MBN Depacker =====<br />
The latest version (1.2 ALPHA 3) is availabe for .NET 3.5 here ((see http://www.modmymoto.com/forums/showthread.php?t=530781 for post by author)): http://rapidshare.com/files/386624716/MotoAndroidDepacker-1.2alpha3.rar.html<br />
<br />
Supports repacking for the Milestone SBF, including the checksum recalculation.<br />
<br />
===== Comments =====<br />
<br />
Flashing the "Service" version will not wipe userdata partition. Looking on the flex version (ro.gsm.flexversion): B1B8 is for WCDMA 900 / 2100 and B1B2B5 is for WCDMA 850 / 1900 / 2100, some firmwares doesn't have that string in the flex version, so it cannot be determined from that (All Latin American firmwares and Retail Thai are WCDMA 850 / 1900 / 2100).<br />
<br />
Flashing an SBF file from a different country could cause problems with cellular communications. For example, some people have applied the HK SBF in Europe and in Latin America and their phones stopped working with 3G (due to different frequencies, presumably).<br />
<br />
Here's an attempt to parse the firmware filename structure with an informal shell/re syntax:<br />
<pre><br />
${ro.build.id}_${ro.gsm.flexversion}_${ro.build.config.version#3}_${ro.build.config.version#4}_A[0-9][0-9][0-9]_HWp2a_{Service|}1FF.sbf<br />
</pre><br />
<br />
===== RSD web service =====<br />
<br />
Officially distributed builds are exposed by a public web service at ''https://rsd.motorola.com/cs/servlets/SRPConsumerServlet'' used by Motorola's end-user update tool. Motorola's internal service tool use a similar service at ''https://rsd.motorola.com/cs/servlets/SRPServlet'', but it appears to be restricted to authorized sessions.<br />
<pre><br />
<code xml Request><br />
<?xml version="1.0" encoding="UTF-8" standalone="no"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><br />
<srpmessage><br />
<srpoperation><br />
<fungrp></fungrp><br />
<opcode></opcode><br />
<parameterlist><br />
<parameter><name></name></value></parameter><br />
</parameterlist><br />
</srpoperation><br />
</srpmessage><br />
</soap-env:Body><br />
</soap-env:Envelope><br />
</code><br />
</pre><br />
<br />
===Known functions===<br />
<br />
{| border="1" cellpadding="5" cellspacing="0"<br />
!style="background: #DEE7EC;"| Function<br />
!style="background: #DEE7EC;"| fungrp<br />
!style="background: #DEE7EC;"| opcode<br />
!style="background: #DEE7EC;"| Parameter name<br />
!style="background: #DEE7EC;"| Parameter value<br />
|-<br />
| MSU version check<br />
| 02<br />
| 01<br />
| consumerclientversion<br />
| Version string, e.g. ''C01.11.79''<br />
|-<br />
|rowspan="2" colspan="3"|<br />
| Use_case_set<br />
| ''Inapplicable''<br />
|-<br />
| countrycode<br />
| Three-letter code<br />
|-<br />
| USB driver version check<br />
| 02<br />
| 05<br />
| hardware<br />
| 00<br />
|-<br />
|rowspan="2" colspan="3"|<br />
| OS<br />
| Four-digit MS Windows version, e.g. ''0601'' for Win7<br />
|-<br />
| driverversion<br />
| Version string, e.g. ''DD04.05.00''<br />
|-<br />
| Warranty status<br />
| 07<br />
| 13<br />
| serialnumbertype<br />
| IMEI<br />
|-<br />
|colspan="3"|<br />
| serialnumber<br />
| IMEI string<br />
|-<br />
| Firmware version check<br />
| 10<br />
| 01<br />
| flex<br />
| ro.gsm.flexversion<br />
|-<br />
|rowspan="13" colspan="3"|<br />
| firmware<br />
| ro.build.id+gsm.version.baseband<br />
|-<br />
| apversion<br />
| ro.build.id+gsm.version.baseband<br />
|-<br />
| apsetup<br />
| ''Inapplicable''<br />
|-<br />
| apresourceflex<br />
| ''Inapplicable''<br />
|-<br />
| aplogo<br />
| ''Inapplicable''<br />
|-<br />
| apsecuresetup<br />
| ''Inapplicable''<br />
|-<br />
| rofs<br />
| ''Inapplicable''<br />
|-<br />
| rofsextension<br />
| ''Inapplicable''<br />
|-<br />
| apflex<br />
| ro.build.config.version<br />
|-<br />
| bootloader<br />
| Four-digit version, eg. ''9073''<br />
|-<br />
| lang<br />
| ''Inapplicable''<br />
|-<br />
| kjava<br />
| ''Inapplicable''<br />
|-<br />
| pri<br />
| ''Inapplicable''<br />
|}<br />
<br />
The only parameter required for firmware version checks is ''flex''. The service will only respond successfully if the query is unambiguous and matched phone model is cleared for user upgrades. (see ''Known return codes'')<br />
<br />
===Known return codes===<br />
<br />
{| border="1" cellpadding="5" cellspacing="0"<br />
!style="background: #DEE7EC;"| fungrp<br />
!style="background: #DEE7EC;"| opcode<br />
!style="background: #DEE7EC;"| operation status<br />
!style="background: #DEE7EC;"| Returned message<br />
!style="background: #DEE7EC;"| Comment<br />
|-<br />
| 06<br />
| 50<br />
| 00<br />
| success<br />
| Update URL to .sbf included in return xml scheme<br />
|-<br />
| 06<br />
| 50<br />
| 01<br />
| Cannot ID the phone as the flex is blank.<br />
|<br />
|-<br />
| 06<br />
| 50<br />
| 02<br />
| No Phone found with the given phone parameters<br />
|<br />
|-<br />
| 06<br />
| 50<br />
| 03<br />
| Multiples phones found with the same configuration.<br />
| This needs to be investigated, since the rsd servers reply this for some phones. For example for a brazilian Milestone with flex version ''USASHLSRETBRLA02C.0R'' (Vivo). Trying to fetch .sbf files from the servers for the DroidX shows the same results. (Note - for NA queries, you must always supply firmware version along the flex, otherwise you get the ''Multiples phones found with the same configuration.'' as result, even if the flex version is invalid (like just ''NA'').)<br />
|}<br />
<br />
=== Example queries ===<br />
<br />
**GB Retail (SM1658AXXB1)**<br />
<code><br />
$ curl -H 'Content-Type: text/xml' -d '<?xml version="1.0" encoding="UTF-8"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><srpmessage><srpoperation><fungrp>10</fungrp><opcode>01</opcode><parameterlist><br />
<parameter><name>flex</name><value>UCASHLSEMEAB1B803F.0R</value></parameter><br />
<parameter><name>apflex</name><value>GAS_EMEA_USASHLS00RTGB_P008</value></parameter><br />
</parameterlist></srpoperation></srpmessage></soap-env:Body></soap-env:Envelope>' \<br />
https://rsd.motorola.com/cs/servlets/SRPConsumerServlet<br />
</code><br />
<br />
**CA Telus (81130CHEPA)**<br />
<code><br />
$ curl -H 'Content-Type: text/xml' -d '<?xml version="1.0" encoding="UTF-8"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><srpmessage><srpoperation><fungrp>10</fungrp><opcode>01</opcode><parameterlist><br />
<parameter><name>flex</name><value>USASHLSTLSB1B2B5051.0R</value></parameter><br />
</parameterlist></srpoperation></srpmessage></soap-env:Body></soap-env:Envelope>' \<br />
https://rsd.motorola.com/cs/servlets/SRPConsumerServlet<br />
</code><br />
<br />
<br />
===== OTA updates =====<br />
<br />
Just downloaded on phone in /cache/fota/update.zip<br />
and have this structure:<br />
<br />
* CERT.RSA<br />
* CERT.SF<br />
* MANIFEST.MF<br />
* __binary_firmware_file__<br />
* boot.img<br />
* bp.img<br />
* mbm.img<br />
* cdt.bin<br />
* lbl.bin<br />
* logo.bin<br />
* install-recovery.sh<br />
* recovery-from-boot.p<br />
* updater-script<br />
* mtd.cfg<br />
<br />
CERT.SF - contain sha1 digest of all files in update.zip<br />
<br />
CERT.RSA - certificate ASN1.DER ( parsed struct http://pastebin.ca/1849789 ). It parsed by command "openssl asn1parse -inform DER -in CERT.RSA"<br />
<br />
If any files unneeded in update - update.zip does not include this file.<br />
This is a sample OTA update package(SHOLS_U2_01.03.1_to_SHOLS_U2_01.14.0_REQ563): [[http://www.xvilka.org/update.zip update.zip]]<br />
===== Retail SBF Files =====<br />
==== Updates ====<br />
<br />
03/08/2010: Added Milestone XT720 firmware for South-East Asia (STR_U2_01.18.2)<br />
28/07/2010: Added Blur_Version.0.18.4.ME511.ChinaRetail.en.CN and bootloader for ME511<br />
24/07/2010: Added STR_U2_01.18.2 (Singapore) for XT720<br />
23/07/2010: Added SHOLS_U2_02.38.0 (Italy)<br />
21/07/2010: Added SHOLS_U2_02.36.0 (DACH, O2 DE, VF DE)<br />
16/07/2010: Added XT800 firmwares and Droid X bootloaders<br />
11/07/2010: Added Thai 02.36.0 firmware<br />
10/07/2010: Added bootloader 90.78ch and new XT702 firmware<br />
05/07/2010: Added SHOLS_U2_02.36.0 (Starhub SG)<br />
01/07/2010: Added SHOLS_U2_02.36.0 (Central Europe, Southeast Asia)<br />
21/06/2010: Added SHOLS_U2_02.27.6 (Israel)<br />
09/06/2010: Corrected - XT701 firmwares are Taiwan.<br />
09/06/2010: Corrected - XT701 firmwares are not signed.<br />
06/06/2010: Added XT701 new 2.1 Taiwan firmware and bootloader 80.99<br />
31/05/2010: Added XT701 new 2.1 firmware and bootloader 80.98<br />
26/05/2010: Added SHOLS_U2_02.34.3 (Hong Kong / Maccau); SHLA_U2_03.05.0 (TIM Brasil, Service Version only)<br />
26/05/2010: Initial creation.<br />
<br />
==== Downloads ====<br />
<br />
* [[http://and-developers.com/sbf milestone Milestone (A853, XT702)]]<br />
* [[http://and-developers.com/sbf droid Droid (A855)]]<br />
* [[http://and-developers.com/sbf xt701 Sholes Tablet (XT701)]]<br />
* [[http://and-developers.com/sbf xt720 Motoroi / Milestone XT720 (XT720)]]<br />
* [[http://and-developers.com/sbf xt800 Titanium (XT800)]]<br />
* [[http://and-developers.com/sbf droidx Droid X (MB810)]]<br />
* [[http://and-developers.com/sbf ruth Ruth (ME511)]]<br />
<br />
===== Custom SBF Files =====<br />
<br />
==== Vulnerable Recovery SBF Flash ====<br />
<br />
This SBF file will flash only the vulnerable recovery from 2.0.1 without modifying other partitions. \\<br />
Download (Milestone): [[http://www.mediafire.com/?jzzjmmrvwkz MediaFire]]\\<br />
Download (XT800): [[http://droid-developers.org/files/uploads//XT800-vulnerable-recovery.rar Droid-Developers]]<br />
==== 2.1 kernel fix of scheduled CPU wake-ups ====<br />
This SBF file will flash only the boot.img (kernel+init) from SHOLS_U2_03.10.0: [[http://www.mediafire.com/?mlyneqhk1zl mediafire]], [[http://rapidshare.com/files/378277372/2.1-03.10.0-kernel-only.rar.html rapidshare]]<br />
~~DISCUSSION|SBF Firmwares~~</div>Ixchttp://droid-developers.org/wiki/SBFSBF2010-08-23T14:51:33Z<p>Ixc: /* Known functions */</p>
<hr />
<div>===== SBF =====<br />
<br />
SBF seems to stand for Single Binary File, containing the firmware image. None of the SBFs contain a subsidy lock and flashing a SBF will not unlock the phone. These files could be flashed into the milestone via [[rsd_lite|RSD Lite]] Interface. The updates of this page can be seen above the download page links.<br />
<br />
The device should be put into [[bootloader_mode|Bootloader Mode]] and then attached via USB to the PC. After the PC recognizes the phone, you could use [[rsd_lite]] for flashing the SBF to your Milestone.<br />
<br />
===== SBF-Recalc =====<br />
The latest SBF-Recalc (1.2.9.1) is available for windows here ((see http://modmymoto.com/forums/showthread.php?t=525344 for the original post by its author and for Linux/OS X versions)): http://www.megaupload.com/?d=Y8RDIZGA<br />
<br />
Previous version 1.2.9 for windows and OS X: http://www.megaupload.com/?d=7J9EOZT0<br />
<br />
Previous version 1.2.9 for Linux ((According to the developer you need libstdc++5 for the linux version)): http://www.megaupload.com/?d=03M0GM36<br />
<br />
'''Note:''' Everything works except checksums recalculating. RSD Lite prints the correct ones in its log though, so the SBF file can be edited by hand to use those CRC codes if really needed (by tryout & error).<br />
<br />
===== SBF / MBN Depacker =====<br />
The latest version (1.2 ALPHA 3) is availabe for .NET 3.5 here ((see http://www.modmymoto.com/forums/showthread.php?t=530781 for post by author)): http://rapidshare.com/files/386624716/MotoAndroidDepacker-1.2alpha3.rar.html<br />
<br />
Supports repacking for the Milestone SBF, including the checksum recalculation.<br />
<br />
===== Comments =====<br />
<br />
Flashing the "Service" version will not wipe userdata partition. Looking on the flex version (ro.gsm.flexversion): B1B8 is for WCDMA 900 / 2100 and B1B2B5 is for WCDMA 850 / 1900 / 2100, some firmwares doesn't have that string in the flex version, so it cannot be determined from that (All Latin American firmwares and Retail Thai are WCDMA 850 / 1900 / 2100).<br />
<br />
Flashing an SBF file from a different country could cause problems with cellular communications. For example, some people have applied the HK SBF in Europe and in Latin America and their phones stopped working with 3G (due to different frequencies, presumably).<br />
<br />
Here's an attempt to parse the firmware filename structure with an informal shell/re syntax:<br />
<pre><br />
${ro.build.id}_${ro.gsm.flexversion}_${ro.build.config.version#3}_${ro.build.config.version#4}_A[0-9][0-9][0-9]_HWp2a_{Service|}1FF.sbf<br />
</pre><br />
<br />
===== RSD web service =====<br />
<br />
Officially distributed builds are exposed by a public web service at ''https://rsd.motorola.com/cs/servlets/SRPConsumerServlet'' used by Motorola's end-user update tool. Motorola's internal service tool use a similar service at ''https://rsd.motorola.com/cs/servlets/SRPServlet'', but it appears to be restricted to authorized sessions.<br />
<pre><br />
<code xml Request><br />
<?xml version="1.0" encoding="UTF-8" standalone="no"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><br />
<srpmessage><br />
<srpoperation><br />
<fungrp></fungrp><br />
<opcode></opcode><br />
<parameterlist><br />
<parameter><name></name></value></parameter><br />
</parameterlist><br />
</srpoperation><br />
</srpmessage><br />
</soap-env:Body><br />
</soap-env:Envelope><br />
</code><br />
</pre><br />
<br />
===Known functions===<br />
<br />
{| border="1" cellpadding="5" cellspacing="0"<br />
!style="background: #DEE7EC;"| Function<br />
!style="background: #DEE7EC;"| fungrp<br />
!style="background: #DEE7EC;"| opcode<br />
!style="background: #DEE7EC;"| Parameter name<br />
!style="background: #DEE7EC;"| Parameter value<br />
|-<br />
| MSU version check<br />
| 02<br />
| 01<br />
| consumerclientversion<br />
| Version string, e.g. ''C01.11.79''<br />
|-<br />
|rowspan="2" colspan="3"|<br />
| Use_case_set<br />
| ''Inapplicable''<br />
|-<br />
| countrycode<br />
| Three-letter code<br />
|-<br />
| USB driver version check<br />
| 02<br />
| 05<br />
| hardware<br />
| 00<br />
|-<br />
|rowspan="2" colspan="3"|<br />
| OS<br />
| Four-digit MS Windows version, e.g. ''0601'' for Win7<br />
|-<br />
| driverversion<br />
| Version string, e.g. ''DD04.05.00''<br />
|-<br />
| Warranty status<br />
| 07<br />
| 13<br />
| serialnumbertype<br />
| IMEI<br />
|-<br />
|colspan="3"|<br />
| serialnumber<br />
| IMEI string<br />
|-<br />
| Firmware version check<br />
| 10<br />
| 01<br />
| flex<br />
| ro.gsm.flexversion<br />
|-<br />
|rowspan="13" colspan="3"|<br />
| firmware<br />
| ro.build.id+gsm.version.baseband<br />
|-<br />
| apversion<br />
| ro.build.id+gsm.version.baseband<br />
|-<br />
| apsetup<br />
| ''Inapplicable''<br />
|-<br />
| apresourceflex<br />
| ''Inapplicable''<br />
|-<br />
| aplogo<br />
| ''Inapplicable''<br />
|-<br />
| apsecuresetup<br />
| ''Inapplicable''<br />
|-<br />
| rofs<br />
| ''Inapplicable''<br />
|-<br />
| rofsextension<br />
| ''Inapplicable''<br />
|-<br />
| apflex<br />
| ro.build.config.version<br />
|-<br />
| bootloader<br />
| Four-digit version, eg. ''9073''<br />
|-<br />
| lang<br />
| ''Inapplicable''<br />
|-<br />
| kjava<br />
| ''Inapplicable''<br />
|-<br />
| pri<br />
| ''Inapplicable''<br />
|}<br />
<br />
The only parameter required for firmware version checks is ''flex''. The service will only respond successfully if the query is unambiguous and matched phone model is cleared for user upgrades. (see ''Known return codes'')<br />
<br />
===Known return codes===<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
!style="background: #DEE7EC;"| fungrp<br />
!style="background: #DEE7EC;"| opcode<br />
!style="background: #DEE7EC;"| operation status<br />
!style="background: #DEE7EC;"| Returned message<br />
!style="background: #DEE7EC;"| Comment<br />
|-<br />
| 06<br />
| 50<br />
| 00<br />
| success<br />
| Update URL to .sbf included in return xml scheme<br />
|-<br />
| 06<br />
| 50<br />
| 01<br />
| Cannot ID the phone as the flex is blank.<br />
|<br />
|-<br />
| 06<br />
| 50<br />
| 02<br />
| No Phone found with the given phone parameters<br />
|<br />
|-<br />
| 06<br />
| 50<br />
| 03<br />
| Multiples phones found with the same configuration.<br />
| This needs to be investigated, since the rsd servers reply this for some phones. For example for a brazilian Milestone with flex version ''USASHLSRETBRLA02C.0R'' (Vivo). Trying to fetch .sbf files from the servers for the DroidX shows the same results. (Note - for NA queries, you must always supply firmware version along the flex, otherwise you get the ''Multiples phones found with the same configuration.'' as result, even if the flex version is invalid (like just ''NA'').)<br />
|}<br />
<br />
=== Example queries ===<br />
<br />
**GB Retail (SM1658AXXB1)**<br />
<code><br />
$ curl -H 'Content-Type: text/xml' -d '<?xml version="1.0" encoding="UTF-8"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><srpmessage><srpoperation><fungrp>10</fungrp><opcode>01</opcode><parameterlist><br />
<parameter><name>flex</name><value>UCASHLSEMEAB1B803F.0R</value></parameter><br />
<parameter><name>apflex</name><value>GAS_EMEA_USASHLS00RTGB_P008</value></parameter><br />
</parameterlist></srpoperation></srpmessage></soap-env:Body></soap-env:Envelope>' \<br />
https://rsd.motorola.com/cs/servlets/SRPConsumerServlet<br />
</code><br />
<br />
**CA Telus (81130CHEPA)**<br />
<code><br />
$ curl -H 'Content-Type: text/xml' -d '<?xml version="1.0" encoding="UTF-8"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><srpmessage><srpoperation><fungrp>10</fungrp><opcode>01</opcode><parameterlist><br />
<parameter><name>flex</name><value>USASHLSTLSB1B2B5051.0R</value></parameter><br />
</parameterlist></srpoperation></srpmessage></soap-env:Body></soap-env:Envelope>' \<br />
https://rsd.motorola.com/cs/servlets/SRPConsumerServlet<br />
</code><br />
<br />
<br />
===== OTA updates =====<br />
<br />
Just downloaded on phone in /cache/fota/update.zip<br />
and have this structure:<br />
<br />
* CERT.RSA<br />
* CERT.SF<br />
* MANIFEST.MF<br />
* __binary_firmware_file__<br />
* boot.img<br />
* bp.img<br />
* mbm.img<br />
* cdt.bin<br />
* lbl.bin<br />
* logo.bin<br />
* install-recovery.sh<br />
* recovery-from-boot.p<br />
* updater-script<br />
* mtd.cfg<br />
<br />
CERT.SF - contain sha1 digest of all files in update.zip<br />
<br />
CERT.RSA - certificate ASN1.DER ( parsed struct http://pastebin.ca/1849789 ). It parsed by command "openssl asn1parse -inform DER -in CERT.RSA"<br />
<br />
If any files unneeded in update - update.zip does not include this file.<br />
This is a sample OTA update package(SHOLS_U2_01.03.1_to_SHOLS_U2_01.14.0_REQ563): [[http://www.xvilka.org/update.zip update.zip]]<br />
===== Retail SBF Files =====<br />
==== Updates ====<br />
<br />
03/08/2010: Added Milestone XT720 firmware for South-East Asia (STR_U2_01.18.2)<br />
28/07/2010: Added Blur_Version.0.18.4.ME511.ChinaRetail.en.CN and bootloader for ME511<br />
24/07/2010: Added STR_U2_01.18.2 (Singapore) for XT720<br />
23/07/2010: Added SHOLS_U2_02.38.0 (Italy)<br />
21/07/2010: Added SHOLS_U2_02.36.0 (DACH, O2 DE, VF DE)<br />
16/07/2010: Added XT800 firmwares and Droid X bootloaders<br />
11/07/2010: Added Thai 02.36.0 firmware<br />
10/07/2010: Added bootloader 90.78ch and new XT702 firmware<br />
05/07/2010: Added SHOLS_U2_02.36.0 (Starhub SG)<br />
01/07/2010: Added SHOLS_U2_02.36.0 (Central Europe, Southeast Asia)<br />
21/06/2010: Added SHOLS_U2_02.27.6 (Israel)<br />
09/06/2010: Corrected - XT701 firmwares are Taiwan.<br />
09/06/2010: Corrected - XT701 firmwares are not signed.<br />
06/06/2010: Added XT701 new 2.1 Taiwan firmware and bootloader 80.99<br />
31/05/2010: Added XT701 new 2.1 firmware and bootloader 80.98<br />
26/05/2010: Added SHOLS_U2_02.34.3 (Hong Kong / Maccau); SHLA_U2_03.05.0 (TIM Brasil, Service Version only)<br />
26/05/2010: Initial creation.<br />
<br />
==== Downloads ====<br />
<br />
* [[http://and-developers.com/sbf milestone Milestone (A853, XT702)]]<br />
* [[http://and-developers.com/sbf droid Droid (A855)]]<br />
* [[http://and-developers.com/sbf xt701 Sholes Tablet (XT701)]]<br />
* [[http://and-developers.com/sbf xt720 Motoroi / Milestone XT720 (XT720)]]<br />
* [[http://and-developers.com/sbf xt800 Titanium (XT800)]]<br />
* [[http://and-developers.com/sbf droidx Droid X (MB810)]]<br />
* [[http://and-developers.com/sbf ruth Ruth (ME511)]]<br />
<br />
===== Custom SBF Files =====<br />
<br />
==== Vulnerable Recovery SBF Flash ====<br />
<br />
This SBF file will flash only the vulnerable recovery from 2.0.1 without modifying other partitions. \\<br />
Download (Milestone): [[http://www.mediafire.com/?jzzjmmrvwkz MediaFire]]\\<br />
Download (XT800): [[http://droid-developers.org/files/uploads//XT800-vulnerable-recovery.rar Droid-Developers]]<br />
==== 2.1 kernel fix of scheduled CPU wake-ups ====<br />
This SBF file will flash only the boot.img (kernel+init) from SHOLS_U2_03.10.0: [[http://www.mediafire.com/?mlyneqhk1zl mediafire]], [[http://rapidshare.com/files/378277372/2.1-03.10.0-kernel-only.rar.html rapidshare]]<br />
~~DISCUSSION|SBF Firmwares~~</div>Ixchttp://droid-developers.org/wiki/SBFSBF2010-08-23T14:51:03Z<p>Ixc: Known return codes reformat</p>
<hr />
<div>===== SBF =====<br />
<br />
SBF seems to stand for Single Binary File, containing the firmware image. None of the SBFs contain a subsidy lock and flashing a SBF will not unlock the phone. These files could be flashed into the milestone via [[rsd_lite|RSD Lite]] Interface. The updates of this page can be seen above the download page links.<br />
<br />
The device should be put into [[bootloader_mode|Bootloader Mode]] and then attached via USB to the PC. After the PC recognizes the phone, you could use [[rsd_lite]] for flashing the SBF to your Milestone.<br />
<br />
===== SBF-Recalc =====<br />
The latest SBF-Recalc (1.2.9.1) is available for windows here ((see http://modmymoto.com/forums/showthread.php?t=525344 for the original post by its author and for Linux/OS X versions)): http://www.megaupload.com/?d=Y8RDIZGA<br />
<br />
Previous version 1.2.9 for windows and OS X: http://www.megaupload.com/?d=7J9EOZT0<br />
<br />
Previous version 1.2.9 for Linux ((According to the developer you need libstdc++5 for the linux version)): http://www.megaupload.com/?d=03M0GM36<br />
<br />
'''Note:''' Everything works except checksums recalculating. RSD Lite prints the correct ones in its log though, so the SBF file can be edited by hand to use those CRC codes if really needed (by tryout & error).<br />
<br />
===== SBF / MBN Depacker =====<br />
The latest version (1.2 ALPHA 3) is availabe for .NET 3.5 here ((see http://www.modmymoto.com/forums/showthread.php?t=530781 for post by author)): http://rapidshare.com/files/386624716/MotoAndroidDepacker-1.2alpha3.rar.html<br />
<br />
Supports repacking for the Milestone SBF, including the checksum recalculation.<br />
<br />
===== Comments =====<br />
<br />
Flashing the "Service" version will not wipe userdata partition. Looking on the flex version (ro.gsm.flexversion): B1B8 is for WCDMA 900 / 2100 and B1B2B5 is for WCDMA 850 / 1900 / 2100, some firmwares doesn't have that string in the flex version, so it cannot be determined from that (All Latin American firmwares and Retail Thai are WCDMA 850 / 1900 / 2100).<br />
<br />
Flashing an SBF file from a different country could cause problems with cellular communications. For example, some people have applied the HK SBF in Europe and in Latin America and their phones stopped working with 3G (due to different frequencies, presumably).<br />
<br />
Here's an attempt to parse the firmware filename structure with an informal shell/re syntax:<br />
<pre><br />
${ro.build.id}_${ro.gsm.flexversion}_${ro.build.config.version#3}_${ro.build.config.version#4}_A[0-9][0-9][0-9]_HWp2a_{Service|}1FF.sbf<br />
</pre><br />
<br />
===== RSD web service =====<br />
<br />
Officially distributed builds are exposed by a public web service at ''https://rsd.motorola.com/cs/servlets/SRPConsumerServlet'' used by Motorola's end-user update tool. Motorola's internal service tool use a similar service at ''https://rsd.motorola.com/cs/servlets/SRPServlet'', but it appears to be restricted to authorized sessions.<br />
<pre><br />
<code xml Request><br />
<?xml version="1.0" encoding="UTF-8" standalone="no"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><br />
<srpmessage><br />
<srpoperation><br />
<fungrp></fungrp><br />
<opcode></opcode><br />
<parameterlist><br />
<parameter><name></name></value></parameter><br />
</parameterlist><br />
</srpoperation><br />
</srpmessage><br />
</soap-env:Body><br />
</soap-env:Envelope><br />
</code><br />
</pre><br />
<br />
===Known functions===<br />
<br />
{| border="1" cellpadding="0" cellspacing="0"<br />
!style="background: #DEE7EC;"| Function<br />
!style="background: #DEE7EC;"| fungrp<br />
!style="background: #DEE7EC;"| opcode<br />
!style="background: #DEE7EC;"| Parameter name<br />
!style="background: #DEE7EC;"| Parameter value<br />
|-<br />
| MSU version check<br />
| 02<br />
| 01<br />
| consumerclientversion<br />
| Version string, e.g. ''C01.11.79''<br />
|-<br />
|rowspan="2" colspan="3"|<br />
| Use_case_set<br />
| ''Inapplicable''<br />
|-<br />
| countrycode<br />
| Three-letter code<br />
|-<br />
| USB driver version check<br />
| 02<br />
| 05<br />
| hardware<br />
| 00<br />
|-<br />
|rowspan="2" colspan="3"|<br />
| OS<br />
| Four-digit MS Windows version, e.g. ''0601'' for Win7<br />
|-<br />
| driverversion<br />
| Version string, e.g. ''DD04.05.00''<br />
|-<br />
| Warranty status<br />
| 07<br />
| 13<br />
| serialnumbertype<br />
| IMEI<br />
|-<br />
|colspan="3"|<br />
| serialnumber<br />
| IMEI string<br />
|-<br />
| Firmware version check<br />
| 10<br />
| 01<br />
| flex<br />
| ro.gsm.flexversion<br />
|-<br />
|rowspan="13" colspan="3"|<br />
| firmware<br />
| ro.build.id+gsm.version.baseband<br />
|-<br />
| apversion<br />
| ro.build.id+gsm.version.baseband<br />
|-<br />
| apsetup<br />
| ''Inapplicable''<br />
|-<br />
| apresourceflex<br />
| ''Inapplicable''<br />
|-<br />
| aplogo<br />
| ''Inapplicable''<br />
|-<br />
| apsecuresetup<br />
| ''Inapplicable''<br />
|-<br />
| rofs<br />
| ''Inapplicable''<br />
|-<br />
| rofsextension<br />
| ''Inapplicable''<br />
|-<br />
| apflex<br />
| ro.build.config.version<br />
|-<br />
| bootloader<br />
| Four-digit version, eg. ''9073''<br />
|-<br />
| lang<br />
| ''Inapplicable''<br />
|-<br />
| kjava<br />
| ''Inapplicable''<br />
|-<br />
| pri<br />
| ''Inapplicable''<br />
|}<br />
<br />
The only parameter required for firmware version checks is ''flex''. The service will only respond successfully if the query is unambiguous and matched phone model is cleared for user upgrades. (see ''Known return codes'')<br />
<br />
===Known return codes===<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
!style="background: #DEE7EC;"| fungrp<br />
!style="background: #DEE7EC;"| opcode<br />
!style="background: #DEE7EC;"| operation status<br />
!style="background: #DEE7EC;"| Returned message<br />
!style="background: #DEE7EC;"| Comment<br />
|-<br />
| 06<br />
| 50<br />
| 00<br />
| success<br />
| Update URL to .sbf included in return xml scheme<br />
|-<br />
| 06<br />
| 50<br />
| 01<br />
| Cannot ID the phone as the flex is blank.<br />
|<br />
|-<br />
| 06<br />
| 50<br />
| 02<br />
| No Phone found with the given phone parameters<br />
|<br />
|-<br />
| 06<br />
| 50<br />
| 03<br />
| Multiples phones found with the same configuration.<br />
| This needs to be investigated, since the rsd servers reply this for some phones. For example for a brazilian Milestone with flex version ''USASHLSRETBRLA02C.0R'' (Vivo). Trying to fetch .sbf files from the servers for the DroidX shows the same results. (Note - for NA queries, you must always supply firmware version along the flex, otherwise you get the ''Multiples phones found with the same configuration.'' as result, even if the flex version is invalid (like just ''NA'').)<br />
|}<br />
<br />
=== Example queries ===<br />
<br />
**GB Retail (SM1658AXXB1)**<br />
<code><br />
$ curl -H 'Content-Type: text/xml' -d '<?xml version="1.0" encoding="UTF-8"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><srpmessage><srpoperation><fungrp>10</fungrp><opcode>01</opcode><parameterlist><br />
<parameter><name>flex</name><value>UCASHLSEMEAB1B803F.0R</value></parameter><br />
<parameter><name>apflex</name><value>GAS_EMEA_USASHLS00RTGB_P008</value></parameter><br />
</parameterlist></srpoperation></srpmessage></soap-env:Body></soap-env:Envelope>' \<br />
https://rsd.motorola.com/cs/servlets/SRPConsumerServlet<br />
</code><br />
<br />
**CA Telus (81130CHEPA)**<br />
<code><br />
$ curl -H 'Content-Type: text/xml' -d '<?xml version="1.0" encoding="UTF-8"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><srpmessage><srpoperation><fungrp>10</fungrp><opcode>01</opcode><parameterlist><br />
<parameter><name>flex</name><value>USASHLSTLSB1B2B5051.0R</value></parameter><br />
</parameterlist></srpoperation></srpmessage></soap-env:Body></soap-env:Envelope>' \<br />
https://rsd.motorola.com/cs/servlets/SRPConsumerServlet<br />
</code><br />
<br />
<br />
===== OTA updates =====<br />
<br />
Just downloaded on phone in /cache/fota/update.zip<br />
and have this structure:<br />
<br />
* CERT.RSA<br />
* CERT.SF<br />
* MANIFEST.MF<br />
* __binary_firmware_file__<br />
* boot.img<br />
* bp.img<br />
* mbm.img<br />
* cdt.bin<br />
* lbl.bin<br />
* logo.bin<br />
* install-recovery.sh<br />
* recovery-from-boot.p<br />
* updater-script<br />
* mtd.cfg<br />
<br />
CERT.SF - contain sha1 digest of all files in update.zip<br />
<br />
CERT.RSA - certificate ASN1.DER ( parsed struct http://pastebin.ca/1849789 ). It parsed by command "openssl asn1parse -inform DER -in CERT.RSA"<br />
<br />
If any files unneeded in update - update.zip does not include this file.<br />
This is a sample OTA update package(SHOLS_U2_01.03.1_to_SHOLS_U2_01.14.0_REQ563): [[http://www.xvilka.org/update.zip update.zip]]<br />
===== Retail SBF Files =====<br />
==== Updates ====<br />
<br />
03/08/2010: Added Milestone XT720 firmware for South-East Asia (STR_U2_01.18.2)<br />
28/07/2010: Added Blur_Version.0.18.4.ME511.ChinaRetail.en.CN and bootloader for ME511<br />
24/07/2010: Added STR_U2_01.18.2 (Singapore) for XT720<br />
23/07/2010: Added SHOLS_U2_02.38.0 (Italy)<br />
21/07/2010: Added SHOLS_U2_02.36.0 (DACH, O2 DE, VF DE)<br />
16/07/2010: Added XT800 firmwares and Droid X bootloaders<br />
11/07/2010: Added Thai 02.36.0 firmware<br />
10/07/2010: Added bootloader 90.78ch and new XT702 firmware<br />
05/07/2010: Added SHOLS_U2_02.36.0 (Starhub SG)<br />
01/07/2010: Added SHOLS_U2_02.36.0 (Central Europe, Southeast Asia)<br />
21/06/2010: Added SHOLS_U2_02.27.6 (Israel)<br />
09/06/2010: Corrected - XT701 firmwares are Taiwan.<br />
09/06/2010: Corrected - XT701 firmwares are not signed.<br />
06/06/2010: Added XT701 new 2.1 Taiwan firmware and bootloader 80.99<br />
31/05/2010: Added XT701 new 2.1 firmware and bootloader 80.98<br />
26/05/2010: Added SHOLS_U2_02.34.3 (Hong Kong / Maccau); SHLA_U2_03.05.0 (TIM Brasil, Service Version only)<br />
26/05/2010: Initial creation.<br />
<br />
==== Downloads ====<br />
<br />
* [[http://and-developers.com/sbf milestone Milestone (A853, XT702)]]<br />
* [[http://and-developers.com/sbf droid Droid (A855)]]<br />
* [[http://and-developers.com/sbf xt701 Sholes Tablet (XT701)]]<br />
* [[http://and-developers.com/sbf xt720 Motoroi / Milestone XT720 (XT720)]]<br />
* [[http://and-developers.com/sbf xt800 Titanium (XT800)]]<br />
* [[http://and-developers.com/sbf droidx Droid X (MB810)]]<br />
* [[http://and-developers.com/sbf ruth Ruth (ME511)]]<br />
<br />
===== Custom SBF Files =====<br />
<br />
==== Vulnerable Recovery SBF Flash ====<br />
<br />
This SBF file will flash only the vulnerable recovery from 2.0.1 without modifying other partitions. \\<br />
Download (Milestone): [[http://www.mediafire.com/?jzzjmmrvwkz MediaFire]]\\<br />
Download (XT800): [[http://droid-developers.org/files/uploads//XT800-vulnerable-recovery.rar Droid-Developers]]<br />
==== 2.1 kernel fix of scheduled CPU wake-ups ====<br />
This SBF file will flash only the boot.img (kernel+init) from SHOLS_U2_03.10.0: [[http://www.mediafire.com/?mlyneqhk1zl mediafire]], [[http://rapidshare.com/files/378277372/2.1-03.10.0-kernel-only.rar.html rapidshare]]<br />
~~DISCUSSION|SBF Firmwares~~</div>Ixchttp://droid-developers.org/wiki/SBFSBF2010-08-23T14:43:39Z<p>Ixc: know functions reformat</p>
<hr />
<div>===== SBF =====<br />
<br />
SBF seems to stand for Single Binary File, containing the firmware image. None of the SBFs contain a subsidy lock and flashing a SBF will not unlock the phone. These files could be flashed into the milestone via [[rsd_lite|RSD Lite]] Interface. The updates of this page can be seen above the download page links.<br />
<br />
The device should be put into [[bootloader_mode|Bootloader Mode]] and then attached via USB to the PC. After the PC recognizes the phone, you could use [[rsd_lite]] for flashing the SBF to your Milestone.<br />
<br />
===== SBF-Recalc =====<br />
The latest SBF-Recalc (1.2.9.1) is available for windows here ((see http://modmymoto.com/forums/showthread.php?t=525344 for the original post by its author and for Linux/OS X versions)): http://www.megaupload.com/?d=Y8RDIZGA<br />
<br />
Previous version 1.2.9 for windows and OS X: http://www.megaupload.com/?d=7J9EOZT0<br />
<br />
Previous version 1.2.9 for Linux ((According to the developer you need libstdc++5 for the linux version)): http://www.megaupload.com/?d=03M0GM36<br />
<br />
'''Note:''' Everything works except checksums recalculating. RSD Lite prints the correct ones in its log though, so the SBF file can be edited by hand to use those CRC codes if really needed (by tryout & error).<br />
<br />
===== SBF / MBN Depacker =====<br />
The latest version (1.2 ALPHA 3) is availabe for .NET 3.5 here ((see http://www.modmymoto.com/forums/showthread.php?t=530781 for post by author)): http://rapidshare.com/files/386624716/MotoAndroidDepacker-1.2alpha3.rar.html<br />
<br />
Supports repacking for the Milestone SBF, including the checksum recalculation.<br />
<br />
===== Comments =====<br />
<br />
Flashing the "Service" version will not wipe userdata partition. Looking on the flex version (ro.gsm.flexversion): B1B8 is for WCDMA 900 / 2100 and B1B2B5 is for WCDMA 850 / 1900 / 2100, some firmwares doesn't have that string in the flex version, so it cannot be determined from that (All Latin American firmwares and Retail Thai are WCDMA 850 / 1900 / 2100).<br />
<br />
Flashing an SBF file from a different country could cause problems with cellular communications. For example, some people have applied the HK SBF in Europe and in Latin America and their phones stopped working with 3G (due to different frequencies, presumably).<br />
<br />
Here's an attempt to parse the firmware filename structure with an informal shell/re syntax:<br />
<pre><br />
${ro.build.id}_${ro.gsm.flexversion}_${ro.build.config.version#3}_${ro.build.config.version#4}_A[0-9][0-9][0-9]_HWp2a_{Service|}1FF.sbf<br />
</pre><br />
<br />
===== RSD web service =====<br />
<br />
Officially distributed builds are exposed by a public web service at ''https://rsd.motorola.com/cs/servlets/SRPConsumerServlet'' used by Motorola's end-user update tool. Motorola's internal service tool use a similar service at ''https://rsd.motorola.com/cs/servlets/SRPServlet'', but it appears to be restricted to authorized sessions.<br />
<pre><br />
<code xml Request><br />
<?xml version="1.0" encoding="UTF-8" standalone="no"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><br />
<srpmessage><br />
<srpoperation><br />
<fungrp></fungrp><br />
<opcode></opcode><br />
<parameterlist><br />
<parameter><name></name></value></parameter><br />
</parameterlist><br />
</srpoperation><br />
</srpmessage><br />
</soap-env:Body><br />
</soap-env:Envelope><br />
</code><br />
</pre><br />
<br />
===Known functions===<br />
<br />
{| border="1" cellpadding="0" cellspacing="0"<br />
!style="background: #DEE7EC;"| Function<br />
!style="background: #DEE7EC;"| fungrp<br />
!style="background: #DEE7EC;"| opcode<br />
!style="background: #DEE7EC;"| Parameter name<br />
!style="background: #DEE7EC;"| Parameter value<br />
|-<br />
| MSU version check<br />
| 02<br />
| 01<br />
| consumerclientversion<br />
| Version string, e.g. ''C01.11.79''<br />
|-<br />
|rowspan="2" colspan="3"|<br />
| Use_case_set<br />
| ''Inapplicable''<br />
|-<br />
| countrycode<br />
| Three-letter code<br />
|-<br />
| USB driver version check<br />
| 02<br />
| 05<br />
| hardware<br />
| 00<br />
|-<br />
|rowspan="2" colspan="3"|<br />
| OS<br />
| Four-digit MS Windows version, e.g. ''0601'' for Win7<br />
|-<br />
| driverversion<br />
| Version string, e.g. ''DD04.05.00''<br />
|-<br />
| Warranty status<br />
| 07<br />
| 13<br />
| serialnumbertype<br />
| IMEI<br />
|-<br />
|colspan="3"|<br />
| serialnumber<br />
| IMEI string<br />
|-<br />
| Firmware version check<br />
| 10<br />
| 01<br />
| flex<br />
| ro.gsm.flexversion<br />
|-<br />
|rowspan="13" colspan="3"|<br />
| firmware<br />
| ro.build.id+gsm.version.baseband<br />
|-<br />
| apversion<br />
| ro.build.id+gsm.version.baseband<br />
|-<br />
| apsetup<br />
| ''Inapplicable''<br />
|-<br />
| apresourceflex<br />
| ''Inapplicable''<br />
|-<br />
| aplogo<br />
| ''Inapplicable''<br />
|-<br />
| apsecuresetup<br />
| ''Inapplicable''<br />
|-<br />
| rofs<br />
| ''Inapplicable''<br />
|-<br />
| rofsextension<br />
| ''Inapplicable''<br />
|-<br />
| apflex<br />
| ro.build.config.version<br />
|-<br />
| bootloader<br />
| Four-digit version, eg. ''9073''<br />
|-<br />
| lang<br />
| ''Inapplicable''<br />
|-<br />
| kjava<br />
| ''Inapplicable''<br />
|-<br />
| pri<br />
| ''Inapplicable''<br />
|}<br />
<br />
The only parameter required for firmware version checks is ''flex''. The service will only respond successfully if the query is unambiguous and matched phone model is cleared for user upgrades. (see ''Known return codes'')<br />
<br />
===Known return codes===<br />
<br />
^ fungrp ^ opcode ^ operation status ^ Returned message ^ Comment ^<br />
| ''06'' | ''50'' | ''00'' | ''success'' | Update URL to .sbf included in return xml scheme |<br />
| ''06'' | ''50'' | ''01'' | ''Cannot ID the phone as the flex is blank.'' | |<br />
| ''06'' | ''50'' | ''02'' | ''No Phone found with the given phone parameters'' | |<br />
| ''06'' | ''50'' | ''03'' | ''Multiples phones found with the same configuration.'' | This needs to be investigated, since the rsd servers reply this for some phones. For example for a brazilian Milestone with flex version ''USASHLSRETBRLA02C.0R'' (Vivo). Trying to fetch .sbf files from the servers for the DroidX shows the same results. (Note - for NA queries, you must always supply firmware version along the flex, otherwise you get the ''Multiples phones found with the same configuration.'' as result, even if the flex version is invalid (like just ''NA'').) |<br />
<br />
=== Example queries ===<br />
<br />
**GB Retail (SM1658AXXB1)**<br />
<code><br />
$ curl -H 'Content-Type: text/xml' -d '<?xml version="1.0" encoding="UTF-8"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><srpmessage><srpoperation><fungrp>10</fungrp><opcode>01</opcode><parameterlist><br />
<parameter><name>flex</name><value>UCASHLSEMEAB1B803F.0R</value></parameter><br />
<parameter><name>apflex</name><value>GAS_EMEA_USASHLS00RTGB_P008</value></parameter><br />
</parameterlist></srpoperation></srpmessage></soap-env:Body></soap-env:Envelope>' \<br />
https://rsd.motorola.com/cs/servlets/SRPConsumerServlet<br />
</code><br />
<br />
**CA Telus (81130CHEPA)**<br />
<code><br />
$ curl -H 'Content-Type: text/xml' -d '<?xml version="1.0" encoding="UTF-8"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><srpmessage><srpoperation><fungrp>10</fungrp><opcode>01</opcode><parameterlist><br />
<parameter><name>flex</name><value>USASHLSTLSB1B2B5051.0R</value></parameter><br />
</parameterlist></srpoperation></srpmessage></soap-env:Body></soap-env:Envelope>' \<br />
https://rsd.motorola.com/cs/servlets/SRPConsumerServlet<br />
</code><br />
<br />
<br />
===== OTA updates =====<br />
<br />
Just downloaded on phone in /cache/fota/update.zip<br />
and have this structure:<br />
<br />
* CERT.RSA<br />
* CERT.SF<br />
* MANIFEST.MF<br />
* __binary_firmware_file__<br />
* boot.img<br />
* bp.img<br />
* mbm.img<br />
* cdt.bin<br />
* lbl.bin<br />
* logo.bin<br />
* install-recovery.sh<br />
* recovery-from-boot.p<br />
* updater-script<br />
* mtd.cfg<br />
<br />
CERT.SF - contain sha1 digest of all files in update.zip<br />
<br />
CERT.RSA - certificate ASN1.DER ( parsed struct http://pastebin.ca/1849789 ). It parsed by command "openssl asn1parse -inform DER -in CERT.RSA"<br />
<br />
If any files unneeded in update - update.zip does not include this file.<br />
This is a sample OTA update package(SHOLS_U2_01.03.1_to_SHOLS_U2_01.14.0_REQ563): [[http://www.xvilka.org/update.zip update.zip]]<br />
===== Retail SBF Files =====<br />
==== Updates ====<br />
<br />
03/08/2010: Added Milestone XT720 firmware for South-East Asia (STR_U2_01.18.2)<br />
28/07/2010: Added Blur_Version.0.18.4.ME511.ChinaRetail.en.CN and bootloader for ME511<br />
24/07/2010: Added STR_U2_01.18.2 (Singapore) for XT720<br />
23/07/2010: Added SHOLS_U2_02.38.0 (Italy)<br />
21/07/2010: Added SHOLS_U2_02.36.0 (DACH, O2 DE, VF DE)<br />
16/07/2010: Added XT800 firmwares and Droid X bootloaders<br />
11/07/2010: Added Thai 02.36.0 firmware<br />
10/07/2010: Added bootloader 90.78ch and new XT702 firmware<br />
05/07/2010: Added SHOLS_U2_02.36.0 (Starhub SG)<br />
01/07/2010: Added SHOLS_U2_02.36.0 (Central Europe, Southeast Asia)<br />
21/06/2010: Added SHOLS_U2_02.27.6 (Israel)<br />
09/06/2010: Corrected - XT701 firmwares are Taiwan.<br />
09/06/2010: Corrected - XT701 firmwares are not signed.<br />
06/06/2010: Added XT701 new 2.1 Taiwan firmware and bootloader 80.99<br />
31/05/2010: Added XT701 new 2.1 firmware and bootloader 80.98<br />
26/05/2010: Added SHOLS_U2_02.34.3 (Hong Kong / Maccau); SHLA_U2_03.05.0 (TIM Brasil, Service Version only)<br />
26/05/2010: Initial creation.<br />
<br />
==== Downloads ====<br />
<br />
* [[http://and-developers.com/sbf milestone Milestone (A853, XT702)]]<br />
* [[http://and-developers.com/sbf droid Droid (A855)]]<br />
* [[http://and-developers.com/sbf xt701 Sholes Tablet (XT701)]]<br />
* [[http://and-developers.com/sbf xt720 Motoroi / Milestone XT720 (XT720)]]<br />
* [[http://and-developers.com/sbf xt800 Titanium (XT800)]]<br />
* [[http://and-developers.com/sbf droidx Droid X (MB810)]]<br />
* [[http://and-developers.com/sbf ruth Ruth (ME511)]]<br />
<br />
===== Custom SBF Files =====<br />
<br />
==== Vulnerable Recovery SBF Flash ====<br />
<br />
This SBF file will flash only the vulnerable recovery from 2.0.1 without modifying other partitions. \\<br />
Download (Milestone): [[http://www.mediafire.com/?jzzjmmrvwkz MediaFire]]\\<br />
Download (XT800): [[http://droid-developers.org/files/uploads//XT800-vulnerable-recovery.rar Droid-Developers]]<br />
==== 2.1 kernel fix of scheduled CPU wake-ups ====<br />
This SBF file will flash only the boot.img (kernel+init) from SHOLS_U2_03.10.0: [[http://www.mediafire.com/?mlyneqhk1zl mediafire]], [[http://rapidshare.com/files/378277372/2.1-03.10.0-kernel-only.rar.html rapidshare]]<br />
~~DISCUSSION|SBF Firmwares~~</div>Ixchttp://droid-developers.org/wiki/SBFSBF2010-08-23T14:04:03Z<p>Ixc: /* Downloads */</p>
<hr />
<div>===== SBF =====<br />
<br />
SBF seems to stand for Single Binary File, containing the firmware image. None of the SBFs contain a subsidy lock and flashing a SBF will not unlock the phone. These files could be flashed into the milestone via [[rsd_lite|RSD Lite]] Interface. The updates of this page can be seen above the download page links.<br />
<br />
The device should be put into [[bootloader_mode|Bootloader Mode]] and then attached via USB to the PC. After the PC recognizes the phone, you could use [[rsd_lite]] for flashing the SBF to your Milestone.<br />
<br />
===== SBF-Recalc =====<br />
The latest SBF-Recalc (1.2.9.1) is available for windows here ((see http://modmymoto.com/forums/showthread.php?t=525344 for the original post by its author and for Linux/OS X versions)): http://www.megaupload.com/?d=Y8RDIZGA<br />
<br />
Previous version 1.2.9 for windows and OS X: http://www.megaupload.com/?d=7J9EOZT0<br />
<br />
Previous version 1.2.9 for Linux ((According to the developer you need libstdc++5 for the linux version)): http://www.megaupload.com/?d=03M0GM36<br />
<br />
'''Note:''' Everything works except checksums recalculating. RSD Lite prints the correct ones in its log though, so the SBF file can be edited by hand to use those CRC codes if really needed (by tryout & error).<br />
<br />
===== SBF / MBN Depacker =====<br />
The latest version (1.2 ALPHA 3) is availabe for .NET 3.5 here ((see http://www.modmymoto.com/forums/showthread.php?t=530781 for post by author)): http://rapidshare.com/files/386624716/MotoAndroidDepacker-1.2alpha3.rar.html<br />
<br />
Supports repacking for the Milestone SBF, including the checksum recalculation.<br />
<br />
===== Comments =====<br />
<br />
Flashing the "Service" version will not wipe userdata partition. Looking on the flex version (ro.gsm.flexversion): B1B8 is for WCDMA 900 / 2100 and B1B2B5 is for WCDMA 850 / 1900 / 2100, some firmwares doesn't have that string in the flex version, so it cannot be determined from that (All Latin American firmwares and Retail Thai are WCDMA 850 / 1900 / 2100).<br />
<br />
Flashing an SBF file from a different country could cause problems with cellular communications. For example, some people have applied the HK SBF in Europe and in Latin America and their phones stopped working with 3G (due to different frequencies, presumably).<br />
<br />
Here's an attempt to parse the firmware filename structure with an informal shell/re syntax:<br />
<pre><br />
${ro.build.id}_${ro.gsm.flexversion}_${ro.build.config.version#3}_${ro.build.config.version#4}_A[0-9][0-9][0-9]_HWp2a_{Service|}1FF.sbf<br />
</pre><br />
<br />
===== RSD web service =====<br />
<br />
Officially distributed builds are exposed by a public web service at ''https://rsd.motorola.com/cs/servlets/SRPConsumerServlet'' used by Motorola's end-user update tool. Motorola's internal service tool use a similar service at ''https://rsd.motorola.com/cs/servlets/SRPServlet'', but it appears to be restricted to authorized sessions.<br />
<pre><br />
<code xml Request><br />
<?xml version="1.0" encoding="UTF-8" standalone="no"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><br />
<srpmessage><br />
<srpoperation><br />
<fungrp></fungrp><br />
<opcode></opcode><br />
<parameterlist><br />
<parameter><name></name></value></parameter><br />
</parameterlist><br />
</srpoperation><br />
</srpmessage><br />
</soap-env:Body><br />
</soap-env:Envelope><br />
</code><br />
</pre><br />
<br />
===Known functions===<br />
<br />
^ Function ^ fungrp ^ opcode ^ Parameter name ^ Parameter value ^<br />
| MSU version check | ''02'' | ''01'' | ''consumerclientversion'' | Version string, e.g. ''C01.11.79'' |<br />
| ||| ''Use_case_set'' | //Inapplicable// |<br />
| ::: ||| ''countrycode'' | Three-letter code |<br />
| USB driver version check | ''02'' | ''05'' | ''hardware'' | ''00'' |<br />
| ||| ''OS'' | Four-digit MS Windows version, e.g. ''0601'' for Win7 |<br />
| ::: ||| ''driverversion'' | Version string, e.g. ''DD04.05.00'' |<br />
| Warranty status | ''07'' | ''13'' | ''serialnumbertype'' | ''IMEI'' |<br />
| ||| ''serialnumber'' | IMEI string |<br />
| Firmware version check | ''10'' | ''01'' | ''flex'' | ro.gsm.flexversion |<br />
| ||| ''firmware'' | ro.build.id+gsm.version.baseband |<br />
| ::: ||| ''apversion'' | ro.build.id+gsm.version.baseband |<br />
| ::: ||| ''apsetup'' | //Inapplicable// |<br />
| ::: ||| ''apresourceflex'' | //Inapplicable// |<br />
| ::: ||| ''aplogo'' | //Inapplicable// |<br />
| ::: ||| ''apsecuresetup'' | //Inapplicable// |<br />
| ::: ||| ''rofs'' | //Inapplicable// |<br />
| ::: ||| ''rofsextension'' | //Inapplicable// |<br />
| ::: ||| ''apflex'' | ro.build.config.version |<br />
| ::: ||| ''bootloader'' | Four-digit version, eg. ''9073'' |<br />
| ::: ||| ''lang'' | //Inapplicable// |<br />
| ::: ||| ''kjava'' | //Inapplicable// |<br />
| ::: ||| ''pri'' | //Inapplicable// |<br />
<br />
The only parameter required for firmware version checks is ''flex''. The service will only respond successfully if the query is unambiguous and matched phone model is cleared for user upgrades. (see ''Known return codes'')<br />
<br />
<br />
<br />
===Known return codes===<br />
<br />
^ fungrp ^ opcode ^ operation status ^ Returned message ^ Comment ^<br />
| ''06'' | ''50'' | ''00'' | ''success'' | Update URL to .sbf included in return xml scheme |<br />
| ''06'' | ''50'' | ''01'' | ''Cannot ID the phone as the flex is blank.'' | |<br />
| ''06'' | ''50'' | ''02'' | ''No Phone found with the given phone parameters'' | |<br />
| ''06'' | ''50'' | ''03'' | ''Multiples phones found with the same configuration.'' | This needs to be investigated, since the rsd servers reply this for some phones. For example for a brazilian Milestone with flex version ''USASHLSRETBRLA02C.0R'' (Vivo). Trying to fetch .sbf files from the servers for the DroidX shows the same results. (Note - for NA queries, you must always supply firmware version along the flex, otherwise you get the ''Multiples phones found with the same configuration.'' as result, even if the flex version is invalid (like just ''NA'').) |<br />
<br />
=== Example queries ===<br />
<br />
**GB Retail (SM1658AXXB1)**<br />
<code><br />
$ curl -H 'Content-Type: text/xml' -d '<?xml version="1.0" encoding="UTF-8"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><srpmessage><srpoperation><fungrp>10</fungrp><opcode>01</opcode><parameterlist><br />
<parameter><name>flex</name><value>UCASHLSEMEAB1B803F.0R</value></parameter><br />
<parameter><name>apflex</name><value>GAS_EMEA_USASHLS00RTGB_P008</value></parameter><br />
</parameterlist></srpoperation></srpmessage></soap-env:Body></soap-env:Envelope>' \<br />
https://rsd.motorola.com/cs/servlets/SRPConsumerServlet<br />
</code><br />
<br />
**CA Telus (81130CHEPA)**<br />
<code><br />
$ curl -H 'Content-Type: text/xml' -d '<?xml version="1.0" encoding="UTF-8"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><srpmessage><srpoperation><fungrp>10</fungrp><opcode>01</opcode><parameterlist><br />
<parameter><name>flex</name><value>USASHLSTLSB1B2B5051.0R</value></parameter><br />
</parameterlist></srpoperation></srpmessage></soap-env:Body></soap-env:Envelope>' \<br />
https://rsd.motorola.com/cs/servlets/SRPConsumerServlet<br />
</code><br />
<br />
<br />
===== OTA updates =====<br />
<br />
Just downloaded on phone in /cache/fota/update.zip<br />
and have this structure:<br />
<br />
* CERT.RSA<br />
* CERT.SF<br />
* MANIFEST.MF<br />
* __binary_firmware_file__<br />
* boot.img<br />
* bp.img<br />
* mbm.img<br />
* cdt.bin<br />
* lbl.bin<br />
* logo.bin<br />
* install-recovery.sh<br />
* recovery-from-boot.p<br />
* updater-script<br />
* mtd.cfg<br />
<br />
CERT.SF - contain sha1 digest of all files in update.zip<br />
<br />
CERT.RSA - certificate ASN1.DER ( parsed struct http://pastebin.ca/1849789 ). It parsed by command "openssl asn1parse -inform DER -in CERT.RSA"<br />
<br />
If any files unneeded in update - update.zip does not include this file.<br />
This is a sample OTA update package(SHOLS_U2_01.03.1_to_SHOLS_U2_01.14.0_REQ563): [[http://www.xvilka.org/update.zip update.zip]]<br />
===== Retail SBF Files =====<br />
==== Updates ====<br />
<br />
03/08/2010: Added Milestone XT720 firmware for South-East Asia (STR_U2_01.18.2)<br />
28/07/2010: Added Blur_Version.0.18.4.ME511.ChinaRetail.en.CN and bootloader for ME511<br />
24/07/2010: Added STR_U2_01.18.2 (Singapore) for XT720<br />
23/07/2010: Added SHOLS_U2_02.38.0 (Italy)<br />
21/07/2010: Added SHOLS_U2_02.36.0 (DACH, O2 DE, VF DE)<br />
16/07/2010: Added XT800 firmwares and Droid X bootloaders<br />
11/07/2010: Added Thai 02.36.0 firmware<br />
10/07/2010: Added bootloader 90.78ch and new XT702 firmware<br />
05/07/2010: Added SHOLS_U2_02.36.0 (Starhub SG)<br />
01/07/2010: Added SHOLS_U2_02.36.0 (Central Europe, Southeast Asia)<br />
21/06/2010: Added SHOLS_U2_02.27.6 (Israel)<br />
09/06/2010: Corrected - XT701 firmwares are Taiwan.<br />
09/06/2010: Corrected - XT701 firmwares are not signed.<br />
06/06/2010: Added XT701 new 2.1 Taiwan firmware and bootloader 80.99<br />
31/05/2010: Added XT701 new 2.1 firmware and bootloader 80.98<br />
26/05/2010: Added SHOLS_U2_02.34.3 (Hong Kong / Maccau); SHLA_U2_03.05.0 (TIM Brasil, Service Version only)<br />
26/05/2010: Initial creation.<br />
<br />
==== Downloads ====<br />
<br />
* [[http://and-developers.com/sbf milestone Milestone (A853, XT702)]]<br />
* [[http://and-developers.com/sbf droid Droid (A855)]]<br />
* [[http://and-developers.com/sbf xt701 Sholes Tablet (XT701)]]<br />
* [[http://and-developers.com/sbf xt720 Motoroi / Milestone XT720 (XT720)]]<br />
* [[http://and-developers.com/sbf xt800 Titanium (XT800)]]<br />
* [[http://and-developers.com/sbf droidx Droid X (MB810)]]<br />
* [[http://and-developers.com/sbf ruth Ruth (ME511)]]<br />
<br />
===== Custom SBF Files =====<br />
<br />
==== Vulnerable Recovery SBF Flash ====<br />
<br />
This SBF file will flash only the vulnerable recovery from 2.0.1 without modifying other partitions. \\<br />
Download (Milestone): [[http://www.mediafire.com/?jzzjmmrvwkz MediaFire]]\\<br />
Download (XT800): [[http://droid-developers.org/files/uploads//XT800-vulnerable-recovery.rar Droid-Developers]]<br />
==== 2.1 kernel fix of scheduled CPU wake-ups ====<br />
This SBF file will flash only the boot.img (kernel+init) from SHOLS_U2_03.10.0: [[http://www.mediafire.com/?mlyneqhk1zl mediafire]], [[http://rapidshare.com/files/378277372/2.1-03.10.0-kernel-only.rar.html rapidshare]]<br />
~~DISCUSSION|SBF Firmwares~~</div>Ixchttp://droid-developers.org/wiki/SBFSBF2010-08-23T14:02:02Z<p>Ixc: updates reformat</p>
<hr />
<div>===== SBF =====<br />
<br />
SBF seems to stand for Single Binary File, containing the firmware image. None of the SBFs contain a subsidy lock and flashing a SBF will not unlock the phone. These files could be flashed into the milestone via [[rsd_lite|RSD Lite]] Interface. The updates of this page can be seen above the download page links.<br />
<br />
The device should be put into [[bootloader_mode|Bootloader Mode]] and then attached via USB to the PC. After the PC recognizes the phone, you could use [[rsd_lite]] for flashing the SBF to your Milestone.<br />
<br />
===== SBF-Recalc =====<br />
The latest SBF-Recalc (1.2.9.1) is available for windows here ((see http://modmymoto.com/forums/showthread.php?t=525344 for the original post by its author and for Linux/OS X versions)): http://www.megaupload.com/?d=Y8RDIZGA<br />
<br />
Previous version 1.2.9 for windows and OS X: http://www.megaupload.com/?d=7J9EOZT0<br />
<br />
Previous version 1.2.9 for Linux ((According to the developer you need libstdc++5 for the linux version)): http://www.megaupload.com/?d=03M0GM36<br />
<br />
'''Note:''' Everything works except checksums recalculating. RSD Lite prints the correct ones in its log though, so the SBF file can be edited by hand to use those CRC codes if really needed (by tryout & error).<br />
<br />
===== SBF / MBN Depacker =====<br />
The latest version (1.2 ALPHA 3) is availabe for .NET 3.5 here ((see http://www.modmymoto.com/forums/showthread.php?t=530781 for post by author)): http://rapidshare.com/files/386624716/MotoAndroidDepacker-1.2alpha3.rar.html<br />
<br />
Supports repacking for the Milestone SBF, including the checksum recalculation.<br />
<br />
===== Comments =====<br />
<br />
Flashing the "Service" version will not wipe userdata partition. Looking on the flex version (ro.gsm.flexversion): B1B8 is for WCDMA 900 / 2100 and B1B2B5 is for WCDMA 850 / 1900 / 2100, some firmwares doesn't have that string in the flex version, so it cannot be determined from that (All Latin American firmwares and Retail Thai are WCDMA 850 / 1900 / 2100).<br />
<br />
Flashing an SBF file from a different country could cause problems with cellular communications. For example, some people have applied the HK SBF in Europe and in Latin America and their phones stopped working with 3G (due to different frequencies, presumably).<br />
<br />
Here's an attempt to parse the firmware filename structure with an informal shell/re syntax:<br />
<pre><br />
${ro.build.id}_${ro.gsm.flexversion}_${ro.build.config.version#3}_${ro.build.config.version#4}_A[0-9][0-9][0-9]_HWp2a_{Service|}1FF.sbf<br />
</pre><br />
<br />
===== RSD web service =====<br />
<br />
Officially distributed builds are exposed by a public web service at ''https://rsd.motorola.com/cs/servlets/SRPConsumerServlet'' used by Motorola's end-user update tool. Motorola's internal service tool use a similar service at ''https://rsd.motorola.com/cs/servlets/SRPServlet'', but it appears to be restricted to authorized sessions.<br />
<pre><br />
<code xml Request><br />
<?xml version="1.0" encoding="UTF-8" standalone="no"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><br />
<srpmessage><br />
<srpoperation><br />
<fungrp></fungrp><br />
<opcode></opcode><br />
<parameterlist><br />
<parameter><name></name></value></parameter><br />
</parameterlist><br />
</srpoperation><br />
</srpmessage><br />
</soap-env:Body><br />
</soap-env:Envelope><br />
</code><br />
</pre><br />
<br />
===Known functions===<br />
<br />
^ Function ^ fungrp ^ opcode ^ Parameter name ^ Parameter value ^<br />
| MSU version check | ''02'' | ''01'' | ''consumerclientversion'' | Version string, e.g. ''C01.11.79'' |<br />
| ||| ''Use_case_set'' | //Inapplicable// |<br />
| ::: ||| ''countrycode'' | Three-letter code |<br />
| USB driver version check | ''02'' | ''05'' | ''hardware'' | ''00'' |<br />
| ||| ''OS'' | Four-digit MS Windows version, e.g. ''0601'' for Win7 |<br />
| ::: ||| ''driverversion'' | Version string, e.g. ''DD04.05.00'' |<br />
| Warranty status | ''07'' | ''13'' | ''serialnumbertype'' | ''IMEI'' |<br />
| ||| ''serialnumber'' | IMEI string |<br />
| Firmware version check | ''10'' | ''01'' | ''flex'' | ro.gsm.flexversion |<br />
| ||| ''firmware'' | ro.build.id+gsm.version.baseband |<br />
| ::: ||| ''apversion'' | ro.build.id+gsm.version.baseband |<br />
| ::: ||| ''apsetup'' | //Inapplicable// |<br />
| ::: ||| ''apresourceflex'' | //Inapplicable// |<br />
| ::: ||| ''aplogo'' | //Inapplicable// |<br />
| ::: ||| ''apsecuresetup'' | //Inapplicable// |<br />
| ::: ||| ''rofs'' | //Inapplicable// |<br />
| ::: ||| ''rofsextension'' | //Inapplicable// |<br />
| ::: ||| ''apflex'' | ro.build.config.version |<br />
| ::: ||| ''bootloader'' | Four-digit version, eg. ''9073'' |<br />
| ::: ||| ''lang'' | //Inapplicable// |<br />
| ::: ||| ''kjava'' | //Inapplicable// |<br />
| ::: ||| ''pri'' | //Inapplicable// |<br />
<br />
The only parameter required for firmware version checks is ''flex''. The service will only respond successfully if the query is unambiguous and matched phone model is cleared for user upgrades. (see ''Known return codes'')<br />
<br />
<br />
<br />
===Known return codes===<br />
<br />
^ fungrp ^ opcode ^ operation status ^ Returned message ^ Comment ^<br />
| ''06'' | ''50'' | ''00'' | ''success'' | Update URL to .sbf included in return xml scheme |<br />
| ''06'' | ''50'' | ''01'' | ''Cannot ID the phone as the flex is blank.'' | |<br />
| ''06'' | ''50'' | ''02'' | ''No Phone found with the given phone parameters'' | |<br />
| ''06'' | ''50'' | ''03'' | ''Multiples phones found with the same configuration.'' | This needs to be investigated, since the rsd servers reply this for some phones. For example for a brazilian Milestone with flex version ''USASHLSRETBRLA02C.0R'' (Vivo). Trying to fetch .sbf files from the servers for the DroidX shows the same results. (Note - for NA queries, you must always supply firmware version along the flex, otherwise you get the ''Multiples phones found with the same configuration.'' as result, even if the flex version is invalid (like just ''NA'').) |<br />
<br />
=== Example queries ===<br />
<br />
**GB Retail (SM1658AXXB1)**<br />
<code><br />
$ curl -H 'Content-Type: text/xml' -d '<?xml version="1.0" encoding="UTF-8"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><srpmessage><srpoperation><fungrp>10</fungrp><opcode>01</opcode><parameterlist><br />
<parameter><name>flex</name><value>UCASHLSEMEAB1B803F.0R</value></parameter><br />
<parameter><name>apflex</name><value>GAS_EMEA_USASHLS00RTGB_P008</value></parameter><br />
</parameterlist></srpoperation></srpmessage></soap-env:Body></soap-env:Envelope>' \<br />
https://rsd.motorola.com/cs/servlets/SRPConsumerServlet<br />
</code><br />
<br />
**CA Telus (81130CHEPA)**<br />
<code><br />
$ curl -H 'Content-Type: text/xml' -d '<?xml version="1.0" encoding="UTF-8"?><br />
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><br />
<soap-env:Body><srpmessage><srpoperation><fungrp>10</fungrp><opcode>01</opcode><parameterlist><br />
<parameter><name>flex</name><value>USASHLSTLSB1B2B5051.0R</value></parameter><br />
</parameterlist></srpoperation></srpmessage></soap-env:Body></soap-env:Envelope>' \<br />
https://rsd.motorola.com/cs/servlets/SRPConsumerServlet<br />
</code><br />
<br />
<br />
===== OTA updates =====<br />
<br />
Just downloaded on phone in /cache/fota/update.zip<br />
and have this structure:<br />
<br />
* CERT.RSA<br />
* CERT.SF<br />
* MANIFEST.MF<br />
* __binary_firmware_file__<br />
* boot.img<br />
* bp.img<br />
* mbm.img<br />
* cdt.bin<br />
* lbl.bin<br />
* logo.bin<br />
* install-recovery.sh<br />
* recovery-from-boot.p<br />
* updater-script<br />
* mtd.cfg<br />
<br />
CERT.SF - contain sha1 digest of all files in update.zip<br />
<br />
CERT.RSA - certificate ASN1.DER ( parsed struct http://pastebin.ca/1849789 ). It parsed by command "openssl asn1parse -inform DER -in CERT.RSA"<br />
<br />
If any files unneeded in update - update.zip does not include this file.<br />
This is a sample OTA update package(SHOLS_U2_01.03.1_to_SHOLS_U2_01.14.0_REQ563): [[http://www.xvilka.org/update.zip update.zip]]<br />
===== Retail SBF Files =====<br />
==== Updates ====<br />
<br />
03/08/2010: Added Milestone XT720 firmware for South-East Asia (STR_U2_01.18.2)<br />
28/07/2010: Added Blur_Version.0.18.4.ME511.ChinaRetail.en.CN and bootloader for ME511<br />
24/07/2010: Added STR_U2_01.18.2 (Singapore) for XT720<br />
23/07/2010: Added SHOLS_U2_02.38.0 (Italy)<br />
21/07/2010: Added SHOLS_U2_02.36.0 (DACH, O2 DE, VF DE)<br />
16/07/2010: Added XT800 firmwares and Droid X bootloaders<br />
11/07/2010: Added Thai 02.36.0 firmware<br />
10/07/2010: Added bootloader 90.78ch and new XT702 firmware<br />
05/07/2010: Added SHOLS_U2_02.36.0 (Starhub SG)<br />
01/07/2010: Added SHOLS_U2_02.36.0 (Central Europe, Southeast Asia)<br />
21/06/2010: Added SHOLS_U2_02.27.6 (Israel)<br />
09/06/2010: Corrected - XT701 firmwares are Taiwan.<br />
09/06/2010: Corrected - XT701 firmwares are not signed.<br />
06/06/2010: Added XT701 new 2.1 Taiwan firmware and bootloader 80.99<br />
31/05/2010: Added XT701 new 2.1 firmware and bootloader 80.98<br />
26/05/2010: Added SHOLS_U2_02.34.3 (Hong Kong / Maccau); SHLA_U2_03.05.0 (TIM Brasil, Service Version only)<br />
26/05/2010: Initial creation.<br />
<br />
==== Downloads ====<br />
<br />
[[http://and-developers.com/sbf milestone Milestone (A853, XT702)]]\\<br />
\\<br />
[[http://and-developers.com/sbf droid Droid (A855)]]\\<br />
\\<br />
[[http://and-developers.com/sbf xt701 Sholes Tablet (XT701)]]\\<br />
\\<br />
[[http://and-developers.com/sbf xt720 Motoroi / Milestone XT720 (XT720)]]\\<br />
\\<br />
[[http://and-developers.com/sbf xt800 Titanium (XT800)]]\\<br />
\\<br />
[[http://and-developers.com/sbf droidx Droid X (MB810)]]\\<br />
\\<br />
[[http://and-developers.com/sbf ruth Ruth (ME511)]]\\<br />
\\<br />
<br />
<br />
===== Custom SBF Files =====<br />
<br />
==== Vulnerable Recovery SBF Flash ====<br />
<br />
This SBF file will flash only the vulnerable recovery from 2.0.1 without modifying other partitions. \\<br />
Download (Milestone): [[http://www.mediafire.com/?jzzjmmrvwkz MediaFire]]\\<br />
Download (XT800): [[http://droid-developers.org/files/uploads//XT800-vulnerable-recovery.rar Droid-Developers]]<br />
==== 2.1 kernel fix of scheduled CPU wake-ups ====<br />
This SBF file will flash only the boot.img (kernel+init) from SHOLS_U2_03.10.0: [[http://www.mediafire.com/?mlyneqhk1zl mediafire]], [[http://rapidshare.com/files/378277372/2.1-03.10.0-kernel-only.rar.html rapidshare]]<br />
~~DISCUSSION|SBF Firmwares~~</div>Ixc