Kirsle.net logo Kirsle.net

Exploring Grindr's Photo Cache

April 4, 2014 (updated February 10, 2018) by Noah
A long time ago, the Grindr for Android app used to store its photo cache on your SD card, but lately they hid them away in the app's private space to make them slightly more difficult to get to. I decided to go exploring using Root Browser and see what I could find out.

When I say "photo cache" I mean the place where Grindr downloads pictures locally so that it doesn't need to keep redownloading everyone's pictures all the time and consuming a lot of unnecessary bandwidth. Grindr caches both profile pictures and pictures received over chat messages. They both go into the same place. So if you have access to that place, you can get high resolution copies of all pictures received over chat and have them on your PC. :)

First of all, you'll need a rooted Android device for this, because the Android OS normally doesn't allow apps to get into each other's private data folders. The Root Browser app is a file browser that's root-aware (so it will prompt for root permission when you attempt to open a folder that ordinarily you can't open without root).

So, without further ado, Grindr's photo cache is located at /data/data/com.grindrapp.android/cache/picasso-cache/. This folder may contain a lot of files, mine had 3,458 and so Root Browser took a while to load that folder. You can copy it somewhere under /mnt/sdcard and then get to your files from a PC that way. Make sure the files are no longer owned by "root" when put in the SD card part, or you may run into issues when accessing them from your PC.

Most of the files in this folder have hexadecimal names that appear to be hashes of some sort, and the names usually come in pairs, one with a ".0" file extension and the other with a ".1", for example one I found on my phone was 4e21d675447678d0493bc8cb41a56e8d.0.

The ".0" file is a plain text file, and most of the ".1" files are the JPEG images. I use Linux, and my file browser automatically identified the types of all the files and showed thumbnail images for all the ".1" files. So, most of the time if you rename one of the ".1" files to have a ".jpg" extension you can see the images under Windows.

Some of the .1 files aren't images though. Some are more text files, and I peeked inside one to see what it was:

$ cat c1749deee81d4fece16d836e177c5852.1
[{"messageId":16970,"title":"Calling All DJs & Bartenders","body":"Are you one of the sexiest DJs or bartenders and able to work a paid event on the afternoon of April 27th in Palm Springs? If so, send us your information and a link to your website to palmsprings@grindr.com or simply tap 'More' to email us directly. ","actionTitle":"More", "dismissTitle":null, "expirationDate":1396853940000, "url":"mailto:palmsprings@grindr.com"}]

These appear to be the broadcasted pop-up messages shown in the app sometimes.

Now, the other interesting files are the ones with the ".0" extensions. These appear to be debug information, and they're basically the full HTTP request dump used to download the ".1" file. Here's what the one looked like for my profile picture (in case the Grindr CDN link stops working and you're curious, it's this picture):

$ cat 4e21d675447678d0493bc8cb41a56e8d.0
http://cdns.grindr.com:80/images/profile/1024x1024/d8dfd4eb2abd9c4d29653587cc87912b393bac97
GET
0
HTTP/1.1 200 OK
14
Accept-Ranges: bytes
Content-Length: 72057
Content-Type: image/jpg
Date: Fri, 04 Apr 2014 20:09:05 GMT
Etag: "98af07f8697f854734874296a90c640f"
Last-Modified: Sat, 01 Mar 2014 22:05:22 GMT
Server: ECS (lax/2851)
x-amz-id-2: [REDACTED]
x-amz-request-id: [REDACTED]
X-Android-Received-Millis: 1396642144430
X-Android-Response-Source: CONDITIONAL_CACHE 200
X-Android-Selected-Transport: http/1.1
X-Android-Sent-Millis: 1396642144347
X-Cache: HIT
I edited-out the "x-amz" headers because I'm not sure how secret those are supposed to be.

When browsing through my cache folder I also saw some pictures that weren't profile pics, but were sent over chat messages. These always seem to be the full resolution of the original pic sent, i.e. not thumbnails or anything. The ".0" file looks the same as for a profile picture, except the URL downloaded begins with "http://cdns.grindr.com:80/grindr/chat/" and the server headers respond with a "Content-Type: binary/octet-stream" (which causes a web browser to download the picture to disk instead of displaying it in the browser).

Some of the ".1" files are actually empty (0 bytes), and their .0 files indicate that these are the ad banners (requesting a URL from googleads.g.doubleclick.net). So it looks like whatever system in Grindr is responsible for downloading pictures also sorta deals with downloading ad banners, except it doesn't actually save the banner into the cache folder.

The last somewhat not-very-interesting file in the cache folder is called "journal", and it's a text file. By reading the first couple lines, it appears to be part of libcore.io.DiskLruCache, a bit of Java code that provides a rotating offline cache. This probably means that, if Grindr's cache folder fills up, it will automatically remove old files to make room for new ones, so it can keep its overall disk usage under control automatically. The journal file appears to list the hash names of all the other files in the folder, along with words like "CLEAN", "DIRTY", and "REMOVE".

Tags:

Comments

There are 22 comments on this page. Add yours.

Avatar image
Josh posted on April 13, 2014 @ 15:03 UTC

So i guess there would be no way to transfer app data between devices unless both were rooted? It would be nice to transfer chat history and pics- Grindr leaves much to be desired :(

Avatar image
Trini Cruz posted on May 2, 2014 @ 08:51 UTC

I used Root Browser on my rooted HTC Droid Incredible 2 and Droid Explorer on my Windows 8 PC and can browse to /data/data/com.grindrapp.android/cache, but this directory is empty (4K). There is, therefore, no picasso_cache directory to be found anywhere. Where else can the grindr cache be?

Avatar image
justin posted on July 16, 2014 @ 02:56 UTC

You may be able to transfer among devices. I had to restore my phone (I forget why). So I did a system backup and back then I was able to find the picture files from the sim card (even some pics from users that had blocked me). I reset my phone and connected it to my computer and stopped the resync. I moved the files back over and my chat history was maintained ( I did however lose a few messages that had been sent to me in the interim. It was the single most tech savy thing I ever did but I don't think it was that demanding.

Avatar image
Trini Cruz posted on July 26, 2014 @ 05:08 UTC

Justin, where exactly did you "find the picture files"?

Avatar image
Benji posted on August 24, 2014 @ 07:59 UTC

i made like Trini Cruz and then just copy that files into new folder (on SD card). then connect phone to my PC and rename .1 to .jpg and then works:)

Avatar image
Trini Cruz posted on August 25, 2014 @ 04:24 UTC

@Benji huh?

Avatar image
Rob posted on September 21, 2014 @ 20:36 UTC

If you look at the images under windows, they need to have a .jpg extension so windows knows they are images. When you copy the files from the Android device, the pics will have a name like d8dfd4eb2abd9c4d29653587cc87912b393bac97.1, you need to get rid of that .1 and change it to a .jpg like this: d8dfd4eb2abd9c4d29653587cc87912b393bac97.jpg then you can view it under windows....

Avatar image
alan posted on October 7, 2014 @ 21:07 UTC

On windows command promt you can use ren *.1 *.jpg

Avatar image
David posted on November 2, 2014 @ 03:04 UTC

I'm curious. What happens to EXIF data on Grindr? Is it there to be found?

Avatar image
noname posted on November 26, 2014 @ 08:56 UTC

You can use TitaniumBackup (require root) or Carbon (also for non root) to backup the messages. It's a painful process though, since Grindr has like 60k+ files in its private folders.

Avatar image
Guest posted on December 19, 2014 @ 21:36 UTC

After hours of troubleshooting and trying various methods, I'm happy to say I was able to transfer all of my 400+ Grindr chat conversations including my photos using the Helium app! So far, I am using it on my new phone with no issues, and all messages and photos are restored including the photos sent by others to me.

I brought over my Grindr .apk from my old phone using a regular app file backup program (I prefer a much older version of the app, NOT the most current one) and then I used Helium to transfer the app data only. So far no issues!

Thanks for the above information! This page was really helpful!

Avatar image
RoooBW posted on December 22, 2014 @ 16:31 UTC

Dat Pokémon belt doe ;)

Avatar image
Dave posted on January 25, 2015 @ 20:15 UTC

Helium has never worked with Grindr for me, but it woks for every other app. Any version of Grindr always fails to start after a Helium restore :/

And the pictures thing detailed on this page doesn't work of me either. Strange.

Avatar image
Nairo posted on February 1, 2015 @ 00:01 UTC

With Android 4.0.4, CyanogenMod 9, a ROOTED galaxy S2 (GT-I9100) and Grindr 2.1.3, the folder /data/data/com.grindrapp.android/cache/ seems to be empty, even if I change the permissions and the ownership of the folder with Root Browser.

The only solution that remains is to sniff the traffic and filter every URL like http://cdns.grindr.com/images/profile/1024x1024/*

Avatar image
Charles posted on March 21, 2015 @ 18:11 UTC

Hey, this article is amazing. Do you know where chat logs are saved? A guy sent me some pictures and he blocked me so I lost the chat window I had with him; I want the pictures back lol

Avatar image
Just Passing posted on December 8, 2015 @ 23:29 UTC

Hi, thanks for this, however, despite having over 4000 files in the cache, there only seems to only be pictures of the most recent guys that have showed up on Grindr (a large number, yes, but only the recent guys)! Pictures from past chats do not appear in the cache!

I've gone back to make sure, and I can still access the chat I had with these people, as well as can still see the pictures they sent me (so they must be SOMEWHERE). I don't care much about keeping profile pics of a bunch of guys I've never met. I just want to download the pics of the guys I've actually spoken to or met.

Any more help would be quite appreciated. Thanks!

Avatar image
Gandel posted on April 5, 2016 @ 06:40 UTC

And apple? I need to recovery a chat very importante :(

Avatar image
muneeb posted on December 26, 2016 @ 14:37 UTC

hi there. I am in need of some serious assistants. chatted to a profile on grindr. once we concluded i deleted the chat , we met the sme night and upon leaving the profiler asks for his service fees. " eventually I called the Law enforcement to have him removed from the venue as i informed him and the officers that no discussion occurred of service fees. this destroyed discretion. the law enforcement requested I provide them with chat history so that he can be charged for extortion + 2 other charges. i urgently need some assistants in this regard.

Avatar image
muneeb posted on December 26, 2016 @ 14:38 UTC

hi there. I am in need of some serious assistants. chatted to a profile on grindr app using android. once we concluded i deleted the chat , we met the sme night and upon leaving the profiler asks for his service fees. " eventually I called the Law enforcement to have him removed from the venue as i informed him and the officers that no discussion occurred of service fees. this destroyed discretion. the law enforcement requested I provide them with chat history so that he can be charged for extortion + 2 other charges. i urgently need some assistants in this regard.

Avatar image
k739 posted on March 22, 2018 @ 22:10 UTC

still cached, but located at /data/data/com.grindrapp.android/cache/image_manager_disk_cache

Avatar image
ALEXANDER TUDHOPE posted on August 27, 2018 @ 14:49 UTC

can I get nude pics on grindr

Avatar image
ALEXANDER TUDHOPE posted on August 27, 2018 @ 14:50 UTC

can I get nude pics on grindr

Add a Comment

Used for your Gravatar and optional thread subscription. Privacy policy.
You may format your message using GitHub Flavored Markdown syntax.