1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-15 20:19:23 +00:00
trezor-firmware/src/boot.py

52 lines
1.5 KiB
Python
Raw Normal View History

2018-02-19 19:36:12 +00:00
from trezor import config, loop, res, ui
from trezor.pin import pin_to_int, show_pin_timeout
from apps.common.request_pin import request_pin
2018-02-19 19:36:12 +00:00
async def bootscreen():
2017-10-24 11:59:09 +00:00
while True:
2018-02-19 19:36:12 +00:00
try:
if not config.has_pin():
config.unlock(pin_to_int(''), show_pin_timeout)
return
await lockscreen()
while True:
pin = await request_pin()
if config.unlock(pin_to_int(pin), show_pin_timeout):
return
except: # noqa: E722
2018-02-19 19:36:12 +00:00
pass
async def lockscreen():
from apps.common import storage
label = storage.get_label()
image = storage.get_homescreen()
if not label:
label = 'My TREZOR'
if not image:
image = res.load('apps/homescreen/res/bg.toif')
await ui.backlight_slide(ui.BACKLIGHT_DIM)
2018-02-27 14:34:13 +00:00
ui.display.clear()
ui.display.avatar(48, 48, image, ui.TITLE_GREY, ui.BG)
ui.display.text_center(120, 35, label, ui.BOLD, ui.TITLE_GREY, ui.BG)
ui.display.bar_radius(40, 100, 160, 40, ui.TITLE_GREY, ui.BG, 4)
ui.display.bar_radius(42, 102, 156, 36, ui.BG, ui.TITLE_GREY, 4)
ui.display.text_center(120, 128, 'Locked', ui.BOLD, ui.TITLE_GREY, ui.BG)
ui.display.text_center(130, 220, 'Tap to unlock', ui.BOLD, ui.TITLE_GREY, ui.BG)
ui.display.icon(45, 202, res.load(ui.ICON_CLICK), ui.TITLE_GREY, ui.BG)
2017-10-24 11:59:09 +00:00
2018-02-19 19:36:12 +00:00
await ui.backlight_slide(ui.BACKLIGHT_NORMAL)
await ui.click()
2017-10-24 11:59:09 +00:00
config.init()
2018-02-19 19:36:12 +00:00
ui.display.backlight(ui.BACKLIGHT_NONE)
loop.schedule(bootscreen())
2017-10-24 11:59:09 +00:00
loop.run()