Skip to content

Commit

Permalink
Merge pull request #455 from selfcustody/release-24.09.0
Browse files Browse the repository at this point in the history
Release 24.09.0
  • Loading branch information
odudex authored Sep 25, 2024
2 parents 1e716b3 + 3123de6 commit 64e5ae5
Show file tree
Hide file tree
Showing 197 changed files with 2,841,648 additions and 5,508 deletions.
2 changes: 2 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[html]
show_contexts = True
24 changes: 10 additions & 14 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,24 @@
---

name: 🐞 Bug report
about: Create a report to help us improve
title: "[Bug] the title of bug report"
about: Create a new report
title: "[Bug] the summary of your report"
labels: bug
assignees: ''

---

#### Summary

<!-- Describe some general things about the bug -->
#### Describe the bug
<!-- Please try to be specific in providing all the steps to reproduce the error. -->

**Device**
**Device(s) affected**
- [ ] Amigo
- [ ] M5stickV
- [ ] Cube
- [ ] Dock
- [ ] Bit
- [ ] Yahboom
- [ ] WonderMV

**Version**
- [ ] Official release (selfcustody/krux): <!-- Specify version, like v23.09.1 -->
- [ ] Beta release (odudex/krux_binaries): <!-- Specify version, like v24.01.0-beta14 -->

#### Describe the bug

<!-- Give some details about it -->
**Version affected**
- [ ] Official release (selfcustody/krux): vXX.YY.Z <!-- Specify the version! -->
- [ ] Beta release (odudex/krux_binaries): vXX.YY.Z-betaWW <!-- Specify the version! -->
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/enhancement.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
name: 🔥 Enhancement
about: New feature or request
title: "[Enhancement] the title of new feature or enhancement"
about: New feature request
title: "[Enhancement] summarize the new feature or enhancement"
labels: enhancement
assignees: ''

---

#### Describe the new feature or enhancement
#### Describe your request
10 changes: 5 additions & 5 deletions .github/ISSUE_TEMPLATE/help_wanted.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
name: 🥺 Help wanted
about: Help needed to use a feature, perform or understand a procedure
title: "[Help] the title of help wanted report"
labels: help wanted
name: 🥺 Other
about: Anything not related to a bug or feature
title: "[Other] summarize what is"
labels: other
assignees: ''

---

#### Describe the problem you need help
#### Describe what it is
12 changes: 4 additions & 8 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
<!-- Thank you for contributing! -->
### What is this PR for?

### Description

<!-- Please insert your description here and provide especially info about the "what" this PR is solving -->

### What is the purpose of this pull request? <!-- (put an "X" next to an item) -->

### What is the purpose of this pull request?
- [ ] Bug fix
- [ ] New Feature
- [ ] Documentation update
- [ ] New feature
- [ ] Docs update
- [ ] Other
27 changes: 26 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,13 @@ on:
branches:
- main
- develop
- 'release-**'

jobs:
build:
strategy:
matrix:
device: [maixpy_m5stickv, maixpy_amigo, maixpy_bit, maixpy_dock, maixpy_yahboom, maixpy_cube]
device: [maixpy_m5stickv, maixpy_amigo, maixpy_bit, maixpy_dock, maixpy_yahboom, maixpy_cube, maixpy_wonder_mv]
runs-on: ubuntu-latest
services:
registry:
Expand Down Expand Up @@ -183,6 +184,30 @@ jobs:
with:
path: ${{ steps.extract-cube.outputs.destination }}
name: build-cube

- name: Build for WonderMV
if: matrix.device == 'maixpy_wonder_mv'
uses: docker/build-push-action@v6
with:
context: .
build-args: DEVICE=maixpy_wonder_mv
push: true
tags: localhost:5000/selfcustody/krux-builder-wonder-mv:latest
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
- name: Extract firmware for WonderMV
id: extract-wonder-mv
if: matrix.device == 'maixpy_wonder_mv'
uses: shrink/actions-docker-extract@v3
with:
image: localhost:5000/selfcustody/krux-builder-wonder-mv:latest
path: /src/firmware/Kboot/build/.
- name: Upload firmware for WonderMV
if: matrix.device == 'maixpy_wonder_mv'
uses: actions/upload-artifact@v4
with:
path: ${{ steps.extract-wonder-mv.outputs.destination }}
name: build-wonder-mv

