...
| Tabs Container | |||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||
|
To build a Bolt‑based web application, you will need the following:
Install and set up bolt-tools on your system by following the instructions in the repository:
https://github.com/rdkcentral/bolt-tools/tree/main
Bolt Tools provides the utilities required to package and sign your Bolt applications.
The app package configuration defines the entry point, dependencies, permissions, and other metadata required for building the Bolt package.
Example: "--url=https://lightningjs.io/tmdb/#splash"Example: "com.rdkcentral.wpe-rdk": "0.1.0"
| Code Block |
|---|
{
"id": "com.rdkcentral.appName",
"version": "0.1.0",
"versionName": "develop",
"name": "tmdb",
"packageType": "application",
"entryPoint": "--url=https://lightningjs.io/tmdb/#splash",
"dependencies": {
"com.rdkcentral.wpe-rdk": "0.1.0"
},
"permissions": [
"urn:rdk:permission:internet",
"urn:rdk:permission:firebolt",
"urn:rdk:permission:thunder",
"urn:rdk:permission:rialto"
],
"configuration": {}
} |
...
| title | Testing on Beta Apps |
|---|
For testing the beta wpe browser bolt (wpe+0.2.0) , the entry point configurations need to be set a bit differently :
...
To package an HTML/Lightning app into a Bolt bundle, you need:
com.rdkcentral.app_name.json).tgz formatFor HTML/Lightning applications, the rootfs layer can be an empty .tgz file, since the app is launched via a browser using a URL.
.tgz file, e.g.:empty.tgz
bolt pack com.rdkcentral.app_name.json empty.tgz
com.rdkcentral.app_name+<version>.bolt
This is the Bolt package to be installed on the platform.Every Bolt app must be digitally signed before installation.
Follow the signing instructions here:
https://wiki.rdkcentral.com/spaces/RDKM/pages/447124247/Bolt+package+-+signing+and+verification
...
/tmp/com.rdkcentral.app_name+0.1.0.bolt
...
| Code Block |
|---|
curl -X POST http://127.0.0.1:9998/jsonrpc -d '{"jsonrpc":2.0,"id":1,"method":"org.rdk.PackageManagerRDKEMS.install","params":{"packageId":"com.rdkcentral.app_name+0.1.0.bolt","version":"0.1.0","fileLocator":"/tmp/com.rdkcentral.app_name+0.1.0.bolt"}}' -H "Content-Type: application/json" |
...
| Code Block |
|---|
curl -s -X POST http://127.0.0.1:9998/jsonrpc -d '{"jsonrpc": "2.0","id": 1013, "method": "org.rdk.AppManager.1.launchApp", "params":{"appId":"com.rdkcentral.app_name"}}' |
|
This page describes the process for creating and building native Bolt applications within the RDK ecosystem. The meta-bolt-youtube repository serves as the canonical reference implementation throughout this article.
See also: meta-bolt-distro | bolt-tools | Bolt Package Store
A native Bolt application is a self-contained, application packaged as `.bolt` . Each application is maintained in its own Yocto meta-layer repository and follows a shared set of conventions across all RDK Bolt projects.
The overall workflow is:
All RDK Bolt application repositories follow this naming pattern:
| Code Block |
|---|
meta-bolt-<app_name> |
Examples:
A new meta-bolt repository is expected to contain the following top-level layout:
| Code Block | ||
|---|---|---|
meta-bolt-<app_name>/
├── README.md
├── CONTRIBUTING.md
├── LICENSE
├── COPYING
├── CHANGELOG.md
├── NOTICE
├── manifests/ # dependency declarations (see Section 3)
├── package-configs/ # Bolt package configuration JSON files (see Section 6)
├── recipes-core/ # image recipes (see Section 4)
├── recipes-devtools/ # host-tool recipes
├── recipes-extended/ # native app recipes and bbappend files (see Section 5)
├── conf/ # Yocto layer configuration
└── setup-environment # reusable environment setup script (see Section 7)
|
...
To create the folder:
| Code Block | |
|---|---|
mkdir manifests
|
...
|
...
|
...
|
...
...
...
...
|
...
|
...
...
...
|
...
|
...
|