GitHub PushEvent at 2014-05-10 03:47:17
Repository: android_frameworks_base
Actor: cj360
Payload: {"shas":[["bb59db83d3a5c5cb50d41fdca59cc7a9785b3718","e3579b1e47f273529f0f929453e939a68ede9fd1@cyngn.com","New Theme Engine [1/6]\n\n[Summary]\nTook the T-mobile theme engine, replaced redirection mechanism with a modified Sony idmap and then extended the feature set.\n\nThe new theme engine allows the following:\n1. Simple creation of themes by compiling on the device\n2. System level icon packs.\n3. Font packs\n4. Swappable boot animations\n5. Lockscreen wallpaper\n6. Alarms\n7  Of course all the things the previous engine could do including skins, ringtones and\nnotifications. There is also legacy support for old themes.\n\n[Theme Format]\nFor the time being themes are APKs with all theme elements in the assets folder. Since these resources\nare compiled at runtime there is no reason we can't change it to a zip but creating an APK is well\nunderstood by themers.\n\nThe directory structure looks like this:\n\nAndroidManifest.xml\nsrc/\nres/\nassets/\n  boot-animation/\n  fonts/\n  icons/\n    res/ (note: same dir structure as res/ in trebuchet icon packs)\n  wallpapers/\n  ringtones/\n  notifications/\n  alarms/\n  overlays/\n      [target-pkg-name1]\n          res/\n           drawable/\n           drawable-hdpi/\n           ...\n           layouts/\n           xml/\n      [target-pkg-name2]\n          res/\n\nWhere [target-pkg-name] is the package of the app you are trying to overlay. For example, to overlay\nfacebook's app you would make a directory under overlay called \"com.facebook.katana\". For frameworks\nresources use the target name \"android\".\n\nUnder each target pkg is a res/ folder which follows the same format as a typical APK's res/. During\ninstall time AAPT will actually compiling these res/ folders individually.\n\nThere are also non-overlay folders like boot-animation, wallpaper, fonts etc.\n\nA theme APK is identified by meta-value data in AndroidManifest.xml. Here is an example:\n\n<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    package=\"com.me.andytheme2\"\n    android:versionCode=\"1\"\n    android:versionName=\"1.0\" >\n    <uses-feature android:name=\"org.cyanogenmod.theme\" />\n    <meta-data android:name=\"org.cyanogenmod.theme.name\" android:value=\"My Blue Theme\"/>\n    <meta-data android:name=\"org.cyanogenmod.theme.author\" android:value=\"John Doe\" />\n</manifest>\n\nBy using meta-data we do not require special new tools.\n\n[Changes to PackageManagerService]\nDuring install time PackageManagerService will scan meta-data values in the manifest. If it finds\na meta-data name of \"org.cyanogenmod.theme.name\" then it will assume the APK is a theme and mark it as such.\n\nThen PM will find all overlays from the theme. For each overlay target it will generate a resource table\nand an idmap via Installd. Aapt will also run to compile 9patch and xml files. The new restable, idmap, and compiled resources\nare stored under /data/resource-cache\n\n[Changes to aapt]\nAapt has been extended to read zip entries and accept file descriptors to work with installd.\n\n[Changes to frameworks/core]\nMost of what TMO has done already here for runtime theme changes is kept so most changes\nare simply plumbing to make Sony's overlays work at runtime. Additionally changes were made\nto TMO classes to support mix n match better.\n\n[Changes to libandroidfw]\nSony's idmap concept is one overlay apk -> one target apk, but themes support multiple target apks. So\nmost of the changes here are for support this. Also we support runtime overlay changes so functionality\nhad to be added to add/remove to the resource table during a configuration change.\n\n[Security]\nWe run aapt in reduced priveledges via Installd. At the moment however a theme can overlay any resource. This\nincludes strings and layouts so any malicous theme could cause serious crashes to the device.\n\n[See Also]\nframeworks/native\nexternal/skia\nbuild\nvendor/tmobile/providers/ThemeManager\nvendor/tmobile/libs/com.tmobile.themes\n\n[Contributors]\nAndrew Mast <andy@cyngn.com>\nClark Scheff <clark@cyngn.com>\nSpecial thanks to the T-Mobile theme team. This would not be possible without their efforts.\nSpecial thanks to Mårten Kongstad and the rest of the Sony team for their work in idmap.\n\nChange-Id: I812a3757bdb56c429b5870ff922485439ae00f8d\n\nConflicts:\n\n\tcore/java/android/app/ContextImpl.java\n\tcore/java/android/app/ResourcesManager.java\n\tcore/java/android/content/Context.java\n\tcore/java/android/content/pm/ThemeInfo.java\n\tlibs/androidfw/AssetManager.cpp\n\tlibs/androidfw/ResourceTypes.cpp\n\tpackages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java\n\tpackages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java\n\tpolicy/src/com/android/internal/policy/impl/GlobalActions.java\n\tservices/java/com/android/server/AppsLaunchFailureReceiver.java\n\tservices/java/com/android/server/DeviceStorageMonitorService.java\n\tservices/java/com/android/server/InputMethodManagerService.java\n\tservices/java/com/android/server/SystemServer.java\n\tservices/java/com/android/server/am/ActivityManagerService.java\n\tservices/java/com/android/server/pm/PackageManagerService.java","Andy Mast",true],["5d77eaf1e4e66ab192be2e4cd7114bf3a1f39395","e3579b1e47f273529f0f929453e939a68ede9fd1@cyngn.com","Lockscreen wallpaper for themes\n\nChange-Id: If77b97301c5bfebd94b193fe9a54e676e678d3ed","Andy Mast",true],["c388c26e6e04088279f69502dae7a5142a4e9706","053ecdb11b44800132cff549ce9fb7bd2bcfc7e1@gmail.com","Move theme strings to pa_strings\n\ncredit @mikeNG\n\nChange-Id: Iab8aa645b7e476cac37f25ce837fc56f079edb01","cj360",true],["bfc872f99722d8d08f91f32e375967cdea5367fb","2c4256676acc36e079a3fd9141786c2938cdfa49@cyngn.com","CM11 Themes: Take into account ALL res/xml dirs\n\nOnly res/xml was being searched for redirection XML files, which\ncauses themes that use xml-v14, xml-v19, etc to be overlooked and\nresources not being mapped.\n\nChange-Id: I8ccad5770250150a95ec3b89be56f8d01025b126","Clark Scheff",true],["9a0afa4d84444e9b29a00196ed276b3c0cc9d6ba","2c4256676acc36e079a3fd9141786c2938cdfa49@cyngn.com","CM11 Themes: Use 32bit hash to decide if idmap should be created\n\nUsing the last modified time of the package to determine if an idmap\nshould be created is not always valid for system packages.  We have\nobserved some packages having a time stamp of 08/01/2008 even if the\npackage has changed.  This causes system packages, such as\nframeworks-res.apk to not be properly mapped if IDs changed in this\npackage.\n\nThis patch will generate a 32 bit hash code based on the file's\nMD5 sum.  This hash code is then provided to idmap for writing these\nvalues into the idmap header for future comparison.\n\nThis patch requires the following change found in frameworks/native\nhttp://review.cyanogenmod.org/62566\n\nChange-Id: Ie9e0273aef96217f06b08774623dd5f1b290a3da","Clark Scheff",true],["866db236ecd1d569e08d3ff5dd10b6a6f2e24d7b","2c4256676acc36e079a3fd9141786c2938cdfa49@cyngn.com","CM11 Themes: Put overlays in their own group.\n\nOverlays will now be added to their own group and the\ntarget group will contain a pointer to the overlay\npackage to be used in getResource and getBagLocked.\n\nChange-Id: Icc6c6eb791f04966e68dbc099eae8e7129546414","d34d",true],["b0a359f70587ff1d6fd10bf0907e3422cd20f710","2c4256676acc36e079a3fd9141786c2938cdfa49@cyngn.com","CM11 Themes: Remove type matching restriction\n\nChange-Id: I5a8ac8ff1794350ff9dc03b378c704bfb97d0a9e","Clark Scheff",true],["af578b390ff015577373257697b3b8782dd3f271","2c4256676acc36e079a3fd9141786c2938cdfa49@cyngn.com","CM11 Themes: Allow forcing idmap (re)creation.\n\nChange-Id: I9f5938e9b1052da83b7f2cd7b1ff6f1ed270db6b","Clark Scheff",true],["7f4f123296f3d54ad94d11facc40b08b78e96eb9","2c4256676acc36e079a3fd9141786c2938cdfa49@cyngn.com","idmap: Don't log spam \"CREATING STRING CACHE\"\n\nChange-Id: Idce5aa5881c8e860eca9749cc85f748303c913c0","d34d",true],["193be8104614b96ac0eaaea93a5630034bf6897d","2c4256676acc36e079a3fd9141786c2938cdfa49@cyngn.com","CM11 Themes: Use theme name for audible name.\n\nChange-Id: Ib841cb80925b0f3f5ac770e00df04515849e9360","Clark Scheff",true],["c72a8da529f88bb19be2daa619de53048aa0c0ce","2c4256676acc36e079a3fd9141786c2938cdfa49@cyngn.com","CM11 Themes: Update lights out resources and extra nav buttons\n\nThe ImageViews that hold the lights out dots were not being\nupdated on a theme change as well as the KeyButtonView with\nID of R.id.one\n\nChange-Id: Ieed5f5ba1d822fe47dad3ec934889bf70eb1a3ad","d34d",true],["7f8a9714ef9583140a08bd7a382efa66274e6c62","2c4256676acc36e079a3fd9141786c2938cdfa49@cyngn.com","Return system theme when SecurityException is caught.\n\nIsolated processes cannot access content resolvers so a SecurityException\nwill be thrown when calling getBootTheme.  This catches that\nexception and returns sSystemTheme.\n\nChange-Id: If4077adef4c657b80ba2c52a6610126dabe4ffdf","Clark Scheff",true],["0391fa96c5d16dcef86314b45a72b61683d3084b","2c4256676acc36e079a3fd9141786c2938cdfa49@cyngn.com","CM11 Themes: Common overlay for sharing resources. [1/2]\n\nThis patch will allow themes to contain common resources\nwhich can be shared by all overlays.\n\nCommon resources will reside in assets/overlays/common and\ncan be referenced by other overlays.\n\nCommon resources will be referenced using the common package\nname, i.e. To reference the common drawable some_drawable for\ncom.example.theme the theme designer would use\n\"@*common:drawable/some_drawable\"\n\nChange-Id: I395b6bd5eae91b00265a8e9221856ef7bf5d115a","Clark Scheff",true],["ff3a22609e114eac421ff9a8273a4363b8e4e390","2c4256676acc36e079a3fd9141786c2938cdfa49@cyngn.com","CM11 Themes: Ensure customTheme is not null.\n\nThe configuration retrieved via getConfiguration() sometimes contains\na null customTheme which results in the theme returning to holo when\napplying a component such as icons.  Icons will change but styles\nand fonts would return to the default.\n\nChange-Id: Iac0cb8eed5de8fdc9fe8efd697d968f26e801c08","Clark Scheff",true],["5e7ecfcc4d36b3fbad09f36126e1f293ee489d40","2c4256676acc36e079a3fd9141786c2938cdfa49@cyngn.com","CM11 Themes: Include alarms in mixnmatch.\n\nChange-Id: I004f6b0149d71c8ed1a3952704f5a3521eca5add","Clark Scheff",true],["6751efba7a72471325b74734a385f81906f7cf3e","2c4256676acc36e079a3fd9141786c2938cdfa49@cyngn.com","Add wallpaper pickers to seperate package [1/2]\n\nCurrently wallpaper pickers were part of the various launchers\nand we were relying on Trebuchet's to add code for including\nwallpapers from themes.  If Trebuchet is removed then this\nfunctionality is lost.  This package is already included in all\nbuilds so making the picker available here removes the dependency\non a specific launcher.\n\nTrebuchet still contains a picker which should probably be removed\nand make use of this package instead.\n\nChange-Id: Ie42ae0e01f951a8293d13d6c8a73fde0dea6682b","Clark Scheff",true]],"size":16,"ref":"refs/heads/kitkat","head":"6751efba7a72471325b74734a385f81906f7cf3e"}