: Etherpad users! We are developing an extension that will allow you to create pages from etherpads quickly and easily. Please visit our sandbox and help us test it.


From MozillaWiki
Jump to: navigation, search


This page is the home of the Android Sync Client project. This project is part of the re-writing of the Fennec UI using native Java rather than XUL (Fennec Native UI).


  • Jason Voll


  • Integrate correctly with existing sync clients
  • Use existing Sync API's to communicate with Sync server via HTTP
  • Reliable
  • Behave as existing Fennec sync client does (i.e. no regression)


  • AES 256 CBC
  • HMAC SHA 256
  • SHA1 for converting email to a username
APIs for communicating with Mozilla Sync Server

Implementation Details

  • Utilize a repository pattern for writing to local database on device and talking to the sync server
  • Add crypto as a middle-ware layer to the repository so it appears as if other code is just communicating with the repository object
  • Here is the beginning of a class diagram for the Sync Client. Details will be filled in as the client is designed
  • Run as a lightweight Android service so that sync data is available as soon as Fennec starts
    • Perhaps run service more aggressively when Fennec is actually running, back down when Fennec isn't running to avoid using too large of a memory footprint (Android kills background services when it is in need of more memory)
    • Ideally we'd like to write this as an Android Sync Service so that it shows up in the user's sync accounts screen and that is how they interact with it
    • Screenshots: Add Sync Account Page, Synced Accounts Page


  • October 2011: Crypto Libraries
  • November 2011
    • Week 1 - Repository framework
    • Week 2 - Communication with sync server
    • Week 3 - Setup of storage and accessing it on the client side
    • Week 4 - Work of actually syncing (make this more granular)
  • December 2011
    • Week 1 - Work of actually syncing (make this more granular)
    • Week 2 - Wrap up and hand-off
  • December 16, 2011 - Last day of Jason's internship


Initial development will be stored on github in the following repository: https://github.com/mozilla-services/android-sync

Related Bugs

Feature bug: 695463


Crypto Notes