打包加密架構

使用環境
- 支援quickjs引擎固件
- 不支援duktape引擎固件
使用方式
基于指令行工具來進行加密。
指令行API
pack - 打包應用
指令參數
amp pack <app-dir> -m <mode> -e <encode>
說明
将應用打包成app.bin。
- mode:模式,可選項 [quickjs | duktape],預設duktape
- encode:編譯,可選項 [0 | 1],預設0不編譯,duktape不支援編譯
該指令執行後,生成的app.bin檔案存放于執行目錄。
指令示例
$ amp pack ./app /dev/tty.usb* -m quickjs -e 1
put - 線上熱更新
amp put <app-dir> <device-name> -m <mode> -e <encode>
遠端推送輕應用到裝置。
- encode:編譯,可選項 [0 | 1],預設0不編譯
$ amp put ./app 8675*******3456 /dev/tty.usb* -m quickjs -e 1
serialput - 本地熱更新
amp serialput <app-dir> <port> -m <mode> -e <encode> -b <baudrate>
通過序列槽推送輕應用到裝置(本地更新)。
- baudrate:波特率,預設115200
$ amp serialput ./app /dev/tty.usb* -m quickjs -e 1
實際效果
原始代碼
// 以控制led燈代碼為例
// app.js
import * as gpio from 'gpio';
let led3 = gpio.open({
id: 'LED3',
success: function() {
console.log('gpio: open led success')
},
fail: function() {
console.log('gpio: open led failed')
}
});
let val = 0;
// 設定gpio亮滅,間隔一秒
setInterval(function() {
val = 1 - val;
led3.writeValue(val);
console.log('led set value :', val);
}, 1000);
// app.json
{
"version": "1.0.0",
"io": {
"LED3": {
"type": "GPIO",
"port": 36,
"dir": "output",
"pull": "pulldown"
}
},
"debugLevel": "DEBUG"
}
未加密代碼
// app.bin
� ��
u6���+"��app.json{
"version": "1.0.0",
"io": {
"LED3": {
"type": "GPIO",
"port": 36,
"dir": "output",
"pull": "pulldown"
}
},
"debugLevel": "DEBUG"
}�Y�Q���-�Б%Aapp.jsimport * as gpio from 'gpio'; // app.js
var led3 = gpio.open({
id: 'LED3',
success: function success() {
console.log('gpio: open led success');
},
fail: function fail() {
console.log('gpio: open led failed');
}
});
var val = 0; // 設定gpio亮滅,間隔一秒
setInterval(function () {
val = 1 - val;
led3.writeValue(val);
console.log('led set value :', val);
}, 1000);
加密代碼
// app.bin
� ��
u6���+"��app.json{
"version": "1.0.0",
"io": {
"LED3": {
"type": "GPIO",
"port": 36,
"dir": "output",
"pull": "pulldown"
}
},
"debugLevel": "DEBUG"
}��_$��"Ss�N�K�{�app.jsbapp.jsgpioled3valopenLED3idsuccessfailsetIntervalconsolelog,gpio: open led success*gpio: open led failedwriteValueled set value :����3�
��eB��L��L��L�$��8�����)�
07(&C�8�B��$)�]C�8�B��$)�]C#���ܟ��B��$8�B���$)�:b