1

I am confronted with an old Android phone:

  • OS: Gingerbread (2.3.6)
  • Type: Motorola XT320

It holds quite a significant amount of data in its local calendar, operated by what appears to be the stock calendar app of Android of that era. The phone is not (and has never been) connected to a Google account.

How can I extract this data onto a computer (preferably without having to create a Google account etc. since this particular data actually is not Google's business)?


I have looked at the following questions, among others:

I am aware of this iCal Import/Export CalDAV app which appears to be only available in Google's Playstore - as far as I can tell a no-go without a Google account.

I have experimented with the Calendar Import-Export app from F-Droid. The good news is that it is available (and still maintained) for Gingerbread. The bad news is that it does not see my calendar. This appears to be a dead-end so far. EDIT: I just filed a bug report against it.

I am no stranger to ADB - the phone has developer options enabled. From my research and test runs, I learned that adb backup only became available with Android 4, so this is no option for me. By gaining access to a shell on the phone (adb shell) I furthermore learned that the folder /data (where according to Android's documentation the calendar data should be located) can not be accessed by a regular user. My understanding is that /data is located on the phone's internal memory (not on its SD card) where it is protected by Android's security model.

In the context of ADB, I came across this project on Github. I am not entirely sure whether or not this will work with Gingerbread. The one thing I know is that I probably need to root my phone first before I can find out. Right now, targeting content://com.android.calendar/calendars, the script exits with Querying DB: Done and content: permission denied0%.

My four options left, as far as I can tell, are:

  • Going through the hassle of creating a Google account and extracting my data through Google cloud (and I really do not want to go down this path).
  • Rooting my phone so I can access whatever is stored in /data in the hopes that I can convert it to something readable (e.g. an ical file). If I understand the documentation correctly, the stock Android calendar app stores its data in a SQLite database file. I have yet not found a definition of how this data is stored in the database (which I could use to write some code to convert it). Funny side note: I have NOT yet found a "safe" way of rooting this particular type of phone. The general advise given: Backup all your data before trying ...
  • Android 2 allows to connect the phone to a Microsoft Exchange service (in addition to or even instead of a Google account). Theoretically, this should allow me to set up my own Exchange service in one way or the other and to get the data out this way ...
  • Going through the calendar by hand and writing every event into a computer manually as well. Given the amount of time I have spent researching this, it does not appear to be the worst option ...

I'd love to hear if there are any other options left that I might have overlooked or misinterpreted ... I am pretty damn frustrated at this point.

  • Is the device rooted? Then you could extract the corresponding database. – Izzy Oct 30 '18 at 21:12
  • @Izzy It is not (yet). As stated above, I also have not found a "relatively safe" way to do it for this particular type of phone without risking to loose the relevant data. – s-m-e Oct 31 '18 at 8:13
  • @Izzy I just posted a related question about how to root this phone. – s-m-e Oct 31 '18 at 9:14
  • OK, when you achieved that, you can copy the database of the "calendar provider" (com.android.providers.calendar) to your SD card and pull it from there. – Izzy Oct 31 '18 at 10:32
  • @Izzy Is not the "calendar provider" in this form an Android >= 4 thing? – s-m-e Oct 31 '18 at 11:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.