- name: Move cache
run: |
Expand Down
3 changes: 2 additions & 1 deletion .pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,8 @@ disable=bad-inline-option,
duplicate-code,
ungrouped-imports,
raise-missing-from,
anomalous-backslash-in-string
anomalous-backslash-in-string,
too-many-positional-arguments # Todo: remove this and adapt for releases above 24.09.0

# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option
Expand Down
65 changes: 65 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,68 @@
# Changelog 24.09.0 - September 25, 2024

### New Device Support: WonderMV
Manufactured by HiWonder, the WonderMV is similar to Yahboom K210 Module, with a few differences, including a metal enclosure, USB-C port, and screen backlight control.

### Added Support for East Asian Languages - Korean and Simplified Chinese
After implementing low-level support for different glyph form factors, we were finally able to introduce the long-awaited Korean language translation. Simplified Chinese support followed shortly thereafter.

### Faster PSBT Scanning
Reduced the time required to scan larger PSBTs by optimizing processing speed.

### Improved QR Code Scanning
Enhanced scan success rates in challenging conditions, such as reduced focus or scanning from greater distances.

### UI Standardization
The positions of "Yes" and "No" in prompts have been inverted to standardize the UI. Affirmative actions, such as "Yes," "Go," and "Proceed," will now be positioned on the right, while "No," "Esc," and "Back" will be on the left.

### Enhanced Scanning Progress Bars
QR code progress bars now provide more detailed information. For UR PSBTs, the progress bar indicates when a valid frame is captured, while for BBQR, it displays the index or position of the last successfully scanned frame.

### Mnemoniocs Editor - Loading Mnemonics
When manually loading an existing mnemonic, you can now correct typos and mistakes during the review stage by simply tapping or navigating to the incorrect words. The checksum word will be highlighted in red if the entered mnemonic is invalid to help detect eventual problems.

### Mnemonics Editor - New Mnemonic
When generating new mnemonics through dice rolls or camera images, you can now modify the entropy by changing some of the mnemonic words. The final word will dynamically adjust to always produce a valid checksum.

### Support for Scanning Various Binary Grid Formats
In addition to TinySeed, the camera can now scan and load mnemonics from equivalent formats, such as OneKey KeyTag, or even generic binary grids, like spreadsheets with colored, squared cells.

### Message Signing Using SD cards
Recently released in Sparrow, the SD card message signing workflow is now supported.

### Generate Double Mnemonics from Camera
When generating a new mnemonic using the camera, users can now choose to create a "Double Mnemonic," in addition to the standard 12 and 24-word options. This feature generates a 24-word mnemonic that, when split in half, forms two valid 12-word mnemonics.

### Increased Valid Touch Surface
To improve touch accuracy, especially on small touchscreens, the touch surface area of buttons has been increased to make better use of the available screen space.

### Add Account Descriptor Type Support
Krux now accepts urtype.Account type QR code descriptors.

### Enhanced File Exploring
File explorer now better differentiate files from folders.

### Camera Adjustments for Yahboom and WonderMV
Sensitivity and exposure adjustments were made to the GC2145 sensor, enhancing the scanning success rate for Yahboom and WonderMV devices.

### About Shows Board Type
Ensure you flashed the correct firmware for your device consulting the "About" menu item.

### Simplified Translations
Messages and terms were simplified to reduce firmware size and maintenance.

### Bugfix - Signing Messages with ":" Character
Fixed an issue where signing messages containing the ":" character would result in invalid signatures when signing at addresses.

### Bugfix - Import of Base64 Encoded PSBTs from SD Card
Fixed an issue where base64 encoded PSBTs imported from an SD card were not correctly detected and parsed.

### Translation Removed: Polish
Polish translation was removed due to the lack of maintainers and known users.

### Code Refactor and Optimizations
Several optimizations to increase performance and code quality.

