Welcome to retracile.net, my dusty little corner of the internet.
Read more AboutMe and peruse my Resume; or browse my Projects. Drop me an email to make a comment or ask a question.
Browse by time:
- August 2026 (1)
- April 2026 (1)
- January 2026 (1)
- December 2025 (1)
- November 2025 (1)
- October 2025 (1)
- September 2025 (1)
- August 2025 (1)
- July 2025 (1)
- June 2025 (1)
- May 2025 (1)
- April 2025 (1)
- March 2025 (1)
- February 2025 (1)
- January 2025 (1)
- December 2024 (1)
- October 2024 (1)
- September 2024 (1)
- August 2024 (1)
- July 2024 (1)
- June 2024 (1)
- May 2024 (1)
- April 2024 (1)
- March 2024 (1)
- February 2024 (1)
- January 2024 (1)
- November 2023 (1)
- October 2023 (1)
- September 2023 (1)
- August 2023 (1)
- July 2023 (1)
- June 2023 (1)
- May 2023 (1)
- April 2023 (1)
- March 2023 (1)
- February 2023 (1)
- January 2023 (1)
- December 2022 (1)
- November 2022 (1)
- October 2022 (1)
- September 2022 (1)
- August 2022 (1)
- July 2022 (1)
- May 2022 (1)
- March 2022 (1)
- February 2022 (1)
- January 2022 (1)
- December 2021 (1)
- November 2021 (1)
- October 2021 (1)
- September 2021 (1)
- August 2021 (1)
- July 2021 (2)
- February 2020 (1)
- December 2019 (1)
- October 2019 (2)
- August 2019 (1)
- July 2019 (1)
- June 2019 (1)
- May 2019 (1)
- April 2019 (1)
- March 2019 (1)
- February 2019 (2)
- November 2018 (1)
- August 2018 (1)
- October 2017 (1)
- September 2017 (1)
- August 2017 (1)
- July 2017 (1)
- June 2017 (1)
- May 2017 (1)
- April 2017 (1)
- March 2017 (2)
- January 2017 (1)
- December 2015 (1)
- November 2015 (2)
- September 2015 (1)
- July 2015 (2)
- January 2015 (2)
- December 2014 (1)
- September 2014 (1)
- August 2014 (1)
- July 2014 (1)
- May 2014 (3)
- April 2014 (1)
- October 2013 (1)
- September 2013 (1)
- June 2013 (2)
- May 2013 (1)
- December 2012 (1)
- August 2012 (2)
- January 2012 (1)
- December 2011 (1)
- August 2011 (2)
- June 2011 (1)
- February 2011 (1)
- January 2011 (1)
- November 2010 (1)
- April 2010 (1)
- December 2009 (2)
- November 2009 (2)
- October 2009 (3)
- July 2009 (1)
- June 2009 (1)
- May 2009 (1)
- April 2009 (1)
- February 2009 (2)
- November 2008 (1)
- May 2008 (1)
- March 2008 (2)
Browse by category:
- rss 3d-printing (4)
- rss ai (1)
- rss android (6)
- rss aqemu (1)
- rss bash (2)
- rss book (1)
- rss bug (2)
- rss cellphone (2)
- rss centos (1)
- rss computer (2)
- rss construction (2)
- rss corsair-gaming-k70-rgb (5)
- rss corsair-gaming-k95-rgb (4)
- rss creality (1)
- rss diff (1)
- rss electrical (3)
- rss email (1)
- rss ender-3-pro (1)
- rss fedora (2)
- rss flashlight (1)
- rss food (1)
- rss history (9)
- rss kde (2)
- rss keyboard (5)
- rss kmail (1)
- rss ldglite (2)
- rss ldraw (41)
- rss ldraw-parts-library (32)
- rss ldview (4)
- rss lego (53)
- rss leocad (6)
- rss linux (53)
- rss lpub4 (4)
- rss macos (1)
- rss math (1)
- rss metal-working (3)
- rss mindstorms (4)
- rss music (9)
- rss numbers (1)
- rss office (2)
- rss openSCAD (2)
- rss openid (1)
- rss openscad (1)
- rss playset (1)
- rss programming (7)
- rss python (17)
- rss quick-grid-zones (3)
- rss router (1)
- rss rubik's-cube (2)
- rss sabaton (9)
- rss security (3)
- rss sewing (1)
- rss sllim (1)
- rss software (15)
- rss subversion (1)
- rss trac (2)
- rss truck (2)
- rss vim (9)
- rss weapons (2)
- rss windows (1)
- rss wood-working (6)
Migrating contacts from Android 1.x to Android 2.x
I'm finally getting around to upgrading my trusty old Android Dev Phone 1 from the original Android 1.5 firmware to Cyanogenmod 6.1. In doing so, I wanted to take my contacts with me. The contacts application changed its database schema from Android 1.x to Android 2.x, so I need to export/import. Android 2.x's contact application supports importing from VCard (.vcf) files. But Android 1.5's contact application doesn't have an export function.
So I wrote a minimal export tool.
The Android 1.x contacts database is saved in /data/com.android.providers.contacts/databases/contacts.db which is a standard sqlite3 database. I wanted contact names and phone numbers and notes, but didn't care about any of the other fields. My export tool generates a minimalistic version of .vcf that the new contacts application understands.
Example usage:
./contacts.py contacts.db > contacts.vcf adb push contacts.vcf /sdcard/contacts.vcf
Then in the contacts application import from that file.
If you happen to have a need to export your contacts from an Android 1.x phone, this tool should give you a starting point. Note that the clean_data function fixes up some issues I had in my particular contact list, and might not be very applicable to a different data set. I'm not sure the labels ("Home", "Mobile", "Work", etc.) for the phone numbers are quite right, but then, they were already a mess in my original data. Since this was a one-off task, the code wasn't written for maintainability, and it'll probably do something awful to your data--use it at your own risk.
- Posted: 14 years ago
- Categories: software python android cellphone
Attachments (1)
-
contacts.py
(4.9 KB
) - added by Eli Carter 14 years ago.
minimalist export utility
Download all attachments as: .zip

rss
Comments
No comments.