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:
- How can data on an unrooted phone be backed up?
- How to backup the Android calendar file (is there such a file)?
- Full Backup of non-rooted devices
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. anical
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.
com.android.providers.calendar
) to your SD card and pull it from there.