# Changelog 24.07.0 - July 15, 2024

### Maix Cube Support
Expand Down
1 change: 1 addition & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ RUN rm -rf vendor/embit/src/embit/util/prebuilt && \
rm -f vendor/embit/src/embit/wordlists/slip39.py && \
rm -f vendor/embit/src/embit/util/ctypes_secp256k1.py && \
rm -f vendor/embit/src/embit/util/py_secp256k1.py && \
rm -f vendor/embit/src/embit/util/py_ripemd160.py && \
find vendor/embit -type d -name '__pycache__' -exec rm -rv {} + -depth

# copy firmware to WORKDIR (src)
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
[![created at](https://img.shields.io/github/created-at/selfcustody/krux)](https://github.com/selfcustody/krux/commit/bb8e2d63e031417111ff7cb2b8877c10e19410be)
[![downloads](https://img.shields.io/github/downloads/selfcustody/krux/total)](https://github.com/selfcustody/krux/releases)
[![downloads (latest release)](https://img.shields.io/github/downloads/selfcustody/krux/latest/total)](https://github.com/selfcustody/krux/releases)
[![commits (since latest release)](https://img.shields.io/github/commits-since/selfcustody/krux/latest/develop)](https://github.com/selfcustody/krux/compare/main...develop)
[![contributors](https://img.shields.io/github/contributors-anon/selfcustody/krux)](https://github.com/selfcustody/krux/graphs/contributors)
[![commit activity](https://img.shields.io/github/commit-activity/y/selfcustody/krux)](https://github.com/selfcustody/krux/commits)
[![codecov](https://codecov.io/gh/selfcustody/krux/branch/main/graph/badge.svg?token=XU80PT6Q9V)](https://codecov.io/gh/selfcustody/krux)
[![calver](https://img.shields.io/badge/calver-YY.0M.MICRO-22bfda.svg)](https://calver.org)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/selfcustody/krux/blob/main/LICENSE.md)
Expand Down
5 changes: 5 additions & 0 deletions docs/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,9 @@

.md-typeset img.twemoji {
margin: 0 !important;
}

.md-typeset h5 {
color: black;
text-transform: none;
}
26 changes: 26 additions & 0 deletions docs/getting-started/features/tinyseed.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
## Background
The examples below have been created so that you can test the workflow for scanning both 12 and 24 word mnemonics. (Scanning the left plate for a 12 word mnemonic and both plates for 24) The resulting fingerprint from an successful scan is also incldued in the image.

### TinySeed
![](../../img/tinyseed_binarygrid/tinyseed.jpg)

### OneKey KeyTag
![](../../img/tinyseed_binarygrid/onekey_keytag.jpg)

### Binary Grid
![](../../img/tinyseed_binarygrid/binarygrid.jpg)

## Size, Offset and Padding Reference
The general logic for how these are processed is:

1. Krux first looks for a square (Which works best if with a well lit square, with clean edges, on a dark background)
2. This square is checked and if the ratio of length to height is within a defined range for the given seed type, the square is further processed. (Uses the aspect_high and aspect_low variables)
3. An X and Y offset are applied to work out the corner of the seed grid within the seed plate. Some devices like the Maix Amigo use a mirrored coordinate system and some seed types will have a slightly different layout on the front and back of the plate. (Uses the x_offset and y_offset variables, p0 for the front face and p1 for the reverse face)
4. The location of each cell within the 12x12 grid is calculated. (This uses the xpad and ypad variables)
5. Krux uses the grid created in 4 to evaluate which cells are marked and which are blank, once a seed with a valid checksum is detected, the user can then confirm the dots.

If you have a different type of grid that you want to use, you will need to edit the offsets and padding numbers in tiny_seed.py. (All of the sizes are scaled based on the size of the square detected in step 1...)

You can match the pre-sets for supported key-types to the physical dimensions of the tag as shown below. (The numbers for these offsets are in 1/10th of a millimeter)

![](../../img/tinyseed_binarygrid/size_reference.jpg)
Loading

0 comments on commit 64e5ae5

Please sign in to comment.