Backup your Android data to a linux box with adb



  • Install adb:

    On Debian:

    sudo apt install android-tools-adb
    

    If your running Ubuntu:

    sudo apt install adb
    

    Place your Android device in Developer Mode: Go to settings > About Phone> and tap on this several consecutive times (maybe 5) You’ll see a note stating developer options have been enabled.

    Now go back to your settings, and you’ll see ‘Developer Options’


    (Make sure your connected to the machine via USB cable)

    !Go into Android developer options, and allow USB debugging

    If your Android device is attached as a camera, you’ll get a warning in the command line something to the effect of:

    adb: unable to connect for backup
    

    Or complaints about the fact there is nothing for the server to connect to. If so, the Android is connected as PTP and needs to be changed.


    Once the server is running, and the Android is available as a media device (MTP)

    Go to your command line and type:

    adb start-server
    

    Output:

    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
    

    Unlock the Android device and accept the RSA key from the machine you are running adb from. You will be asked to do so before moving further:

    Allow USB debugging? Click OK

    Now the two devices are connected.


    The command to backup all files on the Android device is as follows:

    adb backup -apk -shared -all -f my-android-backup.adb
    

    You can change “my-android-backup” to anything you wish, just insure the file extension is adb.

    You will be asked to create an encrypted file, if your device is not already encrypted, just type in a password you will remember!

    If your device is already encrypted, you will be required to encrypt the backup.

    The backup time will depend obviously how much you have ‘collected’ on your device, with no real vision of progress, so chill and leave it alone. ADB will quit when done.


    The backup file will be located in the user directory ( or wherever you were when you took the backup)


    To restore this backup, is just as simple, connect, and run:

    adb restore my-android-backup.adb
    

    Fin!


 



Tmux Commands

screen and tmux

A comparison of the features (or more-so just a table of notes for accessing some of those features) for GNU screen and BSD-licensed tmux.

The formatting here is simple enough to understand (I would hope). ^ means ctrl+, so ^x is ctrl+x. M- means meta (generally left-alt or escape)+, so M-x is left-alt+x

It should be noted that this is no where near a full feature-set of either group. This - being a cheat-sheet - is just to point out the most very basic features to get you on the road.

Trust the developers and manpage writers more than me. This document is originally from 2009 when tmux was still new - since then both of these programs have had many updates and features added (not all of which have been dutifully noted here).

Action tmux screen
start a new session tmux OR
tmux new OR
tmux new-session
screen
re-attach a detached session tmux attach OR
tmux attach-session
screen-r
re-attach an attached session (detaching it from elsewhere) tmux attach -d OR
tmux attach-session -d
screen -dr
re-attach an attached session (keeping it attached elsewhere) tmux attach OR
tmux attach-session
screen -x
detach from currently attached session ^b d OR
^b :detach
^a ^d OR
^a :detach
rename-window to newname ^b , <newname> OR
^b :rename-window <newn>
^a A <newname>
list windows ^b w ^a w
list windows in chooseable menu ^a "
go to window # ^b # ^a #
go to last-active window ^b l ^a ^a
go to next window ^b n ^a n
go to previous window ^b p ^a p
see keybindings ^b ? ^a ?
list sessions ^b s OR
tmux ls OR
tmux list-sessions
screen -ls
toggle visual bell ^a ^g
create another window ^b c ^a c
exit current shell/window ^d ^d
split window/pane horizontally ^b " ^a S
split window/pane vertically ^b % ^a |
switch to other pane ^b o ^a <tab>
kill the current pane ^b x OR (logout/^D)
collapse the current pane/split (but leave processes running) ^a X
cycle location of panes ^b ^o
swap current pane with previous ^b {
swap current pane with next ^b }
show time ^b t
show numeric values of panes ^b q
toggle zoom-state of current pane (maximize/return current pane) ^b z
break the current pane out of its window (to form new window) ^b !
re-arrange current panels within same window (different layouts) ^b [space]
Kill the current window (and all panes within) ^b killw [target-window]
  • Make ISO from DVD

    In this case I had an OS install disk which was required to be on a virtual node with no optical drive, so I needed to transfer an image to the server to create a VM

    Find out which device the DVD is:

    lsblk

    Output:

    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465.8G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 464.8G 0 part ├─centos-root 253:0 0 50G 0 lvm / ├─centos-swap 253:1 0 11.8G 0 lvm [SWAP] └─centos-home 253:2 0 403G 0 lvm /home sdb 8:16 1 14.5G 0 disk /mnt sr0 11:0 1 4.1G 0 rom /run/media/rick/CCSA_X64FRE_EN-US_DV5

    Therefore /dev/sr0 is the location , or disk to be made into an ISO

    I prefer simplicity, and sometimes deal with the fallout after the fact, however Ive repeated this countless times with success.

    dd if=/dev/sr0 of=win10.iso

    Where if=Input file and of=output file

    I chill out and do something else while the image is being copied/created, and the final output:

    8555456+0 records in 8555456+0 records out 4380393472 bytes (4.4 GB) copied, 331.937 s, 13.2 MB/s

    Fin!

    read more
  • Recreate postrgresql database template encode to ASCII

    UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1';

    Now we can drop it:

    DROP DATABASE template1;

    Create database from template0, with a new default encoding:

    CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UNICODE'; UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1'; \c template1 VACUUM FREEZE;

    read more
});