Friend asked me for help, he needed that I unlock his Android phone without losing important data. So I did. The phone was locked with 9-pattern.
First horrifying thing that I saw was that there are 350 000 possible combinations on 9-pattern. But humans are predictable with passwords and patterns.
I found this link, it helped me a ton with sorting pattern – which pattern to try first:
Now that I know which patterns to use first, I continued with my work:
First I gathered all things I needed:
- Patterns, which I gathered from internet
- Arduino M0 to emulate mouse and keyboard
- OTG cable
- 2 USB cables to connect PC and Arduino
Things left to do left to were:
- Write code in C for Arduino : receive commands from PC, write patterns through emulated mouse and press keys through emulated keyboard
- Write code for PC program (in C#) : send patterns to Arduino, take pictures, save progress
That was it!
The things I didn’t do but should:
- Detect through computer vision when phone got unlocked (simple, display gets bright when phone unlocks)
- Modify USB OTG so that phone could charge through Arduino port
I didn’t do those things because I got lucky, I was testing the program and in 10 minutes of testing phone got unlocked! Ou yea!
Arduino, target phone, cables, code
Camera, which was duct taped on phone:
Quickly written software:
Images, which were automatically captured before unlock:
Video in action (software is older than shown here):
That was it!
It’s unfinished/scraped project, but I still decided to post it here. This was intended to become “road kill” game, where you drive a car and drive over pedestrians and cows and other animals. Project never got to its prime time, because there were shortage of time/money.
Project was coded in Unity3D. Art is not by me.
Closer look, this is how the game camera was intended to look:
Look from top. This is visible world, here it had big range just for demonstration purposes. You can move the 3D gizmo (green/red arrows), and circle would move with it.
That is :). The whole work took me 1 week I think.
This is my second Android game, that has been released on Google Play!
It was intended to be short time killer, a fun game with nasty name (I hoped it would catch people eyes, but it didn’t).
The game is made with Unity3D and it took around 2 months to complete.
- Addictive (one clicker style)
- Fart sounds
- Catchy graphics
- High score / online scoreboard
Hello, I am happy to announce that Flying Pet, the game I (we) have been working on for nearly 2 years! It is available here! https://play.google.com/store/apps/details?id=com.centurexInc.FlyingPat And this is website for this page, not made by me. Movie of the game 🙂 https://www.youtube.com/watch?v=6O-gh39kL94 And website! http://flyingpet.io/ Hope you enjoy it!
For people, who are interested in 3D artist, here is his blog:
I want to show off my project which I am extremely fond of. I loved doing it every bit. And
that is why this post will be quite long – lots of pictures and video.
This is the picture of unhacked car, a car in it’s original form with cover removed.
This is the Raspberry PI v1- the computer. Also unmodified. You can also see WiFi dongle plugged in, which was later turned into Wireless access point.
Raspberry has GPIO which stands for General Purpose Input Output. I needed outputs so I can control the car. I cut the IDE cable so it would fit.
GPIO is signal port – it is weak. So I needed to design my own “driver” board, which is essentially just an signal amplifier. This way I also could separate battery for computer and another battery for car.
It means more stability – I had experiences of computer restarting itself because of single battery.
When I finished PCB design, I did toner transfer method to make the circuit.
I transferred toner – black ink with heat onto cooper board.
Then got rid of paper with help of water and soap.
And threw it into chemical which eats copper.
Requirement of this chemical is to be heated to 50°C so that it can eat cooper.
This is why I did water bath – it is really safe to do. Water heats to 100°C and water heats the plastic pot with chemical.
After etching, I needed to get rid of toner – the black stuff.
But it’s better to drill before removing black paint, because it’s less error prone.
After cleaning it with “nitro paint dissolver” board looked like this. Quite shinny :).
Let’s add stuff to it.
But before I can add stuff, I need to hop into shop and buy stuff.
Soldered some stuff. This is also where IDE from Raspberry PI will connect to – the GPIO.
Boom – finished. I also cut corners.
Because sometimes people make mistakes, they need to repeat everything to get it right.
So there you can see multiple versions of this driver.
Connecting the driver with car
The Raspberry GPIO – IDE connection. Soon to be made.
Quite messy. I need more duct tape.
Ok, after enough duct tape, wires and all other glorious building components, I got the car into this state. I hope NASA doesn’t use this thing in space mission.
Now comes the programming. This is the part you will not see in pictures, but I will describe everything I used.
Raspberry PI computer had Linux installed in it.
For WiFi Dongle, I drivers and some scripts which turned the dongle into Access Point. Basically, I turned computer into router, to which you can connect to with laptop or smartphone.
This is how I mostly programmed the car – from WiFi with my laptop through SSH and SFTP.
Then I downloaded Mono – for C#. The Mono is really nice: It is possible to drop .exe files compiled directly from Visual Studio.
That is, I made my main backend server with C#. I used Fleck library for Websockets.
And thanks god someone did the PI-Blaster. With Pi-Blaster, you can turn GPIO ports into 8 port PWM output. With PWM I controlled the servos and LEDs.
The On/Off icon indicates if connection to car is alive. The lights indicates well, the lights. (Car has LEDs). The brown pad is for touch pad control. This client also works with WASD keys if you run it on computer.
In short, the Raspberry PI had following things so it could work flawlessly:
- drivers for WiFi dongle so the car had it’s own Access Point (so you could connect to it with PC or Smartphone, w/e),
- DHCP server for giving out IP addresses,
- hacked DNS server, so it would route “rc.si” into it’s own server (C# backend),
- HTTP web server, which served HTML web app client, which connected to PI server over webSocket,
- C# control server which worked through webSocket. This program accepted messages from HTML client and sent controls to steering servo, LEDs, motor.
This is picture of functional web client on Samsung Ace with broken glass.
Turning left and right:
Switching lights on and off:
That is all there is to it. I had lots of fun doing this project!
I made also compiled a short movie with help of GO Pro camera. The camera is NOT realtime (I don’t see live feed on web client).
Hope you enjoyed this blog post!
The project was funded by http://cnj.si/#/, you can also see theirs logo on PCB and web app :).
This thing also worked quite smooth on mobile devices :).
I just wanted to show animation I did long time ago when I was working at http://cnj.si/. I needed to animate two cute creatures, whale and elephant.
All I did was animation – those cartoon animals are not mine and website is not mine either.
I did it with help of Paper.JS library.
Animation of elephant:
Animation of fish/whale:
This is another fun python project I made myself in spare time. It’s simple connect four game made, where I studied mini max algorithm with α-β pruning. I admit that it took me a while to figure out the idea behind mini max, but when I did, it was quite simple to code. To bad I did it in python since it’s slow. Because of my expensive heuristic function I could reach only depth of 5 for minimax. Well, it’s possible to go deeper, but the game becomes un-playable because of slow response time.
Bot is quite strong, but anyone determined enough can beat it. If I would switch language from python to something like C#, I could make really faster -> stronger. But it’s ok, I have learned a lot!
Oh, also I like to do “dynamic” stuff so I can play connect four in any size I want.
This is where I won against the bot – the proof that bot was too weak :(. But I was scared that my own code outsmarted me so of course I needed to beat the bot! Well, it didn’t outsmarted me, yeah!
Hello, I always wanted to make a labyrinth generator just for fun and then someday, I did it. It is written in Python and made out of grid graph then searched over with deep first search. Result? You can get from any point to any point in those labyrinths. Also custom dimensions.
Because my game is not getting enough sales, I decided to release it to public for free.
There is free download link 🙂