BlackBerry Master Control Program
Readme
Click the links in the left pane to jump to specific sections of this document.
I will try to index all of the 0.9.2.0 betas soon.
Click here for the Help pages or the Main Page.
Screenshots
0.9.2.0 Beta 6 (Build 0.9.1.6) - March 1, 2009
It's been a crazy two months.
Even though we are way past it, I hope everyone had a great holiday season and new year.
As mentioned earlier, I normally don't offer detailed explanations into the "behind the scenes" stuff releated to software development. Once again there have been some major changes recently, so I thought I would discuss them. If you don't want to read this part, tap the "Page Down" key once or twice or click here to jump ahead to the next topic.
This is a work in progress. All of my recent changelog is included now, but I haven't cleaned everything up yet. Items linked on the left are mostly ready.
3/3/09 - 1:30 am. sleep...
Post Mesh
I made a few changes beyond the 20090301 "Mesh" builds.
The PIN area used to say "USB Device (PIN):", now says "Device PIN:".
The Password field used to say "Password (if any):", now says "Device Password:".
Clean install: MCP minimizes to the system tray.
Clean install: MCP checks for beta releases. Possibly suicide, time will tell.
In the next build MCP will default to NOT check for updated MCP files.
MCP now complies with Windows Vista/7 User Account Control (UAC) (requireAdministrator)
In my opinion this is probably one of the biggest changes since Beta 5.
MCP now uses the requireAdministrator method for UAC to allow administer level elevation. Users no longer have to configure MCP to run with admin rights.
Other notes/mumblings about UAC:
a quick note about windows vista/7 user account control elevation. for now i have sided with the "requireAdministrator" method which only asks one time to elevate mcp to "admin". the other method, "asInvoker" is more complicated at the code level and would cause major disruptions when using mcp because for each operation that requires elevation, mcp would yeild to another uac prompt. this could be particularly horrible on the os management page where entire sections of modules can be moved (turned on or off). each file move operation would stop at a uac prompt. i will look into the "asInvoker" method more over time, but if this really IS how it's supposed to work, i can't imagine anyone using mcp for very long. "requireAdministrator" stops only once when mcp is launched and asks the user to confirm process elevation. this adds slightly (only one or two seconds) to the load time of mcp because technically what happens is vista starts a second instance of mcp that then runs for the duration as an adminisrator.
Main images missing in Vista/7, fixed
first of all, my main os (and development environment) is xp, not vista. anyway, several people have reported this problem and i just assumed it was some stupid vista problem. i didn't dismiss the problem... i knew there had to be a reason, i just couldn't test anything at the time. the workaround was to run the exe in "xp compatability mode". after that it worked fine. that's not a solution by any means.
tonight i decided to spend more time running mcp under vista and i was seeing the same problem. i was actually testing uac to make sure it was still working right and mcp popped up bright white. the welcome screen, about page, languages and downloads were all affected. additionally at the top right of area51 and area52 are command prompt icons, both were missing.
so i started with the code. it was fine. next i played with image formats after noticing these were the only jpg files i was using. first i tried png. then i tried bmp. then i tried tga. wtf, nothing was working. grr. then i tried disabling stupid/obscure options in delphi like "enable runtime themes". still didn't help. grr wtf? i never thought it would be this stupid.
then i started looking at the left side. all of the images on the left panel have always been fine. so i copied one of the jpg's to that area - and it worked!
so, what was different about the main area of mcp that would cause such a problem?the only difference is that the main area is a "page control" (one sheet with multiple pages). this control is part of a set called "xp controls". it turns out that any images i place on any of these pages can only be seen in operating systems prior to (and not including) vista. so, i placed normal "panel" controls on each page, then moved the images and text to the new panels. it worked!!!
woohoo! no more "xp compatability" mode shit. \o/
MCP has a new icon - Thanks AntiShane!
Control panel (.CPL) updated to include the new MCP icon
List index out of bounds (-1), fixed
i finally found that bitch. eesh, fully annoying. it turned out that one/some/all of the three timers that run most of the time in the background were causing the problem. it was more noticeable when the pin check timer was less than 5 seconds... but that's just too long for me. anwyay, this was mostly fixed in the last two builds, but as of yesterday's build it only affected the "stand alone" version.
this error is gone for good now, for all versions.to fix this all i did was disabled all of the timers until the creation process was done, then i turned them on right as the main form is displayed on screen.
so now, all versions of mcp load without any errors.
Pin/Password area updated, more responsive
some nice changes have been made to this area.
the second you select a pin, or the second your pin is automatically "snapped" to after connecting a device, i am now instantly displaying the password field. in the past you would have to wait 1-2 seconds for the pin to be available, then another 1-2 seconds for the password box to appear. this was based on the pin check interval. now it is instantaneous. it disappears as quickly if the device is disconnected or if you selected "none" for the pin.
in some cases, the real edit box (where you could read the password) would still be showing if the phone was disconnected or if "none" was selected. it was empty, so the actual password wasn't exposed, but it should have hiden. fixed.
added the ability to hit tab, enter or escape the second you are done typing your password to instantly leave that edit field so it immediately returns to the password mask (dots). great for over-the-shoulder observers (aka bosses). it instantly jumps you back to the pin selector.
i was thinking about making it so that you can't hit tab again to jump right back to the password field, but i actually like hitting tab to get there.
Added Inverse/All/None buttons for Java Loader Save/Erase
I added Inverse/All/None buttons for the Java Loader Save and Erase pages. These buttons are disabled until the retrieve button has actually returned a list of modules from the device.
lists now show a normal cursor unless they contain content
downloads page
updated crackmem to 3.4.
Settings Changes
Tray icon hints updated. Hopefully the updated hints explain better how these options work.
Operating System Management Changes
OS Management page received a minor facelift.
the buttons at the bottom are layed out better.
Password protected devices, known issue if using the new "Secure Mode"
if your device is password protected, please make sure you enter the password in the field provided below the pin.
this is especially important for anyone that also insists on using the new "security mode" option.
if you use security mode and forget to type in the password, as soon as you tell mcp to run a command that normally returns information from the device (screen capture, device information, retrieve module listing, etc.) an instance of javaloaderxxx.exe will get "stuck" in task manager. mcp will become unresponsive and no other commands will work in mcp until you manually kill that javaloaderxxx.exe process in task manager. there is no way around this behavior, it is a javaloader issue... it simply never "times out".
this problem does not include "one-out" or "single shot" commands that don't actually retrieve data from the device, as far as i've seen. for example, turning the radio on or off, setting the time, etc. javaloader attempts to send the command and exits without waiting for feedback. so, in these cases, javaloader doesn't get "stuck" in task manager.
so, for anyone insisting on security, each time you start mcp you will have to force yourself to remember to key in your password. this shouldn't come as a surprise of any kind really - the official blackberry device manager hounds you every time you connect your device, so let that be your "mcp reminder" as well.
so now we all know. forgetting this step will cause mcp to become unresponsive, laggy, no commands will work and it won't close when you click the "x" button. you have to kill javaloader manually.
while there are a host of other reasons (alienating existing mcp users with new methods, etc.), this is now my #1 reasoning (albeit a new discovery) against making secure mode "on" by default.
my thinking is that if some geek is able to scan my ini file and steal my password, i should have tapped "Win+L" before i stepped away. so, i'm leaving secure mode off.
Stand alone EXE, known (minor) issue - OLD and fixed
This is old news and is fixed.
if you run the stand alone exe in it's own folder, on the very first run you will get an "index out of bounds (-1) error. this is minor and will only happen on the first run.
this doesn't affect the released beta 6 build.
Security Mode Bugfix
in the 20090226 build i added the new "secure mode" option.
if secure mode was checked, the typed password would be erased one second later effectively making mcp run like shit again, just like it was doing previously (see the "device password bug" section below).
if you checked "secure mode" and then typed in your password, one second later it would disappear from screen and no longer function properly. this was caused by the "pin check" timer (default is 1 second). this timer keeps an eye on things and keeps enumerating usb devices on the computer. it also checks the ini to see if you had ever saved a password for that pin and then retrieves whatever password you have saved in your ini.
problem: since secure mode was on, it saved "" (no password) to your ini - so at the next interval of the pin check, it returns "" (nothing) and puts it in the password field.
in this build (20090228) the new code won't check the ini for an updated password if "secure mode" is checked, so the password remains for the entire session.
logging/verbose
probably one thing i've always wanted to have in this beast was some way of knowing what mcp is doing (or what it thinks it is doing) while it runs. i thought someone suggested this, but a quick scan of my emails only returned one hit, and that was me rambling about ideas that i had for mcp. anyway, logging is here!
i'm out of room on the settings page, so i moved "file sizes" to the operating system management (osm) page.
there are two new checkboxes, logging and verbose logging. both are on by default. now if you email a bug report, consider sending your log file with the report. if you aren't using secure mode, your passwords are in this file. so please edit and remove any passwords before emailing the file to me. if you are using secure mode, **** (instead of the real password) is saved to the log file.
sample:
20090228-154405-393 application initilized
so: year/mo/dy-hr/mn/sc-milliseconds [event]
what's covered with logging?
this is the first build that includes it, so i'm sure i'm missing a ton. if i had to bet, i would say that i've got close to 90% of what i wanted to capture. i'm not sure how accurate all of it is yet, but it seems nice. if i had to bet on accuracy i would say it's probably close to 75%. give or take.
so, do a bunch of shit, then check the logs. if anything is glaring or missing, let me know.
what should be covered...
all aspects of the "java loader" page (including load/save/erase modules) (everything except the command prompt or readme buttons), all aspects of the "information" page, everything of importance on the "screen capture" page, and everything possible on the "operating system management" (osm) page. the osm page does even more info when verbose logging.
mcp startup, navigation (pages), external application directories (and launches), and closing are also covered.
screen size selector updated
i decided to add the phone model/name so things were a little easier to read than just 320x240.
doing this forced me to switch to screens2.mcp because all older versions of mcp will freak out.
format: model pretty_name (widthXheight), eg:
95xx Storm Widescreen (480x360)
if you edit screens2.mcp, things you should know... only use parenthesis to describe the resolution, and do that at the very end of the line. it has to be exactly as shown above, open parens, width, x, height, close parens - no spaces. anything before this is legit, just don't use parenthesis.
if you decide you want to manage this file yourself, you must uncheck the checkbox to the right of the "mcp files" button on the settings page. you must also never click this button. so, make backups of your own mcp files.
transparency added to application page icons
how did i not notice this before? anyway, they look much nicer now. kk thx bye.
os management "documents to go" changes/fixes
the documents to go option wasn't working right and may have zapped some alx's in the wild. sia (sorry in advance).
making matters worse, in any 4.7 os it wasn't working at all. *sigh*
to mimic the way crackmem handles it, mcp is supposed to rename DocumentsToGo.alx to DocumentsToGo.old. missed code on my end would sometimes not rename it back to .alx when re-checked, or later (possibly) deleted the file. all together now: shit! this is now fixed.
additionally, while that is the correct file name under os 4.5.x and 4.6.x, in 4.7.x (the storm) rim (hookers) decided it was high time to rename the file to DocumentsToGo47.alx. this is now detected accurately and renamed.
finally, i noticed that even after renaming that file, sometimes application loader would still offer variations of modules for documents to go. so, now mcp is renaming the alx file (as mentioned above and in line with crackmem) but it is also moving all modules related to documents to go to the removed files folder so they are all completely out of the way. so, the filter/pattern mentioned in modules.mcp is now "live". it's always been there, i just didn't start using it until now. i also updated the filter to include pdftogo in the module removal process, even though i know this has never been offered in an os (yet). always thinking about the future. la la la.
modules.mcp updated
old method:
[modules]
blackberry sample video=*medialoader_video*
preloaded wallpaper=*medialoader_240x???_*.cod;*medialoader_320x???_*.cod;*medialoader_360x???_*.cod;*medialoader_backgrounds_???x???_*.cod
etc...new method:
; main modules
[blackberry sample video]
pattern=*medialoader_video*[preloaded wallpaper]
pattern=*medialoader_240x???_*.cod;*medialoader_320x???_*.cod;*medialoader_360x???_*.cod;*medialoader_backgrounds_???x???_*.codwtf? why? read next :)
operating system management (osm) page updates
i focused a ton on this page. i've split up the top section so things are easier to see and manage.
added new buttons at the bottom, read next...
added five new "power user" buttons to the os management page
all on, most on, medium, most off, all off. these buttons affect EVERY section of the os modules. i got sick of having to switch between four different section views, and then manually click all of the "off" or "on" buttons. now it's a one-out operation. i personally use the "most off" button but i might code it to include more items as time goes on. right now it cuts things pretty lean. depending on person's phone i am working on, i may optionally go back in and turn on vzw navigator, facebook, etc.
heh, news flash! you can now edit the three middle buttons!warning: if you decide you want to manage these buttons yourself, you must uncheck the checkbox to the right of the "mcp files" button on the settings page. you must also never click this button. so, make backups of your own mcp files.
ok, so on to the guts...
there is a small button at the top left corner of this new section that opens modules.mcp with notepad. if you use this button while running mcp, you can edit the file... as soon as you close notepad mcp will update - so you can see your changes "live".
filename: xfiles\modules.mcp
the three middle buttons on the are controlled here:
; preset button properties[preset1]
caption=Most On
hint=Clicking this button will turn on most of the modules in ALL of the module sections for the currently selected OS. Manually check/uncheck any remaining modules to suit your needs.[preset2]
caption=Medium
hint=Clicking this button will turn on a medium amount of modules in ALL of the module sections for the currently selected OS. Manually check/uncheck any remaining modules to suit your needs.[preset3]
caption=Most Off
hint=Clicking this button will turn off most of the modules in ALL of the module sections for the currently selected OS. Manually check/uncheck any remaining modules to suit your needs.these are just defaults, you can modify them to do whatever you want.
now, how to actually control what these buttons do...
in each [section] of the modules.mcp file there is a pattern and three filters, eg:
[blackberry sample video]
pattern=*medialoader_video*
preset1=1
preset2=0
preset3=0preset1=1 tells mcp that if you click the button the left of center that "blackberry sample video" should be checked (1).
preset2=0 and preset3=0 tells mcp not to check that option if you click the center button or the button just to the right of center.
so now you can setup "profiles" that offer a one-click solution to managing all of the modules in your os. this is insane. mcp just went to a one-click solution to manage the os!
crackmem: start, select os, confirm os, click all 18 items one at a time, click rename docs2go, click do it, click "execute selections", click "ok" to "action completed", click "wipe device" and then still enter a password. which device? no pin selector. anyway... that's 28 clicks. my hand is sore.
mcp: osm page, select os, click a preset, confirm, install, continue. you are 100% optimized to your own (demanding, almost diva) specifications and installing your os. oh, and to the correct device/pin. :)
7 clicks, max.
New Comparisons
Ccm = crackmem, m1 = mcp sane, m2 = mcp insane):
8320-v4.5.0.124_P2.7.0.92a.htm and 8320-v4.5.0.124_P2.7.0.92b.htm
cm 15.1 mb (15,853,494 bytes)
m1 19.3 mb (20,318,078 bytes)
m2 24.2 mb (25,462,484 bytes)9000-v4.6.0.241_P4.0.0.202a.htm and 9000-v4.6.0.241_P4.0.0.202b.htm
cm 24.7 mb (25,999,250 bytes)
m1 29.7 mb (31,222,642 bytes)
m2 35.4 mb (37,135,254 bytes)9530-v4.7.0.109_P4.0.0.136a.htm and 9530-v4.7.0.109_P4.0.0.136b.htm
cm 23.9 mb (25,078,042 bytes)
m1 27.2 mb (28,625,452 bytes)
m2 32.2 mb (33,821,192 bytes)
--------
20090226
--------
mcp files bug, partial fix
20090225 kept spamming this error: list index out of bounds (-1). this is fixed in 20090226.
the full and portableapps installers should work fine now. the stand alone exe is hurting, but after all of the errors die down you can restart mcp and it should work normally. i will get this fixed soon, but since there are such a small number of stand alone downloads this just isn't on my priorities list. besides, the fixes that are in place now took most of the day. i'm sick of looking at the code.
the mcp files checkbox can be enabled again and is still "on" by default for clean installations.
i've seen a few errors, if you see any, just uncheck this option.
paypal button fixed
wasn't directing to the correct web page.
misc changes
on a clean installation, the default free flash memory is now 5mb (was 1mb).
on a clean installation, the pin check interval is now 1 second (was 3 seconds).
--------
20090225
--------
quick note...
for anyone out there with strict "it" policies (where a device password is the rule, not the exception), this build is for you.
screenshots
screenshots for the last two builds and the os help screen are in the documentation folder of the mesh.
major bug fix / device password bug
mcp was virtually 100% dysfunctional for anyone that had a password protected device but who didn't actually provide the device password in the "extra" edit field below the device pin selector.
to help make this field more obvious, i added a new label above the password field that reads: "password (if any)". i'm sure many users had no idea what that was even used for.
anyway, this bug is fixed and now mcp performs (almost) flawlessly - even if no password is included.
to read more about this fix, see the "device password bug" below. sorry, it was just too damned long.
secure mode
this version offers a new security feature called "secure mode". this is a new option (check box on the settings page) that (when checked) will tell mcp not to save device passwords to the ini file. this option also (when checked) will automatically clear any existing passwords for the currently connected device when mcp exits.
this option is defaulted to unchecked because there are already so many mcp users that are used to having their device passwords memorized.
os info/warnings removed
there was an option in the last build that allowed the user to disable the final warning and helper page when installing an os.
i still see a possible need to disable that screen, but it would only be for advanced users...
...and, as such, editing an ini file isn't advanced at all. so, for any enthusiasts out there that really really really need to kill this helper page, close mcp and edit the ini file to something like this:
[settings]
oswarn=0
after saving this and then running mcp, you won't see the os helper page anymore. be clear on this though... there will be NO final warning whatsoever. when you click the "install os" button, mcp will brick your phone and load application loader to install the os. no warnings.
left panel updated
looks cleaner, icon spacing fixed, updated crackutil icon (looks better imo), paypal button is now at the top.
updated os install "help" page:
from:
Title: (None)
Body:
"This is a new page designed to help you understand the next steps. Please read this information carefully.
Do NOT click the "Continue" button until you see a "507" icon on your device similar to one of these images:"
to:
Title: Before doing anything else, read ALL of this page carefully.
Body:
"When you click the "Continue" button (below), your phone will be erased and will then reboot. At the same time, MCP will hide and Application Loader Wizard (ALW) will then start.
You must wait to do anything in ALW until AFTER your device boots up and shows a "507" icon like one of these images:"
mcp main window didn't hide correctly during os install, fixed
mcp was not hiding correctly during the os installation. most of the time you would still the mcp button in the windows toolbar. clicking the button didn't do anything. anyway, mcp is supposed to completely hide (including the tray icon) until the os is installed - technically, when application loader wizard is closed. this is now fixed.
screen capture area updated
the main area where the screenshot is displayed now automatically re-centers itself vertically and horizontally when you resize the mcp window (by dragging the corners/edges).
previously you had to resize the window and then you had to switch resolutions again to get that area to relocated itself.
screenshot monkey business
one user was having images saved to their d:\windows\system32 folder. i've tested 10 different folders and can't duplicate this problem. need more info.
vista business edition
one user had to switch his mcp shortcut to "xp compatability mode" to get the main pages and icons to work.
this is similar to the notes for windows 7. weird.
device password bug
preface: in the beginning, mcp was 100% functional, regardless of an incorrect or missing device password.
for a very long time now, possibly even in the "stable" 0.9.1.1, mcp was designed to automatically take a screenshot of the device every time mcp was started. this was implemented very close to the birth of mcp, probably right after i created the screen capture page. my readme/changelog makes no mention of this feature, so i'm not sure exactly when it was rolled out.
anyway, over the last few months i've heard reports that mcp seemed unresponsive at times and would not close properly. these users were left with no option to kill mcp.exe in the task manager. i had no idea what was causing it and i had never seen this problem.
last week a user described even more problems in addition to these... when he hovered over items the hints weren't working. during a few discussions i mentioned that i had a device password in the field and everything was working fine for me. he indicated that he didn't know that was what the field was used for. this finally got me to start testing mcp more thoroughly with a device that was password protected, but without a password typed in to mcp.
the results... horrible. it worked exactly as it was described. keep in mind, i had really only received details from two people, so i didn't think this was a major issue. but now that i could see how shitty it was working i quickly changed my mind.
i spent roughly 5 to 6 hours trying to code an intercept to see if i could (or couldn't) return device data of any kind, in which case i could act on that one way or the other. but something kept causing an instance of javaloaderxxx.exe that wouldn't die. i was pulling my hair out because i couldn't think of any javaloader commands that i would be running when mcp starts.
then it hit me. the automatic screen capture.
i disabled that "feature" and instantly mcp was working 100% again - the way i remember it in the beginning.
ewps, my bad.
also, to help make the mcp password field more obvious, i added a new label above the field that reads: "password (if any)". i'm sure many users had no idea what that was even used for.
so finally, it's back to normal. no lockups or lag, no crashes, no more having to kill mcp.exe/javaloaderxxx.exe/cmd.exe processes in task manager... and the icons always show the helpful hints when you mouse over.
anyway, to everyone who suffered with this (shit) for so long, my appologies. it's fixed! enjoy!
--------
20090215
--------
>>> new note (fu it's late :p~)...
secondary dialogs are now all the same color as the main mcp program. so, if you set the main window to have a red background, all of the other dialogs will appear in this color as well.
this only affects dialogs that i wrote, like the license agreement, update notices, "waiting for x seconds" for an operation, etc. it doesn't have any affect on normal windows messages.
daily build and new installer packages are available.
what are the htm files in the dropbox?
see "notes" section below.
possible bug
java loader -> save modules. one person is using d:\ for their windows install and is attempting to save their modules to c:\blackberry\modules (and this path is valid for them), but they submitted screenshots showing debug windows and at the bottom it showed d:\windows\system32 in the command prompt. normally this should always show the correct modules path. anyway, his modules were being saved, but they were going to his system32 folder. i don't know if it's a vista os or not. anyway, i need anyone with a non-standard drive for their os to see if they are having similar issues - and report back asap. i will also recheck this code in the next build.
input languages
for now i am assuming that the problems mentioned earlier were from an os (exe) that was english only. i am still trying to verify this with one tester, but until i hear back i am going with this assumption. for that reason, notes regarding input languages have been squelched for the time being.
removed "one instance".
i got tired of never being able to run a second instance if i really needed to.
sanity check
insane. i installed an os with all options off on the os page.
first boot, free memory: 33,547,156 bytes
i've never seen it that high, ever.
sane: on the os page... main modules all off, core all on except bb maps, mds, bb help, on the "more/games" page: all off, im page: all off except bbm, vendor themes: all off except tmo usa, dimension/precision themes: all dimension on (no precision themes available.
not too shabby: 29,412,744 bytes
notes
here is what i've noticed so far in comparison to crackmem 3.4:
crackmem doesn't remove:
net_rim_bb_medialoader_100_five_icon_library.cod
blackberry messenger
brickbreaker
tmo china theme
totalling 24 items, 7.66mb
no dimension themes can be removed
totalling 4 items, 2.57mb
no core modules can be removed (attachment service, bb maps, mds, etc).
totalling 52 items, 3.43mb
i will include two comparison htm files in the dropbox.
updated settings page warning icon
finally transparent.
completely revamped the os installation process
first of all, i always hated how mcp would just stay on screen for 30 seconds until my curve rebooted. truthfully, most of the time i hit the 507 icon inside of 20 seconds. it got worse when i started playing with storms because they can take 60-90 seconds before they finally boot up to the 507 icon. i kept increasing the time out value, but that started making less sense because people with older devices have to wait even longer because of the slow boot time of the storm. at last check i had this up to 45 seconds, and the last time i booted a storm to a 507 it still took an additional 35 seconds. i was not about to add 35 more seconds and slow everyone down even more.
instead, i decided to completely revamp the warning message, and i think everyone will like the end result. it is very informative, and the best part about it is that as soon as you dismiss the message, mcp hides instantly and application loader wizard starts up. you still have to wait for the 507, but at least now you can kick right in the second your phone comes up instead of waiting for a full minute (or longer).
additionally, i wanted to take into consideration people who use mcp exclusively to install multiple os's to multiple devices every day. i hate fully interactive gui's... and if i had to use mcp all the time, i would want some way of NOT showing this intermediary message asking if i am sure i want to continue. this option is NOT for newbies, but you can disable the final os warning message now in settings. this way, once you click "install" on the os screen, the damage is done and the os will start going. no more waiting.
i want to include a screenshot in the dropbox so bad, but i want everyone to see it on their own terms on the first go around :)
added switches
mcp.exe /123 - this will show an otherwise hidden button at the top of the os management page... it's just a test button so i could keep going back to view the new messages. if you click ok/cancel, whatever - these won't actually do anything. just for show.
mcp.exe /oswarn - despite the settings page, this will always force the new os warning page to display. one exception: after running mcp with this option, if you later click this option until it is UNchecked on the settings page, no os warning page will be displayed.
mcp.exe /nooswarn - opposite of above. despite the settings page, this will always force the new os warning page to NOT display. one exception: after running mcp with this option, if you later click this option until it is CHECKED on the settings page, the os warning page WILL be displayed.
note from "20090209a": changed error message during os installation...
the new message i mentioned there was only working for the factory reset button, grr. now it does the new message for "handheld" wipe and "install os".
os management
tons of fixes, improvements here. to name a few: the hint for the panel changer for vendor claimed there were three pages when there are really only two, hints in general weren't so great, tab orders were a disaster, etc.
no jvm option removed
the "no jvm" option is gone again, defaulting to "always on". if you had it unchecked... close mcp, edit your mcp.ini file and set nojvm=1 or just delete that line, save, exit, restart mcp.
added "core modules" (experimental) to os management page
you now have the ability to save even more space during os installation. it's experimental, but i tested an os install with all of these unchecked and can vouche for the fact that it does work.
attachment service=net_rim_bb_docview*;net_rim_bb_browser_plugin_docview*;net_rim_bb_docviewimage*
blackberry maps=net_rim_bb_lbs*
mds runtime=com_bb_mds*;net_rim_mds*
blackberry smime=net_rim_bb_smime*;net_rim_bb_smime_lib*
dod root certificates=net_rim_dodrootcerts*
help=net_rim_bb_help*
memopad=net_rim_bb_memo_app*
password keeper=net_rim_bb_passwordkeeper*
tasks=net_rim_bb_task_app*
added visual voice mail to "more modules" page
visual voice mail=net_rim_bb_vvm*.cod
changed flickr / facebook
from:
flickr=net_rim_bb_flickr.cod
facebook=net_rim_bb_facebook.cod
to:
flickr=net_rim_bb_flickr_*.cod
facebook=net_rim_bb_facebook_*.cod
-----------------
20090209 packages
-----------------
2/9/09 - brand new full, portable and stand-alone versions are now available in the packages/20090209 folder.
20090209b.exe is the same as the stand-alone version.
cleaned up xfiles (mcp files) folder.
read sections 20090209b and 20090209a (below) for all of the changes in this build.
---------
20090209b
---------
2/10/09 update: in the dropbox, "screenshots/control panel - windows xp.png" - this is what i am seeing at work, so the updated .cpl worked in xp. the note below about the updated control panel (.cpl file) not updating the icon... i am still seeing the old icon at home, but it might be some stupid unknown microsoft icon cache shit, or temporary files. i will check again tonight. is everyone's control panel icon working? is the control panel applet visible/working in vista?
internal version set back to "915" so when beta 6 is released everyone will get an update notice.
title bar now shows the daily build info, eg: 20090209b.
control panel (.cpl file) updated to include the new mcp icon, which can be seen if you open it with resource hacker. for some reason the icon in my control panel still shows the old one, even after several reboots. anyone out there on vista? any vista users seeing the new or old icon? is anyone seeing the new icon? is anyone reading this? :p~
gray.bmp updated (left side in quite mode), 50/50/50, much darker ;)
mcp.deu updated to avoid crashing german/german computers.
mcp's quiet mode didn't suppress the images on the new language credits page, fixed.
---------
20090209a
---------
the new "no jvm" option (os management page) now defaults to "on" or "checked" by default. this is the original (intended) behavior of mcp. in the build from 20090203 (releases a thru c), this option was off by default. starting with 20090209, on a default install or first run (stand alone), this option is now "on" by default.
changed the "no jvm" control's hint:
old: Most users recommend using this "when all else fails" but I suspect that it might be causing the device not to show input languages after an OS install. If MCP has been working fine, check this option.
new: Most users recommend using /nojvm when installing operating systems. Leave this checked if you aren't sure. Unchecking this option may cause the OS installation to fail.
changed error message during os installation if device wasn't detected or if a pin wasn't selected:
old title: No Device Detected
old message: No device was detected or selected. Unable to continue.
new title: Device not detected -OR- PIN Not Selected
new message: Your device was either not detected or the PIN was not selected. Your device must be connected to the PC and you must select a valid Device PIN using the drop down selector near the bottom left side of MCP. Please click OK now, then select your Device PIN.
changed the informational message after os installation to let the user know they may still need to use desktop manager and/or application loader to manually re-install any input languages and/or third party applications that might be missing post-install. to be perfectly clear, i am currently NOT sure that this will fix missing input languages or third party apps... i am waiting to hear back from one of the mcp beta testers on the status of this issue. here is the change to the information message:
title: Operation Complete
message: The Application Loader process has ended (either successfully or cancelled). If an operating system was installed it is now safe to disconnect your device. The first boot after an OS installation may take up to 30 minutes.
new addition: Notice for Input Languages and/or Third Party Applications: After your device reboots, you may need to run BlackBerry Desktop Manager and then run Application Loader to re-install any missing Input Languages and/or Third Party Applications to you device.
Added MCP Facebook Group
http://www.facebook.com/group.php?gid=53714721178
Added MCP Facebook Discussion Board
http://www.facebook.com/board.php?uid=53714721178
MCP User Forums
http://sodpit.com/e107_plugins/forum/forum_viewforum.php?4
--------
20090203
--------
build "c"
ok, i'm retarded. the new "no jvm" option is now disabled if no os is selected and enabled when an os is selected, just like the rest of the controls on that page. sorry, it just looked stupid.
build "b"
"a" didn't have a digital signature. "b" is fixed. :p~
build "a"
added "no jvm" option to os management page. if checked, /nojvm is passed to rim application loader during os installation. if unchecked, /nojvm is not sent. this was added to see if it fixes a problem where after an os is installed onto a device the end user can't change their input language in options. this option is not experimental at all. if mcp has been working fine all along, go ahead and check this option to make it work the same way it always has for you. if you are having a problem with input languages, try installing your os without this option checked. off by default for now... but mcp should remember how you had this checked/unchecked between sessions.
increased os install / device reboot timeout from 30 seconds to 40 seconds to accomodate the slow ass boot times for the 95xx (storm-ish) devices out there. even this may not be long enough.
tried to make the "mcp files" and "languages" buttons a little smaller on the settings page. i hate them. *sigh*
---------
20090201b
---------
updated exe, url and website icons to mcp4.ico. thanks antishane!
added all icons (so far) to dropbox. actually there was one prior to the first one i have here, but it was 32x32 and it was prior to any public releases, so no need to include it.
added a "packages" folder to the mcp dropbox. this folder will occasionally contain the full installers and stand alone versions of mcp for any given day in varying working forms. mileage may vary. as can be seen, the installers are now multi-language (unicode) capable.
added today's packages to a sub-folder named "20090201". enjoy! :)
created an "archives" folder in the dropbox and moved all old files to this folder. as things become outdated i will put them all in this folder just to get them out of the way.
dropbox: added "icons" and "screenshots" folders. screenshots is where you can upload or view images that may show problems with mcp that i am working on. if you have any icons you can share them in the icons folder, but they need to be nice looking and scalable from 16x16 to 256x256.
by the way, the mcp dropbox is "live" meaning that you only want to copy files and folders to your pc. don't double click them, they will run, and it will create the mcp folder/file structure out to everyone's dropbox copy. don't delete them... they will be deleted for everyone. i have a local folder structure that i keep current, so it won't be that major, but try to be careful. and yes, imo dropbox should have better sharing controls, but other than that i love the way this is working.
---------
20090201a
---------
added languages button to settings page, i will make it look better later.
new icon, thanks shane! added to dropbox.
new install (or stand alone) changes:
initial ini on a new install is now virtually empty.
tray icon is enabled, but minimize to tray is no longer the default.
pin checking is defaulted to 3 to minimize latency in mcp when moving the window.
any language files are downloaded on the first run if they don't exist. currently there is only one file, mcp.deu.
cfp.mcp and languages.mcp were not being downloaded with the other mcp files. fixed.
reminder to self: verify that screens.mcp is updating live.
other shit i can't remember.
--------
20090131
--------
the screen capture page works differently now. the bottom controls "dock" to the bottom of the screen. if you click and drag the bottom border of the mcp window downward, you will see these controls move with it. you can also stretch the top of the window upward - and the control along the bottom will stay put. this was done to accomodate a new screen resolution for the storm. in landscape mode, the storm is 480x320... but in portrait mode it is 320x480. if a user manually added 320x480, the visual area of the screen capture would be off the screen at the top of the mcp window, and it would be covered by the group boxes at the bottom of the mcp window. now you can stretch mcp taller (or wider) to accomodate custom resolutions. with this change, you are only limited by your screen resolution. this is the only page in mcp that acts this way... so the help gutters might look a little silly (not bottom docked) on the other pages... and i'm not changing those pages, too much bullshit. i should mention... the actual screenshot that was saved to file, no matter how stupid it looked in mcp, was always correct. this is purely a visual fix.
this build fixes this problem report (1/1/09):
sonydude23: another thing i notice is that the screen capture window expands for the storm (480x320), it hides behind the capture/save and screenshot settings.
@sonydude23: i am posting a new build in the dropbox that should fix this problem. let me know.
http://forums.crackberry.com/f35/blackberry-master-control-90452/index2.html
i added screens.mcp to the dropbox, and i will upload it to the site soon (so mcp will download it automatically later). this file includes the new portrait storm resolution (320x480) mentioned above.
the mcp paypal button now prompts the user with more information and asks them if they want to continue. i can't do this on the website, but all of the information is already there.
i am changing donations from $10 to $20. this change will take effect sometime in february, i haven't decided on an exact date.
updated mcp.deu for german language.
---------
20090126b
---------
a quick note about windows vista/7 user account control elevation. for now i have sided with the "requireAdministrator" method which only asks one time to elevate mcp to "admin". the other method, "asInvoker" is more complicated at the code level and would cause major disruptions when using mcp because for each operation that requires elevation, mcp would yeild to another uac prompt. this could be particularly horrible on the os management page where entire sections of modules can be moved (turned on or off). each file move operation would stop at a uac prompt. i will look into the "asInvoker" method more over time, but if this really IS how it's supposed to work, i can't imagine anyone using mcp for very long. "requireAdministrator" stops only once when mcp is launched and asks the user to confirm process elevation. this adds slightly to the load time of mcp because technically what happens is vista starts a second instance of mcp that then runs for the duration as an adminisrator.
vista/7 was showing two taskbar buttons every time mcp was executed. this was caused after beta 5 when i was trying to add a more native or "nice" feel to mcp when running under vista. basically, i was trying to make the minimize/restore animation work right. the code i added made it look fantastic, but it created two taskbar buttons each time, and in windows 7 you could actually see an empty (100% transparent) window the size of the mcp window, but the only thing you could see in the window was a red x icon and the mcp icon itself. this code has been commented out for now until i find a better solution. this annoyed the hell out of me because i spent 5+ hours ripping out custom controls unsure of the root cause. fixed.
so, animations won't work, but everything else does. you can still see the mcp "preview" window when you hover over the taskbar button, and uac seems to be working well. see the notes below about adding the ascertia certificate as a trusted root authority if you want to see the uac window work correctly (program and author information).
for the first time, mcp (including stand alone) will download javaloader470.exe and javaloader470.txt if they don't exist in the default bin directory. my thinking is that the full and portable versions include this exe/txt combo, and the stand alone won't work right until the end user (somehow magically they had to know to do this) clicks the red "x" icon on the settings page. too vague, so i have automated this process.
compressed exe again, didn't help the vista/7 problems.
---------
20090126a
---------
uncompressed exe - this might correct the problem for vista/7 users where two taskbar buttons were appearing.
--------
20090125
--------
added mcp.deu for german testing
added new icon, up to 256x256, looks better on vista/7
mcp exe digital signature is now added each time the mcp project is executed or built in delphi 2009
license page - close button disabled until "i agree" is checked
license page - x button, system icon removed
license page - only shows up one time per launch, was showing up all the time if check marks weren't checked
vendor.xml... the thorn in my effin side. if this file exists at mcp startup or if exists at time mcp's "install os" button is clicked, this file will be "automagically" renamed to yyyymmdd-hhmmss-zzz-vendor.old where zzz is a 3 place millisecond value. this was not handled properly in the previous betas, and before that it was handled based on the way crackmem handles it (which wasn't great). os's should install correctly now. so, if you want to maintain your vendor.xml files and be able to tell which xml came with which os, you should rename your vendor.xml files at the time you install the os to the pc, immediately, to something like maybe the name of the os you installed. otherwise, the next time you run mcp i have no choice but to rename it to something else.
--------
20090124
--------
uac and xp manifests merged, xp problems fixed \o/
-----------------------------
other changes since beta 5...
-----------------------------
uac was added, destroyed xp themes. admin elevation preferred, only asks once.
All EXE's, DLL's (including language files), CPL's are now digitally signed
No, I'm not paying $500 per year for this shit... so, I'm being cheap and using a testing certificate only.
Note: If you complete the following steps you will install a "Root Authority" certificate on your computer which will establish a "trust" with ascertia.com. Only do this if you want to trust them. For the certificate (mentioned above) to look right in your system, install the Ascertia Root CA certificate using this link (must use Internet Explorer):
http://www.ascertia.com/OnlineCA/cacert.aspx?linkID=40
This certificate must be installed or moved to Custom Store -> Trusted Root Authorities.
After that, all of the main files will show a digital certificate with my information. This information will also be clearly seen when launching MCP against Windows Vista/7 UAC.
Changed internet connectivity checking methodology
In the past I have always tested internet connectivity by attempting to download a file, then by checking the size and content of the downloaded file. Now I am using a new method that actually tests activity instead of downloading a file. I forget what I used because these notes are 2 months old. I will try to remember to locate the info and put it here later.
Missing message for handheld wipe if "messages" was checked, fixed
If you loaded: "Java Loader -> Handheld Wipe" and if "Complete Wipe" was checked and "Settings -> Messages" was checked, the message wouldn't display. Fixed.
External application paths can be updated "live" without restarting MCP
In old releases of MCP, if the path to any of the exe's were updated, the main icons wouldn't work until the next launch of MCP. All icons were affected except for Application Loader. This is now fixed. You can manually update the paths or use the browse buttons. The main mcp icons will work without restarting mcp.
The JL_Cmder icon wasn't working at all in Beta 5, fixed.
This went unnoticed in the Beta 5 release but is now fixed.
Command Prompt icons/shortcuts/buttons fixed
Command prompts were not working as I had mentioned in the Beta 5 release. This is now fixed. This is also how I fixed JL_Cmder (above).
Added a launch icon for Pete6's CrackUtil
I had heard this utility was coming awhile back but when I checked it wasn't available and I had forgotten about it since. This is a GUI that does the same things JL_Cmder can do with some additional abilities.
Moved the CFP command line launcher icon/shortcut to the area 52 page
Self explanitory.
0.9.2.0 Beta 5 (Build 0.9.1.5) - December 29, 2008
Introduction to 0.9.2.0 Beta 5
It's been a crazy month.
I normally don't offer detailed explanations into the "behind the scenes" stuff releated to software development, but there have been some major changes recently and I thought I would share. If you don't want to read this part, tap the "Page Down" key once or twice or click here to jump ahead to the next topic.
Since the beginning of MCP development I have been strongly considering making an enormous change from Delphi 6 Personal (2001) to Delphi 2009 (v12). Delphi 6 Personal was decent for years and got the job done, but it is very old and there are just so many annoyances with it. One example is that if I rename a control in the Delphi 6 IDE, every time that control is referenced in code (which could literally be hundreds of times) I would have to manually change all references. Not only that, but being eight full years behind with an IDE left a lot to be desired. Delphi 6 was released prior to Windows XP, so there was no native Windows XP support. And now with Windows Vista in the wild... I just really needed to move on.
Around the time that MCP 0.9.2.0 Beta 3 was released I was approached by Klaus Düll who inquired about translating MCP to German and Spanish. I have attempted to translate some Delphi applications in the past, all attempts were met with failure. I found a couple of tools that worked, but each time I compiled a new mcp.exe the entire application would have to be translated manually, from the beginning each time. Finally, one other aspect of localization was that Delphi 6 didn't support unicode (Delphi 2009 is the first version ever that supports unicode).
Anyway, these two major developments caused me to spend weeks testing different things. In the end, I decided to go with Delphi 2009 and the localization tools included with Delphi might end up being the best solution since the translators can see the effects of their changes while they work, and they don't have to start over from scratch each time I build a new exe.
So, the first 3 weeks of the last month were spent testing and thinking about these new changes. After that I made the switch and then spent the following full week ripping out old controls that were not compatible with Delphi 2009 and trying to get the new controls to act and behave similarly to the old controls so there wouldn't be a major shock to MCP users. For the first week it was mostly regret. I had major problems, and some controls that I have used for all of my applications (ABF Components) were no longer functional. In the end I think it is slowly getting better though. There are a few minor annoyances currently... when you launch MCP, the main window doesn't receive focus correctly... and the "command line" icons/buttons aren't working. These will be fixed soon. Oh, and the GIF animations are busted for the time being.
The last week has been spent updating MCP and also researching new projects such as RIM MFI MultiLoader, RIM Radio Lab Tool and RIM Command-Line Programmer (CFP)... and trying to determine if there was any way I could incorportate any of the functionality into MCP. All of these tools are "leaked" software, so there is no way I can include them with MCP. However, I did add launch shortcuts/icons for RIM MFI MultiLoader and RIM Radio Lab Tool and I built a GUI in MCP that can interface with CFP... I just can't include the executables for these leaked tools - you will have to locate them manually, online. Try Google.
MCP Ported from Delphi 6 Personal to Delphi 2009 (v12)
There are several advantages (and some setbacks) to this conversion. This page will show the information about these changes.
MCP now includes full Unicode (UTF-16) Support
Every aspect of MCP is now Unicode enabled, including the MCP INI file and the license agreement. This new capability paves the way for Chinese and Japanese translations (mentioned in the next section).
Some of the ramifcations are currently unknown. For example: what if cod file names have unicode characters? I am almost certain that such files would never work with Java Loader as the devices might support up to UTF-7... but I'm assuming it won't even allow that. My real guess for filenames would be "ASCII".
MCP is now Multi-Language Capable
If you would like to translate MCP to your language, email me so we can start a discussion. You will receive full credit for your work.
I personally will not translate MCP to any other language. Anyone serious about translations is welcome to email me to begin this process.
Klaus Düll is currently translating 0.9.2.0 Beta 5 to German. After that he will possibly translate it to Spanish. When these translations are ready I will add links to download the .DEU and .ESP files. Any computer running the German or Spansih "regional settings" in Windows will then see MCP in their native language if the DEU/ESP files are in the same folder as the EXE.
There is still much work to do in this area. I want MCP to offer a help page that points to the page of choice for anyone willing to translate. I want them to get full credit for their hard work.
Until then, here is Klaus' information:
Die deutsche Version des Programmes wird Ihnen zur Verfügung gestellt von den BlackBerry-Experten von Pretioso. Wenn Ihnen das Programm gefällt, vergessen Sie bitte nicht für den Programmierer zu spenden.
Pretioso – Die Problemlöser
www.pretioso.com / mcp@pretioso.com
Link for the German program and helpsite:
Just In!!!
Dec 31, 2008...
Jacky, the owner of BerryTimes.cn, just emailed me regarding translating MCP to Chinese... so hopefully soon we will have MCP in your language!
Java Loader "Load Modules" editor region is now drag & drop capable
This was probably my biggest annoyance with Delphi 6 Personal. The RichEdit control was just "dumb" when it came to content dropped into it from Windows. I finally got this working... and it was only made possible with Delphi 2009. Now you can drag & drop files right into the editor. For this reason, the old "drop box" control has been removed.
Removed all ABF Controls
Due to incompatibilities with Delphi 2009, all ABF Controls had to be removed. Sadly, this includes all of the old controls that could be made "flat". It also included the "one instance" control and the original system tray icon.
ABF informed me that they will be releasing version of ABF Controls that will be compatible with Delphi 2009 in the first quarter of 2009. I might add the controls back then.
Added Jedi CL, VCL and LMD Tools
With the loss of ABF Controls I decided to try some tools I've been wanting to play with for a long time. The new system tray icon is an LMD tool, as is the new implementation of "one instance". For the most part there isn't much change. The "one instance" checkbox (Settings page) doesn't work currently, I will try to find a workaround.
System Tray icon updated
Now offers the ability to "Close to Tray" which will prevent MCP from closing easily. You can still right click the icon to "Exit" MCP.
CreateProcess > WinExec
After years of resisting the push, I have finally stopped using the old "WinExec" command. While it has been recommended since Windows XP was released (possibly earlier), I stuck with WinExec until the bitter end. Sadly, there is a bug in Delphi 2009 that won't allow WinExec to launch anything if it contains a variable which requires it being converted to PAnsiChar (formerly PChar). Anyway, this move was required. Technical note, no change to end users.
MCP INI: unicode=true/false
If mcp.ini exists and unicode is not "true", mcp.ini is converted to Unicode (UTF-16).
If mcp.ini is brand new or doesn't exist it will be created as Unicode (UTF-16)
Registration fields now support Unicode
On the Settings page, all of the registration fields now fully support unicode characters.
New MCP Registration Keys Required
One down side to all of the new unicode support... the old MCP Registration Keys will no longer work. I will email each user a new key over the next week.
MCP now uses Java Loader 4.7.0
On December 24th, RIM released BlackBerry JDE 4.7.0 "gold". The newest possible javaloader.exe from that release is now included in MCP.
Added RIM Command-Line Programmer (CFP) Command Line Interface (CLI) Page
Update 12/31/08.
This is actually one of my favorite new features in MCP, but my original post in the readme left a lot to the imagination:
Added CFP CLI page, highly experimental.
So, here is some more information on this subject...
RIM Command-Line Programmer (CFP) is an executable (cfp.exe / loader.exe) that I discovered on a few sites when I was learning how to unlock my T-Mobile GSM 8320. This tool has the ability to interface with every area of the device, including the ability to load a factory bootrom.
My unlock success was reached in 4 phases: CFP to load a factory bootrom, MFI MultiLoader's "Clear MEP" button (via the hidden menu, Ctrl+Alt+Shift+F12), CFP to load my current OS's SFI file, and finally CFP to re-enable mass media support on the device. Total time: 3 minutes (not including download and setup time).
While MPC can't do all of this for you automatically, the tools are out there that can, you just have to do a little reading and experimenting.
The new GUI in MCP for CFP is pretty much 100% operational. It works similar to the GUI for Java Loader on the Area 51 page in that while it does present a method of executing all possible commands, there are no specific controls. For example, you can use the Java Loader GUI to take a screenshot relatively easily... but in the end, where did it save? What does it look like? The Screen Capture page is an entire wrapper for just that one feature of Java Loader.
Anyway, my intent was to provide a graphical way to manipulate CFP with the quickest possible turnaround. This is it. I do not have any plans currently to develop any new pages in MCP that are dedicated to different aspects of CFP, but I might if there is future demand for it.
Added RIM MFI MultiLoader Launch Icon
RIM MFI MultiLoader is "leaked" software made by Research In Motion, Ltd. I cannot offer any links for it, or support for it. I added a new icon to launch it, but you have to locate it and install it on your own.
The path to mml.exe can be adjusted inside MCP on the External Applications page.
[apps]
mfi=c:\mml\bin\mml.exe
Added RIM Radio Lab Tool Launch Icon
RIM Radio Lab Tool is "leaked" software made by Research In Motion, Ltd. I cannot offer any links for it, or support for it. I added a new icon to launch it, but you have to locate it and install it on your own.
The path to radiolabtool.exe cannot be adjusted inside MCP. Instead, manually edit the MCP INI, eg:
[apps]
rlt=c:\bin\radiolabtool.exe
Added RIM CFP Launch Icon (not working)
As mentioned earlier, I can't simply open a command prompt in Delphi 2009. This will be fixed soon.
Downloads page links updated
All download links are now 100% current.
Added 5 command line arguments
/wtf - shows more detailed information of os paths, debugging only
/lng - deprecated. this was the original multi-language control, maybe be revived.
/portable - simulates portable mode, won't write key to registry
/meh - development only, can be used to override the version/updates page. i use this for testing only.
/overdrive - shows the "details" page for java loader
Preloaded Wallpaper file pattern changed
From: *medialoader_240x???_b.cod; *medialoader_320x???_b.cod; *medialoader_backgrounds_???x???_b.cod
To: *medialoader_240x???_*.cod; *medialoader_320x???_*.cod; *medialoader_360x???_*.cod; *medialoader_backgrounds_???x???_*.cod
Preloaded Music file pattern changed
From: *medialoader_music*
To: *medialoader_music*; vodafonemusic.cod
MCP Registration key not saved if portable
If MCP is running as a PortableApp, the MCP Registration information is not saved to the Registry
In previous versions of MCP, the registration key was saved every time. In PortableApps mode we don't want to leave traces on the PC used by the flash drive.
Rearranged MCP Icons
I'm not entirely happy with the new layout, but I needed more room. The PayPal button really looks squeezed. Well, I don't have to look at it, I registered. :)
Added MCP License Agreement Window
Self explanitory.
Here is a screenshot of the new MCP License Agreement Window.
Added MCP Upgrade Window
I added a new form to replace the old informational application messagebox. This new page has more details and will include change/information about new releases.
Here is a screenshot of the new MCP Upgrade Window.
MCP Upgrade system fixed
Update 12/31/08.
In 0920B3 I added the ability to also check for beta releases of MCP. While this was a nice idea, it also introduced a new problem. If you checked this option, MCP would ONLY look for new beta releases. It would never mention any newer "normal" upgrades. This is fixed. If only normal upgrades is checked, you will only receive notices for normal releases. If normal and beta options are both checked, you will receive upgrade notices for whichever has the highest released build number at that time.
I forgot to mention this with the beta 5 release. Ewps.
Operating System Management page heavily updated
I have had so many problems with space that I decided to try something new with this page. There are now three main buttons that show different "sets" of OS Modules.
OSM Page: Added VZW Navigator, Facebook, Flickr
I also added new items for Facebook, Flickr and VZW Navigator for some of the newer Verizon OS's.
OSM Page is now compatible with CrackMem 3.1
The MCP OSM Page is now compatible with CrackMem 3.1.
Comparison: 9530-v4.7.0.75_P4.0.0.94
Settings icon right click = External Applications
Self explanitory
0.9.2.0 Beta 3 (Build 0.9.1.4) - November 27, 2008
Forgotten note about 0.9.1.0
I forgot to mention in 0.9.1.0... when I replaced the Downloads page, I added a new parameter for mcp.exe: /d50. If you run mcp.exe /d50 you can access the old Downloads page -- but it 100% useless right now. I am keeping it for possible future use. I will add this note to the 0.9.1.0 notes as well.
Java Loader readme file button broken, fixed
This button worked fine if there were no spaces in the path along the way to the readme file. It's fixed now. :p~
This build was also the first test of the new "include beta versions" option
0.9.2.0 Beta 2 (Build 0.9.1.3) - November 27, 2008
Starting in Beta 2, you can now "opt in" for updates of beta versions of MCP. Since it takes so much time for me to update websites and download links, I will only push out versions of MCP that actually work without any major issues. I will test them locally before I post updates. This release is no exception... it was delayed for over an hour because after I added this option MCP would crash at startup only when both the "Online Updates" and "Update MCP Files" were both checked. These are the default values, but I didn't see this problem because during development I can't overwrite my own MCP files, so that option was off during development. I found it after I installed MCP clean. I had to fix this problem before I rolled this version out to everyone. Anyway, if you want to opt in to the beta tests, you have to check this new option because the default is that MCP will never check for beta versions.
All old versions are now available here. This was done in case a new version messes something up for someone.
0.9.2.0 Beta 1 (Build 0.9.1.2) - November 27, 2008
Application Loader icon (left side, row 4, center icon) updated. Right clicking to use the "/nojvm" switch is now a "Protected Control" and must be enabled on the Settings page. You must also confirm the operation when you attempt to use it.
Updated info, 11/27/08 9:30 pm central. The settings page has been reordered. The left side of Settings now primarily focuses on Java Loader releated things. The right side of Settings now deals mainly with the MCP side of things. I also made all of the main sections the same width. I am constantly trying to streamline things while at the same time making them simpler to use. I removed the text area (label) inside of the "Enable Protected Controls" area as I needed more room for all these changes.
Added this info, 11/27/08 9:40 pm central.
The large label explaining this section was removed for much needed space. It was replaced by new hints, just hover over this area and read along the bottom.
If you see a yellow exclamation point icon it just means that the "BrickBerry" response hasn't been entered, so all of the controls in MCP are ON.
If you see a green check mark icon it means that "BrickBerry" was entered correctly and that all of the protected controls in MCP are OFF.
The new Java Loader control allows you to pick any of the available Java Loader versions. MCP ships with Java Loader 4.7.0 Beta 2. You can select a different version with the drop down selector.
If you don't have the currently selected Java Loader and you want a copy, click the red/white X icon to download that version. It should change to a green check mark when it's downloaded.
If your EXE doesn't match the expected MD5 sum you will see a yellow exclamation mark.
If you see a green check mark, you have the correct version of the Java Loader you have selected and the MD5's match.
You can select any version of Java Loader that you want, with some caveats:
1) Only 4.70 Beta 2 and 4.70 Beta 1 are guaranteed to work 100% with this version of MCP.
2) Only versions from 4.70 Beta 2 back to 4.02 have built in ability to take screenshots.
3) Only the screenshot commands are guaranteed to work from 4.02 up. Other commands may not work.I am considering better support for older versions, but I'm not sure if there is a real need for this.
You can rename the previous EXE to javaloader470b2.exe if you don't want to download the new one.
0.9.1.1 - November 22, 2008
Beyond 0.9.1.0...
Immediately after releasing 0.9.1.0 I noticed that RIM updated their BlackBerry JDE 4.7 Beta (I'm calling it "Beta 2") which includes a newer build of javaloader.exe. The new exe has the same functionality, and probably uses the exact same code, it's just a newer build. Anyway, since I've already started teting it I've found the new automatic Java Loader verification to be very annoying, so I will add a check box to turn that feature on/off. --- Added in 0.9.1.1.
In 0.9.0.7 I added this to the changelog: "BBDevMgr.Exe vs Windows Hourglass - FIXED!". I also added a PIN timer in that build. Hmm! Now I am wondering if the hourglass workaround really works as expected and discussed. I will check into this some more today. --- I verified that everything along these lines seems to be working as expected in 0.9.1.0 and 0.9.1.1.
Changes in 0.9.1.1...
No real changes, but now we have to make sure all the commands still work (again? ugh!). :)
If you decide to use an older version of Java Loader you can uncheck this option so MCP won't bitch each time it starts.
Java Loader from JDE 4.7 Beta 2 (Included in MCP 0.9.1.1) - EXE / TXT / MD5
Java Loader from JDE 4.7 Beta 1 (Included in MCP 0.9.1.0) - EXE / TXT / MD5 - Included here only in case the new Java Loader poses problems/issues for people.
Java Loader from JD4 4.6 - EXE / TXT / MD5 - This version will NOT work 100% with MCP. Screenshots will NOT work, and I'm sure other commands will fail as well. You would have to use debug mode to see the output.
Old versions of Java Loader are being provided here primarily so users can test the new Java Loader Version Check feature and on/off option - but also so people can still access them in general.
In 0.9.1.0, version checking was a little goofy. Most of the version checking was based on the "Binaries" (folder) setting for external applications. In 0.9.1.1 it is only checking the location specified for the Java Loader EXE (the second edit field). The EXE specified in this field is the one that is checked. If it doesn't match, the correct EXE is downloaded to both the Java Loader folder and the Binaries folder - just in any case these two fields point to different locations.
MCP primarily uses the Java Loader field. The Java Loader page "Command Prompt" button and the Area 51 page rely on the Binaries field. This method of checking and updating seems the most sane for MCP.
The exe, txt and md5 will also be copied to the Binaries folder in case the path is different than the Java Loader folder.
As mentioned in the notes for 0.9.1.0, this folder is no longer used by the MCP Downloads page, so it is no longer created during launch. If you downloaded files in the past, they are still located in this folder.
0.9.1.0 / November 21, 2008
I originally forgot to mention in 0.9.1.0... when I replaced the Downloads page, I added a new parameter for mcp.exe: /d50. If you run mcp.exe /d50 you can access the old Downloads page -- but it 100% useless right now. I am keeping it for possible future use.
MCP is no longer beta. This is the first "final" release, sixth public release overall.
The old downloads page was limited and didn't offer as many downloads. I wanted to provide a simpler page that also has more content. If you don't see anything on this page (which would be very rare since the installer includes them), you might need to click the "MCP Files" button on the Settings page. I will be phasing out the downloads folder in the next release since I am no longer handling direct downloads.
You can run more than one instance of MCP again... but the EXE names must be different and technically you should run each EXE in its own dedicated folder. You don't have to do separate folders, but if you don't, the EXE's will compete for the same INI file... settings may be a little funky.
Weird I never noticed this before, but it seems fixed now.
A few updates for the Portable side of things.
0.9.0.7 / November 17, 2008
Here are some of the important changes in this release, I will elaborate on all of these more as time permits.
NEW! - MCP now supports the ability to manage multiple USB Devices / PINs
MCP is now capable of managing multiple USB devices. Theoretically you could have 10 or more USB devices hooked up and MCP will let you choose which device you want to work with. The more devices you use, the more you may have to increase the new Pin Check Interval on the Settings page. I was planning on releasing this version on 11/15 until I realized how much of a complete oversight this was. I had plugged in a second device and I wanted to work with it instead of my normal phone. There was no way to do that in MCP. Now you can. Pick a connected PIN and go to work! You can now select a device PIN from a drop down selector. The drop down list will not update to show new devices while it is dropped down, simply roll it back up and check it again. Set your device pin password in the field below the PIN selector. Passwords are saved separately for each pin. If you have any problems with these controls, turn on /dev mode (see "Parameters" below) and email me your results.
I can't tell you how many hours I pissed away just on this new feature. Originally I had it working as a single control (a drop down selector), but it constantly flickered and every 1 second (pin check interval) the list would refresh and sometimes a pin that you weren't hovered on would get highlighted. Later I switched to a list box (hidden unless /dev is used) and I used some images to make a "fake" drop down... when you entered the fake drop down, a real drop down would display and let you make changes. This worked well, since it was an image it wouldn't look the same as other drop downs if you switched Windows themes or used flat/non flat controls. Then I removed that and went to a real drop down, had it working well. Then at 5 AM Saturday I started deleting a bunch of controls and code to try to get it back down to one control. No matter what I did I couldn't get rid of the annoying flicker at every update interval. So, in the end, there is a hidden list box that is constantly updated when the pin check timer is enabled, and a drop down box that forces itself to update (and be identical to the list box) only when it is dropped down. End result: no flicker. It was a huge pain in the ass to get the "per pin passwords" working. Probably another 2 hours of coding headaches. In the end, it all seems to work rather nicely. Unlike BlackBerry Desktop Manager, you don't have to select your pin in a separate dialog, it's all handled in one spot in MCP.
NEW! - Simulation Mode
Simulation Mode allows you to simulate ALL of the Java Loader commands in MCP - without actually running the commands. This would be a "best fit" if you used it in conjunction with the "Messages" option so you can see the output without any changes. This feature should work with the Java Loader page (including the Load, Save and Erase pages), the Information page, the Screen Capture page and the Area 51 page. The "Install OS" button can also be used in Simulation Mode, and as far as I can tell it works right... but none of the other controls on this page will ever be simulated. In other words, if you check/uncheck modules, they will be moved as expected, despite the simulation mode option. Note: I updated the 0.9.0.7 files at 12:45 AM Central. The fixed build makes the new Simulation Mode work correctly on the Area 51 page as well.
While I havent seen any problems with either of these yet, that doesn't mean that there won't be any issues. Don't expect them to work... instead, verify that they eventually act as they were designed to. If they don't cooperate, email me. For example, if you want to test the simulation mode... it might be considerably wise to assume that it will NOT work, and to disconnect your device and test the functions first. These are the two biggest changes because they impact every aspect of the underlying code, at a very late stage in the game.
NEW! - Automatic Java Loader Version Checker
The Applications page now has a Java Loader version checker. MCP also now automatically checks the Java Loader version automatically and if it detects a problem you will be prompted to download the correct version. That will save me hours of troubleshooting and it will help end users and reduce frustration on all sides.
NEW! - Almost all MCP Images and icons are now extensible
You can now use any icons or images that you want to change the appearance of MCP. Icons must have the same filename but can be either ICO or BMP files. If and ICO and BMP file of the same name are found, the ICO will be used. Images might have to be the exact same filename and type as the ones that are currently in the images folder. Move the current images out of the way before you get started. Possibly make a backup copy of the images too.
WinMerge comparisons of MCP 0.9.0.7 and CrackMem 3.0.
8320-v4.5.0.102_P2.7.0.85.htm / 9000-v4.6.0.168_P4.0.0.160.htm
BBDevMgr.Exe vs Windows Hourglass - FIXED!
When MCP starts it now checks to see if RIM Device Manager is running. If RIM Device Manager isn't running, MCP will start it in server mode so that it stays running in the system tray. This is important so MCP won't keep flipping to an hourglass icon. If it can't be found, MCP timers will only run once every 30 to 60 seconds so the hourglass isn't so annoying.
My (shitty) notes on this issue:
if bbdevmgr.exe isn't running, mcp will start it as a service and leave it running in the system tray. this was done because previously mcp would go to an hourglass every 2 seconds until it was closed if bbdevmgr.exe wasn't running as a service.
if i can't find "c:\program files\common files\research in motion\rimdevicemanager\rimdevicemanager.exe" (or your "applications" overrides, if any) i will assume that "c:\program files\common files\research in motion\usb drivers\bbdevmgr.exe" also doesn't exist or for some unknown reason it won't be able to stay running as a service in the system tray (which i think is the default). in any case, i will completely disable the 2 second timer used for automatic pin checking (near the lower left) for the remainder of the mcp session.
no more hour glass.
if "bbdevmgr.exe" really doesn't exist anywhere on your system, mcp will not work. 99.9% certain. i actually uninstalled everything later to test and mcp doesn't work.
MCP Status (Online/Offline)
Added MCP Status... now when MCP starts it checks for online connectivity. If it doesn't find an online connection, and if files are missing or if files need to be updated, MCP will not attempt to download anything else. You can click the link when it says "Offline" to try to get MCP to register that it is online and that downloads can be done. This is a nice improvement because in the past it wouldn't check and it would attempt to download missing files even if it was offline... this could cause the MCP main window to not show up on screen for 60 to 90 seconds depending on how long each file took to "time out".
Performance Improvements
I spent about 5 hours trying to improve the performance of MCP since the last build, namely the startup rouutine. The initial run of the stand alone version has to download several files. I timed it three times (MCP was "online") and it was coming in at 12 seconds. The standard installer and the portable versions already include all files, so the first run and all subsequent runs are the same speed... on average I am seeing 3-4 seconds, max.
Operating System Management
If you install an OS onto the device and your settings are using the system tray icon, the system tray icon is disabled until the OS is installed. This prevents users from being able to re-open MCP until after the OS is installed.
I also added a success message when the operation is complete.
Now that MCP can work with multiple devices, I felt it was important to remind the user which PIN was just wiped/507'd/obliterated and to remind them to select the correct PIN when Application Loader starts up. In my tests, Application Loader always seemed to pick the correct PIN - but maybe I was just seeing things, or possibly App Loader was just showing the first available... regardless, it's too early in testing to know so I have to assume there is no real guarantee that this will always be the case, and there is no way to pass the PIN information to Application Loader when it starts up.
So, here are the new OS page messages:
Parameters
MCP now accepts a small number of command line arguments. I will add to this list as I find things that might be helpful. Suggestions welcome.
Example (Windows Shortcut): "C:\Program Files\BlackBerry Master Control Program\mcp.exe" /dev
General
/dev - displays some development controls. currently displays the real list of detected usb devices (top left) and directly above the "USB Device (PIN)" label you will see two new labels... the left one will say "on" or "off" to let you know the active state of the PIN checking timer, the right one displays the number of milliseconds that the PIN timer is using (your PIN Check interval x 1000).
Settings Overrides
/silent - Checks the Java Loader "Silent Mode" option
/messages - enable messages
/debug - debug mode
/simulate or /sim or /feign - simulation mode
/quiet - quiet mode
/tray - use system tray icon
/notray - don't use system tray icon
/pos - memorize size & position (might not work)
/nopos - don't memorize position
/insane - automatically includes the 'BrickBerry' pass phrase, security bypass, warning!
/flat - flatten controls
/noflat - don't flatten controls
/texture - textures enabled (should force a page too)
/notexture - textures disabled (should force a page too)MCP Pages
These parameters override the last saved page and force MCP to load the page you want.
/welcome - welcome page
/settings - settings page
/applications or /apps or /dirmgr = applications page
/about - about page
/javaloader or /jl - javaloader page. hmm, does this use the last known load/save/erase page? not sure. let me know kk thx.
/information or /info - information page
/capture or /screencapture or /screenshot or /ss - screen capture page
/opsys or /osm or /os - operating system management page
/area51 or /a51 - area 51
/downloads or /dl - downloads page
/modload or /load - java loader page / load modules
/modsave or /save - java loader page / save modules
/moderase or /erase - java loader page / erase modules
System Tray Icon
Added a menu that allows you to pick an MCP page to view. Work in progress, mostly functional, some icons are MIA for now.
Registration Key
I moved the registration keys (for those of you that have registered your copies of MCP) from the INI file to the Windows System Registry. This was done for a few reasons... #1, now if you give someone your INI, they might get your user name and email address (and PIN), but they won't get your registration code. #2, if you uninstall MCP or delete all of the files in the MCP folder, you won't lose your key.
Miscellaneous
Updated the Welcome and About screens.
Settings page... Added "Pin Check Interval". The lower the better, but can cause problems if it is too low. If you notice the stupid Windows USB "jingle" isn't working, you might have to close BlackBerry Device Manager and restart MCP. I moved the Device Password to the main panel (left side) and it now works "pre device" meaning you can have a different password for each device.
The BrickBerry section has better controls for saving/removing the pass phrase from your INI.
Added "Simulate", "Body Texture" and "Memorize Page" controls.
Added "MCP Colors" section, heh, fun. :)
All "interval" control edit boxes were aligned left, now all are centered. (Screen capture page, Settings page, Java Loader recover memory, etc.)
I fixed this problem with the OS Starter Page on the first run: i just noticed a minor problem, on a new installation during the initial launch, if you keep going back to it - the operating system management page keeps showing the "first run" page, even after clicking "continue". restarting mcp fixes it. i will fix this in the next version.
Updated Downloads page items.
Download methods updated, fixed.
In 0.9.0.5... the mcp files. the online versions will not be correct and will not be empty if the file doesn't exist or if there is a connection problem. the contents will say "404". i will have to add extra checking to make sure the returned file is not a 404 file. anyway, if you have any problems with the lists in mcp, disable the "mcp files" auto update (settings page) and delete the files in the xfiles folder. mcp will use built in lists instead.
This is fixed in 0.9.0.7, if there is any type of http error, the partially downloaded file will be automatically deleted and any pre-existing files will remain untouched.
The XFiles can still be downloaded manually here:
modules.mcp
screens.mcp
vendors.mcp
command line interface.mcp
otasl patch.mcp
otasl state.mcp
Updated MCP Installer License:
BlackBerry Master Control Program (MCP) - Copyright © 2008 by Darren Winter. Website: http://mcp.sodpit.com. Email: mailto:sgt-d@sodpit.com.
RIM Wireless Handheld Java Loader (JavaLoader.exe, Included) - Copyright © 2008 by Research In Motion Limited.
MCP is beta, no warantees, express or implied. Use at your own risk! The author is not liable or responsible for damage of any kind.
Parting Shots...
This is by no means all of the changes, but that's quite a few of them. I will complete this later today if possible.
0.9.0.5 / November 9, 2008
new info...
the new stand alone version might not work if you run it from behind a corporate firewall. you will need javaloader.exe in your newly created bin folder. you can manually download the "mcp files" and put them in your xfiles folder: modules.mcp, screens.mcp, vendors.mcp, command line interface.mcp, otasl patch.mcp and otasl state.mcp.
due to all of the recent changes, mcp should now work with more operating systems and devices. originally i was focused primarily on the 83xx series which is what i currently own. this build should work better with new phones like the bold. if someone wants to donate a new bold/storm/javelin to the mcp project i will focus on that device and make it priority one. i'm not joking either. without a device, i can't do any local testing.
anyway, i ran about 100 tests and this is what i am seeing...
older winmerge comparisons of crackmem 2.9 and mcp 0905:
8320 / 9000 / 8130-v4.5.0.77_P3.2.0.51 / 8220-v4.6.0.174_P4.1.0.58 / 8830-v4.5.0.77_P3.2.0.51
as you can see, mcp does the same thing as crackmem, with the ability to remove more modules and with more fine tuning. the end result shouldn't be much different than what you've been seeing all along.
just noticed...
i just noticed a minor problem, on a new installation during the initial launch, if you keep going back to it - the operating system management page keeps showing the "first run" page, even after clicking "continue". restarting mcp fixes it. i will fix this in the next version.
i also noticed that if you install an os onto the device and your settings are using the system tray icon, the main mcp form hides itself while application loader runs --- but you technically can still open mcp because the tray icon is visible. i will fix this next round.
i will also add a success message when the operation is complete. when application loader exits, the main mcp window comes back... and just sits there. a nice confirmation message is in order.
another potential problem, the mcp files. the online versions will not be correct and will not be empty if the file doesn't exist or if there is a connection problem. the contents will say "404". i will have to add extra checking to make sure the returned file is not a 404 file. anyway, if you have any problems with the lists in mcp, disable the "mcp files" auto update (settings page) and delete the files in the xfiles folder. mcp will use built in lists instead. or you can manually download them here:
modules.mcp
screens.mcp
vendors.mcp
command line interface.mcp
otasl patch.mcp
otasl state.mcp
main window / general
added a new "stand alone" version. you should put the exe in it's own folder before running. the first launch will be slow, it has to download a few files to be operational. requires an internet connection.
resized default window, 714x620 i believe. click the settings -> size & position "restore" button to snap mcp to the new correct size.
cleaned up layout of controls everywhere. example, welcome/about screens... the image is now centered in the window area with the same space (number of pixels) on the sides and top. i tried to line things up as much as possible.
cleaned up the title bar, removed the copyright / email info from the title area. it's much cleaner and professional looking now in my opinion.
mcp.exe will now only run one one instance. if you try to run it a second time it won't launch... instead the already running copy of mcp will pop up to the foreground. i haven't verified this yet if you have it minimized to the taskbar or system tray.
settings page
added "file sizes" to the mcp settings area of the settings page. checked by default. when checked, the os page will show module sizes in megabytes on each module checkbox. when unchecked, performance will improve slightly, no sizes will be shown.
added "system tray" to mcp settings section. checked by default. when checked mcp will minimize to the system tray. when unchecked mcp will minimize to a button on the taskbar.
added information (via a hint) to the register section. i will email registration information to anyone that donates to the mcp project. mcp is currently 100% free without any restrictions. my intentions are to keep it this way, but it might change over time. if you donate and get registered, upon entering the correct information i will hide the paypal button from view.
update content button now downloads two new files: modules.mcp and screens.mcp. these new files are discussed elsewhere in these notes.
about page
added copyright information to about screen.
java loader page
changed button name from "java loader usage" to "readme".
screenshots page
moved interval to capture/save section
new control: size (screen size). added screen size to the screenshot settings section. i only knew about three possible screen sizes at the time: 240x260, 320x240 and 480x320. these are read in from screens.mcp. you can edit the file manually and restart mcp to see the changes. scratch that heh, i just added a button so you can adjust the screen sizes "live". the list will update as soon as you save and close notepad. the format for each line is: width x height. values must be integers only, separated by the letter "x", no spaces. i have no error checking here since it's a new control... i don't know what will happen if you don't supply valid integer values - just be careful. see the other lines for samples. the view area in mcp is 100% dynamic, all neccesary controls will automatically resize and center based on the size you pick. 0x0 is valid, but you won't see much. 480x320 is the largest area that will actually fit inside the mcp window. the image control uses stretch=true. so if you are really using a 320x240 device, you will see it normal if you set the size to 320x240, but it will look "stretched" if you set it to 420x280. this control is visual only, the resulting screenshot will not be stretched. note: auto updating content files (default behavior, controlled on the settings page) will destroy any changes you make manually to screens.mcp.
general
added buttons to edit/save/update all mcp files (formerly called "content files"). many drop down lists (comboboxes) read in their settings from external (*.mcp) files in the xfiles folder. new buttons next to these drop down lists will open the mcp file in notepad so you can make changes. works pretty slick. this was a last minute change, hopefully no new bugs will be introduced by this change. all of these buttons have detailed hints, and all will remind the user that if you plan to manage your mcp content files manually you absolutely must turn off the automatic updating of mcp "content files" on the settings page. if you don't do this, the next time you start mcp all of your edits will be lost when the files are updated. fair warning.
potential problems could happen if mcp was closed during the actual installation of an os. my trick for making java loader see the correct os at install time is now set back to normal every time mcp starts, so all os's are made "available" again. i can't control what application loader or desktop manager sees when they run. that is rim's problem. all i know is that mcp hides the other os's and restores them to normal when it exits normally or the next time it starts.
operating system management
this page has undergone a major overhaul. in reality, this is a complete rewrite. all known modules that can be "tweaked" are read in from an external file (modules.mcp) and can now contain any valid file format, including ?/* wildcards, and can contain multiple patterns separated by a semicolon (;). this is a major improvement. in all previous versions of mcp this information was hard coded, and could only be a single valid filename (no wildcards). because the modules were hardcoded it meant that each time there was a change or a new module in an os i had to rewrite the source code, rebuild the project, upload the new installers and force out a new release. now i can simply come up with a new valid pattern, save the modules.mcp file, then upload that one text file to the ftp server and the next time you start mcp you will get my updated modules information -- provided you have "auto update mcp content files" turned on (settings page).
so, for example, the "preloaded wallpaper" checkbox uses this pattern:
*medialoader_240x???_b.cod;*medialoader_320x???_b.cod;*medialoader_backgrounds_???x???_b.cod
this pattern would "capture" these files:
net_rim_bb_medialoader_240x320_b.cod
net_rim_bb_medialoader_320x240_b.cod
net_rim_bb_medialoader_backgrounds_480x320_b.cod
but not this file:
net_rim_bb_medialoader_480x320_b.cod
you should never use * or *.* as a pattern, or leave a pattern blanks. if you do, it will remove all cod files from the installation path. fair warning.
operating system management (continued)
this page has been completely recoded from the ground up.
Complete code rewrite for all sections that were inefficient. Previosuly i had to write 5-10 lines of code for each module, multiple times (one for each "event"). There are four main events i am doing per module. Let's take the blackberry video checkbox for our example. Just one option, right? Does the module exist? What files are involved? If they exist, are they in the os folder, or in the removed files folder? Of all the files involved, what is the file size (return size to checkbox caption)? Quite complicated in code, for all 4 events i would need a total of 20 to 40 lines of code. One thing i decided last week was to avoid manually specifying each file in a set one at a time... i had to come up with a way to view a pattern with wildcards and multiple files at once, and i had to step back, look at what each block of 5-10 lines was doing because trying to manage 20-30 lines times for 30+ modules was just getting f%*&ing stupid. So i spent a full day revamping code for each "event". Literally, 3-4 days. In the end i came up with 4 functions that handle the actual processing, each can be 5-20 lines, but now in my code i only have to call that function with 1 line of code and 1-2 parameters. This makes it much easier for me later if i have to add more checkboxes... 4 new lines of code (max), boom done.
Module detection checkbox optimizations... The all on / all off buttons now work faster beause i am only verifying modules related to that section. In the past i was re-checking module existance for all modules.
All on / all off functions fixed. In the past it wasn't 100%. What really has to happen... No event is triggered if a box is already checked and you click "all on". Likewise, no event is triggered if a box is not checked and you click "all off". Think about that... If its already checked and a button tells it to be checked, nothing changed. So what i had to do was passively negate what the button was trying to do, then force the desired action. In other words, if you click all off, i am actually turning them all on (passively doing the exact opposite of what the button is supposed to do, nothing actually happens), then i am turning them all off (and performing the desired operation).
Added intelligence to the "all on" buttons. In the past, all options would remain checked, even if some of the cod files really weren't available after you tried to restore them. there are several files that never existed in the original os installation, so they logically can't be restored either. Now when u clcik "all on", all checkboxes will get a checkmark, all modules involved will be put back into place, then i will rescan the modules (cod files) for the current section. if they don't exist after this operation, the related checkboxes for non-existent modules will automatically uncheck themselves. There is 100 millisecond (1/10th second) delay for these checkmarks to update. As far as i can tell this page is now 100% accurate and "real time" representation of what is going on wuith the os's at any given time.
there are 5 buttons at the top of the operating system section now, two are new. one allows you to view the user guide for the currently selected os. it's a pdf file, so windows won't do shit if you don't have a pdf reader installed that has already created a file association for pdf files. the other button edits modules.mcp which directly impacts which files/patters the checkboxes are actually attempting to work with.
i spent most of my time on this page, i hope the changes are helpful to everyone.
vendor.xml... i removed the checkbox, it isn't neccessary. if you want to install the os, i have no choice but to remove vendor.xml anyway, so now it's done for you, automatically.
the vendor themes section... the left button (first of three buttons at the top of the section) toggles between 3 different views.
i can't think of anything else. sleep.
0.9.0.3 / November 3, 2008
Beta 1, wewt! I haven't received any emails yet, so I hope MCP has been working for everyone. :p~
MCP has been tested and works fine (for me) on Windows XP 32-Bit. I don't know if it works on other operating systems yet, or on 64-bit systems. I will try to test it on Vista 32 tomorrow. I'm guessing that you might have to right click the "BlackBerry Master Control Program" shortcut and set it to run as administrator. You might also have to disable Microsoft's "User Account Control" which is something I always do anyway.
A one hundred percent fully functional graphical user interface (GUI) for Java Loader (JavaLoader.exe) is now... REALITY!
All possible combinations of Java Loader commands and options can now be utilized inside of MCP. The OTASL commands are a bit unknown, so for now they are located on the Area 51 page. I don't know what they do exactly, but the commands are working.
For the first time... A PortableApps version of MCP is now available. Now you can take MCP with you wherever you go! More information: Information Page / Direct Download
Load Modules (Java Loader page) updates: There is a new drag & drop control allowing you to drop in (multiple) COD files. The load button allows you to select multiple COD files. In both cases, the edit window will not automatically clear each time, allowing you to reference an unlimited number of COD files in an unlimited number of different folders.
Save Modules (Java Loader page) updates: The retrieve button now brings back a sorted list of modules that are installed on the device and presents them to you in a check box list. This allows you to fine tune which modules you want to save by checking them individually.
Erase Modules (Java Loader page) updates: The retrieve button now brings back a sorted list of modules that are installed on the device and presents them to you in a check box list. This allows you to fine tune which modules you want to erase by checking them individually.
One of the three pages mentioned above was broken in the last build, I think it was the Erase Modules section. These sections have all been heavily updated and it seems much more intuitive and easier to use.
The navigation of these new "mini pages" is done by clicking the three icons at the left side (up arrow (blue), down arrow (red), etc.).
Added a "Command Prompt" button to the Java Loader page, for hardcore users that miss their command line. Just like Linus and his blanket!
Added a small button at the bottom right of the output window for the Information page and the Area 51 page that allows you to export the output to a file.
The Operating System page has a new section: "Estimated Space Savings". This section will try to show (as accurately as possible) how much space you will save during your installation based on the files you have selected. This is not 100%, but it is fairly accurate, and it is dynamic because it actually checks the sizes of the COD files as the selections are made. This means that if a COD file grows by 500k in a newly installed OS (on your PC), you will see the difference.
The Operating System page has been completely overhauled. Size estimates are provided for every possible option, and as they are unchecked/checked the "Estimated Space Savings" will update to reflect the changes. Bigger is better. This shows an almost real time estimate of how optimized your new OS will be once it is installed. If you set the "Vendor" setting (Settings page) and you check/uncheck that vendor's theme, the size (savings) will be even more accurate.
As mentioned previously, all selections are "live". If you uncheck it, the COD is moved out of the installation path. If you check it, the COD is moved back into the installation path.
Each individual section on the Operating System page now has two new (tiny) buttons near the top right of the section. The left button checks all of the items in that section. The right button unchecks all of the items. Long overdue.
New in this build... During OS manipulation, if you are unchecking (removing) a module and the COD file exists in both the original folder and the removed files folder, the copy in removed files is deleted and then the original is moved to the removed files area. If you are checking (adding a module back to the installation) and the COD file exists in both folders, the backup copy in the removed files area wins.
Added a "Dimension Themes" section to the Operating System page. As mentioned elsewhere, you have to keep all four of these installed if you want to use custom themes. If you don't need that ability, you will probably want to at least keep the Dimension Zen theme. If you uncheck them all, you will still get a theme, but it's total dog shit (screenshot).
Added a "900x Series" section to the Operating System page.
Added a "Command Line Interface (CLI)" applet to the Area 51 page.
Added online update checking for version updates and also (separately) the content files (list files for most of the drop down selectors). These new controls are on the Settings page.
Added "flatten controls" to the Settings page to add cool visual effects to all of the edit fields and drop down lists.
Popup "Please Wait..." messages are now working 100% and now automatically center up with the main window. In the past I would rename some buttons to "Please wait..." during longer operations, but this is a much nicer way to handle it. All of these windows are set to "stay on top" so that they don't "pop under" or get lost behind the main form.
Added "JavaLoader.exe" expected output to the Settings page. This just lets you see graphically what should happen with the command line arguments based on your PIN and other settings inside this page.
Added "Vendor" to the Settings page. This setting has a slight affect on the new "Estimated Space Savings" section of the "Operating System" page.
Added "Auto Capture & Save Interval" to the Screenshots page. I also gave names to the check boxes on the left side so it's more obvious what they do (Auto Capture / Auto Save).
Added an "Applications" page for a graphical way of managing all external applications. These will actually override where MCP tries to set your paths. These could be manipulated previously only by editing the mcp.ini file.
Added a "Quiet Mode" option to the "Basic Settings" section of the Settings page. Checking this option will turn off the left side banner and the MCP "face" images on the Welcome and About pages. This is a "not safe for work" type control. :)
The left side background image (images\left.bmp) and the main image seen on the Welcome and About pages (images\main.jpg) can now be changed externally. The work.bmp file is what will be seen (stretched) if quiet mode is used.
Fixed the semi-borked "Module Info" button on the "Information" page.
Finally added a decent amount of information to the Welcome page.
All pages have been massively overhauled.
Most hints have been updated.
I have fixed all of the bugs I have been able to find.
Removed readme file (mcp.txt) in favor of online documentation (http://mcp.sodpit.com/readme.htm).
That's all I can think of for now.
0.9.0.2 / October 29, 2008
Internal build, not released.
0.9.0.1 / October 26, 2008
Device password field in Settings now shows what you are typing, then hides it when you leave the field.
Screenshot Auto Save now creates the destination folder (recursively) if it doesn't exist.
Added scroll bars to the edit windows for loading/unloading modules.
Fixed installer and application images to remove RIM/BlackBerry logos.
0.9.0.0 / October 24, 2008
RAW (This isn't even alpha yet).
Pre-alpha software, use at your own risk.
No warantees. You brick it, you buy it.
Includes JavaLoader.exe from BlackBerry JRE 4.7.0 Beta.
Features...
A GUI that is capable of executing almost ALL of the commands provided by JavaLoader.exe (enable/disable the radio, set device time equal to the pc, load/unload cod/jar files, factory reset, wipe (all, apps only or os only), on and on...). The file "remaining.txt" shows some commands that haven't been implemented yet.
Operating System Management gives you the ability to easily fine tune what cod files are available during the installation. Files are handled in the same location that CrackMem uses, so you can interchange between MCP and CrackMem seamlessly. Fine tuning... you can select/deselect ALL IM's (individually) and you can individually select vendor themes one at a time instead of doing them all at once. Checked items will be used, unchecked items will not be installed. Selections are instantaneous, no pop-up messages, and no need to execute the selections with another button. If you want it, check it. If you don't, uncheck it. There is no "put it back"... when you re-check an item, it is moved back.
You can now select which OS you want installed on your device, even if you have multiple OS versions installed. As far as I know, no other program currently can do this. You can have 10 operating systems installed on the PC, select the one you want, then install it. No fuss.
-sgt