trygon support

Change-Id: I27ff7e26b583614f2577aed79dcd629ad4595e63
diff --git a/Android.mk b/Android.mk
index df2b843..9f425c8 100644
--- a/Android.mk
+++ b/Android.mk
@@ -123,7 +123,7 @@
 
 # $(1): jar or apk name
 define art-cache-oat
-  $(ART_CACHE_OUT)/$(subst /,@,$(1).oat)
+  $(call art-cache-out,$(1).oat)
 endef
 
 ART_CACHE_OATS :=
@@ -137,375 +137,11 @@
 ########################################################################
 # oat-target-sync
 
-ifeq ($(TARGET_PRODUCT),mysid)
-
-$(eval $(call build-art-cache-oat,system/app/ApplicationsProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/BackupRestoreConfirmation.apk))
-$(eval $(call build-art-cache-oat,system/app/BIP.apk))
-$(eval $(call build-art-cache-oat,system/app/Bluetooth.apk))
-$(eval $(call build-art-cache-oat,system/app/BooksTablet.apk))
-$(eval $(call build-art-cache-oat,system/app/BrowserGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/Calculator.apk))
-$(eval $(call build-art-cache-oat,system/app/CalendarGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/CalendarProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/CameraGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/CertInstaller.apk))
-$(eval $(call build-art-cache-oat,system/app/ChromeBookmarksSyncAdapter.apk))
-$(eval $(call build-art-cache-oat,system/app/Contacts.apk))
-$(eval $(call build-art-cache-oat,system/app/ContactsProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/DefaultContainerService.apk))
-$(eval $(call build-art-cache-oat,system/app/DeskClockGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/DownloadProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/DownloadProviderUi.apk))
-$(eval $(call build-art-cache-oat,system/app/DrmProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/EmailGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/ExchangeGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/GalleryGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/GenieWidget.apk))
-$(eval $(call build-art-cache-oat,system/app/Gmail.apk))
-$(eval $(call build-art-cache-oat,system/app/GoogleBackupTransport.apk))
-$(eval $(call build-art-cache-oat,system/app/GoogleContactsSyncAdapter.apk))
-$(eval $(call build-art-cache-oat,system/app/GoogleEarth.apk))
-$(eval $(call build-art-cache-oat,system/app/GoogleFeedback.apk))
-$(eval $(call build-art-cache-oat,system/app/GoogleLoginService.apk))
-$(eval $(call build-art-cache-oat,system/app/GooglePackageVerifier.apk))
-$(eval $(call build-art-cache-oat,system/app/GooglePackageVerifierUpdater.apk))
-$(eval $(call build-art-cache-oat,system/app/GooglePartnerSetup.apk))
-$(eval $(call build-art-cache-oat,system/app/GoogleQuickSearchBox.apk))
-$(eval $(call build-art-cache-oat,system/app/GoogleServicesFramework.apk))
-$(eval $(call build-art-cache-oat,system/app/GoogleTTS.apk))
-$(eval $(call build-art-cache-oat,system/app/HTMLViewer.apk))
-$(eval $(call build-art-cache-oat,system/app/IMSFramework.apk))
-$(eval $(call build-art-cache-oat,system/app/HoloSpiralWallpaper.apk))
-$(eval $(call build-art-cache-oat,system/app/KeyChain.apk))
-$(eval $(call build-art-cache-oat,system/app/LatinImeDictionaryPack.apk))
-$(eval $(call build-art-cache-oat,system/app/LatinImeGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/Launcher2.apk))
-$(eval $(call build-art-cache-oat,system/app/LiveWallpapers.apk))
-$(eval $(call build-art-cache-oat,system/app/LiveWallpapersPicker.apk))
-$(eval $(call build-art-cache-oat,system/app/Maps.apk))
-$(eval $(call build-art-cache-oat,system/app/MarketUpdater.apk))
-$(eval $(call build-art-cache-oat,system/app/MediaProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/MediaUploader.apk))
-$(eval $(call build-art-cache-oat,system/app/Microbes.apk))
-$(eval $(call build-art-cache-oat,system/app/Mms.apk))
-$(eval $(call build-art-cache-oat,system/app/Music2.apk))
-$(eval $(call build-art-cache-oat,system/app/MusicFX.apk))
-$(eval $(call build-art-cache-oat,system/app/MyVerizon.apk))
-$(eval $(call build-art-cache-oat,system/app/NetworkLocation.apk))
-$(eval $(call build-art-cache-oat,system/app/Nfc.apk))
-$(eval $(call build-art-cache-oat,system/app/OneTimeInitializer.apk))
-$(eval $(call build-art-cache-oat,system/app/PackageInstaller.apk))
-$(eval $(call build-art-cache-oat,system/app/Phone.apk))
-$(eval $(call build-art-cache-oat,system/app/Phonesky.apk))
-$(eval $(call build-art-cache-oat,system/app/PlusOne.apk))
-$(eval $(call build-art-cache-oat,system/app/RTN.apk))
-$(eval $(call build-art-cache-oat,system/app/SDM.apk))
-$(eval $(call build-art-cache-oat,system/app/Settings.apk))
-$(eval $(call build-art-cache-oat,system/app/SettingsProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/SetupWizard.apk))
-$(eval $(call build-art-cache-oat,system/app/SharedStorageBackup.apk))
-$(eval $(call build-art-cache-oat,system/app/SoundRecorder.apk))
-$(eval $(call build-art-cache-oat,system/app/SPG.apk))
-$(eval $(call build-art-cache-oat,system/app/Stk.apk))
-$(eval $(call build-art-cache-oat,system/app/Street.apk))
-$(eval $(call build-art-cache-oat,system/app/SyncMLSvc.apk))
-$(eval $(call build-art-cache-oat,system/app/SystemUI.apk))
-$(eval $(call build-art-cache-oat,system/app/TagGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/Talk.apk))
-$(eval $(call build-art-cache-oat,system/app/TelephonyProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/Thinkfree.apk))
-$(eval $(call build-art-cache-oat,system/app/UserDictionaryProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/VerizonSSO.apk))
-$(eval $(call build-art-cache-oat,system/app/VideoEditorGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/Videos.apk))
-$(eval $(call build-art-cache-oat,system/app/VisualizationWallpapers.apk))
-$(eval $(call build-art-cache-oat,system/app/VoiceDialer.apk))
-$(eval $(call build-art-cache-oat,system/app/VoiceSearch.apk))
-$(eval $(call build-art-cache-oat,system/app/VpnDialogs.apk))
-$(eval $(call build-art-cache-oat,system/app/VZWAPNLib.apk))
-$(eval $(call build-art-cache-oat,system/app/VZWAPNService.apk))
-$(eval $(call build-art-cache-oat,system/app/VZWBackupAssistant.apk))
-$(eval $(call build-art-cache-oat,system/app/YouTube.apk))
-$(eval $(call build-art-cache-oat,system/app/talkback.apk))
-$(eval $(call build-art-cache-oat,system/framework/am.jar))
-$(eval $(call build-art-cache-oat,system/framework/android.test.runner.jar))
-$(eval $(call build-art-cache-oat,system/framework/bmgr.jar))
-$(eval $(call build-art-cache-oat,system/framework/bu.jar))
-$(eval $(call build-art-cache-oat,system/framework/com.android.future.usb.accessory.jar))
-$(eval $(call build-art-cache-oat,system/framework/com.android.location.provider.jar))
-$(eval $(call build-art-cache-oat,system/framework/com.android.nfc_extras.jar))
-$(eval $(call build-art-cache-oat,system/framework/com.google.android.maps.jar))
-$(eval $(call build-art-cache-oat,system/framework/com.google.android.media.effects.jar))
-$(eval $(call build-art-cache-oat,system/framework/ime.jar))
-$(eval $(call build-art-cache-oat,system/framework/input.jar))
-$(eval $(call build-art-cache-oat,system/framework/javax.obex.jar))
-$(eval $(call build-art-cache-oat,system/framework/monkey.jar))
-$(eval $(call build-art-cache-oat,system/framework/pm.jar))
-$(eval $(call build-art-cache-oat,system/framework/send_bug.jar))
-$(eval $(call build-art-cache-oat,system/framework/svc.jar))
-
-ifeq ($(TARGET_BUILD_VARIANT),eng)
-  $(eval $(call build-art-cache-oat,system/app/Development.apk))
-endif
-
-else
-
-ifeq ($(TARGET_PRODUCT),$(filter $(TARGET_PRODUCT),soju sojus))
-
-$(eval $(call build-art-cache-oat,system/app/ApplicationsProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/BackupRestoreConfirmation.apk))
-$(eval $(call build-art-cache-oat,system/app/Bluetooth.apk))
-$(eval $(call build-art-cache-oat,system/app/BooksTablet.apk))
-$(eval $(call build-art-cache-oat,system/app/BrowserGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/Calculator.apk))
-$(eval $(call build-art-cache-oat,system/app/CalendarGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/CalendarProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/CameraGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/CarHomeGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/CertInstaller.apk))
-$(eval $(call build-art-cache-oat,system/app/ChromeBookmarksSyncAdapter.apk))
-$(eval $(call build-art-cache-oat,system/app/Contacts.apk))
-$(eval $(call build-art-cache-oat,system/app/ContactsProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/DefaultContainerService.apk))
-$(eval $(call build-art-cache-oat,system/app/DeskClockGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/DownloadProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/DownloadProviderUi.apk))
-$(eval $(call build-art-cache-oat,system/app/DrmProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/EmailGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/ExchangeGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/GalleryGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/GenieWidget.apk))
-$(eval $(call build-art-cache-oat,system/app/Gmail.apk))
-$(eval $(call build-art-cache-oat,system/app/GoogleBackupTransport.apk))
-$(eval $(call build-art-cache-oat,system/app/GoogleContactsSyncAdapter.apk))
-$(eval $(call build-art-cache-oat,system/app/GoogleEarth.apk))
-$(eval $(call build-art-cache-oat,system/app/GoogleFeedback.apk))
-$(eval $(call build-art-cache-oat,system/app/GoogleLoginService.apk))
-$(eval $(call build-art-cache-oat,system/app/GooglePackageVerifier.apk))
-$(eval $(call build-art-cache-oat,system/app/GooglePackageVerifierUpdater.apk))
-$(eval $(call build-art-cache-oat,system/app/GooglePartnerSetup.apk))
-$(eval $(call build-art-cache-oat,system/app/GoogleQuickSearchBox.apk))
-$(eval $(call build-art-cache-oat,system/app/GoogleServicesFramework.apk))
-$(eval $(call build-art-cache-oat,system/app/GoogleTTS.apk))
-$(eval $(call build-art-cache-oat,system/app/HTMLViewer.apk))
-$(eval $(call build-art-cache-oat,system/app/HoloSpiralWallpaper.apk))
-$(eval $(call build-art-cache-oat,system/app/KeyChain.apk))
-$(eval $(call build-art-cache-oat,system/app/LatinImeDictionaryPack.apk))
-$(eval $(call build-art-cache-oat,system/app/LatinImeGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/Launcher2.apk))
-$(eval $(call build-art-cache-oat,system/app/LiveWallpapers.apk))
-$(eval $(call build-art-cache-oat,system/app/LiveWallpapersPicker.apk))
-$(eval $(call build-art-cache-oat,system/app/Maps.apk))
-$(eval $(call build-art-cache-oat,system/app/MarketUpdater.apk))
-$(eval $(call build-art-cache-oat,system/app/MediaProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/MediaUploader.apk))
-$(eval $(call build-art-cache-oat,system/app/Microbes.apk))
-$(eval $(call build-art-cache-oat,system/app/Mms.apk))
-$(eval $(call build-art-cache-oat,system/app/Music2.apk))
-$(eval $(call build-art-cache-oat,system/app/MusicFX.apk))
-$(eval $(call build-art-cache-oat,system/app/NetworkLocation.apk))
-$(eval $(call build-art-cache-oat,system/app/Nfc.apk))
-$(eval $(call build-art-cache-oat,system/app/OneTimeInitializer.apk))
-$(eval $(call build-art-cache-oat,system/app/PackageInstaller.apk))
-$(eval $(call build-art-cache-oat,system/app/Phone.apk))
-$(eval $(call build-art-cache-oat,system/app/Phonesky.apk))
-$(eval $(call build-art-cache-oat,system/app/PlusOne.apk))
-$(eval $(call build-art-cache-oat,system/app/Settings.apk))
-$(eval $(call build-art-cache-oat,system/app/SettingsProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/SetupWizard.apk))
-$(eval $(call build-art-cache-oat,system/app/SharedStorageBackup.apk))
-$(eval $(call build-art-cache-oat,system/app/SoundRecorder.apk))
-$(eval $(call build-art-cache-oat,system/app/Street.apk))
-$(eval $(call build-art-cache-oat,system/app/SystemUI.apk))
-$(eval $(call build-art-cache-oat,system/app/TagGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/Talk.apk))
-$(eval $(call build-art-cache-oat,system/app/TelephonyProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/Thinkfree.apk))
-$(eval $(call build-art-cache-oat,system/app/UserDictionaryProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/VideoEditorGoogle.apk))
-$(eval $(call build-art-cache-oat,system/app/Videos.apk))
-$(eval $(call build-art-cache-oat,system/app/VisualizationWallpapers.apk))
-$(eval $(call build-art-cache-oat,system/app/VoiceDialer.apk))
-$(eval $(call build-art-cache-oat,system/app/VoiceSearch.apk))
-$(eval $(call build-art-cache-oat,system/app/VpnDialogs.apk))
-$(eval $(call build-art-cache-oat,system/app/YouTube.apk))
-$(eval $(call build-art-cache-oat,system/app/googlevoice.apk))
-$(eval $(call build-art-cache-oat,system/app/talkback.apk))
-$(eval $(call build-art-cache-oat,system/framework/am.jar))
-$(eval $(call build-art-cache-oat,system/framework/android.test.runner.jar))
-$(eval $(call build-art-cache-oat,system/framework/bmgr.jar))
-$(eval $(call build-art-cache-oat,system/framework/bu.jar))
-$(eval $(call build-art-cache-oat,system/framework/com.android.future.usb.accessory.jar))
-$(eval $(call build-art-cache-oat,system/framework/com.android.location.provider.jar))
-$(eval $(call build-art-cache-oat,system/framework/com.android.nfc_extras.jar))
-$(eval $(call build-art-cache-oat,system/framework/com.google.android.maps.jar))
-$(eval $(call build-art-cache-oat,system/framework/com.google.android.media.effects.jar))
-$(eval $(call build-art-cache-oat,system/framework/ime.jar))
-$(eval $(call build-art-cache-oat,system/framework/input.jar))
-$(eval $(call build-art-cache-oat,system/framework/javax.obex.jar))
-$(eval $(call build-art-cache-oat,system/framework/monkey.jar))
-$(eval $(call build-art-cache-oat,system/framework/pm.jar))
-$(eval $(call build-art-cache-oat,system/framework/send_bug.jar))
-$(eval $(call build-art-cache-oat,system/framework/svc.jar))
-
-ifeq ($(TARGET_BUILD_VARIANT),eng)
-  $(eval $(call build-art-cache-oat,system/app/Development.apk))
-endif
-
-else
-
-ifeq ($(TARGET_PRODUCT),$(filter $(TARGET_PRODUCT),stingray))
-
-$(eval $(call build-art-cache-oat,system/app/AppDirectedSmsService.apk))
-$(eval $(call build-art-cache-oat,system/app/ApplicationsProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/BackupRestoreConfirmation.apk))
-$(eval $(call build-art-cache-oat,system/app/Bluetooth.apk))
-$(eval $(call build-art-cache-oat,system/app/Browser.apk))
-$(eval $(call build-art-cache-oat,system/app/Calculator.apk))
-$(eval $(call build-art-cache-oat,system/app/Calendar.apk))
-$(eval $(call build-art-cache-oat,system/app/CalendarProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/CertInstaller.apk))
-$(eval $(call build-art-cache-oat,system/app/ConnMO.apk))
-$(eval $(call build-art-cache-oat,system/app/Contacts.apk))
-$(eval $(call build-art-cache-oat,system/app/ContactsProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/DMService.apk))
-$(eval $(call build-art-cache-oat,system/app/DefaultContainerService.apk))
-$(eval $(call build-art-cache-oat,system/app/DeskClock.apk))
-$(eval $(call build-art-cache-oat,system/app/DownloadProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/DownloadProviderUi.apk))
-$(eval $(call build-art-cache-oat,system/app/DrmProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/Email.apk))
-$(eval $(call build-art-cache-oat,system/app/Exchange.apk))
-$(eval $(call build-art-cache-oat,system/app/Gallery2.apk))
-$(eval $(call build-art-cache-oat,system/app/HTMLViewer.apk))
-$(eval $(call build-art-cache-oat,system/app/KeyChain.apk))
-$(eval $(call build-art-cache-oat,system/app/LatinIME.apk))
-$(eval $(call build-art-cache-oat,system/app/Launcher2.apk))
-$(eval $(call build-art-cache-oat,system/app/MediaProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/MotoImsServer.apk))
-$(eval $(call build-art-cache-oat,system/app/MotoLocationProxy.apk))
-$(eval $(call build-art-cache-oat,system/app/MotoLteTelephony.apk))
-$(eval $(call build-art-cache-oat,system/app/MotoModemUtil.apk))
-$(eval $(call build-art-cache-oat,system/app/MotoSimUiHelper.apk))
-$(eval $(call build-art-cache-oat,system/app/Music.apk))
-$(eval $(call build-art-cache-oat,system/app/MusicFX.apk))
-$(eval $(call build-art-cache-oat,system/app/PackageInstaller.apk))
-$(eval $(call build-art-cache-oat,system/app/Phone.apk))
-$(eval $(call build-art-cache-oat,system/app/PicoTts.apk))
-$(eval $(call build-art-cache-oat,system/app/Provision.apk))
-$(eval $(call build-art-cache-oat,system/app/QuickSearchBox.apk))
-$(eval $(call build-art-cache-oat,system/app/Settings.apk))
-$(eval $(call build-art-cache-oat,system/app/SettingsProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/SharedStorageBackup.apk))
-$(eval $(call build-art-cache-oat,system/app/SoundRecorder.apk))
-$(eval $(call build-art-cache-oat,system/app/StingrayProgramMenu.apk))
-$(eval $(call build-art-cache-oat,system/app/StingrayProgramMenuSystem.apk))
-$(eval $(call build-art-cache-oat,system/app/SystemUI.apk))
-$(eval $(call build-art-cache-oat,system/app/TelephonyProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/UsbHelper.apk))
-$(eval $(call build-art-cache-oat,system/app/UserDictionaryProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/VpnDialogs.apk))
-$(eval $(call build-art-cache-oat,system/framework/am.jar))
-$(eval $(call build-art-cache-oat,system/framework/android.test.runner.jar))
-$(eval $(call build-art-cache-oat,system/framework/bmgr.jar))
-$(eval $(call build-art-cache-oat,system/framework/bu.jar))
-$(eval $(call build-art-cache-oat,system/framework/com.android.future.usb.accessory.jar))
-$(eval $(call build-art-cache-oat,system/framework/com.android.location.provider.jar))
-$(eval $(call build-art-cache-oat,system/framework/ime.jar))
-$(eval $(call build-art-cache-oat,system/framework/input.jar))
-$(eval $(call build-art-cache-oat,system/framework/javax.obex.jar))
-$(eval $(call build-art-cache-oat,system/framework/monkey.jar))
-$(eval $(call build-art-cache-oat,system/framework/pm.jar))
-$(eval $(call build-art-cache-oat,system/framework/send_bug.jar))
-$(eval $(call build-art-cache-oat,system/framework/svc.jar))
-
-else
-
-ifeq ($(TARGET_PRODUCT),$(filter $(TARGET_PRODUCT),full_stingray))
-
-$(eval $(call build-art-cache-oat,system/app/AppDirectedSmsService.apk))
-$(eval $(call build-art-cache-oat,system/app/ApplicationsProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/BackupRestoreConfirmation.apk))
-$(eval $(call build-art-cache-oat,system/app/Bluetooth.apk))
-$(eval $(call build-art-cache-oat,system/app/Browser.apk))
-$(eval $(call build-art-cache-oat,system/app/Calculator.apk))
-$(eval $(call build-art-cache-oat,system/app/Calendar.apk))
-$(eval $(call build-art-cache-oat,system/app/CalendarProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/Camera.apk))
-$(eval $(call build-art-cache-oat,system/app/CertInstaller.apk))
-$(eval $(call build-art-cache-oat,system/app/ConnMO.apk))
-$(eval $(call build-art-cache-oat,system/app/Contacts.apk))
-$(eval $(call build-art-cache-oat,system/app/ContactsProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/DMService.apk))
-$(eval $(call build-art-cache-oat,system/app/DefaultContainerService.apk))
-$(eval $(call build-art-cache-oat,system/app/DeskClock.apk))
-$(eval $(call build-art-cache-oat,system/app/DownloadProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/DownloadProviderUi.apk))
-$(eval $(call build-art-cache-oat,system/app/DrmProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/Email.apk))
-$(eval $(call build-art-cache-oat,system/app/Exchange.apk))
-$(eval $(call build-art-cache-oat,system/app/Gallery2.apk))
-$(eval $(call build-art-cache-oat,system/app/HTMLViewer.apk))
-$(eval $(call build-art-cache-oat,system/app/HoloSpiralWallpaper.apk))
-$(eval $(call build-art-cache-oat,system/app/KeyChain.apk))
-$(eval $(call build-art-cache-oat,system/app/LatinIME.apk))
-$(eval $(call build-art-cache-oat,system/app/Launcher2.apk))
-$(eval $(call build-art-cache-oat,system/app/LiveWallpapersPicker.apk))
-$(eval $(call build-art-cache-oat,system/app/MediaProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/MotoImsServer.apk))
-$(eval $(call build-art-cache-oat,system/app/MotoLocationProxy.apk))
-$(eval $(call build-art-cache-oat,system/app/MotoLteTelephony.apk))
-$(eval $(call build-art-cache-oat,system/app/MotoModemUtil.apk))
-$(eval $(call build-art-cache-oat,system/app/MotoSimUiHelper.apk))
-$(eval $(call build-art-cache-oat,system/app/Music.apk))
-$(eval $(call build-art-cache-oat,system/app/MusicFX.apk))
-$(eval $(call build-art-cache-oat,system/app/OpenWnn.apk))
-$(eval $(call build-art-cache-oat,system/app/PackageInstaller.apk))
-$(eval $(call build-art-cache-oat,system/app/Phone.apk))
-$(eval $(call build-art-cache-oat,system/app/PicoTts.apk))
-$(eval $(call build-art-cache-oat,system/app/PinyinIME.apk))
-$(eval $(call build-art-cache-oat,system/app/Provision.apk))
-$(eval $(call build-art-cache-oat,system/app/QuickSearchBox.apk))
-$(eval $(call build-art-cache-oat,system/app/Settings.apk))
-$(eval $(call build-art-cache-oat,system/app/SettingsProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/SharedStorageBackup.apk))
-$(eval $(call build-art-cache-oat,system/app/SoundRecorder.apk))
-$(eval $(call build-art-cache-oat,system/app/StingrayProgramMenu.apk))
-$(eval $(call build-art-cache-oat,system/app/StingrayProgramMenuSystem.apk))
-$(eval $(call build-art-cache-oat,system/app/SystemUI.apk))
-$(eval $(call build-art-cache-oat,system/app/TelephonyProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/UsbHelper.apk))
-$(eval $(call build-art-cache-oat,system/app/UserDictionaryProvider.apk))
-$(eval $(call build-art-cache-oat,system/app/VideoEditor.apk))
-$(eval $(call build-art-cache-oat,system/app/VisualizationWallpapers.apk))
-$(eval $(call build-art-cache-oat,system/app/VpnDialogs.apk))
-$(eval $(call build-art-cache-oat,system/app/WAPPushManager.apk))
-$(eval $(call build-art-cache-oat,system/framework/am.jar))
-$(eval $(call build-art-cache-oat,system/framework/android.test.runner.jar))
-$(eval $(call build-art-cache-oat,system/framework/bmgr.jar))
-$(eval $(call build-art-cache-oat,system/framework/bu.jar))
-$(eval $(call build-art-cache-oat,system/framework/com.android.future.usb.accessory.jar))
-$(eval $(call build-art-cache-oat,system/framework/com.android.location.provider.jar))
-$(eval $(call build-art-cache-oat,system/framework/ime.jar))
-$(eval $(call build-art-cache-oat,system/framework/input.jar))
-$(eval $(call build-art-cache-oat,system/framework/javax.obex.jar))
-$(eval $(call build-art-cache-oat,system/framework/monkey.jar))
-$(eval $(call build-art-cache-oat,system/framework/pm.jar))
-$(eval $(call build-art-cache-oat,system/framework/send_bug.jar))
-$(eval $(call build-art-cache-oat,system/framework/svc.jar))
-
-else
-
-$(warning do not know what jars to compile for $(TARGET_PRODUCT))
-
-endif
-
-endif
-
-endif
-
-endif
+$(foreach file,\
+  $(filter-out\
+    $(TARGET_BOOT_DEX),\
+    $(wildcard $(TARGET_OUT_APPS)/*.apk) $(wildcard $(TARGET_OUT_JAVA_LIBRARIES)/*.jar)),\
+  $(eval $(call build-art-cache-oat,$(subst $(PRODUCT_OUT)/,,$(file)))))
 
 .PHONY: oat-target-sync
 oat-target-sync: $(ART_TARGET_DEPENDENCIES) $(TARGET_BOOT_OAT) $(ART_CACHE_OATS)
diff --git a/build/Android.common.mk b/build/Android.common.mk
index d233ab0..26d4d22 100644
--- a/build/Android.common.mk
+++ b/build/Android.common.mk
@@ -18,6 +18,11 @@
 ART_CACHE_DIR := /data/art-cache
 ART_CACHE_OUT := $(TARGET_OUT_DATA)/art-cache
 
+# $(1): pathname
+define art-cache-out
+$(ART_CACHE_OUT)/$(subst /,@,$(1))
+endef
+
 # directory used for gtests on device
 ART_NATIVETEST_DIR := /data/nativetest/art
 ART_NATIVETEST_OUT := $(TARGET_OUT_DATA_NATIVE_TESTS)/art
diff --git a/build/Android.oat.mk b/build/Android.oat.mk
index a1c2449..4f1bb2d 100644
--- a/build/Android.oat.mk
+++ b/build/Android.oat.mk
@@ -66,8 +66,13 @@
 # The full system boot classpath
 TARGET_BOOT_JARS := $(subst :, ,$(DEXPREOPT_BOOT_JARS))
 TARGET_BOOT_DEX := $(foreach jar,$(TARGET_BOOT_JARS),$(TARGET_OUT_JAVA_LIBRARIES)/$(jar).jar)
-TARGET_BOOT_OAT := $(TARGET_OUT_JAVA_LIBRARIES)/boot.oat
-TARGET_BOOT_IMG := $(TARGET_OUT_JAVA_LIBRARIES)/boot.art
+ifeq ($(TARGET_PRODUCT),$(filter $(TARGET_PRODUCT),trygon))
+  TARGET_BOOT_OAT := $(call art-cache-out,$(DEXPREOPT_BOOT_JAR_DIR)/boot.oat)
+  TARGET_BOOT_IMG := $(call art-cache-out,$(DEXPREOPT_BOOT_JAR_DIR)/boot.art)
+else
+  TARGET_BOOT_OAT := $(TARGET_OUT_JAVA_LIBRARIES)/boot.oat
+  TARGET_BOOT_IMG := $(TARGET_OUT_JAVA_LIBRARIES)/boot.art
+endif
 
 $(TARGET_BOOT_OAT): $(TARGET_BOOT_DEX) $(DEX2OAT_DEPENDENCY)
 	@echo "target dex2oat: $@ ($?)"