Code Monkey home page Code Monkey logo

broken-phone-recovery's Introduction

Broken Phone Recovery

a guide how to backup data from your locked android phone if you broke your screen (and more)

you can skip some steps depending on your situation

You need:

  • usb otg adapter for your phone
  • usb keyboard
  • raspberry pi zero
  • a second device to run adb and backup data
  • a bluetooth input device (like a joystick controller) or some app to remote control your phone(e.g teamviewer)

0. Preparation:

1. Unlock:

A) Password Lock:

  • connect keyboard via otg.
  • press ENTER, then SPACE.
  • type in your password and hit enter.
  • if your password contains y/z and it does not work, your keyboard layout could be different, try switching y/z in your password.
  • wait for the click sound to verify its unlocked.

B) Pattern lock:

  • open unlock.py in your favorite editor.
  • if your pattern does not start in the top left corner, add move_right(), move_left(), move_up() or move_down() after line 118, to navigate to your starting point.
  • if your pattern is not the small v, edit the lines after 141 to implement your pattern. Look at the examples in the script.
  • make sure to copy the modified unlock.py to the pi.
  • connect the raspberry's otg port to your phone, if your sound does work and you hear the charging sound, remove the cable you connected to your phones otg adapter and reconnect, until you hear a different sound.
  • execute python3 unlock.py.
  • if you get IOError: [Errno 108] Cannot send after transport endpoint shutdown, then the raspberry is not connected properly via otg.
  • wait for the script to finish and hear the unlock sound, if your sound works.
  • if you are lucky and your phone automatically connects to your adb device, you can proceed with step 5.

2. Talkback

the easiest way to control your broken phone is Talkback. Once its enabled, you can use your keyboard to navigate and your phone will read out the screen content

  • if you are lucky and your volume buttons still work, you can enable talkback by holding down vol+ and vol- for 3 seconds.
  • keep in mind that to unlock your phone with unlock.py, you need to disable talkback again.
  • if your volume buttons dont work or the shortcut is disabled, you can use talkback.py
  • run python talkback.py and it will ask you if you want to use google assistant to open settings
  • if you type y, say open settings in your phone language, once the script asks you to do
  • using google assistant is more reliable to open apps, but if you type n the script will try to open settings with the mouse
  • wait for the script to enable talkback

3. Prepare adb connection

if your phone does not automatically enables the adb connection, or you did not authenticate your device with your phone before, you need another input method to enable the connection, because you probably can not connect an usb keyboard and your adb device at the same time.

A) connect bluetooth controller:

if you have some bluetooth controller or keyboard, you can use it to control your phone while it should connect to your adb device.

  • if you are lucky you already connected the controller and only need to enable bluetooth if disabled.
  • otherwise you can use your keyboard and talkback to open settings, enable bluetooth and connect the controller.
  • because initial connection is not always straightforward with cheap controllers, you can also use the play store or your favorite app store to install Screen Stream
  • if you are lucky and your phone is connected with your google account, you can login to the playstore on your browser and install the app on your phone without any interaction
  • launch the app and navigate with talkback to enable screen sharing. Use TAB to select the button after 'exit' which is probably unnamed, press ENTER, TAB, TAB, ENTER to enable the sharing. Then you can watch your screen on http://phone_ip:8080.
  • next steps will be more comfortable, because you do not need talkback anymore
  • finally connect your bluetooth controller/keyboard

B) connect remote control app:

if you dont have a bluetooth device, you need to setup a remote control app like teamviewer

  • install teamviewer host on your phone with talkback, your keyboard and your favorite play store
  • if you are lucky and your phone is connected with your google account, you can login to the playstore on your browser and install the app on your phone without any interaction
  • install teamviewer on your second device and connect your phone

4. Connect adb

  • connect your phone to your adb device
  • use your bluetooth controller or remote control app to enable developer settings and MTP
  • authenticate your device

5. Backup your data

  • use other tutorials to backup your app data
  • some apps like banking or OTP apps set android:allowBackup=False, then you can only backup app data if your boot loader is unlocked
  • install scrcpy to open OTP apps like Aegis and copy your backup code. Most of them disable screen sharing with teamviewer or Screen Stream, but scrcpy works anyway.

6. Contribution

  • feel free to create an issue if something does not work, or you have a use case that is not covered in this tutorial
  • also any other contributions are welcome

todo:

  • update unlock.py so user can pass pattern string and doesnt need to edit the script
  • add script to start screen sharing
  • look for foss screen sharing and remote controlling apps

broken-phone-recovery's People

Contributors

v1nc avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.