# master-hax/pixel-backup-gang architecture

> Architecture diagram of the GitHub repository master-hax/pixel-backup-gang, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/master-hax/pixel-backup-gang
- Repository: https://github.com/master-hax/pixel-backup-gang

## Overview

pixel backup gang is a set of Android shell utilities for mounting external storage into a first-generation Pixel’s internal storage, so Google Photos can access it. The documented workflow is to mount a USB drive (ext4 or FAT32) or an NFS share; the README also identifies reducing internal-flash wear and avoiding FAT32’s file-size limit as goals. The tree shows additional device and shell utilities, but their behavior and call relationships are not excerpted, so they are included without inferred connections.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_mounting["Storage mounting"]
  node_ext4["Mount ext4<br/>[mount_ext4.sh]"]
  node_nfs_mount["Mount NFS<br/>[mount_nfs.sh]"]
  node_vfat["Remount VFAT<br/>[remount_vfat.sh]"]
  node_unmount["Unmount drive<br/>[unmount.sh]"]
end

subgraph group_device_tools["Device tools"]
  node_find_device["Find device<br/>[find_device.sh]"]
  node_show_devices["Show devices<br/>[show_devices.sh]"]
  node_tcp_enable["Enable TCP debugging"]
  node_tcp_disable["Disable TCP debugging"]
end

subgraph group_shell_tools["Shell utilities"]
  node_termux["Run as Termux<br/>[run_as_termux.sh]"]
  node_global_shell["Global shell"]
  node_gphotos["Google Photos utility<br/>[yoink_gphotos.sh]"]
end

node_user(("User"))
node_pixel[("Pixel internal storage")]
node_usb[("USB drive")]
node_nfs[("NFS share")]

node_usb -->|"mounts into"| node_pixel
node_nfs -->|"mounts into"| node_pixel

click node_ext4 "https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/mount_ext4.sh"
click node_nfs_mount "https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/mount_nfs.sh"
click node_vfat "https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/remount_vfat.sh"
click node_unmount "https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/unmount.sh"
click node_find_device "https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/find_device.sh"
click node_show_devices "https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/show_devices.sh"
click node_tcp_enable "https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/enable_tcp_debugging.sh"
click node_tcp_disable "https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/disable_tcp_debugging.sh"
click node_termux "https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/run_as_termux.sh"
click node_global_shell "https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/start_global_shell.sh"
click node_gphotos "https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/yoink_gphotos.sh"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_ext4,node_nfs_mount,node_vfat,node_unmount,node_user toneBlue
class node_find_device,node_show_devices,node_tcp_enable,node_tcp_disable,node_pixel,node_usb,node_nfs toneAmber
class node_termux,node_global_shell,node_gphotos toneMint
```

## Components

### Storage mounting

- [Mount ext4](https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/mount_ext4.sh): `scripts/mount_ext4.sh`
- [Mount NFS](https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/mount_nfs.sh): `scripts/mount_nfs.sh`
- [Remount VFAT](https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/remount_vfat.sh): `scripts/remount_vfat.sh`
- [Unmount drive](https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/unmount.sh): `scripts/unmount.sh`

### Device tools

- [Find device](https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/find_device.sh): `scripts/find_device.sh`
- [Show devices](https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/show_devices.sh): `scripts/show_devices.sh`
- [Enable TCP debugging](https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/enable_tcp_debugging.sh): `scripts/enable_tcp_debugging.sh`
- [Disable TCP debugging](https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/disable_tcp_debugging.sh): `scripts/disable_tcp_debugging.sh`

### Shell utilities

- [Run as Termux](https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/run_as_termux.sh): `scripts/run_as_termux.sh`
- [Global shell](https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/start_global_shell.sh): `scripts/start_global_shell.sh`
- [Google Photos utility](https://github.com/master-hax/pixel-backup-gang/blob/master/scripts/yoink_gphotos.sh): `scripts/yoink_gphotos.sh`

### Other components

- **User**
- **Pixel internal storage**
- **USB drive**
- **NFS share**

## Connections

- USB drive → Pixel internal storage: mounts into (evidence: `README.md`)
- NFS share → Pixel internal storage: mounts into (evidence: `README.md`)
