MonoBerry

Mono for the BlackBerry 10 platform

About

MonoBerry is Mono for the BlackBerry PlayBook OS and the future BlackBerry 10 platform. The project consists of three parts:

Runtime: The actual port of the Mono .NET runtime to the QNX based platform for the ARM & x86 architectures (devices/simulators).

The actual port of the Mono .NET runtime to the QNX based platform for the ARM & x86 architectures (devices/simulators). Libraries: libblackberry—a C# library to access native functions (screen, camera, sensors, …) of BlackBerry devices. Ports of existing libraries (OpenTK, MonoGame, …) to make them work with MonoBerry and the BlackBerry devices—based on libblackberry. Future: Cascades#, a BlackBerry Cascades (Qt-based GUI toolkit) wrapper for .NET. (BB10 platform only!)

Tooling: Functionality to package a .NET assembly to a BlackBerry Archive ( .bar file) and integration with tools of the BlackBerry NDK.

Installation from source

Mac OS X

brew install autoconf automake libtool git git clone git://github.com/roblillack/monoberry.git cd monoberry && make && sudo make install

Setting up a device for MonoBerry deployment

Create a ~/.monoberryrc configuration file that roughtly looks like this (change your IP address, etc.): [core] author_name = burningsoda.com author_id = gJASYD8AH4kAHuyJGBEa83kjak8 [device.devalpha] ip = 10.0.1.121 password = ohwowapassword pin = 01234567 arch = armle-v7 [device.playbooksim] arch = x86 ip = 10.0.1.193 password = thisisanotherpassword pin = a0b1c2d3

Check if monoberry devices outputs something like this: NAME ARCH IP devalpha armle-v7 10.0.1.121 playbooksim x86 10.0.1.193

Make sure the device is in Development Mode.

If you did not set up a debug token on your device using the NDK tools yet, you can do so now by simply issuing: monoberry setup DEVICENAME .

. Run monoberry debug ASSEMBLY DEVICENAME to package up an assembly and run it in development mode on the specified device.

MonoBerry configuration

The MonoBerry command-line tool monoberry will look for a INI-style configuration file ~/.monoberryrc that contains a section with global settings ( [core] ) and device-specific sections ( [device.XXXX] ):

Core settings

author_name : Your author name according to your RIM signing keys.

: Your author name according to your RIM signing keys. author_id : Your author id according to your signing keys.

: Your author id according to your signing keys. csk_password (optional): Password needed to use your signing keys. Right now, this is used for creating debug tokens. If not configured, you'll be asked each time it is needed.

(optional): Password needed to use your signing keys. Right now, this is used for creating debug tokens. If not configured, you'll be asked each time it is needed. public_key (optional): Public SSH key used to enable the on-device SSH daemon. ~/.monoberry/id_rs.pub by default.

(optional): Public SSH key used to enable the on-device SSH daemon. by default. private_key (optional): Private SSH key used to connect to the on-device SSH daemon. ~/.monoberry/id_rsa by default.

(optional): Private SSH key used to connect to the on-device SSH daemon. by default. location (optional): Location of your MonoBerry installation.

(optional): Location of your MonoBerry installation. nativesdk (optional): Location of your BlackBerry Native SDK installation.

(optional): Location of your BlackBerry Native SDK installation. debug_token (optional): Location of the debug token to create and use to setup devices. ~/.monoberry/debugtoken.bar by default.

Device-specific settings

The name will be retrieved from the section name. If you call a section [device.bla] , any settings below this line, will belong to a device called bla .

ip : IP address.

password : Device password. Has to be set up on the device.

arch (optional): Architecture of this device. x86 for simulators and armle-v7 for real ones; the latter is the default.

pin (optional): BlackBerry device PIN. Needed if you want MonoBerry to create debug tokens.

Command-line reference