SlideShare a Scribd company logo
abusing phones 
to make the internet of things 
Jan Jongboom 
JSConf EU 2014
@janjongboom 
Jan, live in Amsterdam. Work for Telenor, LAAARGE telco. They pay me to work on Firefox OS.
@janjongboom 
Jan, live in Amsterdam. Work for Telenor, LAAARGE telco. They pay me to work on Firefox OS.
Let me start w/ confession... Before this talk I never owned a screwdriver. That’s a dangerous road when doing a hardware talk.
First screwdriver ever! 
Let me start w/ confession... Before this talk I never owned a screwdriver. That’s a dangerous road when doing a hardware talk.
Maker movement is 
EVERYWHERE 
(Kickstarter, spaces, fairs, Wired) 
These days hardware is totally coming back. Maker movement is everywhere. Can buy all stuff on Kickstarter, iot, etc. Even on 
cover of Wired.
Reason: Arduino & Raspberry boards that can connect ordinary stuff. Amazing for building new stuff. Phone sensors can be 
attached, low cost because huge volume.
Now one big problem for people that hardware-challenged like me. I don’t wanna do stuff like this, but still want to make things.
€ 34,99 
Also: stuff is expensive. Get a TFT display for a Rasperry Pi for 35 euro
€ 25,- 
While you can get a FULL phone for 25?!
So let’s make some cool shit. This is the Geeksphone Peak. It just has normal phone features. Compared to 25$ it has 1 camera 
more & 3G instead of 2g. It can run Firefox OS that’s nice.
Bluetooth, WiFi, 3G, 
2 Cameras, GPS, 
qHD touch screen 
So let’s make some cool shit. This is the Geeksphone Peak. It just has normal phone features. Compared to 25$ it has 1 camera 
more & 3G instead of 2g. It can run Firefox OS that’s nice.
Bluetooth, WiFi, 3G, 
2 Cameras, GPS, 
qHD touch screen 
So let’s make some cool shit. This is the Geeksphone Peak. It just has normal phone features. Compared to 25$ it has 1 camera 
more & 3G instead of 2g. It can run Firefox OS that’s nice.
From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: 
phone chipset + JS bindings to everything (OMG AWESOME)
Linux 
Kernel 
From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: 
phone chipset + JS bindings to everything (OMG AWESOME)
Linux 
Kernel 
Gecko 
From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: 
phone chipset + JS bindings to everything (OMG AWESOME)
Linux 
Kernel 
Gecko HTML5 
UI 
From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: 
phone chipset + JS bindings to everything (OMG AWESOME)
Linux 
Kernel 
Gecko HTML5 
UI 
Has all phone APIs in JS 
From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: 
phone chipset + JS bindings to everything (OMG AWESOME)
Linux 
Kernel 
Gecko 
Has all phone APIs in JS 
From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: 
phone chipset + JS bindings to everything (OMG AWESOME)
That is awesome.
Only thing is that we still have a body around the phone. Let’s remove that.
Remove screws and open le phone.
We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
Camera can click it out. Have standard connectors. Very awesome
Camera can click it out. Have standard connectors. Very awesome
There is also this thing. It does radio communication. Also need it. I don’t what this is, I just ripped it off and it still works.
So we are left with this. Printboard, radio and camera.
I also wanted to reuse the touchscreen.
So i started fiddling with screwdriver as these things are glued together
Didnt end so well
So I figured just detach the touchscreen connector.
Didnt work out that well either.
Problem: no Wifi... These paper thingies are apparently antenna’s OMG
So some tape and all is well.
So now we have super cool system on a chip 3/4 of a creditcard.
Linux 
Kernel 
Gecko 
Has all phone APIs in JS 
Now we can run cooler shit on top of it. As I have a big ego I called it JanOS
Linux 
Kernel 
Gecko JanOS 
Has all phone APIs in JS 
Now we can run cooler shit on top of it. As I have a big ego I called it JanOS
Linux 
Kernel 
Gecko JanOS 
Has all phone APIs in JS 
Now we can run cooler shit on top of it. As I have a big ego I called it JanOS
JanOS 
Alternative to Firefox OS 
Some batteries included 
Need rooted Firefox OS phone 
with ADB enabled 
So it runs on any Firefox OS enabled phone. It comes with some batteries, like autoconnecting 3G, APN detection, Wifi and 
camera.
Booting / !ashing 
$ make reset-phone && adb logcat 
Keep ur casing intact, don’t need to press battery
1 <!DOCTYPE html> 
2 <html> 
3 <head> 
4 <meta name="viewport" content="width=device-5 initial-scale=1"> 
6 <meta charset="utf-8"> 
7 
8 <script src="js/bootstrap.js"></script> 
9 <script defer src="js/camera.js"></script> 
10 <script defer src="js/security_cam.js"></script> 
11 <script defer src="js/doorbell.js"></script> 
12 <script defer src="js/bluetooth.js"></script> 
13 <script defer src="js/tracker.js"></script> 
14 </head> 
16 <body> 
17 <h1>OMG WELCOME TO JANOS 1.0!</h1> 
18 </body> 
19 </html> 
So when we start Gecko we boot it into a webpage. Easy easy easy
about:app-manager 
We can now connect the app manager and execute JS and debug shit. Very cool.
Security camera 
Every 5 seconds take photo 
Save to storage (4GB!) or SD 
Sync with cloud 
So let’s look at some cool ways of using this thing. We can make a security cam, easy easy.
Taking picture to storage 
1 window.camera.takePicture('front').then(function(blob) { 
2 var storage = navigator.getDeviceStorage('pictures'); 
3 var req = storage.addNamed(blob, 
'myawesomepicture.jpg'); 
4 req.onsuccess = function() { 
5 console.log('Saved on internal storage!'); 
6 }; 
7 });
Taking picture to storage 
1 window.camera.takePicture('front').then(function(blob) { 
2 var storage = navigator.getDeviceStorage('pictures'); 
3 var req = storage.addNamed(blob, 
'myawesomepicture.jpg'); 
4 req.onsuccess = function() { 
5 console.log('Saved on internal storage!'); 
6 }; 
7 });
Taking picture to storage 
1 window.camera.takePicture('front').then(function(blob) { 
2 var storage = navigator.getDeviceStorage('pictures'); 
3 var req = storage.addNamed(blob, 
'myawesomepicture.jpg'); 
4 req.onsuccess = function() { 
5 console.log('Saved on internal storage!'); 
6 }; 
7 });
Taking picture to storage 
1 window.camera.takePicture('front').then(function(blob) { 
2 var storage = navigator.getDeviceStorage('pictures'); 
3 var req = storage.addNamed(blob, 
'myawesomepicture.jpg'); 
4 req.onsuccess = function() { 
5 console.log('Saved on internal storage!'); 
6 }; 
7 });
Doorbell 
Proximity sensor 
Ring over bluetooth 
Live video stream 
Or a doorbell over bluetooth. That’s rad.
Bluetooth doorbell 
1 enableBluetoothAudio('00:0C:8A:75:EF:30').then(function() { 
2 window.onuserproximity = function(e) { 
3 if (e.near) { 
4 var audio = new Audio('/sounds/doorbell.ogg'); 
5 audio.play(); 
6 } 
7 }; 
8 }); 
Pair it, play a soud when user is close to proximity. Truly wireless.
Bluetooth doorbell 
1 enableBluetoothAudio('00:0C:8A:75:EF:30').then(function() { 
2 window.onuserproximity = function(e) { 
3 if (e.near) { 
4 var audio = new Audio('/sounds/doorbell.ogg'); 
5 audio.play(); 
6 } 
7 }; 
8 }); 
Pair it, play a soud when user is close to proximity. Truly wireless.
Bluetooth doorbell 
1 enableBluetoothAudio('00:0C:8A:75:EF:30').then(function() { 
2 window.onuserproximity = function(e) { 
3 if (e.near) { 
4 var audio = new Audio('/sounds/doorbell.ogg'); 
5 audio.play(); 
6 } 
7 }; 
8 }); 
Pair it, play a soud when user is close to proximity. Truly wireless.
Bluetooth doorbell 
1 enableBluetoothAudio('00:0C:8A:75:EF:30').then(function() { 
2 window.onuserproximity = function(e) { 
3 if (e.near) { 
4 var audio = new Audio('/sounds/doorbell.ogg'); 
5 audio.play(); 
6 } 
7 }; 
8 }); 
Pair it, play a soud when user is close to proximity. Truly wireless.
Another real life usecase. This is Brian, as you can see Brian is quite the wild boy.
Brian 
Another real life usecase. This is Brian, as you can see Brian is quite the wild boy.
Brian has this tendency to get lost VERY often. In Warsaw he had to sleep on a bench outside because he couldn’t find the 
apartment. He also never has any power in his phone. Solution: the BrianTracker. No screen, so low battery consumption.
Brian has this tendency to get lost VERY often. In Warsaw he had to sleep on a bench outside because he couldn’t find the 
apartment. He also never has any power in his phone. Solution: the BrianTracker. No screen, so low battery consumption.
BrianTracker™ 
2G connection 
Connected to push server 
Geolocation on request 
Brian has this tendency to get lost VERY often. In Warsaw he had to sleep on a bench outside because he couldn’t find the 
apartment. He also never has any power in his phone. Solution: the BrianTracker. No screen, so low battery consumption.
And I can press a button and track him down, just from this small device I put in his coat.
OK. DEMO TIME!!111
Get hacking 
Alright, this is cool and low budget, but START HACKING. Only way to really feel the powerz of hardware. Write your own scripts 
and make stuff. Yay. ZTE Open C is 69$ and can be rooted.
Get hacking 
Grab a rootable FxOS phone 
Crack it open 
Write your own scripts 
PROFIT! 
Alright, this is cool and low budget, but START HACKING. Only way to really feel the powerz of hardware. Write your own scripts 
and make stuff. Yay. ZTE Open C is 69$ and can be rooted.
Thank you! 
http://janjongboom.com 
THANKS!

