スマホのロックをobnizで解除する

obnizとBluetoothモジュールを使って、スマホのロックを解除します。

これは何?

ブルートゥースキーボードを偽装することでスマホを解除します。

How does it work

スマホはBluetoothキーボードを繋げられます。
また、RN42モジュールはBlueoothキーボドとして振る舞うことが出来ます。

RN42をobnizにつなぎます。

これでobnizからスマホに好きな文字を送ることができるため、ロックを解除できます!

Program

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
<script src="//code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="https://unpkg.com/[email protected]/obniz.js"></script>
</script>
</head>
 
<body>
<div id="obniz-debug"></div>
<button id="config">config rn42</button>

<script>
var obniz = new Obniz("OBNIZ ID HERE");
obniz.onconnect = async function () {
  obniz.com11.output(true); // regulator required 5v to 3.3v
  obniz.com8.output(false);
  var rn42 = obniz.wired("RN42", 9, 10);

  var unlockBtn = obniz.wired("Button", 0, 2);
  var msgBtn = obniz.wired("Button", 4, 6);

  msgBtn.onChange(function(pressed){
    if (pressed) {
      rn42.send("hellonThis is writtern from obniz");
    }
  });

  unlockBtn.onChange(function(pressed){
    if (pressed) {
      var passcode = [1,2,3,4,5,6];
      rn42.send("n");
      obniz.freeze(500);
      rn42.send("n");
      obniz.freeze(500);
      for (var i=0; i<passcode.length; i++) {
        rn42.send(""+passcode[i]);
        obniz.freeze(400);
      } 
    }
  });

  $("#config").click(function(){
    rn42.config({
      display_name: "obniz",
      master_slave: "slave",
      profile: "HID",
      auth: "just-work",
      power: 16,
    })
  })
}
</script>
</body>
</html>