Native SDK 10.1 Gold Release Notes
This is the gold release of the 10.1 version of the BlackBerry 10 Native SDK. This release includes new features that support both the BlackBerry Z10 smartphone and BlackBerry Q10 smartphone. If you already have the 10.0 Gold version of the SDK, you can use the update site in the QNX Momentics IDE to download this 10.1 Gold version. See Upgrading to 10.1 Gold for more infomation. Visit the Downloads page to download the full installer for this gold release.
If you're upgrading to the 10.1 Gold release from the 10.1 beta release, you should uninstall the beta version of the Native SDK before installing the gold version. If you're using the 10.1 Gold release of the SDK but you still want to develop for a previous BlackBerry 10 device (for example, the BlackBerry 10 Dev Alpha or the BlackBerry Z10 smartphone), you need to download an additional device target by using the update site. To do this, in the QNX Momentics IDE, click the Update Native SDK button:

Here's a quick summary of the versions you'll need:
- If you're developing for a BlackBerry 10 Dev Alpha device, you need to download the 10.0.10.263 target from the update site.
- If you're developing for the BlackBerry Z10 smartphone, you need to download a target from the update site that matches the device version that's provided by your wireless service provider. You can verify the device version by opening the Settings app, tapping About, and checking the version that's listed in the OS Version field.
This document contains the following sections:
Upgrading to 10.1 Gold
When upgrading to the 10.1 Gold version from the 10.1 Beta version of the Native SDK, it's recommended that you remove the beta version before upgrading to the gold version.
If you're upgrading from the 10.0 Gold version of the SDK to the 10.1 Gold version, you can either uninstall the 10.0 version and install the 10.1 version in the same location, or you can install the 10.1 version in a different location than the 10.0 version. You can also use the update site in the QNX Momentics IDE to download the 10.1 version by clicking the Update Native SDK button.
MD5 Checksum validation
You can validate the BlackBerry 10 Native SDK installer download using this checksum file. Use any checksum tool that supports MD5 to validate that your download is correct.
New in this release
APIs
- Camera - A new function and enumerator are available to detect low light conditions: You can use
camera_get_lowlight_status()
to determine if the camera considers the current conditions to be low in light. TheCAMERA_FEATURE_LOWLIGHT_STATUS
enumerator in thecamera_feature_t
enumeration is available for low light notification.
Documentation
- Sensor Developer's Guide - Detailed information on how to use the BPS library to access data from device sensors can be found at Sensor Developer's Guide.
- Game Development - A centralized hub for all information related to game development can be found here.
QNX Momentics Tool Suite
- The editor for the
bar-descriptor.xml
file now provides the ability to specify icons and splash screens for the BlackBerry 10 Keyboard device.
Scoreloop
- The GNU libstdc++ library is now supported along with Dinkum C++ runtime.
Fixed in this release
This section lists fixed issues for the BlackBerry Native SDK, version 10.1 Gold.
APIs
282627Several core native APIs are used across different products and require privileged access. As such, you may have noticed that privileged or root access was required in some API documentation. For application development, the BlackBerry OS does not provide you with privileged access as it is a secure platform and therefore, you cannot use these privileged capabilities. The API capabilities that do not require privileged access are sufficient for the use cases required for your app.
Installation
257734When updating the QNX Momentics IDE using the Update Manager, you received the following message: "Warning: You are installing software that contains unsigned content. The authenticity or validity of this software cannot be established. Do you want to continue the installation?".
QNX Momentics Tool Suite
273238After building a project, the project may have compiled correctly but in some cases showed header files as unresolved in the IDE editor. This was a result of unresolved symbols in the code.
259269The IDE update manager did not show an error message if it could not connect to the update site. Instead it indicated that there were no updates available.
187614An application with many assets may have timed out when trying to deploy.
114986When using Ubuntu 64-bit and registering with the RIM Signing Authority, you may have received the error "Error registering long term keys Error: null".
Back to TopKnown limitations
APIs
- There is a slight delay between tracks played as part of a playlist (approximately 0.5 seconds), even when the playlist includes only one track that is repeating.
General
- Applications using FreeType must add the following include path:
$QNX_TARGET/usr/include/freetype2
Installation
- By default, the Native SDK installer creates the installation folder on Windows systems at the root of the C drive (for example: C:\bbndk). To install to the default installation folder on Windows 7, you must log in as a user who has administrator privileges. If you cannot log in as a user with administrator privileges, you must change the installation folder to an alternate folder that you have write access to.
- When installing and uninstalling the Native SDK on a 64-bit Linux host computer, you may see an error regarding a missing
libc.so.6
file. You can disregard this error message. - To run the installer and the IDE on Ubuntu 64-bit, you need to install the 32-bit libraries:
sudo apt-get install ia32-libs
. During the installation, answer yes to all the questions. - On Linux and Mac computers, the installer might crash when launching with an error similar to the following: "An internal LaunchAnywhere application error has occurred and this application cannot proceed." Unset the PS1 variable and restart the installation program to continue.
- On Mac computers, you may encounter an issue with incorrect permissions on the Native SDK installer executable. To launch the installation program, you will first need to manually change the permissions for the installer.
- When you execute bbndk.sh to launch the Native SDK on Ubuntu 11.04 32-bit, you might receive an error:
"QNX Compiler Configuration Error".
As a possible fix, update Ubuntu to the latest package by using the Update Manager utility. In addition, ensure your VMware version is up-to-date.
OpenAL
- The OpenAL 1.1 Specification and Reference incorrectly states that the function
alcCloseDevice()
will fail if the device's contexts and buffers have not been destroyed.alcCloseDevice()
actually destroys any contexts and buffers still associated with the device. - The function
alcGetIntegerv()
does not throw an error when retrieving ALC_MAJOR_VERSION and passing an invalid device pointer. - The function
alcGetString(device, ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER)
throws an error when invoked after the device has been closed. It should return the default device and ignore the device parameter. - The OpenAL 1.1 Specification and Reference incorrectly states in the description of the function
alcGetString()
, "Specifying NULL for deviceHandle when asking for ALC_EXTENSIONS will generate an ALC_INVALID_DEVICE error." In fact, no error is generated. - The OpenAL 1.1 Specification and Reference incorrectly states in the description of the function
alBufferData()
that, "An invalid size will result in an AL_INVALID_VALUE error." In fact, callingalBufferData()
with an invalid size does not cause the INVALID_VALUE error. - When the function
alcMakeContextCurrent()
is called with an uninitialized ALCcontext pointer, it correctly returns ALC_FALSE, but does not generate an ALC_INVALID_CONTEXT error. - The OpenAL Programmer's Guide - OpenAL Versions 1.0 and 1.1 incorrectly lists AL_INVALID_VALUE as a possible error returned by the functions
alGenBuffers()
andalGenSources()
when the array is not large enough to hold the number of items requested. In fact, no error is generated. - The function
alSource3f()
does not throw an AL_INVALID_VALUE error when invalid numbers are passed as parameters. Apps should perform their own validity checking. - The function
alSourcef()
throws an AL_INVALID_VALUE error for valid values when using AL_CONE_INNER_ANGLE and AL_CONE_OUTER_ANGLE. - No error is thrown when the function
alutLoadWAVFile()
is called without a current context. - The function
alutGetError()
does not return ALUT_ERROR_ALC_ERROR_ON_ENTRY when there was already an ALC error on entry toalutLoadMemoryFromFileImage()
. - In the OpenAL Programmers Guide, AL_DATA is incorrectly documented as a valid buffer property. An attempt to retrieve this property through
alGetBufferi()
andalGetBufferiv()
will result in an AL_INVALID_ENUM error. - The deprecated function
alutLoadWAVMemory()
does not return the expected values. - The function
alGetListenerfv()
does not generate an error when called with an invalid value. Apps should perform their own validity checking. - The following attributes are set by the device, and cannot be altered using the attribute list of the function
alcCreateContext()
: ALC_FREQUENCY, ALC_REFRESH, ALC_SYNC, ALC_MONO_SOURCES, ALC_STEREO_SOURCES, ALC_MAX_AUXILIARY_SEN. - The OpenAL 1.1 Specification and Reference incorrectly states that the function
alGetEnumValue()
sets the error code AL_INVALID_VALUE if the specified enumeration cannot be found. In fact, this error is not set when an invalid enumeration value is specified. - The OpenAL Programmer's Guide - OpenAL Versions 1.0 and 1.1 incorrectly states that the functions
alcSuspendContext()
andalcProcessContext()
produce the error ALC_INVALID_CONTEXT when called with a null or destroyed context. However, no error is generated. - The function
alListener3f()
does not generate an error when called with a NULL value for the AL_VELOCITY attribute. Apps should perform their own validity checking. - The function
ALCGetProcAddress()
does not return addresses for the specified context extension functions, even for valid functions. It always returns NULL. - The function
alSourceQueueBuffers()
queues invalid buffers. If you pass a NULL buffer to this function, it will queue the buffer and not raise an error, even though the buffer is not valid.
OpenSSL
BlackBerry 10 uses OpenSSL 1.0.1, with the following deviations from the standard implementation:
- TLSv1.2 is not supported.
- The heartbeat TLS extension has been disabled. This extension is described by RFC 6520, which is located at http://www.rfc-editor.org/rfc/rfc6520.txt.
- The list of default SSL/TLS/DTLS ciphersuites has been altered.
- Applications using SSL/TLS/DTLS connections to get a default set of ciphersuites unless they explicitly specify which ciphersuites they want to support using
SSL_CTX_set_cipher_list()
orSSL_set_cipher_list()
. - The default set of ciphersuites has been changed to "ALL:!aNULL:!eNULL:!SRP:!SSLv2" which eliminates the SRP ciphersuites from the standard default set of ciphersuites provided by OpenSSL 1.0.1.
- Applications using SSL/TLS/DTLS connections to get a default set of ciphersuites unless they explicitly specify which ciphersuites they want to support using
- TLSv1.1 support is disabled by default.
SSL_CTX_new()
, which is used to create a new SSL_CTX object for TLS/SSL/DTLS negotiations, has been altered to disable TLSv1.1 support by automatically setting the option SSL_OP_NO_TLSv1_1.- TLSv1.1 will be disabled by default when using
SSLv23_method()
,SSLv23_server_method()
, orSSLv23_client_method()
. Applications that need TLSv1.1 support can clear the option by callingSSL_CTX_clear_options(ctx, SSL_OP_NO_TLSv1_1)
or can use one of the following TLSv1.1-only methods:TLSv1_1_method()
,TLSv1_1_server_method()
, orTLSv1_1_client_method()
.
Scoreloop
- Social networks are not supported in the Scoreloop SDK 2.2 release. APIs related to the following classes are unsupported:
- SC_Message (partial)
- SC_Message_Controller (partial)
- SC_SocialController
- SC_SocialNetwork
- The API Reference Guide states the methods that are not supported for this release. For more information on the Scoreloop SDK, see the following resources:
QNX Momentics Tool Suite
- When you use the Memory Analysis tool, you may see an empty graph with the warning "No graphical input". This is by design for security reasons and this information is unsupported for BlackBerry 10 OS targets.
- Standard makefile projects cannot be named "makefile". Use a different name for your project.
- Memory leaks are only reported when an application exits normally. If it is killed or crashes, memory leaks will not be reported. To report memory leaks in this case, the API should be used.
Known issues
This section lists known issues for the BlackBerry Native SDK, version 10.1 Gold.
APIs
204691If a file's permission is changed to write and invocation is performed, the target application does not get invoked.
BBM Social Platform
275822In the BlackBerry 10 Device Simulator, if you connect to BlackBerry ID through BlackBerry World, and then connect to BlackBerry Messenger, the simulator stays locked in a connecting state.
Workaround: Connect to BlackBerry Messenger before connecting to BlackBerry World or, while BlackBerry Messenger is locked in a connecting state, go to Settings > BlackBerry ID, and then login to BlackBerry ID.
Images that use transparency might not appear correctly in the user's list of BBM applications.
261200When BBM Connect (Settings > Security and Privacy > Application Permissions) is toggled from ON to OFF or from OFF to ON the registration and permission states are not updated.
218238If BBM Connect (Settings Application > Security and Privacy > Application Permissions) for an app is turned off before launching the app, toggling BBM Connect doesn't update the registration status of the app.
Workaround: Turn BBM Connect on before launching the app.
Documentation
We are hard at work creating an awesome UI experience for you! While we are doing this, some references to the BlackBerry 10 UI, including screenshots, may not reflect what you see in the current software.
The documentation that is installed with the BlackBerry 10 Native SDK and available from the QNX Momentics IDE may not be the most recent version. For the latest version, visit the BlackBerry Native SDK Documentation site.
In previous releases, the most recent version of the BlackBerry Platform Services library (libbps) was bundled with the Native SDK. This version was newer than the version on the target OS. To ensure the correct BPS library version was used by applications at run-time, projects in the Native SDK 1.0 would:
- Use BPS headers from the
$QNX_TARGET/../target-override
location for compilation, - Link the libbps.so from the
$QNX_TARGET/../target-override
location to generate the application executable, and - Package the libbps.so from the
$QNX_TARGET/../target-override
location in the BAR.
As of the Native SDK 2.0.0 release, BPS no longer resides in the target-override location. The BlackBerry 10 OS and BlackBerry 10 Native SDK versions of this library are in sync. If you have applications targeting BlackBerry 10 that you no longer wish to support on PlayBook 1.0.x, you should remove the libbps.so.1 asset from bar-descriptor.xml and target the BlackBerry 10 version of the Native SDK. To verify, select the QNX page in the project properties dialog. Otherwise, packaging of the BAR file will fail because it will not be able to find the libbps.so file to include in the BAR.
Installation
261783When you run the BlackBerry Native SDK installer on Windows 8, you cannot create a shortcut in the Start menu.
Workaround: You can use options in the installer to create shortcuts on the Desktop and the Quick Launch bar.
Installing the Native SDK into the same folder as a previous version is not supported. Uninstall the previous version before installing the new version.
170950The Native SDK Installer does not create an icon on the Dock for Mac OS X Mountain Lion, version 10.8 but the application is still properly installed.
Workaround: Run the bbndk command file from where the Native SDK is installed.
When you uninstall the Native SDK on Mac or Linux, you might get a warning that some files are not removed. This can be ignored and you can manually delete the remaining files.
115276On Linux systems, if the launch command contains "..", the Native SDK installer fails.
110605You might get a warning after uninstalling the Native SDK that some directories couldn't be removed. This can be ignored.
97829The installer provides recommendations on the space required to install the Native SDK. The number may be low and should 4 GB. For more information, see the system requirements.
QNX Momentics Tool Suite
In the bar-descriptor file, the <action> element used in previous versions of the Native SDK has been changed to be used with the Invocation Framework. The <permission> element has been reinstated for use to control permissions for an application. If you need to add permissions to your <action> application, you must change it to use the <permission> element. For more information, see The application descriptor file DTD.
276767In a Windows environment, uninstalling the IDE does not remove any SDKs installed using the update manager.
Workaround: Manually remove the SDKs from the installation directory.
If you rename an existing project, the IDE does not prevent you from using special characters, spaces, or other invalid naming conventions.
Workaround: To prevent issues, you should avoid using special characters, spaces, and names that are shorter than 3 characters or longer than 25 characters.
If you update the IP address of a BlackBerry Target and click OK without clicking Apply first, the IDE gives an error that it can't connect to the target. However, the IDE does connect.
Workaround: After updating the IP address, click Apply before clicking OK.
The locked SDKs in the Update Native SDK wizard may not accurately reflect the SDKs you are using. Use care when uninstalling SDKs to ensure that you don't uninstall an SDK that you want to continue using.
258694In a Linux environment, if you run the update manager and do not choose the options to switch to the newest SDK or to update the IDE, after the upgrade, the newest SDK is used by default.
Workaround: When you run the update manager, choose the option to update the IDE.
Cancelling the BAR file signing process deletes a previously signed BAR file.
Workaround: Increment the app version before signing the BAR file for the second time.
Postmortem debug is not available for shared libraries. The error message, "'Asynchronous viewer input update' has encountered a problem. An internal error was occurred." is displayed.
225372Using GNU debugger, your debug session may break with an internal-error (for example, handle_inferior_event).
222155The GNU debugger crashes when breakpoints are set and you switch from the Breakpoints tab to the Variables tab.
211332The GNU debugger may not display the variable values in certain circumstances.
206368If you debug an application with Windows XP, you may receive an error stating there was an "InvocationTargetException".
Workaround: Install the Microsoft Visual C++ 2008 Redistributable Package (x86).
When debugging an OpenGL 2.0 project, the debugger may skip some breakpoints.
200419It is possible that the debugger may take 5-10 minutes to launch in certain circumstances.
195895If you try to launch an application in debug mode that is already running on the device, the QNX Momentics IDE may consume 100% of your CPU.
Workaround: Close the application on the device before launching it again.
When setting a project-specific SDK, the settings will only take effect the second time you build your project.
157697A class containing a pure virtual function using variable arguments cannot be inherited virtually. The following error is generated: "generic trunk code fails for method 'virtual void Log::Logger::Debug(const char*, ...)' which uses '...'".
140310When you create a project with a name that begins with a numeric value, you will see the following error: "Package ID is invalid". Project names cannot start with a numeric value and must start with a letter from a-z or A-Z.
121283During debug sessions, watchpoints are not supported.
119766If you launch Run Config and enable the Code Coverage tool, when you check Code Coverage Sessions, there is no coverage of shared and static libraries.
117556While debugging the "GoodCitizen" sample project using the "Step Into" function, the debugger doesn't step into the handle_events()
function. The debugger jumps directly to the update()
function and steps into that function.
Do not launch your application with the Application Profiler enabled in debug mode. This might cause the IDE to stop responding.
114071During initialization, the MSYS.dll provided with the Native SDK will try to map network shares. If they are not available, then it will take as long as the network access timeout for each such mapped share for MSYS to start. This can lead to build times being slower if MSYS based utilities are used.
111911To use the breakpoint command GNU Debugger (GDB) Command Action, you need to switch your debug framework to CDI. Click Run > Debug Configurations. Select your application, and on the Main tab, click Select Other at the bottom of the page. Select CDI Debugging Framework (Traditional) Launcher, and click OK.
111197The Native SDK ships static libraries for most of the libraries of the platform. However, we recommend using shared libraries where possible to reduce your application footprint and to take advantage of bug fixes in the platform.
77220If you use the Application Profiler with the Sampling method on a target, all threads must be bound to CPU 0 because the Application Profiler only checks samples for CPU 0.
Back to TopLooking for release notes for previous releases?
You can find the release notes for previous releases on the following pages:
- Native SDK 10.1 Release Notes
- For target 10_1_0_807 (Beta 2 - posted March 8, 2013)
- For target 10_1_0_338 (Beta 1 - posted February 6, 2013)
- Native SDK 10.0 Release Notes
- For target 10_0_9_2709 (Update 3 - posted March 22, 2013)
- For target 10_0_10_672 (Update 2 - posted February 21, 2013)
- For target 10_0_10_261 (Update 1 - posted January 30, 2013)
- For target 10_0_9_2372 (Gold Release - posted January 10, 2013)
Last Modified: March 22, 2013
Added previous release note content: June 6, 2013