More Related Content

PPTX
Meydi nugroho 5140411265-ti e
PDF
HTML5 for mobile - DiGi Challenge for Change
PDF
Abusing phones to make the internet of things - Wix UA Meetup
PDF
From HTML5 to Hardware - Simonyi Conference Budapest April 15
PDF
Open Web and beyond - Firefox OS preso during Wordpress meetup in Dhaka
PDF
Firefox OS & IoT - Experimental javascript meetup, Budapest, 26 February 2015
PDF
Altering the real world with JavaScript - JSConf.US 2015
PDF
Firefox OS and the Internet of Things - NDC London 2014
Meydi nugroho 5140411265-ti e
HTML5 for mobile - DiGi Challenge for Change
Abusing phones to make the internet of things - Wix UA Meetup
From HTML5 to Hardware - Simonyi Conference Budapest April 15
Open Web and beyond - Firefox OS preso during Wordpress meetup in Dhaka
Firefox OS & IoT - Experimental javascript meetup, Budapest, 26 February 2015
Altering the real world with JavaScript - JSConf.US 2015
Firefox OS and the Internet of Things - NDC London 2014

Similar to Abusing phones to make the internet of things - JSConf EU 2014 (20)

KEY
Falsy Values - Warsaw 2011
PPTX
Hacking for salone: drone races
PDF
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
PDF
Introduction to PhoneGap
PDF
Mobile JavaScript
PDF
IoThings you don't even need to hack
PDF
The Immobile Web
DOC
Web design and_hosting
PDF
Vodafone Widget Camp
PDF
PhoneGap at JSConf
PDF
Rat Pack Remote Control – an Internet of Things basics hands on workshop by S...
KEY
Js On Mobile Devices
PDF
WebRTC Reborn - Full Stack Toronto
PPTX
Kranky geeklondon build an app
PDF
JS Fest 2019. Sebastian Golasch. The Universal Serial Web
KEY
Phonegap for Engineers
PDF
Going mobile - tip, tricks and tools for building mobile web-apps
PDF
Building Droids with JavaScript
PDF
Sys 214 Final Exam
PDF
Rat Pack Remote Control - a technical Internet of Things (tm) basics primer
Falsy Values - Warsaw 2011
Hacking for salone: drone races
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Introduction to PhoneGap
Mobile JavaScript
IoThings you don't even need to hack
The Immobile Web
Web design and_hosting
Vodafone Widget Camp
PhoneGap at JSConf
Rat Pack Remote Control – an Internet of Things basics hands on workshop by S...
Js On Mobile Devices
WebRTC Reborn - Full Stack Toronto
Kranky geeklondon build an app
JS Fest 2019. Sebastian Golasch. The Universal Serial Web
Phonegap for Engineers
Going mobile - tip, tricks and tools for building mobile web-apps
Building Droids with JavaScript
Sys 214 Final Exam
Rat Pack Remote Control - a technical Internet of Things (tm) basics primer
Ad

