Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e84dbf2c15 | ||
|
|
990ff8e980 | ||
|
|
1ca8e67e52 | ||
|
|
23cb583bf7 | ||
|
|
d5cc735b85 | ||
|
|
1981311136 | ||
|
|
bbb5d4a35b | ||
|
|
58ef40fb02 | ||
|
|
b8f35df155 | ||
|
|
c3e712851c | ||
|
|
2eaa1e0634 | ||
|
|
6ee21bcd7a | ||
|
|
10ae68ad4b |
@@ -11,7 +11,7 @@ matrix:
|
|||||||
fast_finish: true
|
fast_finish: true
|
||||||
include:
|
include:
|
||||||
- os: osx
|
- os: osx
|
||||||
osx_image: xcode8.3
|
osx_image: xcode9.3beta
|
||||||
- os: linux
|
- os: linux
|
||||||
env: CC=clang CXX=clang++ npm_config_clang=1
|
env: CC=clang CXX=clang++ npm_config_clang=1
|
||||||
compiler: clang
|
compiler: clang
|
||||||
|
|||||||
13
CHANGELOG.md
13
CHANGELOG.md
@@ -6,7 +6,16 @@ The format is loosely based on [Keep a Changelog](http://keepachangelog.com/en/1
|
|||||||
|
|
||||||
Every Agent version includes the most recent firmware version. See the [firmware changelog](https://github.com/UltimateHackingKeyboard/firmware/blob/master/CHANGELOG.md).
|
Every Agent version includes the most recent firmware version. See the [firmware changelog](https://github.com/UltimateHackingKeyboard/firmware/blob/master/CHANGELOG.md).
|
||||||
|
|
||||||
## [1.1.1] - 2017-02-13
|
## [1.1.2] - 2018-03-09
|
||||||
|
|
||||||
|
Firmware: 8.1.**4** [[release](https://github.com/UltimateHackingKeyboard/firmware/releases/tag/v8.1.4)] | Device Protocol: 4.2.0 | User Config: 4.0.0 | Hardware Config: 1.0.0
|
||||||
|
|
||||||
|
- Fix the configuration serializer so that the correct key actions get serialized, and the save button always appears when needed.
|
||||||
|
- Add instructions to the firmware page to aid users.
|
||||||
|
- Fix code signing on OSX.
|
||||||
|
- Sign Agent on Windows.
|
||||||
|
|
||||||
|
## [1.1.1] - 2018-02-13
|
||||||
|
|
||||||
Firmware: 8.1.**2** [[release](https://github.com/UltimateHackingKeyboard/firmware/releases/tag/v8.1.2)] | Device Protocol: 4.2.0 | User Config: 4.0.0 | Hardware Config: 1.0.0
|
Firmware: 8.1.**2** [[release](https://github.com/UltimateHackingKeyboard/firmware/releases/tag/v8.1.2)] | Device Protocol: 4.2.0 | User Config: 4.0.0 | Hardware Config: 1.0.0
|
||||||
|
|
||||||
@@ -20,7 +29,7 @@ Firmware: 8.1.**2** [[release](https://github.com/UltimateHackingKeyboard/firmwa
|
|||||||
- Assign "switch to test keymap" action on all keymaps in the default configuration.
|
- Assign "switch to test keymap" action on all keymaps in the default configuration.
|
||||||
- Add keymap descriptions in the default configuration.
|
- Add keymap descriptions in the default configuration.
|
||||||
|
|
||||||
## [1.1.0] - 2017-01-15
|
## [1.1.0] - 2018-01-15
|
||||||
|
|
||||||
Firmware: 8.**1**.0 [[release](https://github.com/UltimateHackingKeyboard/firmware/releases/tag/v8.1.0)] | Device Protocol: 4.2.0 | User Config: 4.0.0 | Hardware Config: 1.0.0
|
Firmware: 8.**1**.0 [[release](https://github.com/UltimateHackingKeyboard/firmware/releases/tag/v8.1.0)] | Device Protocol: 4.2.0 | User Config: 4.0.0 | Hardware Config: 1.0.0
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
os: unstable
|
os: unstable
|
||||||
|
|
||||||
|
clone_folder: c:\projects\uhk-agent
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
GH_TOKEN:
|
GH_TOKEN:
|
||||||
secure: 3IebpEKmC39codi1wT6dXx8mql4/mCL1JzZ7lir7GQ5MWRnCxlED2OXbiKHHigDV
|
secure: 3IebpEKmC39codi1wT6dXx8mql4/mCL1JzZ7lir7GQ5MWRnCxlED2OXbiKHHigDV
|
||||||
|
CSC_LINK: c:\projects\uhk-agent\scripts\certs\windows-cert.p12
|
||||||
matrix:
|
matrix:
|
||||||
- nodejs_version: "8"
|
- nodejs_version: "8"
|
||||||
|
|
||||||
|
|||||||
1995
package-lock.json
generated
1995
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
10
package.json
10
package.json
@@ -3,8 +3,8 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"author": "Ultimate Gadget Laboratories",
|
"author": "Ultimate Gadget Laboratories",
|
||||||
"main": "electron/dist/electron-main.js",
|
"main": "electron/dist/electron-main.js",
|
||||||
"version": "1.1.1",
|
"version": "1.1.2",
|
||||||
"firmwareVersion": "8.1.2",
|
"firmwareVersion": "8.1.4",
|
||||||
"deviceProtocolVersion": "4.2.0",
|
"deviceProtocolVersion": "4.2.0",
|
||||||
"userConfigVersion": "4.0.0",
|
"userConfigVersion": "4.0.0",
|
||||||
"hardwareConfigVersion": "1.0.0",
|
"hardwareConfigVersion": "1.0.0",
|
||||||
@@ -37,17 +37,17 @@
|
|||||||
"decompress-tarbz2": "^4.1.1",
|
"decompress-tarbz2": "^4.1.1",
|
||||||
"devtron": "1.4.0",
|
"devtron": "1.4.0",
|
||||||
"electron": "1.7.11",
|
"electron": "1.7.11",
|
||||||
"electron-builder": "19.45.5",
|
"electron-builder": "20.4.0",
|
||||||
"electron-debug": "1.4.0",
|
"electron-debug": "1.4.0",
|
||||||
"electron-devtools-installer": "2.2.0",
|
"electron-devtools-installer": "2.2.0",
|
||||||
"electron-log": "2.2.9",
|
"electron-log": "2.2.9",
|
||||||
"electron-rebuild": "1.6.0",
|
"electron-rebuild": "1.7.3",
|
||||||
"electron-settings": "3.1.2",
|
"electron-settings": "3.1.2",
|
||||||
"exports-loader": "0.6.3",
|
"exports-loader": "0.6.3",
|
||||||
"file-loader": "0.10.0",
|
"file-loader": "0.10.0",
|
||||||
"fs-extra": "4.0.2",
|
"fs-extra": "4.0.2",
|
||||||
"jsonfile": "4.0.0",
|
"jsonfile": "4.0.0",
|
||||||
"lerna": "2.0.0",
|
"lerna": "2.9.0",
|
||||||
"mkdirp": "0.5.1",
|
"mkdirp": "0.5.1",
|
||||||
"npm-run-all": "4.0.2",
|
"npm-run-all": "4.0.2",
|
||||||
"pre-commit": "1.2.2",
|
"pre-commit": "1.2.2",
|
||||||
|
|||||||
@@ -54,15 +54,12 @@ export class Module {
|
|||||||
|
|
||||||
const noneAction = new NoneAction();
|
const noneAction = new NoneAction();
|
||||||
|
|
||||||
const keyActions: KeyAction[] = this.keyActions.map(keyAction => {
|
buffer.writeArray(this.keyActions, (uhkBuffer: UhkBuffer, keyAction: KeyAction) => {
|
||||||
if (keyAction) {
|
if (keyAction) {
|
||||||
return keyAction;
|
|
||||||
}
|
|
||||||
return noneAction;
|
|
||||||
});
|
|
||||||
|
|
||||||
buffer.writeArray(keyActions, (uhkBuffer: UhkBuffer, keyAction: KeyAction) => {
|
|
||||||
keyAction.toBinary(uhkBuffer, userConfiguration);
|
keyAction.toBinary(uhkBuffer, userConfiguration);
|
||||||
|
} else {
|
||||||
|
noneAction.toBinary(uhkBuffer);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,14 @@
|
|||||||
<i class="fa fa-sliders"></i>
|
<i class="fa fa-sliders"></i>
|
||||||
<span>Firmware</span>
|
<span>Firmware</span>
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
|
<p><i>
|
||||||
|
Please note that the firmware update process may sometimes fail. If if fails then
|
||||||
|
simply retry until it succeeds. If the left half becomes unresponsive after a failed
|
||||||
|
update then retry and follow the instructions displayed during the update to fix it.
|
||||||
|
We'll make the firmware update process more robust.
|
||||||
|
</i></p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Flash firmware {{ (getAgentVersionInfo$ | async).firmwareVersion }} (bundled with Agent)
|
Flash firmware {{ (getAgentVersionInfo$ | async).firmwareVersion }} (bundled with Agent)
|
||||||
<button class="btn btn-primary"
|
<button class="btn btn-primary"
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ function getUint16(buffer, offset) {
|
|||||||
let prevGeneric, prevBasic, prevMedia, prevSystem, prevMouse;
|
let prevGeneric, prevBasic, prevMedia, prevSystem, prevMouse;
|
||||||
function getDebugInfo() {
|
function getDebugInfo() {
|
||||||
|
|
||||||
const payload = new Buffer([uhk.usbCommands.getDebugInfo]);
|
const payload = new Buffer([uhk.usbCommands.getDebugBuffer]);
|
||||||
|
console.log(payload)
|
||||||
console.log('Sending ', uhk.bufferToString(payload));
|
console.log('Sending ', uhk.bufferToString(payload));
|
||||||
device.write(uhk.getTransferData(payload));
|
device.write(uhk.getTransferData(payload));
|
||||||
const rxBuffer = Buffer.from(device.readSync());
|
const rxBuffer = Buffer.from(device.readSync());
|
||||||
|
|||||||
2
scripts/certs/.gitignore
vendored
Normal file
2
scripts/certs/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
windows-cert.p12
|
||||||
|
mac-cert.p12
|
||||||
BIN
scripts/certs/mac-cert.p12.enc
Normal file
BIN
scripts/certs/mac-cert.p12.enc
Normal file
Binary file not shown.
BIN
scripts/certs/windows-cert.p12.enc
Normal file
BIN
scripts/certs/windows-cert.p12.enc
Normal file
Binary file not shown.
@@ -42,13 +42,13 @@ if (!isReleaseCommit) {
|
|||||||
process.exit(0)
|
process.exit(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (process.platform === 'darwin' && !RUNNING_IN_DEV_MODE) {
|
// if (process.platform === 'darwin' && !RUNNING_IN_DEV_MODE) {
|
||||||
exec('brew install yarn --without-node');
|
// exec('brew install yarn --without-node');
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (!RUNNING_IN_DEV_MODE) {
|
// if (!RUNNING_IN_DEV_MODE) {
|
||||||
exec("yarn add electron-builder");
|
// exec("yarn add electron-builder");
|
||||||
}
|
// }
|
||||||
|
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const builder = require("electron-builder");
|
const builder = require("electron-builder");
|
||||||
@@ -82,9 +82,13 @@ if (process.platform === 'darwin') {
|
|||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (process.platform === 'darwin') {
|
if (process.platform === 'darwin' && process.env.CI) {
|
||||||
// TODO: Remove comment when macOS certificates boughted and exported
|
const encryptedFile = path.join(__dirname, './certs/mac-cert.p12.enc');
|
||||||
//require('./setup-macos-keychain').registerKeyChain();
|
const decryptedFile = path.join(__dirname, './certs/mac-cert.p12');
|
||||||
|
exec(`openssl aes-256-cbc -K $CERT_KEY -iv $CERT_IV -in ${encryptedFile} -out ${decryptedFile} -d`);
|
||||||
|
} else if (process.platform === 'win32') {
|
||||||
|
// decrypt windows certificate
|
||||||
|
exec('openssl aes-256-cbc -K %CERT_KEY% -iv %CERT_IV% -in scripts/certs/windows-cert.p12.enc -out scripts/certs/windows-cert.p12 -d')
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TEST_BUILD || gitTag) {
|
if (TEST_BUILD || gitTag) {
|
||||||
@@ -114,10 +118,13 @@ if (TEST_BUILD || gitTag) {
|
|||||||
productName: 'UHK Agent',
|
productName: 'UHK Agent',
|
||||||
mac: {
|
mac: {
|
||||||
category: 'public.app-category.utilities',
|
category: 'public.app-category.utilities',
|
||||||
extraResources
|
extraResources,
|
||||||
|
identity: 'CMXCBCFHDG',
|
||||||
|
cscLink: path.join(__dirname, 'certs/mac-cert.p12')
|
||||||
},
|
},
|
||||||
win: {
|
win: {
|
||||||
extraResources
|
extraResources,
|
||||||
|
certificateFile: path.join(__dirname, 'certs/windows-cert.p12')
|
||||||
},
|
},
|
||||||
linux: {
|
linux: {
|
||||||
extraResources
|
extraResources
|
||||||
@@ -136,8 +143,7 @@ if (TEST_BUILD || gitTag) {
|
|||||||
console.error(`${error}`);
|
console.error(`${error}`);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
})
|
})
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
console.log('No git tag');
|
console.log('No git tag');
|
||||||
// TODO: Need it?
|
// TODO: Need it?
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
'use strict'
|
|
||||||
|
|
||||||
const cp = require('child_process')
|
|
||||||
const path = require('path')
|
|
||||||
|
|
||||||
function registerKeyChain() {
|
|
||||||
const encryptedFile = path.join(__dirname, '../certs/developer-id-cert.p12.enc')
|
|
||||||
const decryptedFile = path.join(__dirname, '../certs/developer-id-cert.p12')
|
|
||||||
cp.execSync(`openssl aes-256-cbc -K $encrypted_04061b49eb95_key -iv $encrypted_04061b49eb95_iv -in ${encryptedFile} -out ${decryptedFile} -d`)
|
|
||||||
|
|
||||||
const keyChain = 'mac-build.keychain'
|
|
||||||
cp.execSync(`security create-keychain -p travis ${keyChain}`)
|
|
||||||
cp.execSync(`security default-keychain -s ${keyChain}`)
|
|
||||||
cp.execSync(`security unlock-keychain -p travis ${keyChain}`)
|
|
||||||
cp.execSync(`security set-keychain-settings -t 3600 -u ${keyChain}`)
|
|
||||||
|
|
||||||
cp.execSync(`security import ${decryptedFile} -k ${keyChain} -P $KEY_PASSWORD -T /usr/bin/codesign`)
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports.registerKeyChain = registerKeyChain
|
|
||||||
Reference in New Issue
Block a user