• hi,
    remember in android before v4,
    the ROMs are unencrypted, and the data is protected by the screen lock.
    Any direct reading from the ICs will have data leak.

    I will say that's ok for a new, immature system.

    currenly,
    bangle v2, mostly due to cpu power, ram, storage, is also not fully encrypted,
    and thus the ICs could be read.

    however having a screen lock will be the best choice at the moment.

    i myself playing around with "pattern launcher":
    on the clock we swipe a pattern, and if correct, we'll enter the launcher,
    if incorrect or not detected, nothing happens.

    however,

    1. a press on BTN1 will go into launcher (danger, i wanna disable this)
    2. a 1.5s press on BTN1 will go back to the clock (i.e. no security breach)
    3. a 10s press will reboot bangle, if keep pressing the BTN1, will go to recovery. here the attacker can load the firmware WITHOUT any code, so could bypass "pattern launcher" = security breach.

    this is not the moment i can touch the recovery thing. (3)
    and (2) is safe.
    i wanna deal with (1)

    from here:
    https://www.espruino.com/Bangle.js+Clock­
    the "press BTN1 go to launcher" is written into the clock (i use Anton clock +).
    so i simply have to fork / modify Anton Clock +, and remove this line, then i think this will set it?

    Thanks

    ps would be nice to see under-screen finger print reader for bj v3 just it may be too luxury.
    would be nice to use finger print with NFC for more IDENTITY thing

    ref: from https://www.espruino.com/Bangle.js+Clock­
    Extra Clock Features⇠
    We now have something that tells the time, but we need to add a few extra bits before we can make this a clock face:

    BTN2 to start the launcher⇠
    Every clock needs to be able to start the launcher, and the default for this is the middle button. All you need to do is add this to the end of the clock code (not in a function):

    // Show launcher when middle button pressed
    Bangle.setUI("clock");
    Note: In Bangle.js firmwares before 2v08, apps used the following code to explicitly show the launcher when BTN2 is pressed: setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" });. Using Bangle.setUI allows users to install different apps which start the launcher (or other apps) with different functionality, independent of the clock face.

    tag
    #bangle.js #v2

  • indeed if the bangle system could provide a setting for the above
    Bangle.setUI("clock");
    then every clock + pattern launcher will do the trick.
    currently, the above need to be done on a per-clock face basis.

  • will need to try later,
    https://www.espruino.com/Reference#l_Ban­gle_setUI

    not sure if need to add back Bangle.CLOCK=1 for it.

    'clock' - called for clocks. Sets Bangle.CLOCK=1 and allows a button to start the launcher
    Bangle.js 1 BTN2 starts the launcher
    Bangle.js 2 BTN1 starts the launcher

  • more info to read:
    https://www.espruino.com/ReferenceBANGLE­JS2#l_Bangle_isLocked

    Bangle.setUI({
    mode : "custom",
    back : function() {}, // optional - add a 'back' icon in top-left widget area and call this function when it is pressed , also call it when the hardware button is clicked (does not override btn if defined)
    remove : function() {}, // optional - add a handler for when the UI should be removed (eg stop any intervals/timers here)
    redraw : function() {}, // optional - add a handler to redraw the UI. Not needed but it can allow widgets/etc to provide other functionality that requires the screen to be redrawn
    touch : function(n,e) {}, // optional - (mode:custom only) handler for 'touch' events
    swipe : function(dir) {}, // optional - (mode:custom only) handler for 'swipe' events
    drag : function(e) {}, // optional - (mode:custom only) handler for 'drag' events (Bangle.js 2 only)
    btn : function(n) {}, // optional - (mode:custom only) handler for 'button' events (n==1 on Bangle.js 2, n==1/2/3 depending on button for Bangle.js 1)
    clock : 0 // optional - if set the behavior of 'clock' mode is added (does not override btn if defined)
    });

  • ps: may simply swap any clock face's last part with this code:
    Note: In Bangle.js firmwares before 2v08, apps used the following code to explicitly show the launcher when BTN2 is pressed: setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" });.
    As BJv2 dont have BTN2, this will do the trick i think.

  • If you want to replace Bangle.setUI it's pretty easy to do so by adding it to your boot code. Tutorial here: https://www.espruino.com/Bangle.js+Modif­ication

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

[BJv2, dev, help appreciated] Turn "pattern launcher" into screen lock for bangle v2?

Posted by Avatar for ccchan @ccchan

Actions