Introduction
These tools are some programs that communicates with a BlackBerry device over USB.
Since the protocols used by BlackBerry are not documented by the manufacturer Research In Motion, these programs are experimental and you use at own risk.
Be sure your device is backed up by another program if it contains important data !
barry
bidentify
“bidentify” is a BlackBerry device detector. It dumps the BlackBerry linked to your computer.
[nicolas@Dahlia nicolas]$ bidentify -h bidentify - USB Blackberry Identifier Tool Copyright 2005-2010, Net Direct Inc. (http://www.netdirect.ca/) Using: Barry library version 0.17 (little endian) -B bus Specify which USB bus to search on -N dev Specify which system device, using system specific string -h This help -v Dump protocol data during operation
[nicolas@Dahlia nicolas]$ bidentify 12345678, RIM BlackBerry Device
btool
“btool” is a tool to manage your BlackBerry data bases. You can list, dump, modify or remove the content of data bases.
[nicolas@Dahlia nicolas]$ btool -h btool - Command line USB Blackberry Test Tool Copyright 2005-2010, Net Direct Inc. (http://www.netdirect.ca/) Using: Barry library version 0.17 (little endian) Compiled without Boost support -b file Filename to save or load a Barry Backup to (tar.gz) -B bus Specify which USB bus to search on -N dev Specify which system device, using system specific string -a db Erase / clear database 'db' FROM device, deleting all its records. Can be used multiple times to clear more than one DB. -c dn Convert address book database to LDIF format, using the specified baseDN -C dnattr LDIF attribute name to use when building the FQDN Defaults to 'cn' -d db Load database 'db' FROM device and dump to screen Can be used multiple times to fetch more than one DB -e epp Override endpoint pair detection. 'epp' is a single string separated by a comma, holding the read,write endpoint pair. Example: -e 83,5 Note: Endpoints are specified in hex. You should never need to use this option. -h This help -i cs International charset for string conversions Valid values here are available with 'iconv --list' -I Sort records before output -l List devices -L List Contact field names -m Map LDIF name to Contact field / Unmap LDIF name Map: ldif,read,write - maps ldif to read/write Contact fields Unmap: ldif name alone -M List current LDIF mapping -n Use null parser on all databases. -p pin PIN of device to talk with If only one device is plugged in, this flag is optional -P pass Simplistic method to specify device password -s db Save database 'db' TO device from data loaded from -f file -S Show list of supported database parsers -t Show database database table -T db Show record state table for given database -v Dump protocol data during operation -V Dump records using MIME vformats where possible -X Reset device -z Use non-threaded sockets -Z Use threaded socket router (default) -d Command modifiers: (can be used multiple times for more than 1 record) -r # Record index number as seen in the -T state table. This overrides the default -d behaviour, and only downloads the one specified record, sending to stdout. -R # Same as -r, but also clears the record's dirty flags. -D # Record index number as seen in the -T state table, which indicates the record to delete. Used with the -d command to specify the database.
To list all the data bases :
[nicolas@Dahlia nicolas]$ btool -t Blackberry devices found: Device ID: 0x20d0360. PIN: 12345678, Description: RIM BlackBerry Device, Name: BlackBerry Torch Using device (PIN): 12345678 Database database: Database: 0x0 'PasswordKeeper Options' (records: 1) Database: 0x1 'PasswordKeeper' (records: 1) Database: 0x2 'VideoRecorder Options' (records: 1) Database: 0x3 'Camera Options' (records: 1) Database: 0x4 'Alarm Options' (records: 1) Database: 0x5 'Enhanced Gmail Plug-in' (records: 1) Database: 0x6 'Clock Options' (records: 1) Database: 0x7 'Alarms' (records: 0) Database: 0x8 'Tasks' (records: 3) Database: 0x9 'Browser Push Options' (records: 1) Database: 0xa 'Attachment Data' (records: 12) Database: 0xb 'Attachment Options' (records: 1) Database: 0xc 'MMS Messages' (records: 5) Database: 0xd 'MMS Options' (records: 1) Database: 0xe 'Tasks Options' (records: 1) Database: 0xf 'Secure Email Decision Maker' (records: 1) Database: 0x10 'Purged Messages' (records: 287) Database: 0x11 'Folders' (records: 6) Database: 0x12 'Folder Id' (records: 1) Database: 0x13 'SMS Messages' (records: 191) Database: 0x14 'Saved Email Messages' (records: 0) Database: 0x15 'PIN Messages' (records: 7) Database: 0x16 'Messages' (records: 622) Database: 0x17 'Mailbox Icon Management Options' (records: 1) Database: 0x18 'Phone Call Logs' (records: 56) Database: 0x19 'Phone History' (records: 34) Database: 0x1a 'Searches' (records: 22) Database: 0x1b 'Spell Check Options' (records: 1) Database: 0x1c 'Phone Options' (records: 1) Database: 0x1d 'Text Messages' (records: 31) Database: 0x1e 'Input Learning Data' (records: 49) Database: 0x1f 'WAP Push Messages' (records: 0) Database: 0x20 'Browser Options' (records: 1) Database: 0x21 'Browser Cache' (records: 5) Database: 0x22 'Browser Channels' (records: 0) Database: 0x23 'Browser Messages' (records: 0) Database: 0x24 'Browser Folders' (records: 2) Database: 0x25 'External Bookmarks' (records: 0) Database: 0x26 'Browser Bookmarks' (records: 13) Database: 0x27 'Recipient Cache' (records: 1) Database: 0x28 'Bluetooth Options' (records: 1) Database: 0x29 'Attachment Data - Calendar' (records: 0) Database: 0x2a 'Calendar Options' (records: 1) Database: 0x2b 'Memory Cleaner Options' (records: 1) Database: 0x2c 'Mobile Network Options' (records: 1) Database: 0x2d 'Memos' (records: 5) Database: 0x2e 'Shortcut Settings' (records: 1) Database: 0x2f 'EntryPoint Settings' (records: 86) Database: 0x30 'Theme Settings' (records: 1) Database: 0x31 'Profiles Options' (records: 1) Database: 0x32 'Recent Contacts' (records: 9) Database: 0x33 'Voice Activated Dialing Options' (records: 1) Database: 0x34 'Address Book Options' (records: 1) Database: 0x35 'Sounds' (records: 19) Database: 0x36 'Address Book - Last Used Hints' (records: 1) Database: 0x37 'Categories' (records: 2) Database: 0x38 'Message List Options' (records: 1) Database: 0x39 'MemoPad Options' (records: 1) Database: 0x3a 'Input Method Switcher Option' (records: 1) Database: 0x3b 'WLAN Profiles' (records: 6) Database: 0x3c 'Application Permissions' (records: 244) Database: 0x3d 'Default Content Handlers' (records: 0) Database: 0x3e 'Suretype options' (records: 1) Database: 0x3f 'Predictive Multitap options' (records: 1) Database: 0x40 'SpellCheckable options' (records: 1) Database: 0x41 'Content Store' (records: 0) Database: 0x42 'Default Service Selector' (records: 3) Database: 0x43 'Service Book' (records: 17) Database: 0x44 'Code Module Group Properties' (records: 78) Database: 0x45 'Time Zones' (records: 91) Database: 0x46 'Full-predictive options' (records: 1) Database: 0x47 'Input Method Options' (records: 21) Database: 0x48 'Configuration Channel' (records: 5) Database: 0x49 'Random Pool' (records: 1) Database: 0x4a 'Smart Card Options' (records: 1) Database: 0x4b 'Certificate Options' (records: 0) Database: 0x4c 'TLS Options' (records: 1) Database: 0x4d 'Firewall Options' (records: 1) Database: 0x4e 'Key Store Options' (records: 1) Database: 0x4f 'KeyStoreManager' (records: 1) Database: 0x50 'PGP Key Store' (records: 0) Database: 0x51 'Handheld Key Store' (records: 137) Database: 0x52 'Trusted Key Store' (records: 98) Database: 0x53 'AutoText Data Version' (records: 1) Database: 0x54 'AutoText' (records: 356) Database: 0x55 'RMS Databases' (records: 12) Database: 0x56 'Handheld Configuration' (records: 0) Database: 0x57 'Options' (records: 21) Database: 0x58 'Device Options' (records: 0) Database: 0x59 'Policy' (records: 1) Database: 0x5a 'CustomWordsCollection' (records: 840) Database: 0x5b 'Input System Properties' (records: 1) Database: 0x5c 'Location Based Services' (records: 0) Database: 0x5d 'Maps' (records: 3) Database: 0x5e 'Map Global Options' (records: 1) Database: 0x5f 'Map Locations' (records: 1) Database: 0x60 'Map Settings' (records: 1) Database: 0x61 'Diagnostic App Options' (records: 1) Database: 0x62 'File Explorer Options' (records: 1) Database: 0x63 'File Explorer Network Favorites' (records: 0) Database: 0x64 'File Explorer Network History' (records: 0) Database: 0x65 'Messenger Options (WLM)' (records: 1) Database: 0x66 'Messenger Options (AIM)' (records: 1) Database: 0x67 'Messenger Options (GoogleTalk)' (records: 1) Database: 0x68 'SQLite Keys' (records: 1) Database: 0x69 'TCP/IP Options' (records: 1) Database: 0x6a 'Quick Contacts' (records: 0) Database: 0x6b 'Messenger Options (Yahoo!)' (records: 1) Database: 0x6c 'BlackBerry Messenger' (records: 1) Database: 0x6d 'BIS Account Data' (records: 1) Database: 0x6e 'Bloomberg Settings' (records: 6) Database: 0x6f 'BBGroups' (records: 14) Database: 0x70 'DocsToGoCommonPrefs' (records: 1) Database: 0x71 'SlideshowToGoPrefs' (records: 1) Database: 0x72 'WordToGoPrefs' (records: 1) Database: 0x73 'SheetToGoPrefs' (records: 1) Database: 0x74 'Handheld Agent' (records: 629) Database: 0x75 'Address Book' (records: 151) Database: 0x79 'Calendar' (records: 60) Database: 0x7c 'Address Book - All' (records: 151) Database: 0x7d 'PIM Folder List - All' (records: 0) Database: 0x7e 'Secure Credentials - All' (records: 0) Database: 0x7f 'Calendar - All' (records: 69)
“btool” permits also to parse the data bases content. To show the data bases whom you can parse the content :
[nicolas@Dahlia nicolas]$ btool -S Supported Database parsers: (* = can display in vformat MIME mode) Address Book * Browser Bookmarks Calendar * Calendar - All Content Store Folders Memos * Messages Phone Call Logs PIN Messages Saved Email Messages Service Book SMS Messages Tasks * Time Zones Supported Database builders: Address Book Calendar Calendar - All Content Store Memos Tasks
“btool” can read and write data. Some data types can be shown in a standard format (contacts, meeting, notes, tasks…)
Some samples…
To show a data base :
[nicolas@Dahlia nicolas]$ btool -d "Calendar - All"
To parse the same data base :
[nicolas@Dahlia nicolas]$ btool -V -d "Calendar - All"
Note : the data can be used with an other applications.
To remove all the entries from a data base :
[nicolas@Dahlia nicolas]$ btool -a "Calendar - All"
barrybackup
“barrybackup” is a graphical tool to save or restore your data. This tool is very easy
to use. You have two screens to select the data base to save or to restore.
bjavaloader
“bjavaloader” is an other tool to manage your applications for your BlackBerry.
It’s an alternative to “javaloader.exe” provided by RIM.
[nicolas@Dahlia nicolas]$ bjavaloader -h bjavaloader - Command line USB Blackberry Java Loader Copyright 2008-2009, Nicolas VIVIEN. Copyright 2005-2010, Net Direct Inc. (http://www.netdirect.ca/) Using: Barry library version 0.17 (little endian) -A Save all modules found -a Wipe applications only -i Wipe filesystem only -f Force erase, if module is in use -h This help -s List sibling in module list -p pin PIN of device to talk with If only one device is plugged in, this flag is optional -P pass Simplistic method to specify device password -v Dump protocol data during operation commands dir [-s] Lists modules on the handheld deviceinfo Provides information on the handheld load <.cod file> ... Loads modules onto the handheld save [-A]... Retrieves modules from the handheld and writes to .cod file Note: will overwrite existing files! wipe [-a | -i] Wipes the handheld Use Caution: Wiping filesystem will remove all data such as messages, contacts, etc. Wiping applications will remove all .cod files on the device, including OS .cod files. resettofactory Reset IT policy to factory defaults Use Caution: Resetting IT policy to factory defaults will also perform a filesystem wipe which will remove all data such as messages, contacts, etc. erase [-f] ... Erase module from handheld eventlog Retrieves the handheld event log cleareventlog Clears the handheld event log logstacktraces Dump the stack traces for all threads to the event log screenshot <.bmp file> Make a screenshot of handheld settime [yyyy-mm-dd HH:MM:SS] Sets the time on the handheld to the current time Or the time specified as an argument to settime If given as argument, current system timezone is assumed
Some using samples…
To make a screenshot :
[nicolas@Dahlia nicolas]$ bjavaloader screenshot screen.bmp
To install a new application :
[nicolas@Dahlia nicolas]$ bjavaloader load MobileLevel.cod
To save an application :
[nicolas@Dahlia nicolas]$ bjavaloader save MobileLevel.cod
To list all the applications :
[nicolas@Dahlia nicolas]$ bjavaloader dir
btardump
“btardump” is a tool to read the backup files generated by “barrybackup”.
[nicolas@Dahlia nicolas]$ btardump -h btardump - Command line parser for Barry backup files Copyright 2010, Net Direct Inc. (http://www.netdirect.ca/) Using: Barry library version 0.17 (little endian) -d db Name of database to dump. Can be used multiple times to parse multiple databases at once. If not specified at all, all available databases from the backup are dumped. -h This help -i cs International charset for string conversions Valid values here are available with 'iconv --list' -V Dump records using MIME vformats where possible [files...] Backup file(s), created by btool or the backup GUI.
Some using samples…
To show a data base :
[nicolas@Dahlia nicolas]$ btardump -d "Calendar - All" ~/.barry/12345678-20101230-202230.tar.gz
To parse the same data base :
[nicolas@Dahlia nicolas]$ btardump -V -d "Calendar - All" ~/.barry/12345678-20101230-202230.tar.gz
Note : the data can be used with an other applications.
balxparse
“balxparse” builds from a RIM OS a list with each applications that you can use on your BlackBerry device.
[nicolas@Dahlia nicolas]$ balxparse -h balxparse - Command line ALX parser Copyright 2009-2010, Nicolas VIVIEN. Copyright 2005-2010, Net Direct Inc. (http://www.netdirect.ca/) Using: Barry library version 0.17 (little endian) -h This help -i lang Internationalization language -d path OS path with all ALX files -o file OS ALX filename (Platform.alx)... Parse one or several ALX files. Language supported : en : English ar : Arabic ca : Catalan cs : Czech de : German sp : Spanish fr : French he : Hebrew hu : Hungarian it : Italian ja : Japanese ko : Korean
Samples :
[nicolas@Dahlia nicolas]$ balxparse -i fr -d \ ~/WINE/Program\ Files/Fichiers\ communs/Research\ In\ Motion/Shared/Loader\ Files/9800M_v6.0.0.246_P6.4.0.105
You can read a “.alx” file:
[nicolas@Dahlia nicolas]$ balxparse -i fr MobileLevel.alx
bio
“bio” is a new tool that treats devices, backups, and data streams as input and output.
This tool combines a lot of the functionality of btool, btardump, brecsum, and bs11nread, but does it more
flexibly, and improves functionality in some cases, such as Boost archives being able to contain more than
one database.
[nicolas@Dahlia nicolas]$ bio -h bio - Barry Input / Output Copyright 2010, Net Direct Inc. (http://www.netdirect.ca/) Using: Barry library version 0.17 (little endian) Compiled without Boost support Usage: bio -i[options...] -o [options...] -i type The input type (Builder) to use for producing records Can be one of: device, tar, ldif, mime -o type The output type (Parser) to use for processing records. Multiple outputs are allowed, as long as they don't conflict (such as two outputs writing to the same file or device). Can be one of: device, tar, ldif, mime, dump, sha1, cstore Options to use for 'device' type: -d db Name of input database. Can be used multiple times. -A Add all available device databases, instead of specifying them manually via -d -p pin PIN of device to talk to If only one device is plugged in, this flag is optional -P pass Simplistic method to specify device password -w mode Set write mode when using 'device' for output. Must be specified, or will not write anything. Can be one of: erase, overwrite, addonly, addnew Options to use for 'tar' backup type: -d db Name of input database. Can be used multiple times. Not available in output mode. Note that by default, all databases in the backup are selected, when reading, unless at least one -d is specified. -f file Tar backup file to read from or write to Options to use for 'ldif' type: -c dn Convert address book database to LDIF format, using the specified baseDN -C dnattr LDIF attribute name to use when building the FQDN Defaults to 'cn' Options to use for 'mime' type: -f file Filename to read from or write to. Use - to explicitly specify stdin/stdout, which is default. Options to use for 'dump' to stdout output type: -n Use hex dump parser on all databases. Options to use for 'sha1' sum stdout output type: -t Include DB Name, Type, and Unique record IDs in the checksums Options to use for 'cstore' output type: -l List filenames only -f file Filename from the above list, including path. If found, the file will be written to the current directory, using the base filename from the device. Standalone options: -h This help -I cs International charset for string conversions Valid values here are available with 'iconv --list' -S Show list of supported database parsers and builders -v Dump protocol data during operation
As “btool”, “bio” can parse data read :
[nicolas@Dahlia nicolas]$ bio -S Supported Database parsers: (* = can display in vformat MIME mode) Address Book * Browser Bookmarks Calendar * Calendar - All Content Store Folders Memos * Messages Phone Call Logs PIN Messages Saved Email Messages Service Book SMS Messages Tasks * Time Zones Supported Database builders: Address Book Calendar Calendar - All Content Store Memos Tasks
Some samples :
To read backup :
[nicolas@Dahlia nicolas]$ bio -i tar -f ~/.barry/2377cea5-20101230-202230.tar.gz -d "Calendar" -o dump
To read backup with mime parsing :
[nicolas@Dahlia nicolas]$ bio -i tar -f ~/.barry/2377cea5-20101230-202230.tar.gz -d "Calendar" -o mime
And from the BlackBerry device :
[nicolas@Dahlia nicolas]$ bio -i device -d "Calendar" -o dump
or :
[nicolas@Dahlia nicolas]$ bio -i device -d "Calendar" -o mime
To save data :
[nicolas@Dahlia nicolas]$ bio -i device -d "Calendar" -o tar -f calendar.tar.gz
To copy the data from a device to an other device :
[nicolas@Dahlia nicolas]$ bio -i device -p 3009efe3 -d "Calendar" -o device -p 204062f3 -w erase -o dump
To update a database :
[nicolas@Dahlia nicolas]$ bio -i device -d "Calendar" -o mime > /tmp/calendar.vcf [nicolas@Dahlia nicolas]$ gedit /tmp/calendar.vcf [nicolas@Dahlia nicolas]$ bio -i mime -f /tmp/calendar.vcf -o device -w erase
20 Responses to Barry using