More from Jan Jongboom (20)

PDF
TinyML on Arduino - workshop
PDF
Intelligent Edge - Getting started with TinyML for industrial applications
PDF
Teaching your sensors new tricks with Machine Learning - Eta Compute webinar
PDF
Get started with TinyML - Embedded online conference
PDF
Adding intelligence to your LoRaWAN deployment - The Things Virtual Conference
PDF
Get started with TinyML - Hackster webinar 9 April 2020
PDF
Tiny intelligent computers and sensors - Open Hardware Event 2020
PDF
Teaching your sensors new tricks with Machine Learning - CENSIS Tech Summit 2019
PDF
Adding intelligence to your LoRaWAN devices - The Things Conference on tour
PDF
Machine learning on 1 square centimeter - Emerce Next 2019
PDF
Fundamentals of IoT - Data Science Africa 2019
PDF
17,000 contributions in 32K RAM - FOSS North 2019
PDF
Open Hours: Mbed Simulator
PDF
Efficient IoT solutions based on LoRaWAN, The Things Network and Mbed OS
PDF
Machine learning on 1 cm2 - Tweakers Dev Summit
PDF
Simulating LoRaWAN devices - LoRa Alliance AMM 2019
PDF
Develop with Mbed OS - The Things Conference 2019
PDF
Firmware Updates over LoRaWAN - The Things Conference 2019
PDF
Faster Device Development - GSMA @ CES 2019
PDF
Mbed LoRaWAN stack: a case study - LoRa Alliance AMM Tokyo
TinyML on Arduino - workshop
Intelligent Edge - Getting started with TinyML for industrial applications
Teaching your sensors new tricks with Machine Learning - Eta Compute webinar
Get started with TinyML - Embedded online conference
Adding intelligence to your LoRaWAN deployment - The Things Virtual Conference
Get started with TinyML - Hackster webinar 9 April 2020
Tiny intelligent computers and sensors - Open Hardware Event 2020
Teaching your sensors new tricks with Machine Learning - CENSIS Tech Summit 2019
Adding intelligence to your LoRaWAN devices - The Things Conference on tour
Machine learning on 1 square centimeter - Emerce Next 2019
Fundamentals of IoT - Data Science Africa 2019
17,000 contributions in 32K RAM - FOSS North 2019
Open Hours: Mbed Simulator
Efficient IoT solutions based on LoRaWAN, The Things Network and Mbed OS
Machine learning on 1 cm2 - Tweakers Dev Summit
Simulating LoRaWAN devices - LoRa Alliance AMM 2019
Develop with Mbed OS - The Things Conference 2019
Firmware Updates over LoRaWAN - The Things Conference 2019
Faster Device Development - GSMA @ CES 2019
Mbed LoRaWAN stack: a case study - LoRa Alliance AMM Tokyo
Ad

