This works as of today (apr 27 '23) & I'm not sure when this will be patched.
Disclaimer : This is just for your information. I'm not responsible for you data (or loss of data) in any way.
Unlimited photo storage hack...
Google photos has this feature called "partner" where I could add someone as a partner to my google photos account and they potentially view all of my photos.
Required :
-
Gmail Account, call this Account A.
-
Photos backed up on Account A.
Steps :
-
Create another gmail account. Call this Account B. [You will get 15gb storage with this]
-
Add B as a partner to account A [https://photos.google.com/sharing]
-
On B's photos page : Accept the invite sent by A
-
On B's photos page : Choose "Save All Photos" settings to save all photos shared by the partner A.
-
On B's photos page : You should see all the photos of A now. (Remember to select to save.)
Now if you check the storage for B, this process will not add even a single byte to your quota! On A's photos page you can then remove B as a partner, but the photos will still remain with B.
Now you can remove photos from A and repeat when required!
Videos
I've been using my Google Pixel XL to back up photos and videos to Google Photos for free for years. Along the way, I encountered a lot of issues while researching this topic, so I wanted to share my current setup in hopes that this post helps someone.
Background
The original Google Pixel, released in 2016, came with a great promo: any photo or video uploaded from the device does not count against your Google storage quota. This means effectively unlimited Google Photos storage, which is a huge perk for me since I take a lot of photos and videos (20k+ photos a year). I record around 50-100GB of media per month, so for me, this free storage is a lifesaver.
Photo uploads from my other devices count against my storage quota, so I want photos taken on my daily devices (an iPhone 14 Pro, a MacBook, and a Pixel 7 Pro) to be automatically copied over to my Pixel, synced, and uploaded to Google Photos.
Here's how I do it.
Acquiring a Google Pixel
I bought mine off eBay for around $60. It must be the first generation pixel or pixel XL. These models include unlimited, full resolution photo backup. Pixels generation 2 through 5 include unlimited storage saver backup, which reduces photos to 16MP and videos to 1080p.
I recommend finding a 128GB model for more space, and avoiding the Verizon model, as those can't be rooted.
Pixel Device Setup
Software:
Do a fresh install of the device.
Disable automatic OS and app updates. Disabling OS updates isn't necessary because the Pixel doesn't receive any new software updates, but it will avoid unexpected surprises.
Turn on Airplane mode, disable notifications for all apps, and turn on "Do Not Disturb."
It’s important to manually disable notifications for all Google services. This stops those "Is this you trying to log in?" verification requests, which cover the entire screen and interfere with scripts.
Disable emergency alerts.
Do not enable battery saver—this will stop Syncthing and Google Photos from running in the background.
Enable developer mode.
Enable the "Stay Awake when connected to power" toggle.
Enable USB debugging. This is used for setting up screen sharing using scrcpy.
Reduce screen brightness to zero.
Root your device and unlock your bootloader:
This would make my life a lot easier, it gives a lot more options. But sadly, I'm not able to root my device (Verizon Pixels have a locked bootloader). Otherwise, I'd mount an external drive using this script to reduce internal SSD wear. I'd also set up my phone so that it powers on when a charger is connected.
Hardware:
Use an over-specced outlet and charging cable. I keep the device charging continuously on a 27-watt USB-C outlet and a 100W cable. I've had battery issues when using a lower-wattage outlet and issues with cheap cables.
Heat Management: The Google Pixel XL has overheating issues. When copying or uploading photos, it frequently overheats and can stall uploads for a long time. To fix this, I put my device on top of my air purifier so that the fan is always blowing on it and keeping it cool. I also considered putting a heatsink on the back.
The following adb shell command will output the temperature of the device in Celsius:
adb shell dumpsys battery | grep temperature: | awk '{print ($2/10) " °C"}'Thermal throttling kicks in around 40°C.
Backing Up from Android
Backing up from Android was easy. I installed Syncthing-Fork on my Pixel and my Pixel 7 Pro, then followed the OG Pixel Unlimited Photos Storage: Syncthing Guide to copy my photos over.
A few notes:
The original Syncthing app is no longer updated on the play store. Instead use Syncthing-Fork which is available on the F-Droid app store. Install F-Droid, then download and install Syncthing-Fork from the F-Droid store.
Most of the config changes need to be done through the Web GUI.
Setting up Ignore Patterns was essential, to avoid copying tmp and trash files.
Backing Up from Mac
I set up a shared folder that would copy random photos and videos from my Mac to the Pixel. I used Syncthing for Mac; I also tried Resilio Sync, and both work fine. I mainly use this to upload photos from my digital camera - just copy them directly into the shared folder.
Something to keep in mind: make sure to enable "ignore file permissions" in the advanced folder settings to avoid any file access issues. Also, set up ignore patterns so it doesn’t copy over dotfiles (those hidden files that start with a .).
Backing Up from iPhone
This was the biggest challenge. There were multiple options, but none were great. I did a lot of research to see how I could do this. Some avenues I explored:
iPhone: Simplest way: Copy the photos manually
Note: Most people should go this route. Unless you take thousands of photos per month (like me), there's no need to build a complicated automatic setup like I did.
Copy the photos from your iPhone to your computer, then copy them to the Pixel. You could also copy them to a shared Syncthing folder on the computer, which would then forward the photos to the pixel. This solution works well for people who don't take a lot of photos. It also protects the Pixel device lifetime, because you can turn off the phone when you're not copying photos.
An improvement is to set up automatic photo backup on the iPhone to any cloud photo backup solution, such as Microsoft OneDrive, Amazon Photos, iCloud Photos, Dropbox, or even another Google Photos account. Have your iPhone automatically upload these photos to the cloud. Then periodically download the photos to your computer from the cloud, and copy them to your Pixel.
If you find the following methods too complicated, just stick with this one. It is good enough for the majority of people. The cons are it doesn't support automatic backup, it involves an extra step, and it takes a few minutes of time every month.
iPhone: Resilio Sync
I got this working the quickest, and I used Resilio Sync for a few months to back up my photos. It's easy to set up and works decently well. Install Resilio Sync on the iPhone and Pixel, create a camera roll backup, and share it to the Pixel. Resilio sync runs in the background of the pixel, and it starts on boot. But it has minor quirks, I didn't enjoy the experience and eventually switched to something better.
Benefits:
Free
Easy to set up. Works decently well out of the box.
Supports direct upload from iPhone to Android. Doesn't require a server.
Weaknesses:
Resilio Sync doesn't support automatic background photo uploads. It only runs when the app is open. I tried setting up shortcuts that would open the app when I connected the phone to a charger at home, but this became annoying, as it would only happen if the phone was unlocked.
Resilio Sync does not copy over Live Photos.
Resilio Sync does not handle burst photos correctly. It will copy over the first photo in the burst and not copy the remaining photos.
To get Google Photos to back up my camera roll, I had to manually copy an image into the backup folder so it would be detected. The iPhone's camera backup can be a bit quirky - it splits photos into separate folders with 1000 photos each (DCIM → {100APPLE, 101APPLE, 102APPLE, etc.}). I ended up adding a random image to the main DCIM folder to make sure Google Photos recognized everything, including all the subfolders.
iPhone: PhotoSync
I saw someone mention PhotoSync on Reddit and gave it a try.
Benefits:
Automatic background backup
Supports direct upload from iPhone to Android
Polished app
Weaknesses:
Paid app. Automatic background backups are only available with the Premium plan, which is a $20 one-time purchase.
On iPhone, it only supports direct automatic backups to a PhotoSync server, not other devices. I could send individual files to the Pixel, but I could not enable automatic backups to my Pixel. I had to trigger them manually.
Requires a server for full functionality.
At the time I tried Photosync, I did not have a home server. Looking back, in terms of ease, I think it would work pretty well. If I did this again and wanted an easy to configure, paid, option, I’d explore this.
I ended up not using PhotoSync.
Alternatives
I spent a lot of time researching how people copy their photos, and came across the following options:
Amazon Photos: Includes free unlimited full-resolution photo storage with a Prime membership, but you only get 5 GB for video. 5 GB was not enough, so this is a no-go.
Microsoft OneDrive Photos: Includes 5 GB by default, and +10GB through referrals. I saw someone online use this. They would install the Microsoft OneDrive app on their iPhone, enable automatic backups to the cloud, then periodically download the photos from the cloud to their computer, copy them to the Pixel, and upload them to Google Photos. It works, but I wasn't sure how to automate this. Note: you can acquire an additional +10GB of lifetime storage by buying referrals on ebay.
Dropbox: Supports automatic background photo uploads and Live Photos. Includes 2 GB by default, but it's possible to increase the storage by up to 18 GB via referrals. This option looks very viable. Upload photos automatically from iPhone, download them offline on the Pixel, then upload them to Google Photos. Remove the photos when completed. Instructions here. I didn't explore this because I was already using Dropbox on my iPhone for file backup and didn't have enough space to manage photos. Note: Similar to OneDrive, you can buy referrals on ebay for +16GB of lifetime storage.
Mounting a NAS folder using EasySSHFS - Requires a rooted Pixel and a NAS. Mount the remote drive in the DCIM folder of the Pixel, Google Photos will think these files are on device, and will automatically backup everything. This doesn’t work for me, because I cannot root my Pixel.
I ended up with the following setup.
Current Setup: Traditional NAS + Immich + Tailscale + Syncthing
This option is a little complicated. I have a homelab server running as a photo backup server. The server runs Immich as a photo backup server and Tailscale so I can connect to the server from my iPhone. On my iPhone, I installed Immich and the Tailscale app, and set up the Tailscale VPN. Immich automatically uploads my iPhone photos to the NAS, then I collate the photos into one folder using a script and copy the photos to a Syncthing folder. I then sync this folder to my OG Pixel, and it backs up the same as my other devices.
More details:
I have an Ubuntu server running Portainer, which hosts Immich, Tailscale, and Syncthing as Docker containers. This was fairly easy to set up using templates I found online.
Immich: A free, self-hosted image server. The immich UI is excellent, I can individually select which albums to upload, and it supports automatic background upload. The con is that it’s a locally hosted service, which is annoying to expose to the public internet. Which is why I use:
Tailscale: An easy-to-use personal VPN that allows my iPhone to connect back to my Ubuntu server without setting up port forwarding. Free. I run a Tailscale node on my Ubuntu server and enabled local network access. Then I connected to Tailscale on my iPhone, and I can see my Immich server via the Tailscale network.
Syncthing: Basic file syncing app, used before.
I asked ChatGPT to write a script that copies files from my Immich library into my Syncthing folder every 5 minutes. The script will only copy image and video files, and will not copy already copied files. The files are renamed to avoid potential naming conflicts. Already copied files are marked in a separate file, to avoid copying photos multiple times. I set up the script to run as a systemd service which runs on boot and executes every 5 minutes.
Syncthing then copies the contents of this folder to my Pixel, and it works as normal. For the Syncthing folder, I set it so that it was send & receive, and enabled "ignore file permissions".
Immich (my current setup)
Benefits:
Free and open source
Very configurable - I can choose which albums to upload
Supports Automatic background uploads from iPhone.
Weaknesses:
Requires a home server, and mild technical ability to set one up
Automatic backup works great when I'm on home wifi, but when I'm traveling, I need to enable Tailscale VPN to have it backup.
When Tailscale is enabled, it kept trying to backup over cellular data (tailscale makes the backup server appear to be on the local network). I had to disable cellular data in the Immich app settings.
Immich is under active development, and I need to update the Immich server about once per month (manually). Occasionally there are breaking changes, and I need to update the docker config file.
Automatically Freeing Up Space using the Automate app
Google Photos has a feature that frees up backed-up photos. I saw someone using the Automate app to do this. Basically, it opens up the Google Photos app and clicks through the screen to the "Free up space" menu and selects it. It's set to run every morning at 8 am.
The version shared a few years ago broke due to UI changes, so I reimplemented it. Here's an image of the flow if you'd like to implement it yourself. It opens google photos, clicks through the menus to the “Free up space” button, and presses it.
Freeing Up Storage on Android
With Syncthing, if the sync folder is configured as "Send & Receive," there's no need for this. Once photos are backed up and freed up on the Pixel, the copy on the Android phone is removed as well. This works fairly well.
Freeing Up Storage on iPhone
It's annoying, but I found two ways to do this:
Open the Google Photos app, then find the checkbox to select all photos in a month. In the menu, choose the option "Delete device original." This will delete the copy of the photos on your phone. If you try to delete photos that are not backed up, the app will warn you.
Using the "Free up storage" feature: Long press the app on the home screen (the iphone home screen) and select "Free up space"
This button only shows up if you have the "Backup photos" option enabled. But if you turn on backup, it'll start uploading your photos - which you don’t want. To get around this, first turn off Wi-Fi on your iPhone. Then, enable backup. Since you're not connected to Wi-Fi, the backup won't actually start. Now, the "Free up storage" option will appear - just click it and run the process. The "Free up storage" feature doesn't work that great; it keeps a lot of already backed-up photos.
Connecting Remotely (Advanced)
It's useful to debug issues from the Pixel remotely. I use a combination of adb and scrcpy to screen share my Pixel to my server. Then I added a VNC viewer so I could view my server screen from my laptop. This lets me view and control my Pixel from my laptop without touching the device.
I set up adb, vnc, and scrcpy on my server. I set up adb using apt-get. I set up a VNC server following instructions on ChatGPT and connected to it from my laptop. For scrcpy, I followed the installation instructions here. Then, on my Pixel, I enabled USB debugging in developer settings. I connected my Pixel to my server via a USB-C cable and verified I could see my Pixel in adb devices. Then I ran scrcpy on my server, which appeared in VNC, and I could control my phone without being physically next to it. This was very useful to fix various issues completely from my laptop.
Known Issues
iPhone Live Photos appear as a picture and a 2 second video on Google Photos: it’s an annoyance, it bothers me, but it’s not a dealbreaker. This feature works on photos uploaded from the iOS google photos app.
Internal flash memory degradation: The internal flash memory will wear out after a large number of write/delete cycles. After a lot of use, writes to device storage will start failing. I found two possible ways to alleviate this:
Mount an external USB drive as a local drive - see the setup here https://github.com/master-hax/pixel-backup-gang. Requires root, a USB hub, and a USB drive.
Mounting a network drive folder using EasySSHFS - Requires a rooted Pixel and a home server / NAS. Maps a network drive to a local folder, allowing backup. I’ve personally found SSHFS unstable, so I’d go with the external USB setup.
If the device isn’t rooted, I don’t know a way to alleviate this.
Battery health: My Pixel battery is dying, and lasts about 5 minutes away from power. I’ve looked into replacing the battery, but read it’s a difficult replacement, because there’s a 50% chance I break my screen when opening up the phone. This risk was too high to me. There is a battery replacement guide here.
Physical security: If someone breaks into my house, they could take my phone, which is logged into my Google account and has access to all my Google Photos. The phone is set to always on (necessary for the "Free up Storage" script to run).
Google Photos folder detection: Google Photos only lets you add a backup folder if there's already a photo inside of it. Add a junk photo to the folder so Google Photos detects it.
If I did it again, what would I do?
First, I’d purchase a rootable Pixel device (non-Verizon), then root it. I’d attach an external USB drive to avoid flash degradation, and use the same Syncthing setup. This enables backup from my Android and Mac.
For iPhone backup, if I didn’t have a home server, I would investigate the dropbox route. I’d buy an additional +16GB storage on ebay. I personally have never tested this setup, but it sounds decently robust and should work. It’s unclear how easy this is to automate.
If I had a home server, I’d go with my current setup.
Closing Thoughts
This was a lot of work to set up. Was it worth it? Yes. I have several TB of media on Google Photos, and it would cost over a hundred of dollars per year to pay for normally.
How long will this work for? This will work as long as Google Photos supports Android 10 (the last update available for the Pixel), which is probably at least til 2026 (7 years after the release of Android 10). When Google drops support, I'll find an alternative.
There are modified Android ROMs that include unlimited photo backup by pretending to be the original Pixel. I looked into setting this up by emulating one in Genymotion. However, I didn't go this route because I already have a Pixel, and it's possible to get your google account banned for doing this. If you're willing to take this risk, and have a rooted device set up with Magisk, see this thread for more information.
Extra links
Information about rooting and setting up battery profiles
Run the Pixel 1 without any battery 24/7 just via the charger
Video tutorial of how to remove the battery, and run the phone off a wall socket
I don't frequent this sub so apologies if this is already a well-known thing, but I tried searching for past posts on here but I can't find anything that relates to this "hack". Though I did find a 6 day old YouTube video which says the same thing but I find my own way a bit tidier.
BASICALLY, you make a second google account wherein all future photos will be uploaded but it will be partner shared to your main account. The caveat for this hack is that this only works if you don't really use partner sharing with another person since you can only share with one account.
Once partner sharing is set up (it's easily googleable), there is an option wherein the photos uploaded on the second account automatically gets saved to the main account's main library. Turn that option on, this is important. Then turn off auto-upload from the Main Account and turn it on on the Second Account. This way, all new photos will be uploaded to the Second Account but in turn will also be automatically shared and uploaded to the Main Account.
The great thing about this is that 1. This only counts against the storage limit of Account Two and more importantly, 2. ONCE YOU DELETE THE PHOTOS FROM ACCOUNT TWO, IT STILL STAYS ON THE MAIN ACCOUNT!!
Yes, I did try it multiple times and and I can confirm. To make it crystal clear, I uploaded a 4gb movie file I had on Account Two. Once uploaded, it was automatically partner shared to my Main Account and did not take up additional storage there (it was already maxed at 14.something gb anyway). I then deleted said movie file from Account Two, and it is still available on my Main Account and my Account Two's storage is back to the full 15gb. To make 100% sure it was in my Main Account forever, I even turned off partner sharing with Account Two, movie is still there. I started partner sharing with my third account, and the movie is still there.
So in essence, you can upload media up to 15gb at a time and once Account Two is full, you can delete everything on there so your storage is now back to 0gb.