DESKTOP INTEGRATION MANAGEMENT FOR PORTABLE, ZERO-INSTALL AND VIRTUALIZED APPLICATIONS BACHELOR THESIS PRESENTATION BASTIAN EICHER – KIT, 2011
Overview • What is wrong with current Problem definition installers • Improve an existing zero-install Proposed solution system • Domain-specific languages, Design & implementation capturing, applying • Qualitative, quantitative Evaluation 2 Bachelor Thesis Presentation – Bastian Eicher
Problem definition User control Multiple versions Libraries Uninstall 3 Bachelor Thesis Presentation – Bastian Eicher
Existing technology Zero-install applications Portable applications Application virtualization Zero Install Portable Apps.com InstallFree ThinApp App-V Bridge 4 Bachelor Thesis Presentation – Bastian Eicher
Desktop Integration Handler Icons • File endingns • Start menu • Burn CDs, etc. • Desktop Services • Browser • Mail client 5 Bachelor Thesis Presentation – Bastian Eicher
What is Zero Install? Install • Without root priveliges • Without side-effects Distribute • Decentralized, regular websites • Directly upstream from developer Security • GnuPG signatures • Sha-256 hashes 6 Bachelor Thesis Presentation – Bastian Eicher
Zero Install: Feeds <?xml?> Implementations Metadata Dependencies • Download URLs • Name • References to • Archive type • Description other feeds • SHA hashes • Icon <!-- Base64 Signature iQEcBAABAgAGBQJOBZXzAg8Nq0A... --> 7 Bachelor Thesis Presentation – Bastian Eicher
Zero Install: Launch process Interface URI 0install run http://domain/file.xml select download run Inter- face Dependency Require Archives Hashes ments injection Depend encies 8 Bachelor Thesis Presentation – Bastian Eicher
Proposed solution Extend Zero Install to provide desktop integration Analyze Design Implement • Installers • Domain- • Toolset • Desktop specific • Runtime language environments support 9 Bachelor Thesis Presentation – Bastian Eicher
Design • Open with list • AutoPlay handler Capabilities Access points • Register as default • Desktop icon 10 Bachelor Thesis Presentation – Bastian Eicher
Domain-specific languages 11 Bachelor Thesis Presentation – Bastian Eicher
Capturing Classic installer Improved Zero Install Modify system Zero Install state Register capabilities, Extract files add access points Feed Snapshots 12 Bachelor Thesis Presentation – Bastian Eicher
Applying 0install integrate-app http://domain/file.xml ... • Check for conflicts • Update application list • Modify registry, create shortcuts, etc. 13 Bachelor Thesis Presentation – Bastian Eicher
Sync Application list as XML 3-way merge AES-128 AES-128 decryption encryption HTTP GET HTTP PUT Download Upload 14 Bachelor Thesis Presentation – Bastian Eicher
Implementation • Branch of Desktop Windows port integration • C# 2.0 • Developed Windows outside of thesis port • C# 2.0 • Pre-existing Original project Zero Install • Python 15 Bachelor Thesis Presentation – Bastian Eicher
Problem: Runtime modifications Select Dependency Target Access point Zero Install version injection application Fixed Target Access point version application 16 Bachelor Thesis Presentation – Bastian Eicher
Solution: API hooking Application Application Reference to settings specific app version Zero Install Reference to 0install run Windows registry 17 Bachelor Thesis Presentation – Bastian Eicher
Problem: Metadata in EXEs 18 Bachelor Thesis Presentation – Bastian Eicher
Solution: Stubs Interface URI Command name Binary name safe-mode firefox http://mozilla.org/ firefox.xml SHA-256 ...\stubs\e55b7669206cfd44fe6676b53...\firefox.exe 19 Bachelor Thesis Presentation – Bastian Eicher
Evaluation: Qualitative INSTALLATION RUNTIME Use cases: Classic • File double-click installers Zero Install • Default browser • Command line Captured: File types, protocols, … • Context menu • AutoPlay Not captured: Browser plugins, drivers, … 20 Bachelor Thesis Presentation – Bastian Eicher
Evaluation: Quantitative PERFORMANCE STABILITY • API hooking captures all supported Plain • Solving time: changes Zero ~1.3 s Install • Causes memory access violations in some applications • Startup delay: • May be improved ~250 ms API using application • Delay per API: hooking virtualization ~460 ns methods 21 Bachelor Thesis Presentation – Bastian Eicher
Conclusion Zero Install can now provide desktop integration equivalent to classic installers 22 Bachelor Thesis Presentation – Bastian Eicher
Recommend
More recommend