Recently uploaded (20)

PDF
Smart Home Technology for Health Monitoring (www.kiu.ac.ug)
PDF
The Evolution of Traditional to New Media .pdf
PPT
FIRE PREVENTION AND CONTROL PLAN- LUS.FM.MQ.OM.UTM.PLN.00014.ppt
PPTX
Slides PPTX: World Game (s): Eco Economic Epochs.pptx
DOC
Rose毕业证学历认证,利物浦约翰摩尔斯大学毕业证国外本科毕业证
PPTX
The-Importance-of-School-Sanitation.pptx
PPT
250152213-Excitation-SystemWERRT (1).ppt
PDF
Exploring The Internet Of Things(IOT).ppt
PDF
simpleintnettestmetiaerl for the simple testint
PDF
Understand the Gitlab_presentation_task.pdf
PPTX
Introduction to cybersecurity and digital nettiquette
PDF
📍 LABUAN4D EXCLUSIVE SERVER STAR GAMING ASIA NO.1 TERPOPULER DI INDONESIA ! 🌟
PDF
Alethe Consulting Corporate Profile and Solution Aproach
PDF
Containerization lab dddddddddddddddmanual.pdf
PPTX
Mathew Digital SEO Checklist Guidlines 2025
PPTX
Reading as a good Form of Recreation
PPTX
E -tech empowerment technologies PowerPoint
PDF
SlidesGDGoCxRAIS about Google Dialogflow and NotebookLM.pdf
PDF
Lean-Manufacturing-Tools-Techniques-and-How-To-Use-Them.pdf
PDF
Exploring VPS Hosting Trends for SMBs in 2025
Smart Home Technology for Health Monitoring (www.kiu.ac.ug)
The Evolution of Traditional to New Media .pdf
FIRE PREVENTION AND CONTROL PLAN- LUS.FM.MQ.OM.UTM.PLN.00014.ppt
Slides PPTX: World Game (s): Eco Economic Epochs.pptx
Rose毕业证学历认证,利物浦约翰摩尔斯大学毕业证国外本科毕业证
The-Importance-of-School-Sanitation.pptx
250152213-Excitation-SystemWERRT (1).ppt
Exploring The Internet Of Things(IOT).ppt
simpleintnettestmetiaerl for the simple testint
Understand the Gitlab_presentation_task.pdf
Introduction to cybersecurity and digital nettiquette
📍 LABUAN4D EXCLUSIVE SERVER STAR GAMING ASIA NO.1 TERPOPULER DI INDONESIA ! 🌟
Alethe Consulting Corporate Profile and Solution Aproach
Containerization lab dddddddddddddddmanual.pdf
Mathew Digital SEO Checklist Guidlines 2025
Reading as a good Form of Recreation
E -tech empowerment technologies PowerPoint
SlidesGDGoCxRAIS about Google Dialogflow and NotebookLM.pdf
Lean-Manufacturing-Tools-Techniques-and-How-To-Use-Them.pdf
Exploring VPS Hosting Trends for SMBs in 2025

Abusing phones to make the internet of things - JSConf EU 2014

  • 1. abusing phones to make the internet of things Jan Jongboom JSConf EU 2014
  • 2. @janjongboom Jan, live in Amsterdam. Work for Telenor, LAAARGE telco. They pay me to work on Firefox OS.
  • 3. @janjongboom Jan, live in Amsterdam. Work for Telenor, LAAARGE telco. They pay me to work on Firefox OS.
  • 4. Let me start w/ confession... Before this talk I never owned a screwdriver. That’s a dangerous road when doing a hardware talk.
  • 5. First screwdriver ever! Let me start w/ confession... Before this talk I never owned a screwdriver. That’s a dangerous road when doing a hardware talk.
  • 6. Maker movement is EVERYWHERE (Kickstarter, spaces, fairs, Wired) These days hardware is totally coming back. Maker movement is everywhere. Can buy all stuff on Kickstarter, iot, etc. Even on cover of Wired.
  • 7. Reason: Arduino & Raspberry boards that can connect ordinary stuff. Amazing for building new stuff. Phone sensors can be attached, low cost because huge volume.
  • 8. Now one big problem for people that hardware-challenged like me. I don’t wanna do stuff like this, but still want to make things.
  • 9. € 34,99 Also: stuff is expensive. Get a TFT display for a Rasperry Pi for 35 euro
  • 10. € 25,- While you can get a FULL phone for 25?!
  • 11. So let’s make some cool shit. This is the Geeksphone Peak. It just has normal phone features. Compared to 25$ it has 1 camera more & 3G instead of 2g. It can run Firefox OS that’s nice.
  • 12. Bluetooth, WiFi, 3G, 2 Cameras, GPS, qHD touch screen So let’s make some cool shit. This is the Geeksphone Peak. It just has normal phone features. Compared to 25$ it has 1 camera more & 3G instead of 2g. It can run Firefox OS that’s nice.
  • 13. Bluetooth, WiFi, 3G, 2 Cameras, GPS, qHD touch screen So let’s make some cool shit. This is the Geeksphone Peak. It just has normal phone features. Compared to 25$ it has 1 camera more & 3G instead of 2g. It can run Firefox OS that’s nice.
  • 14. From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: phone chipset + JS bindings to everything (OMG AWESOME)
  • 15. Linux Kernel From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: phone chipset + JS bindings to everything (OMG AWESOME)
  • 16. Linux Kernel Gecko From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: phone chipset + JS bindings to everything (OMG AWESOME)
  • 17. Linux Kernel Gecko HTML5 UI From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: phone chipset + JS bindings to everything (OMG AWESOME)
  • 18. Linux Kernel Gecko HTML5 UI Has all phone APIs in JS From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: phone chipset + JS bindings to everything (OMG AWESOME)
  • 19. Linux Kernel Gecko Has all phone APIs in JS From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: phone chipset + JS bindings to everything (OMG AWESOME)
  • 21. Only thing is that we still have a body around the phone. Let’s remove that.
  • 22. Remove screws and open le phone.
  • 23. We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
  • 24. We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
  • 25. We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
  • 26. We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
  • 27. We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
  • 28. We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
  • 29. We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
  • 30. Camera can click it out. Have standard connectors. Very awesome
  • 31. Camera can click it out. Have standard connectors. Very awesome
  • 32. There is also this thing. It does radio communication. Also need it. I don’t what this is, I just ripped it off and it still works.
  • 33. So we are left with this. Printboard, radio and camera.
  • 34. I also wanted to reuse the touchscreen.
  • 35. So i started fiddling with screwdriver as these things are glued together
  • 36. Didnt end so well
  • 37. So I figured just detach the touchscreen connector.
  • 38. Didnt work out that well either.
  • 39. Problem: no Wifi... These paper thingies are apparently antenna’s OMG
  • 40. So some tape and all is well.
  • 41. So now we have super cool system on a chip 3/4 of a creditcard.
  • 42. Linux Kernel Gecko Has all phone APIs in JS Now we can run cooler shit on top of it. As I have a big ego I called it JanOS
  • 43. Linux Kernel Gecko JanOS Has all phone APIs in JS Now we can run cooler shit on top of it. As I have a big ego I called it JanOS
  • 44. Linux Kernel Gecko JanOS Has all phone APIs in JS Now we can run cooler shit on top of it. As I have a big ego I called it JanOS
  • 45. JanOS Alternative to Firefox OS Some batteries included Need rooted Firefox OS phone with ADB enabled So it runs on any Firefox OS enabled phone. It comes with some batteries, like autoconnecting 3G, APN detection, Wifi and camera.
  • 46. Booting / !ashing $ make reset-phone && adb logcat Keep ur casing intact, don’t need to press battery
  • 47. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta name="viewport" content="width=device-5 initial-scale=1"> 6 <meta charset="utf-8"> 7 8 <script src="js/bootstrap.js"></script> 9 <script defer src="js/camera.js"></script> 10 <script defer src="js/security_cam.js"></script> 11 <script defer src="js/doorbell.js"></script> 12 <script defer src="js/bluetooth.js"></script> 13 <script defer src="js/tracker.js"></script> 14 </head> 16 <body> 17 <h1>OMG WELCOME TO JANOS 1.0!</h1> 18 </body> 19 </html> So when we start Gecko we boot it into a webpage. Easy easy easy
  • 48. about:app-manager We can now connect the app manager and execute JS and debug shit. Very cool.
  • 49. Security camera Every 5 seconds take photo Save to storage (4GB!) or SD Sync with cloud So let’s look at some cool ways of using this thing. We can make a security cam, easy easy.
  • 50. Taking picture to storage 1 window.camera.takePicture('front').then(function(blob) { 2 var storage = navigator.getDeviceStorage('pictures'); 3 var req = storage.addNamed(blob, 'myawesomepicture.jpg'); 4 req.onsuccess = function() { 5 console.log('Saved on internal storage!'); 6 }; 7 });
  • 51. Taking picture to storage 1 window.camera.takePicture('front').then(function(blob) { 2 var storage = navigator.getDeviceStorage('pictures'); 3 var req = storage.addNamed(blob, 'myawesomepicture.jpg'); 4 req.onsuccess = function() { 5 console.log('Saved on internal storage!'); 6 }; 7 });
  • 52. Taking picture to storage 1 window.camera.takePicture('front').then(function(blob) { 2 var storage = navigator.getDeviceStorage('pictures'); 3 var req = storage.addNamed(blob, 'myawesomepicture.jpg'); 4 req.onsuccess = function() { 5 console.log('Saved on internal storage!'); 6 }; 7 });
  • 53. Taking picture to storage 1 window.camera.takePicture('front').then(function(blob) { 2 var storage = navigator.getDeviceStorage('pictures'); 3 var req = storage.addNamed(blob, 'myawesomepicture.jpg'); 4 req.onsuccess = function() { 5 console.log('Saved on internal storage!'); 6 }; 7 });
  • 54. Doorbell Proximity sensor Ring over bluetooth Live video stream Or a doorbell over bluetooth. That’s rad.
  • 55. Bluetooth doorbell 1 enableBluetoothAudio('00:0C:8A:75:EF:30').then(function() { 2 window.onuserproximity = function(e) { 3 if (e.near) { 4 var audio = new Audio('/sounds/doorbell.ogg'); 5 audio.play(); 6 } 7 }; 8 }); Pair it, play a soud when user is close to proximity. Truly wireless.
  • 56. Bluetooth doorbell 1 enableBluetoothAudio('00:0C:8A:75:EF:30').then(function() { 2 window.onuserproximity = function(e) { 3 if (e.near) { 4 var audio = new Audio('/sounds/doorbell.ogg'); 5 audio.play(); 6 } 7 }; 8 }); Pair it, play a soud when user is close to proximity. Truly wireless.
  • 57. Bluetooth doorbell 1 enableBluetoothAudio('00:0C:8A:75:EF:30').then(function() { 2 window.onuserproximity = function(e) { 3 if (e.near) { 4 var audio = new Audio('/sounds/doorbell.ogg'); 5 audio.play(); 6 } 7 }; 8 }); Pair it, play a soud when user is close to proximity. Truly wireless.
  • 58. Bluetooth doorbell 1 enableBluetoothAudio('00:0C:8A:75:EF:30').then(function() { 2 window.onuserproximity = function(e) { 3 if (e.near) { 4 var audio = new Audio('/sounds/doorbell.ogg'); 5 audio.play(); 6 } 7 }; 8 }); Pair it, play a soud when user is close to proximity. Truly wireless.
  • 59. Another real life usecase. This is Brian, as you can see Brian is quite the wild boy.
  • 60. Brian Another real life usecase. This is Brian, as you can see Brian is quite the wild boy.
  • 61. Brian has this tendency to get lost VERY often. In Warsaw he had to sleep on a bench outside because he couldn’t find the apartment. He also never has any power in his phone. Solution: the BrianTracker. No screen, so low battery consumption.
  • 62. Brian has this tendency to get lost VERY often. In Warsaw he had to sleep on a bench outside because he couldn’t find the apartment. He also never has any power in his phone. Solution: the BrianTracker. No screen, so low battery consumption.
  • 63. BrianTracker™ 2G connection Connected to push server Geolocation on request Brian has this tendency to get lost VERY often. In Warsaw he had to sleep on a bench outside because he couldn’t find the apartment. He also never has any power in his phone. Solution: the BrianTracker. No screen, so low battery consumption.
  • 64. And I can press a button and track him down, just from this small device I put in his coat.
  • 66. Get hacking Alright, this is cool and low budget, but START HACKING. Only way to really feel the powerz of hardware. Write your own scripts and make stuff. Yay. ZTE Open C is 69$ and can be rooted.
  • 67. Get hacking Grab a rootable FxOS phone Crack it open Write your own scripts PROFIT! Alright, this is cool and low budget, but START HACKING. Only way to really feel the powerz of hardware. Write your own scripts and make stuff. Yay. ZTE Open C is 69$ and can be rooted.