Merge remote-tracking branch 'github/cm-13.0' into replicant-6.0
remove prebuilt terminal (built-in terminal app can be activated in dev settings) Signed-off-by: Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> Conflicts: CHANGELOG.mkdn CONTRIBUTORS.mkdn config/cdma.mk config/cm_audio.mk config/common.mk config/common_full.mk config/common_full_phone.mk config/gsm.mk config/themes_common.mk get-prebuilts overlay/common/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg overlay/common/frameworks/base/core/res/res/drawable-sw600dp-nodpi/default_wallpaper.jpg overlay/common/frameworks/base/core/res/res/drawable-sw720dp-nodpi/default_wallpaper.jpg overlay/common/frameworks/base/core/res/res/drawable-xhdpi/default_wallpaper.jpg overlay/common/frameworks/base/core/res/res/values/config.xml overlay/common/frameworks/base/packages/SettingsProvider/res/values/defaults.xml prebuilt/common/bootanimation/1080.zip prebuilt/common/bootanimation/1200.zip prebuilt/common/bootanimation/240.zip prebuilt/common/bootanimation/320.zip prebuilt/common/bootanimation/360.zip prebuilt/common/bootanimation/480.zip prebuilt/common/bootanimation/540.zip prebuilt/common/bootanimation/600.zip prebuilt/common/bootanimation/720.zip prebuilt/common/bootanimation/768.zip prebuilt/common/bootanimation/800.zip prebuilt/common/etc/apns-conf.xml sepolicy/mac_permissions.xml sepolicy/sepolicy.mk vendorsetup.sh Change-Id: I4fc2a5b00721cae8b3a36f33c36f006142bad44f
This commit is contained in:
commit
71a01dce17
170
CHANGELOG.mkdn
170
CHANGELOG.mkdn
|
@ -183,6 +183,7 @@ CHANGELOG (notable new features)
|
|||
---------
|
||||
|
||||
### 10.1.3
|
||||
* Common: CyanogenMod Account
|
||||
* Common: Privacy Guard
|
||||
* Common: Dialer blacklists
|
||||
* Common: Wake-on-Home
|
||||
|
@ -190,6 +191,12 @@ CHANGELOG (notable new features)
|
|||
* Common: Profile improvements
|
||||
* Various small bugfixes, global and device-specific
|
||||
|
||||
### 10.1.2
|
||||
* Master Key #2 fix
|
||||
|
||||
### 10.1.1
|
||||
* Master Key #1 fix
|
||||
|
||||
### 10.1.0
|
||||
* Common: Android 4.2.2 (Google)
|
||||
* Common: cLock Lockscreen and Homescreen Widget
|
||||
|
@ -377,7 +384,7 @@ CHANGELOG (notable new features)
|
|||
* Common: TI wl12xx FM radio reverse engineering - Michael A. Reid
|
||||
* Common: Tablet tweaks - Sven Dawitz
|
||||
* Common: Revamped CMStats - Chris Soyars
|
||||
* Common: Improved RTL text support and fonts - Eyad Aboulouz, Eran Mizrahi,
|
||||
* Common: Improved RTL text support and fonts - Eyad Aboulouz, Eran Mizrahi,
|
||||
* Espresso/Legend: Enabled native WiFi tethering - Cyanogen, OMAPZoom.org
|
||||
* Legend/Liberty/Buzz/Click: Enabled FM Radio - Alexander Hofbauer (libaudio patch)
|
||||
* Z71: Enabled MPEG4/AAC video recording - arcee
|
||||
|
@ -392,164 +399,3 @@ CHANGELOG (notable new features)
|
|||
* Supersonic: WiMAX support - HTC, Shinzul, toastcfh, shift, #teamwin, Cyanogen, Joey Conway
|
||||
* Supersonic: HDMI mirror support: #teamwin
|
||||
* ONE: Enabled native WiFi tethering - arcee
|
||||
|
||||
### 6.1.3
|
||||
* Ace: Fix issue with some BT Headset
|
||||
|
||||
### 6.1.2
|
||||
* Ace: Kernel to 2.6.32.27 and some performance tweaks
|
||||
|
||||
### 6.1.1
|
||||
* Common: Add rotary lockscreen - Kmobs/Robert Burns
|
||||
* Common: Updated translations - (everyone)
|
||||
* Common: Push update notificatiosn - Chris Soyars
|
||||
* Common: Fix camera sounds - CAF/Cyanogen/mtwebster
|
||||
* N1/DS/Supersonic/Bravo(c): Kernel performance tweaks and fixes (various)
|
||||
* N1: Update build fingerprint
|
||||
* Vision: Fix MMS over WiFi calling - Zinx
|
||||
* Vision: Add console=null to kernel command line - Adam Tygart
|
||||
* Vision: Kernel to 2.6.32.27 and some performance tweaks
|
||||
* Droid: FRG83D fingerprint, translations, camera, torch fixes
|
||||
|
||||
### 6.1.0
|
||||
* Common: Update to Android 2.2.1
|
||||
* Common: Various bugfixes from AOSP and CodeAurora
|
||||
* Common: ADWLauncher 1.3.3 - Ander Webbs
|
||||
* Common: Configurable audio focus for music app - Jonas Larsson
|
||||
* Common: APN cleanup (fixes many issues with GPS and MMS) - Cyanogen
|
||||
* Common: Use ARMv6 optimizations for DS/Hero targets - Ninpo
|
||||
* Common: AudioDSP updates - Antti S. Lankila
|
||||
* Common: Status bar themes - Michael Webster
|
||||
* Common: Email app updates** - Michael Webster
|
||||
* Common: Selected kernel optimizations - Kernelzilla
|
||||
* Common: EMMC support - Koush
|
||||
* Common: Camcorder touch-to-focus - Cyanogen
|
||||
* Common: Notification "quiet hours" - Evan Charlton
|
||||
* Common; Superuser 2.3.6 - Adam Shanks (ChainsDD)
|
||||
* Common: Camera/camcorder continuous autofocus - Cyanogen
|
||||
* Common: Camera option sliders - Cyanogen
|
||||
* Common: Control locking of MMS app in memory - Julian J. M
|
||||
* Common: Kill foreground app by long-pressing back - Evan Charlton
|
||||
* Common: New AppWidgetPicker dialog - boombuler@XDA
|
||||
* Common: FileManager app - OpenIntents (graphics update from Fitsnugly)
|
||||
* Common: Anonymous install statistics gathering - Chris Soyars
|
||||
* Common: Stable shot camera mode - Cyanogen
|
||||
* Common: Dual-mode snooze (long press dismiss) - Evan Charlton
|
||||
* Common: Compose SMS/MMS via search button long press - Wes Garner
|
||||
* Common: Notification category support - Pedlar
|
||||
* Common: Galaxy S style power widget in notification bar - Pedlar
|
||||
* Common: Autodetect if we should use /cache for system dex files - Kali-
|
||||
* Common: Quick PIN unlock - gsarrica
|
||||
* Common: Increase performance of Gallery3D caching system - Androbot
|
||||
* Common: Gallery3D bugfixes and improvements - CodeAurora
|
||||
* Common: Gallery3D highres patches - Petar Šegina
|
||||
* Common: Skia performance enhancements - CodeAurora
|
||||
* Common: APN list update - Paul Weiss
|
||||
* Common: Fix AGPS issues on all platforms
|
||||
* Common: Ability to customize location to save attachments in MMS - Wes Garner
|
||||
* Common: Dismiss notifications by swiping - Evan Charlton
|
||||
* Common: Enabled Sound Recorder app
|
||||
* Common: Bluetooth OBEX performance boost - Sony
|
||||
* Common: Updated Terminal Emulator app - Jack Palevich
|
||||
* Common: Updated headset drawables - blunden
|
||||
* Common: Optional overscrolling - Google, arcee, Robert Burns
|
||||
* Common: Messaging/Phone sliders on lockscreen - Rodolfo Hurtado
|
||||
* Common: Lockscreen gestures - Michael Webster
|
||||
* Common: Camera bugfixes (mostly for Droid) - Michael Webster
|
||||
* Common: Bluetooth FTP server profile - CodeAurora
|
||||
* Common: New wallpapers - Prash
|
||||
* Common: Super duper unified flashlights - Michael Webster
|
||||
* Common: Launch applications via DeskClock - Evan Charlton
|
||||
* N1/Bravo/Incredible/Supersonic/Vision/Ace: FM Radio support - MIUI - http://miui.com (graphics from Fitsnugly, HaXzAmaTiC, and blunden - bugfixes and extra features from Cyanogen, Zinx, mtwebster, and Wysie))
|
||||
* N1/DS/Bravo(c)/Supersonic - Unified kernel (Cyanogen, toastcfh, Kali-, defer, Zinx, ezterry, Pershoot, and others)
|
||||
* N1: Increased camera performance - Charan Singh
|
||||
* N1: Enhanced battery driver - Roger Podacter, theloginwithnoname
|
||||
* DS: Updated hardware drivers from official release
|
||||
* DS: CompCache sizes can be adjusted through CMParts - Wes Garner
|
||||
* DS: Removed bootloader/radio asserts - GOOD LUCK
|
||||
* Supersonic - Kernel 2.6.34 courtesy of Toast and Madcoder
|
||||
* Supersonic - Use WiMAX LED for notifications - Cyanogen
|
||||
* Bravo: Kernel merged with cm-kernel - Kali, Defer
|
||||
* Espresso: Improve backlights - Wes Garner
|
||||
* Espresso/Legend/Liberty: Kernel OC patch - dumfuq (no OC by default)
|
||||
* Espresso/Legend/Liberty: Using media libs from 2.2
|
||||
* Espresso: Fixed Bluetooth SCO
|
||||
* Legend/Supersonic: Proper notification light support - Alex Hofbauer
|
||||
* Incredible: Enable torch app
|
||||
* Incredible: Better internal storage support - Josh Stone
|
||||
* Sholes: Enable Torch app - mtwebster
|
||||
* Vision: Kernel 2.6.32.26, many improvements, 1.4GHz capable (coolbho3k), new ganeth driver (zinx)
|
||||
* Vision: Quickeys implementation - Optedoblivion
|
||||
* Vision: Insane GPS fix - Zinx
|
||||
* Vision: LED enhancement - Pershoot
|
||||
* Droid: Kernel 2.6.32.9
|
||||
|
||||
### 6.0.0
|
||||
* ANDROID: Google, HTC, Qualcomm, and everybody else. We <3 U
|
||||
* Common: ADWLauncher 1.1.4 - Ander Webbs
|
||||
* Common: Music app enhancements - Eliot Stocker
|
||||
* Common: Phone mod V.30.1 - cytown
|
||||
* Common: WyContacts 1.2 - Wysie (port to Froyo by Sileht)
|
||||
* Common: Superuser 2.3.3 - Adam Shanks (ChainsDD)
|
||||
* Common: Deskclock extra settings - cyanogen, Michael Webster
|
||||
* Common: MMS enhancements from Ruqqq, Takuo Kitame, jeagoss, temporalshadows
|
||||
* Common: Improved RTL text rendering - David Kohen, Omri Baumer
|
||||
* Common: Themable user interface elements - Wysie, bcrook, jeagoss
|
||||
* Common: FLAC playback support - Kenny Root, Cyanogen, Glenn Maynard
|
||||
* Common: Lockscreen enhancements - Wysie
|
||||
* Common: Long-press home options - Wysie, bcrook
|
||||
* Common: OpenVPN support - James Bottomley, Takuo Kitame
|
||||
* Common: Br0tips - Kmobs
|
||||
* Common: Browser incognito mode - Optedoblivion
|
||||
* Common: Zipalign on install (if needed) + system dex cache to /cache - Cyanogen/Chris Soyars
|
||||
* Common: Customizable Nexus LWP - Chris Soyars/Cyanogen
|
||||
* Common: JIT toggle, configurable heapsize, compcache supprt - Cyanogen
|
||||
* Common: Adjustable haptic feedback - Michael Webster
|
||||
* Common: Custom wallpapers - jairomeo, prash, SatanR1
|
||||
* Common: Battery percentage display - canadiancow, jeagoss
|
||||
* Common: Trackball wake, trackball unlock, menu unlock - Jon Boekenoogen/Kmobs
|
||||
* Common: Surfaceflinger night mode and effects - Jeff Sharkey, widget from Wysie
|
||||
* Common: Reflow webviews on pinch option - Jonas Larsson
|
||||
* Common: Enhanced accelerometer settings - Jonas Larsson
|
||||
* Common: A2DP bugfixes - Glenn Maynard
|
||||
* Common: Browser fullscreen mode and other enhancements - Wysie
|
||||
* Common: Major build system enhancements by Chris Soyars & Koush
|
||||
* Common: Long press volume buttons to skip songs - Jon Boekenoogen
|
||||
* Common: Accelerated ARMv7 JPEG and PNG decoding - Qualcomm
|
||||
* Common: Skia acceleration on ARMv7 - Qualcomm
|
||||
* Common: Patch wrangling - Cyanogen, Chris Soyars, Koush, Kmobs
|
||||
* Common: Bluetooth HID support - Erin Yueh @ 0xlab
|
||||
* Common: Mouse pointer support - Chih-Wei Huang (android-x86)
|
||||
* Common: Configurable install location + allow move any app to external storage - Cyanogen
|
||||
* Common: Busybox and rsync Android ports from Dylex
|
||||
* Common: nano, and libncurses are now built from source. - cvpcs
|
||||
* Common: Dual camera support - Cyanogen
|
||||
* Common: Support for HTC camera firmware with extra features - Cyanogen, Qualcomm
|
||||
* Common: Other camera enhancements - Cyanogen
|
||||
* Common: Customizable status bar - Michael Webster
|
||||
* Common: Lockscreen music controls - Kmobs
|
||||
* Common: "Roam Only" mode - jrgutier
|
||||
* Common: Mobile data toggle for power widget - Drakaz
|
||||
* Common: Exchange support fixes and volume rocker selection - Michael Webster
|
||||
* Common: Lock home app in memory option - Cyanogen
|
||||
* Common: Audio DSP support (equalizer, virtual room, compressor effects) - Antti S. Lankila
|
||||
* Common: Customizable trackball notifications - Pedlar
|
||||
* Common: Fully customizable power widget - piafinho
|
||||
* Common: Zoom (except in 720p), flash, and other camera parameters can be changed while recording - Cyanogen, Qualcomm
|
||||
* Common: New boot animation by 73v1n: http://www.youtube.com/watch?v=LnweaNTtb1k
|
||||
* Common: Arabic language support - Aziz Huss, David Kohen
|
||||
* Common: Torch app - Ben Buxton, Cyanogen
|
||||
* Common: Browser color invert (save battery on AMOLED screens) - Qualcomm
|
||||
* Common: Configurable brightness sensor - Jonas Larsson
|
||||
* Common: Ad-Hoc wifi support - Petr Havlena
|
||||
* Common: Audio focus enhancements - Jonas Larsson
|
||||
* Common: Mail folder sync settings - Michael Webster
|
||||
* N1/DS/Desire: Kernel 2.6.34.4 with Pershoot/Kmobs clock settings
|
||||
* D/S: Camera reverse engineering by NCommander, Eddie Ringle, & Cyanogen
|
||||
* D/S: Kernel patches for stability from Zinx Verituse
|
||||
* D/S: MT3G Fender/1.2 support from Zinx Verituse
|
||||
* D/S: Better media profiles - Charan Singh
|
||||
* EVO: Kernel base from toastcfh, display patches from AssassinsLament and netarchy, backport of various features from Cyanogen (2.6.32)
|
||||
* EVO: Sprint MMS fixes - Darchstar, toastcfh
|
||||
* N1/Desire: True 720P encoding support - HTC, Cyanogen, Charan Singh, Enomther
|
||||
* Desire: Kernel base from Kali- & Defer
|
||||
|
|
|
@ -6,109 +6,232 @@ A non-exhaustive list of people involved in Replicant is available at: http://re
|
|||
CyanogenMod
|
||||
===========
|
||||
|
||||
Maintainers (CyanogenMod 10.1):
|
||||
Maintainers (CyanogenMod 13.0):
|
||||
-----------------------------
|
||||
* __Acer A700:__ pawitp
|
||||
* __Amazon Kindle Fire 1st Edition:__ Hashcode
|
||||
* __Amazon Kindle Fire 2nd Edition:__ Hashcode
|
||||
* __Amazon Kindle Fire 1st Edition:__ Hashcode, FuZZ__
|
||||
* __Amazon Kindle Fire 2nd Edition:__ Hashcode, FuZZ__
|
||||
* __Asus EeePad Transformer (TF101):__ Bumble-Bee, EnJens
|
||||
* __Asus EeePad Transformer Prime (TF201):__ Bumble-Bee, EnJens
|
||||
* __Asus EeePad Transformer Pad TF300T:__ xplodwild
|
||||
* __Asus EeePad Transformer Pad TF300T:__ chrmhoffmann
|
||||
* __Asus EeePad Transformer Pad Infinity TF700T:__ dasunsrule32
|
||||
* __Asus EeePad Transformer Pad TF701T:__ pershoot
|
||||
* __B&N NookColor (encore):__ eyeballer, fattire, keyodi, krylon360, sluo (NookieDevs)
|
||||
* __Google Galaxy Nexus:__ , bekit, Bumble-Bee, burnsra, KalimochoAz
|
||||
* __Google Nexus S:__ burnsra, KalimochoAz
|
||||
* __B&N Nook Tablet (acclaim):__ chrmhoffmann
|
||||
* __Google Android One:__ varunchitre15
|
||||
* __Google Galaxy Nexus:__ bekit, Bumble-Bee, burnsra, KalimochoAz, something15525
|
||||
* __Google Nexus S:__ burnsra, KalimochoAz, klusark
|
||||
* __Google Nexus 4:__ rmcc
|
||||
* __Google Nexus 7:__ burnsra, fattire, nemith (GSM)
|
||||
* __Google Nexus 5:__ fluxi
|
||||
* __Google Nexus 6:__ dhacker29
|
||||
* __Google Nexus 7:__ burnsra, fattire, Thömy, nemith, JoeyRizzoli (GSM)
|
||||
* __Google Nexus 10:__ atinm, dalingrin, kornyone, gweedo767
|
||||
* __Google Nexus Player:__ dhacker29, bmc08gt
|
||||
* __HTC Desire 601(zara/zaracl):__ uberlaggydarwin, PatrikKT
|
||||
* __HTC Desire 816:__ Grarak, v_superuser
|
||||
* __HTC Desire Eye:__ uberlaggydarwin
|
||||
* __HTC Droid DNA:__ crpalmer, invisiblek
|
||||
* __HTC Droid Incredible 4G LTE:__ intervigil, mdmower
|
||||
* __HTC Evo 4G LTE:__ kushdeck, toastcfh
|
||||
* __HTC One (GSM):__ codeworkx, h8rift
|
||||
* __HTC One (GSM):__ h8rift
|
||||
* __HTC One M8:__ deck, h8rift, invisblek, toastcfh, u-ra, uberlaggydarwin
|
||||
* __HTC One M8 Dual SIM (m8dug):__ bgcngm
|
||||
* __HTC One M9 (hima):__ cyanogen, Rashed97, varunchitre15
|
||||
* __HTC One Max (T6):__ flyhalf205, sbrissen
|
||||
* __HTC One (Sprint):__ kushdeck, toastcfh
|
||||
* __HTC One (Verizon):__ flyhalf205, mdmower
|
||||
* __HTC One S:__ intervigil, xkonni
|
||||
* __HTC One X:__ gorbi16, mdeejay, tbalden, Thömy
|
||||
* __HTC One X+:__ Lloir, tombriden
|
||||
* __HTC One XL:__ h8rift, intervigil
|
||||
* __LG G2 (AT&T) (D800):__ arcee, Rashed97, Shelnutt2
|
||||
* __LG G2 (T-Mobile) (D801):__ arcee, Rashed97, Shelnutt2
|
||||
* __LG G2 (International) (D802):__ arcee, Rashed97, Shelnutt2
|
||||
* __LG G2 (Canada) (D803):__ arcee, Rashed97, Shelnutt2
|
||||
* __LG G2 (Sprint) (LS980):__ arcee, Rashed97, Shelnutt2
|
||||
* __LG G2 (Verizon) (VS980):__ arcee, Rashed97, Shelnutt2
|
||||
* __LG G3 (AT&T) (D850):__
|
||||
* __LG G3 (T-Mobile) (D851):__ bryan2894
|
||||
* __LG G3 (Canada) (D852):__ cuzz1369
|
||||
* __LG G3 (International) (D855):__ finnq
|
||||
* __LG G3 (Korea) (F400):__ TheNoFace
|
||||
* __LG G3 (Sprint) (LS990):__
|
||||
* __LG G3 (Verizon) (VS985):__ invisiblek
|
||||
* __LG G4 (T-Mobile) (H811):__ codeworkx, genesixxbf3
|
||||
* __LG G4 (International) (H815):__ codeworkx, genesixxbf3
|
||||
* __LG Optimus LTE (P930) / LG Nitro HD {P935):__ arcee
|
||||
* __LG Optimus LTE (SK Telecom) (SU640):__ arcee
|
||||
* __Motorola Droid 3:__ dhacker29, Hashcode
|
||||
* __Motorola Droid 4:__ dhacker29, Hashcode
|
||||
* __Motorola Droid Bionic:__ dhacker29, Hashcode
|
||||
* __Motorola Droid RAZR/RAZR Maxx (CDMA):__ dhacker29, Hashcode
|
||||
* __Motorola RAZR/RAZR Maxx (GSM):__ dhacker29, Hashcode
|
||||
* __Moto E 2014 (xt1021,xt1022,xt1023/condor):__ percy_g2, scritch007, ashwin007
|
||||
* __Moto G 2014 (xt1063,xt1064,xt1068,xt1069/titan):__ LuK1337, luca020400
|
||||
* __Moto G 4G (xt1039,xt1040,xt1042,xt1045/peregrine):__ somcom3x, intervigil
|
||||
* __Moto G 4G 2014 (xt1072,xt1077,xt1078,xt1079/thea):__ LuK1337, luca020400
|
||||
* __Moto X (xt1053,xt1055,xt1056,xt1058,xt1060/ghost):__ Hashcode, Skrilax_CZ
|
||||
* __Moto X 2014 (victara):__ crpalmer, invisiblek
|
||||
* __Motorola Moto MAXX(quark) :__ Skrilax_CZ
|
||||
* __Motorola Atrix HD (MB886/qinara):__ epinter, Hashcode, Skrilax_CZ, nadlabak
|
||||
* __Motorola Droid 3 (solana):__ Hashcode, stargo
|
||||
* __Motorola Droid 4 (maserati):__ Hashcode, stargo
|
||||
* __Motorola Droid Bionic (targa):__ Hashcode, stargo
|
||||
* __Motorola Droid Maxx (obake-maxx):__ Skrilax_CZ
|
||||
* __Motorola Droid RAZR/RAZR Maxx (spyder) (CDMA):__ Hashcode, stargo
|
||||
* __Motorola Droid RAZR HD/HD Maxx (xt926/vanquish) (CDMA):__ Hashcode, epinter, Skrilax_CZ, nadlabak
|
||||
* __Motorola Droid RAZR M (xt907/scorpion_mini):__ Hashcode, epinter, Skrilax_CZ, nadlabak
|
||||
* __Motorola Photon Q (xt897/asanti) (GSM):__ Skrilax_CZ, nadlabak, epinter, Hashcode
|
||||
* __Motorola Photon Q (xt897c/asanti_c) (CDMA):__ nadlabak, Skrilax_CZ, epinter, Hashcode
|
||||
* __Motorola RAZR/RAZR Maxx (umts_spyder) (GSM):__ Hashcode, stargo
|
||||
* __Motorola RAZR HD(xt925/vanquish) (GSM):__ epinter, Hashcode, Skrilax_CZ, nadlabak
|
||||
* __Motorola Xoom (WiFi):__ bazar, SteadyHawkin, TDR (Team Rogue)
|
||||
* __Motorola Xoom 3G (UMTS):__ bazar, SteadyHawkin, TDR (Team Rogue)
|
||||
* __Motorola Xoom 4G LTE (Verizon):__ bazar, SteadyHawkin, TDR (Team Rogue)
|
||||
* __OnePlus One:__ cyanogen, intervigil, inwotep, arcee
|
||||
* __Oppo Find 5:__ intervigil, nebkat, raymanfx
|
||||
* __Oppo Find 7:__ intervigil, tdm, inwotep, mikeioannina
|
||||
* __Oppo N1:__ raymanfx
|
||||
* __Oppo N3:__ invisiblek, maniac103
|
||||
* __Oppo R7:__ maniac103, mikeioannina, Rashed97
|
||||
* __Oppo R7 Plus:__ maniac103, mikeioannina, Rashed97
|
||||
* __Samsung Captivate (SGH-I896 / SGH-I897):__ pawitp
|
||||
* __Samsung Epic 4G (SPH-D700):__ bbelos
|
||||
* __Samsung Exhilarate (SGH-I577):__ mikeyman77, carvsdriver
|
||||
* __Samsung Fascinate / Mesmerize (SCH-I500):__ jt1134, sbrissen
|
||||
* __Samsung Galaxy Note (GT-N7000):__ Entropy512, Espenfjo
|
||||
* __Samsung Galaxy Note (GT-N7000):__ Espenfjo
|
||||
* __Samsung Galaxy Note II (GT-N7100):__ nebkat
|
||||
* __Samsung Galaxy Note II LTE (GT-N7105):__ codeworkx
|
||||
* __Samsung Galaxy Note II LTE (AT&T) (SGH-I317):__ codeworkx, cyanogen
|
||||
* __Samsung Galaxy Note II LTE (T-Mobile) (SGH-T889):__ codeworkx
|
||||
* __Samsung Galaxy Note II LTE (SCH-I605 / SPH-L900):__ sbrissen
|
||||
* __Samsung Galaxy Note 10.1 (GT-N80XX):__ Entropy512, Espenfjo
|
||||
* __Samsung Galaxy Note II LTE (AT&T) (SGH-I317):__ cyanogen
|
||||
* __Samsung Galaxy Note II LTE (Verizon) (SCH-I605):__ sbrissen
|
||||
* __Samsung Galaxy Note II LTE (Sprint) (SPH-L900):__ sbrissen
|
||||
* __Samsung Galaxy Note II LTE (USCC) (SCH-R950):__ sbrissen
|
||||
* __Samsung Galaxy Note III (hlte):__ cyanogen, noobnl, slayher
|
||||
* __Samsung Galaxy Note IV Exynos (trelte):__ raymanfx
|
||||
* __Samsung Galaxy Note IV Exynos (trhplte):__ raymanfx
|
||||
* __Samsung Galaxy Note 8.0 3G (GT-N5100):__ sbrissen
|
||||
* __Samsung Galaxy Note 8.0 WiFi (GT-N5110):__ sbrissen
|
||||
* __Samsung Galaxy Note 10.1 (GT-N80XX):__ Espenfjo
|
||||
* __Samsung Galaxy Note 10.1 LTE (Verizon) (SCH-I925):__ sbrissen
|
||||
* __Samsung Galaxy Premier (GT-I9260):__ ljzyal
|
||||
* __Samsung Galaxy R (GT-I9103):__ Adam77Root, Epsylon3
|
||||
* __Samsung Galaxy S Blaze 4G (SGH-T769):__ UberPinguin
|
||||
* __Samsung Galaxy S (GT-I9000):__ pawitp
|
||||
* __Samsung Galaxy S (GT-I9000B):__ helvio88
|
||||
* __Samsung Galaxy S II (AT&T) (SGH-I777):__ Entropy512
|
||||
* __Samsung Galaxy S II (intl) (GT-I9100):__ codeworkx, Espenfjo
|
||||
* __Samsung Galaxy S II (intl) (GT-I9100G):__ codeworkx
|
||||
* __Samsung Galaxy S III (AT&T) (SGH-I747):__ cyanogen
|
||||
* __Samsung Galaxy S III (Cricket) (SCH-R530):__ noobnl
|
||||
* __Samsung Galaxy S III (intl) (GT-I9300):__ xplodwild, codeworkx
|
||||
* __Samsung Galaxy S III LTE (GT-I9305):__ mcampbellsmith, codeworkx
|
||||
* __Samsung Galaxy S III (MetroPCS) (SCH-R530):__ noobnl
|
||||
* __Samsung Galaxy S III (Sprint) (SPH-L710):__ mkasick, noobnl
|
||||
* __Samsung Galaxy S III (T-Mobile) (SGH-T999):__ cyanogen
|
||||
* __Samsung Galaxy S III (US Cellular) (SCH-R530):__ noobnl
|
||||
* __Samsung Galaxy S II (GT-I9100):__ Caio Schnepper
|
||||
* __Samsung Galaxy S II (intl) (GT-I9100G):__ Jiangyi, Ryuinferno
|
||||
* __Samsung Galaxy S II (T-Mobile) (SGH-T989):__ mikeyman77
|
||||
* __Samsung Galaxy S II (AT&T) (SGH-I727):__ topprospect
|
||||
* __Samsung Galaxy S III (AT&T) (SGH-I747):__ nardholio
|
||||
* __Samsung Galaxy S III (Sprint) (SPH-L710):__ noobnl
|
||||
* __Samsung Galaxy S III (Verizon) (SCH-I535):__ invisiblek
|
||||
* __Samsung Galaxy S IV (AT&T) (SGH-I337):__ attn1
|
||||
* __Samsung Galaxy S IV (Canada) (SGH-I337M):__ DvTonder
|
||||
* __Samsung Galaxy S IV (Sprint) (SPH-L720):__ mkasick, noobnl
|
||||
* __Samsung Galaxy S IV (T-Mobile) (SGH-M919):__ cyanogen
|
||||
* __Samsung Galaxy S IV (US Cellular) (SCH-R540):__ noobnl
|
||||
* __Samsung Galaxy S III LTE (GT-I9305):__ mcampbellsmith
|
||||
* __Samsung Galaxy S IV 3G (GT-I9500):__ intervigil, Alberto96
|
||||
* __Samsung Galaxy S IV (AT&T) (SGH-I337):__ FarmGeek4Life
|
||||
* __Samsung Galaxy S IV (Sprint) (SPH-L720):__ noobnl
|
||||
* __Samsung Galaxy S IV (T-Mobile) (SGH-M919):__ dcd
|
||||
* __Samsung Galaxy S IV (Verizon) (SCH-I545):__ invisiblek
|
||||
* __Samsung Galaxy S IV Mini (Intl LTE) (GT-I9195):__arco
|
||||
* __Samsung Galaxy S IV Mini (Intl 3G) (GT-I9190):__arco
|
||||
* __Samsung Galaxy S IV LTE (GT-I9505):__ AntaresOne
|
||||
* __Samsung Galaxy S IV LTE-A (GT-I9506):__ solk2
|
||||
* __Samsung Galaxy S IV Mini 3G (GT-I9190):__ arco
|
||||
* __Samsung Galaxy S IV Mini LTE (GT-I9195):__ arco
|
||||
* __Samsung Galaxy S V (AU) (SCL23):__ scoty755
|
||||
* __Samsung Galaxy S V (Vodafone) (SM-G900I):__ Regi24
|
||||
* __Samsung Galaxy Tab 7" (GSM):__ cdesai, humberos
|
||||
* __Samsung Galaxy Tab 7" (CDMA):__ jt1134
|
||||
* __Samsung Galaxy Tab 2 7" (GT-P31xx):__ codeworkx
|
||||
* __Samsung Galaxy Tab 2 10.1" (GT-P51xx):__ codeworkx
|
||||
* __Samsung Galaxy Tab 2 7" (GT-P31xx):__ codyf86
|
||||
* __Samsung Galaxy Tab 2 10.1" (GT-P51xx):__ codyf86
|
||||
* __Samsung Galaxy Tab Pro 8.4" (SM-T320):__ crpalmer
|
||||
* __Samsung Vibrant (SGH-T959):__ FaultException
|
||||
* __Sony Xperia T (mint):__ jerpelea, Kali- (FreeXperia team), codeworkx, tilal6991
|
||||
* __Sony Xperia V (tsubasa):__ jerpelea, Kali- (FreeXperia team), codeworkx, tilal6991
|
||||
* __Sony Xperia Z (yuga):__ jerpelea, Kali- (FreeXperia team), cdesai, codeworkx, Entropy512
|
||||
* __Sony Xperia ZL (odin):__ jerpelea, Kali- (FreeXperia team)
|
||||
* __Sony Xperia E3 (flamingo):__ FreeXperia Team
|
||||
* __Sony Xperia L (taoshan):__ olivieer, FreeXperia Team
|
||||
* __Sony Xperia M (nicki):__ RonG, FreeXperia Team
|
||||
* __Sony Xperia M2 (eagle):__ FreeXperia Team
|
||||
* __Sony Xperia SP (huashan):__ Mrcl1450
|
||||
* __Sony Xperia T (mint):__ FreeXperia Team, tilal6991, uberlaggydarwin
|
||||
* __Sony Xperia T2 Ultra (tianchi):__ FreeXperia Team
|
||||
* __Sony Xperia T3 (seagull):__ FreeXperia Team
|
||||
* __Sony Xperia V (tsubasa):__ FreeXperia Team, tilal6991, championswimmer, uberlaggydarwin
|
||||
* __Sony Xperia Z (yuga):__ FreeXperia Team, Turl, olivieer
|
||||
* __Sony Xperia ZL (odin):__ FreeXperia Team
|
||||
* __Sony Xperia ZR (dogo):__ FreeXperia Team
|
||||
* __Sony Xperia Tablet Z LTE (pollux):__ FreeXperia Team, snc
|
||||
* __Sony Xperia Tablet Z WiFi (pollux_windy):__ FreeXperia Team, snc
|
||||
* __Sony Xperia Tablet Z2 LTE (castor):__ FreeXperia Team
|
||||
* __Sony Xperia Tablet Z2 WiFi (castor_windy):__ FreeXperia Team
|
||||
* __Sony Xperia Z3 Tablet Compact LTE (scorpion):__ FreeXperia Team
|
||||
* __Sony Xperia Z Ultra (togari):__ FreeXperia Team
|
||||
* __Sony Xperia Z1 (honami):__ FreeXperia Team
|
||||
* __Sony Xperia Z1 compact (amami):__ FreeXperia Team, intervigil, championswimmer
|
||||
* __Sony Xperia Z2 (sirius):__ FreeXperia Team
|
||||
* __Sony Xperia Z3 (z3):__ FreeXperia Team
|
||||
* __Sony Xperia Z3 Compact (z3c):__ FreeXperia Team
|
||||
* __Sony Z Ultra GPE (togari_gpe):__ FreeXperia Team
|
||||
* __Xiaomi Mi2(s) (aries):__ Michael Zimmermann
|
||||
* __Xiaomi Mi3/4 (cancro):__ JoeyRizzoli
|
||||
|
||||
FreeXperia Team:
|
||||
-------------------
|
||||
Team: Jerpelea, Bin4ry, Kali-, codeworkx, Bumble-Bee, cdesai, AdFad666, tilal6991, kholk
|
||||
|
||||
General developers:
|
||||
-------------------
|
||||
* __UI Team:__ blunden, prash
|
||||
* __UX Team:__ blunden, ciwrl, daneshm, DvTonder, mad-murdock, maniac103, Kaik541
|
||||
* __UX Team:__ blunden, ciwrl, daneshm, DvTonder, jackmu95, maniac103, Kaik541
|
||||
* __Other:__ jruesga
|
||||
|
||||
Translators:
|
||||
------------
|
||||
* __Afrikaans:__ Corrie Meyer, David van Tonder
|
||||
* __Catalan:__ Oriol Pellicer
|
||||
* __Croatian:__ Antonio Marin
|
||||
* __Czech:__ Ondrej Zima, Radovan Kepak, Pavel Kucera, Jozka Jozin, Jiri Silvarich, Vaclav Moucha
|
||||
* __Dutch:__ Marco Brohet, Kasper Hettinga, Sam Segers, Bart Tiemersma, Eddy Witkamp
|
||||
* __Finnish:__ Antti Leukkunen, Niko Koivu
|
||||
* __French:__ Sébastien Vaucher, David Girault, Tanguy Pruvot
|
||||
* __German:__ Kim Lê, Jacob Müller, Patrick Schaaf, Christoph Quiter, Markus Hoeber, Matthias Büchner, Danny Baumann
|
||||
* __Greek:__ Michael Bestas
|
||||
* __Hungarian:__ Tamás Tóth, Dávid László, Dániel Buga
|
||||
* __Italian:__ Francesco Foresta, Moreno Pojer, Eugenio Ziliotto, Giulio Cervera, Mauro Bazzano
|
||||
* __Japanese:__ Takuo Kitame
|
||||
* __Korean:__ Inseok Lee
|
||||
* __Polish:__ Maciej Rozbicki
|
||||
* __Portuguese-Brazil:__ Gustavo Rosa
|
||||
* __Portuguese:__ Eduardo Martins, Ricardo Pinho
|
||||
* __Russian:__ OlegKrikun, Pavel Volkov, Kir Kolyshkin
|
||||
* __Simplified Chinese:__ comercy, Qian Zheng, Andrew Jiang, John Hsing
|
||||
* __Slovak:__ Juraj Janecek
|
||||
* __Spanish:__ PeRiJeY, KalimochoAz, Chuckycrx, Jorge Ruesga, djMesias
|
||||
* __Swedish:__ Patrik Kullman
|
||||
* __Traditional Chinese:__ Ladios Jonquil
|
||||
* __Turkish:__ Ethem Evlice (androidmeda)
|
||||
* __Afrikaans:__ David van Tonder (DvTonder), Corrie Meyer (isimobile)
|
||||
* __Arabic:__ Umar Omar (uomar8)
|
||||
* __Asturian:__ esbardu (esbardu), ivarela (malditoastur), Xandru Martino Ruz (Xandru), Xuacu Saturio (Xuacu)
|
||||
* __Catalan:__ Arnau (Arnau), Pau Galindo (Pau_Galindo)
|
||||
* __Chinese Simplified:__ Matthew Humphrey (775405984), Contactfront (Contactfront), Easeman Wang (easeman9), jiveking (jiveking), Yun Liu (liuyun97), Hexchain Tong (richard0053), Ryan Chan (smartryan), Thomas Wang (ts0516)
|
||||
* __Chinese Traditional:__ Hsiang Jung, CHENG (HJCHENG), Kelvin Cheong (kelvincheong), Bing-Hua Wang (louiswpf), npes87184 (npes87184), Ryan Chan (smartryan)
|
||||
* __Chinese Traditional, Hong Kong:__ Kelvin Cheong (kelvincheong), Ryan Chan (smartryan), Li Chi Tung (tonyli1357)
|
||||
* __Croatian:__ David Boca (davidboca), markan (markan), Robert Rozić (Rox), Josip Volf (Wuk)
|
||||
* __Czech:__ Radovan Kepák (bckp), Štěpán Dalecký (daleckystepan), engy (engy), Keltek (Keltek), ScArSVK (ScArSVK), Snoop05 (Snoop05)
|
||||
* __Danish:__ Morten Jørgensen (Fidoble), Jacob_DK (Jacob_DK), Ole Ingeman Christensen (OIChristensen)
|
||||
* __Dutch:__ Eddy Witkamp (eddywitkamp), Frank Baeten (frankbaeten), Tom Heisterkamp (HappyFlow), Martin Coulon (martinusbe), Timo Viveen (Nadermane), ray1618 (ray1618), Marco Brohet (therbom)
|
||||
* __Estonian:__ Rudolf Tammekivi (rtammekivi)
|
||||
* __Finnish:__ Eero Hyrsky (EnergySnail), Jani Kinnunen (jkinnunen), Niko Koivu (niko0o), Sasu Lehtonen (zazza)
|
||||
* __French:__ DelPETER (DelPETER), humpf (humpf), Julien Stephan (julienstephan29), laddass (laddass), .... (lemachinbidule), math Matmutant (matmutant), Micks29 (Micks29), opengillou (opengillou), Alexandre Bertrand (trandbert)
|
||||
* __Galician:__ Daniel (canu7), Isaac Álvarez Veiga (Erithrym)
|
||||
* __Georgian:__ Alexander (alexander_9)
|
||||
* __German:__ Sascha Schroeder (c1ph4), Kim Le (elektroschmock78), Jacob Müller (jackmu95), Kilian von Pflugk (kilianvonpflugk), Kilowatt.W (kilowatt), Benjamin Huschle (kolsms), Danny Baumann (maniac103), Mardon (markusmenzel), maxee (maxee), michelsberg (michelsberg), Roman Ettlinger (romanett98), Stefan O. (stefanao), Thomas Reinhardt (tarreas), unpublished (unpublished), Yannik (yanniks)
|
||||
* __Greek:__ Vasilis Akritas (billak75), Michael Bestas (mikeioannina)
|
||||
* __Hebrew:__ Arthur Zamarin (arthurzam), evyatark2 (evyatark2), Mr_Guy (Mr_Guy), Oren Cohen (orenc17), sagi232123 (sagi232123)
|
||||
* __Hindi:__ c0d3ripp3r (c0d3ripp3r), Solomon Sunder (solomonsunder)
|
||||
* __Hungarian:__ Bálint Czobor (balint), Buga Dániel (BugaDániel), fischerandris (fischerandris), lazajnd (lazajnd), Tamás Tóth (tothtamassyman)
|
||||
* __Indonesian:__ Vicky Sofyan (Arch9), famihyypia (famihyypia), Ilham Ibrahim (iiibrahim89), Ruswan Efendi (RuswanWu7), tohenk (tohenk)
|
||||
* __Italian:__ Alessandro Preti (alessandropreti), Francesco Foresta (francescoforesta), Joey Rizzoli (linuxx), Lorenzo Faccini (lo97), rheeze (rheeze), Valdevies (Valdevies)
|
||||
* __Japanese:__ Black Zigong (blackzigong), jiveking (jiveking), おたっく (otack), Sena Endo (senaforandroid), stmay30 (stmay30)
|
||||
* __Korean:__ 이승렬 (toy0605)
|
||||
* __Kurdish:__ falah (Dylan2785)
|
||||
* __Latvian:__ Māris Rēdmanis (maaris)
|
||||
* __Lithuanian:__ Liudas Ališauskas (liudas.alisauskas), Edmundas Plentauskas (plentauskas1992), HardLight (polizplz), Saulius Vyšniauskas (SauliusVy)
|
||||
* __Luxembourgish:__ Michel Weimerskirch (michel_weimerskirch), soued031 (soued031)
|
||||
* __Malay:__ tanakwagu (tanakwagu)
|
||||
* __Norwegian Bokmal:__ Vegard Fladby (Allram), Sten Eikrem (Storesteinen)
|
||||
* __Persian:__ Ali Niki (alinik), Mehdi HosseinZade (Arshen) (Arshen-2014), Yaser Rajabi (yrajabi)
|
||||
* __Polish:__ Dawid (dawidohs), Kamil Jarosław (devloz1996), Michał Gątkowski (IreuN), Andrzej Ressel (jereksel), Michał Kamień (kamykowsky), lozohcum M (lozohcum), Tomasz Popielarczyk (popielarczyktomasz), Michał Jakubowski (revanmj)
|
||||
* __Portuguese:__ João Pedro Luís (joaopluis), Sergio Borges (sergioborges99), André Pinela (sheffzor), Tercio Carvalho (tercioc)
|
||||
* __Portuguese, Brazilian:__ Carlos Henrique Brendler Cabral (carloshbcabral), Gafanhotz (Gafanhotz), Gustavo Rosa (gustavogyn), Tercio Carvalho (tercioc)
|
||||
* __Romanian:__ apolodor (apolodor), azzureux (azzureux), Marian-Mina Mihai (bboylalu), mihaitaus (mihaitaus)
|
||||
* __Russian:__ Vladislav Koldobskiy (NeverGone), Alexey Kuznetsov (eeepc1016p), Artem Leshchev (matshch), Maxim Perepelitsa (N0xFF), Yaroslav Yadrishnikov (MrYadro)
|
||||
* __Serbian (Cyrillic):__ Dragan Milenkovic (gagy187), Sava Mikalački (mikalackis), Драган (WD40)
|
||||
* __Sinhala:__ Rananga Suraweera (rananga)
|
||||
* __Slovak:__ Martin (mato), Bohuslav Oršula (orsulab), Peter Malík (PeterM), pyler (pyler), Snoop05 (Snoop05)
|
||||
* __Spanish:__ Isaac Álvarez Veiga (Erithrym), Jorge Ruesga (jruesga), Lorenzo M (Lorenzo_M), luchomacedo92 (LuchoMacedo), Pau Galindo (Pau_Galindo)
|
||||
* __Swedish:__ Simon Bäck (backsimon), elelinux (elelinux), Simon Danielsson (sad_88), Ted Lundwall (TedLundwall)
|
||||
* __Tamil:__ Kishore Sheik Ahamed (kishoreinme), Solomon Sunder (solomonsunder), Stars Soft (starssoft), அருண் குமார் - Arun Kumar (thangamani-arun)
|
||||
* __Thai:__ pureexe (pureexe)
|
||||
* __Turkish:__ Arif GÜLER (ArF), Mesut Öztürk (doktormesut), Murat KOŞAK (muratkosak), okirat (okirat), Şenol (senoleker)
|
||||
* __Ukrainian:__ Andriy Poznakhovskyy (Andrulko), Nazar Sokolovsky (nazar_sokolovsky), Maks (probil), xalich (xalich)
|
||||
* __Uyghur:__ jiveking (jiveking)
|
||||
* __Vietnamese:__ Bảo Quân (quan221295), Triet Bui Minh (x3cafe)
|
||||
|
||||
Graphics and Assets:
|
||||
--------------------
|
||||
* __Wallpapers:__ Matthew Hanley, Henry Mason
|
||||
* __Icons:__ Bjorn Lunden, Henry Mason
|
||||
* __Bootanimation:__ Dima Skvarskyi
|
||||
|
||||
Former Contributors:
|
||||
--------------------
|
||||
* __Devices:__ Entropy512, xplodwild
|
||||
* __Features:__ mad-murdock, wysie, Ander Webbs, ChainsDD, xplodwild
|
||||
|
|
2
LICENSE
2
LICENSE
|
@ -1,4 +1,4 @@
|
|||
Copyright 2011-12 The CyanogenMod Project
|
||||
Copyright 2011-15 The CyanogenMod Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
|
|
@ -32,7 +32,7 @@ You can do this by using these commands:
|
|||
(Go to repo you are patching, make your changes and commit)
|
||||
cmgerrit <for(new)/changes(patch set)> <branch/change-id>
|
||||
|
||||
repo start cm-10.1 .
|
||||
repo start cm-13.0 .
|
||||
(Make your changes and commit)
|
||||
repo upload .
|
||||
Note: "." meaning current directory
|
||||
|
@ -52,7 +52,7 @@ familiar with [Repo](https://source.android.com/source/using-repo.html) and [Ver
|
|||
|
||||
To initialize your local repository using the CyanogenMod trees, use a command like this:
|
||||
|
||||
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1
|
||||
repo init -u git://github.com/CyanogenMod/android.git -b cm-13.0
|
||||
|
||||
Then to sync up:
|
||||
|
||||
|
|
|
@ -587,6 +587,7 @@ _repo_sync() {
|
|||
OPTIONS=(
|
||||
"-h" "--help"
|
||||
"-f" "--force-broken"
|
||||
"--force-sync"
|
||||
"-l" "--local-only"
|
||||
"-n" "--network-only"
|
||||
"-d" "--detach"
|
||||
|
|
|
@ -0,0 +1,126 @@
|
|||
# Copyright (C) 2015 The CyanogenMod Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
#
|
||||
# Rules for running apicheck to confirm that you haven't broken
|
||||
# api compatibility or added apis illegally.
|
||||
#
|
||||
|
||||
# skip api check for PDK buid
|
||||
ifeq (,$(filter true, $(WITHOUT_CHECK_API) $(TARGET_BUILD_PDK)))
|
||||
|
||||
.PHONY: checkapi-cm
|
||||
|
||||
# Run the checkapi rules by default.
|
||||
droidcore: checkapi-cm
|
||||
|
||||
cm_last_released_sdk_version := $(lastword $(call numerically_sort, \
|
||||
$(filter-out current, \
|
||||
$(patsubst $(CM_SRC_API_DIR)/%.txt,%, $(wildcard $(CM_SRC_API_DIR)/*.txt)) \
|
||||
)\
|
||||
))
|
||||
|
||||
.PHONY: check-cm-public-api
|
||||
checkapi-cm : check-cm-public-api
|
||||
|
||||
.PHONY: update-cm-api
|
||||
|
||||
# INTERNAL_CM_PLATFORM_API_FILE is the one build by droiddoc.
|
||||
# Note that since INTERNAL_CM_PLATFORM_API_FILE is the byproduct of api-stubs module,
|
||||
# (See vendor/cmsdk/Android.mk)
|
||||
# we need to add api-stubs as additional dependency of the api check.
|
||||
|
||||
# Check that the API we're building hasn't broken the last-released
|
||||
# SDK version.
|
||||
$(eval $(call check-api, \
|
||||
checkpublicapi-cm-last, \
|
||||
$(CM_SRC_API_DIR)/$(cm_last_released_sdk_version).txt, \
|
||||
$(INTERNAL_CM_PLATFORM_API_FILE), \
|
||||
$(FRAMEWORK_CM_PLATFORM_REMOVED_API_FILE), \
|
||||
$(INTERNAL_CM_PLATFORM_REMOVED_API_FILE), \
|
||||
cat $(BUILD_SYSTEM)/apicheck_msg_last.txt, \
|
||||
check-cm-public-api, \
|
||||
$(call doc-timestamp-for, cm-api-stubs) \
|
||||
))
|
||||
|
||||
|
||||
# Check that the API we're building hasn't changed from the not-yet-released
|
||||
# SDK version.
|
||||
$(eval $(call check-api, \
|
||||
checkpublicapi-cm-current, \
|
||||
$(FRAMEWORK_CM_PLATFORM_API_FILE), \
|
||||
$(INTERNAL_CM_PLATFORM_API_FILE), \
|
||||
$(FRAMEWORK_CM_PLATFORM_REMOVED_API_FILE), \
|
||||
$(INTERNAL_CM_PLATFORM_REMOVED_API_FILE), \
|
||||
cat $(BUILD_SYSTEM)/apicheck_msg_current.txt, \
|
||||
check-cm-public-api, \
|
||||
$(call doc-timestamp-for, cm-api-stubs) \
|
||||
))
|
||||
|
||||
.PHONY: update-cm-public-api
|
||||
update-cm-public-api: $(INTERNAL_CM_PLATFORM_API_FILE) | $(ACP)
|
||||
@echo -e ${CL_GRN}"Copying cm_current.txt"${CL_RST}
|
||||
$(hide) $(ACP) $(INTERNAL_CM_PLATFORM_API_FILE) $(FRAMEWORK_CM_PLATFORM_API_FILE)
|
||||
@echo -e ${CL_GRN}"Copying cm_removed.txt"${CL_RST}
|
||||
$(hide) $(ACP) $(INTERNAL_CM_PLATFORM_REMOVED_API_FILE) $(FRAMEWORK_CM_PLATFORM_REMOVED_API_FILE)
|
||||
|
||||
update-cm-api : update-cm-public-api
|
||||
|
||||
#####################Check System API#####################
|
||||
.PHONY: check-cm-system-api
|
||||
checkapi-cm : check-cm-system-api
|
||||
|
||||
# Check that the Cyanogen System API we're building hasn't broken the last-released
|
||||
# SDK version.
|
||||
$(eval $(call check-api, \
|
||||
checksystemapi-cm-last, \
|
||||
$(CM_SRC_SYSTEM_API_DIR)/$(cm_last_released_sdk_version).txt, \
|
||||
$(INTERNAL_CM_PLATFORM_SYSTEM_API_FILE), \
|
||||
$(FRAMEWORK_CM_PLATFORM_SYSTEM_REMOVED_API_FILE), \
|
||||
$(INTERNAL_CM_PLATFORM_SYSTEM_REMOVED_API_FILE), \
|
||||
cat $(BUILD_SYSTEM)/apicheck_msg_last.txt, \
|
||||
check-cm-system-api, \
|
||||
$(call doc-timestamp-for, cm-system-api-stubs) \
|
||||
))
|
||||
|
||||
# Check that the System API we're building hasn't changed from the not-yet-released
|
||||
# SDK version.
|
||||
$(eval $(call check-api, \
|
||||
checksystemapi-cm-current, \
|
||||
$(FRAMEWORK_CM_PLATFORM_SYSTEM_API_FILE), \
|
||||
$(INTERNAL_CM_PLATFORM_SYSTEM_API_FILE), \
|
||||
$(FRAMEWORK_CM_PLATFORM_SYSTEM_REMOVED_API_FILE), \
|
||||
$(INTERNAL_CM_PLATFORM_SYSTEM_REMOVED_API_FILE), \
|
||||
cat $(BUILD_SYSTEM)/apicheck_msg_current.txt, \
|
||||
check-cm-system-api, \
|
||||
$(call doc-timestamp-for, cm-system-api-stubs) \
|
||||
))
|
||||
|
||||
.PHONY: update-cm-system-api
|
||||
update-cm-api : update-cm-system-api
|
||||
|
||||
update-cm-system-api: $(INTERNAL_PLATFORM_CM_SYSTEM_API_FILE) | $(ACP)
|
||||
@echo Copying cm_system-current.txt
|
||||
$(hide) $(ACP) $(INTERNAL_CM_PLATFORM_SYSTEM_API_FILE) $(FRAMEWORK_CM_PLATFORM_SYSTEM_API_FILE)
|
||||
@echo Copying cm_system-removed.txt
|
||||
$(hide) $(ACP) $(INTERNAL_CM_PLATFORM_SYSTEM_REMOVED_API_FILE) $(FRAMEWORK_CM_PLATFORM_SYSTEM_REMOVED_API_FILE)
|
||||
|
||||
.PHONY: update-cm-prebuilts-latest-public-api
|
||||
current_sdk_release_text_file := $(CM_SRC_API_DIR)/$(cm_last_released_sdk_version).txt
|
||||
|
||||
update-cm-prebuilts-latest-public-api: $(FRAMEWORK_CM_PLATFORM_API_FILE) | $(ACP)
|
||||
@echo -e ${CL_GRN}"Publishing cm_current.txt as latest API release"${CL_RST}
|
||||
$(hide) $(ACP) $(FRAMEWORK_CM_PLATFORM_API_FILE) $(current_sdk_release_text_file)
|
||||
|
||||
endif
|
|
@ -0,0 +1,11 @@
|
|||
#
|
||||
#CM-specific variable clears
|
||||
#
|
||||
LOCAL_IGNORE_SUBDIR :=
|
||||
|
||||
LOCAL_MAVEN_GROUP :=
|
||||
LOCAL_MAVEN_ARTIFACT :=
|
||||
LOCAL_MAVEN_VERSION :=
|
||||
LOCAL_MAVEN_CLASSIFIER :=
|
||||
LOCAL_MAVEN_PACKAGING :=
|
||||
LOCAL_MAVEN_REPO :=
|
|
@ -0,0 +1,27 @@
|
|||
# Copyright (C) 2015 The CyanogenMod Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
CM_SRC_API_DIR := $(TOPDIR)prebuilts/cmsdk/api
|
||||
CM_SRC_SYSTEM_API_DIR := $(TOPDIR)prebuilts/cmsdk/system-api
|
||||
INTERNAL_CM_PLATFORM_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/cm_public_api.txt
|
||||
INTERNAL_CM_PLATFORM_REMOVED_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/cm_removed.txt
|
||||
INTERNAL_CM_PLATFORM_SYSTEM_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/cm_system-api.txt
|
||||
INTERNAL_CM_PLATFORM_SYSTEM_REMOVED_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/cm_system-removed.txt
|
||||
FRAMEWORK_CM_PLATFORM_API_FILE := $(TOPDIR)vendor/cmsdk/api/cm_current.txt
|
||||
FRAMEWORK_CM_PLATFORM_REMOVED_API_FILE := $(TOPDIR)vendor/cmsdk/api/cm_removed.txt
|
||||
FRAMEWORK_CM_PLATFORM_SYSTEM_API_FILE := $(TOPDIR)vendor/cmsdk/system-api/cm_system-current.txt
|
||||
FRAMEWORK_CM_PLATFORM_SYSTEM_REMOVED_API_FILE := $(TOPDIR)vendor/cmsdk/system-api/cm_system-removed.txt
|
||||
|
||||
BUILD_MAVEN_PREBUILT := $(TOP)/vendor/replicant/build/core/maven_artifact.mk
|
||||
PUBLISH_MAVEN_PREBUILT := $(TOP)/vendor/replicant/build/core/maven_artifact_publish.mk
|
|
@ -0,0 +1,6 @@
|
|||
#
|
||||
# CM-specific macros
|
||||
#
|
||||
define uniq
|
||||
$(if $1,$(firstword $1) $(call uniq,$(filter-out $(firstword $1),$1)))
|
||||
endef
|
|
@ -0,0 +1,56 @@
|
|||
# Copyright (C) 2015 The CyanogenMod Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
ifeq ($(strip $(LOCAL_MAVEN_GROUP)),)
|
||||
$(error LOCAL_MAVEN_GROUP not defined.)
|
||||
endif
|
||||
ifeq ($(strip $(LOCAL_MAVEN_ARTIFACT)),)
|
||||
$(error LOCAL_MAVEN_ARTIFACT not defined.)
|
||||
endif
|
||||
ifeq ($(strip $(LOCAL_MAVEN_VERSION)),)
|
||||
$(error LOCAL_MAVEN_VERSION not defined.)
|
||||
endif
|
||||
ifeq ($(strip $(LOCAL_MAVEN_REPO)),)
|
||||
$(error LOCAL_MAVEN_REPO not defined.)
|
||||
endif
|
||||
ifeq ($(strip $(LOCAL_MAVEN_PACKAGING)),)
|
||||
LOCAL_MAVEN_PACKAGING := jar
|
||||
endif
|
||||
|
||||
artifact_filename := $(LOCAL_MAVEN_GROUP).$(LOCAL_MAVEN_ARTIFACT)-$(LOCAL_MAVEN_VERSION)$(if $(LOCAL_MAVEN_CLASSIFIER),-$(LOCAL_MAVEN_CLASSIFIER)).$(LOCAL_MAVEN_PACKAGING)
|
||||
|
||||
LOCAL_PREBUILT_MODULE_FILE := $(call intermediates-dir-for,$(LOCAL_MODULE_CLASS),$(LOCAL_MODULE),,COMMON)/$(artifact_filename)
|
||||
|
||||
$(LOCAL_PREBUILT_MODULE_FILE): repo := $(LOCAL_MAVEN_REPO)
|
||||
$(LOCAL_PREBUILT_MODULE_FILE): group := $(LOCAL_MAVEN_GROUP)
|
||||
$(LOCAL_PREBUILT_MODULE_FILE): artifact := $(LOCAL_MAVEN_ARTIFACT)
|
||||
$(LOCAL_PREBUILT_MODULE_FILE): version := $(LOCAL_MAVEN_VERSION)
|
||||
$(LOCAL_PREBUILT_MODULE_FILE): packaging := $(LOCAL_MAVEN_PACKAGING)
|
||||
$(LOCAL_PREBUILT_MODULE_FILE): classifier := $(LOCAL_MAVEN_CLASSIFIER)
|
||||
$(LOCAL_PREBUILT_MODULE_FILE):
|
||||
$(hide) mvn -q org.apache.maven.plugins:maven-dependency-plugin:2.10:get \
|
||||
org.apache.maven.plugins:maven-dependency-plugin:2.10:copy \
|
||||
-DremoteRepositories=central::::$(repo) \
|
||||
-Dartifact=$(group):$(artifact):$(version):$(packaging)$(if $(classifier),:$(classifier)) \
|
||||
-Dmdep.prependGroupId=true \
|
||||
-Dmdep.overWriteSnapshots=true \
|
||||
-Dmdep.overWriteReleases=true \
|
||||
-Dtransitive=false \
|
||||
-DoutputDirectory=$(dir $@)
|
||||
@echo -e ${CL_GRN}"Download:"${CL_RST}" $@"
|
||||
|
||||
include $(BUILD_PREBUILT)
|
||||
|
||||
# the "fetchprebuilts" target will go through and pre-download all of the maven dependencies in the tree
|
||||
fetchprebuilts: $(LOCAL_PREBUILT_MODULE_FILE)
|
|
@ -0,0 +1,49 @@
|
|||
# Copyright (C) 2015 The CyanogenMod Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
full_target := $(call doc-timestamp-for,$(LOCAL_MODULE))
|
||||
|
||||
ifeq ($(strip $(LOCAL_MAVEN_POM)),)
|
||||
$(error LOCAL_MAVEN_POM not defined.)
|
||||
endif
|
||||
ifeq ($(strip $(LOCAL_MAVEN_REPO)),)
|
||||
$(error LOCAL_MAVEN_REPO not defined.)
|
||||
endif
|
||||
ifeq ($(strip $(LOCAL_MAVEN_FILE_PATH)),)
|
||||
$(error LOCAL_MAVEN_FILE_PATH not defined.)
|
||||
endif
|
||||
ifeq ($(strip $(LOCAL_MAVEN_REPO_ID)),)
|
||||
$(error LOCAL_MAVEN_REPO_ID not defined.)
|
||||
endif
|
||||
|
||||
|
||||
$(full_target): pomfile := $(LOCAL_MAVEN_POM)
|
||||
$(full_target): repo := $(LOCAL_MAVEN_REPO)
|
||||
$(full_target): path_to_file := $(LOCAL_MAVEN_FILE_PATH)
|
||||
$(full_target): repoId := $(LOCAL_MAVEN_REPO_ID)
|
||||
$(full_target): classifier := $(LOCAL_MAVEN_CLASSIFIER)
|
||||
$(full_target): sources := $(LOCAL_MAVEN_SOURCES)
|
||||
$(full_target): javadoc := $(LOCAL_MAVEN_JAVADOC)
|
||||
|
||||
$(full_target):
|
||||
$(hide) mvn -e -X gpg:sign-and-deploy-file \
|
||||
-DpomFile=$(pomfile) \
|
||||
-Durl=$(repo) \
|
||||
-Dfile=$(path_to_file) \
|
||||
-DrepositoryId=$(repoId) \
|
||||
-Dclassifier=$(classifier) \
|
||||
-Dsources=$(sources) \
|
||||
-Djavadoc=$(javadoc)
|
||||
@echo -e ${CL_GRN}"Publishing:"${CL_RST}" $@"
|
||||
$(LOCAL_MODULE) : $(full_target)
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,208 @@
|
|||
|
||||
/* =============================================================================
|
||||
Columns
|
||||
========================================================================== */
|
||||
/* Applied to body to debug layout alignments
|
||||
.grid {
|
||||
width:100%;
|
||||
height:100%;
|
||||
background:url(../images/grid.png) center repeat-y;
|
||||
top:0px;
|
||||
margin:auto;
|
||||
position:absolute;
|
||||
}
|
||||
*/
|
||||
|
||||
@media screen, projection, print {
|
||||
.full {
|
||||
padding: 2.5em 0;
|
||||
border-top: solid 1px #ddd;
|
||||
border-bottom: solid 1px #ddd;
|
||||
background: #f7f7f7;
|
||||
}
|
||||
.wrap {
|
||||
margin: 0 auto;
|
||||
width: 100%;
|
||||
min-width:600px;
|
||||
clear: both;
|
||||
}
|
||||
.cols {
|
||||
height: 1%;
|
||||
margin: 0 -1.533742331288343558282%;
|
||||
width: 103.06748466257669%}
|
||||
*+html .cols {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.cols:after {
|
||||
clear: both;
|
||||
content: ' ';
|
||||
display: block;
|
||||
height: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12,
|
||||
.col-13, .col-14, .col-15, .col-16 {
|
||||
float: left;
|
||||
margin: 0 1.063829787234% 20px 1.063829787234%;
|
||||
}
|
||||
* html .col-1, * html .col-2, * html .col-3, * html .col-4, * html .col-5, * html .col-6, * html
|
||||
.col-7, * html .col-8, * html .col-9, * html .col-10, * html .col-11, * html .col-12, * html
|
||||
.col-13, * html .col-14, * html .col-15, * html .col-16 {
|
||||
margin: 0;
|
||||
margin: 0 1.063829787234% 20px 1.063829787234%;
|
||||
}
|
||||
[dir='rtl'] .col-1, [dir='rtl'] .col-2, [dir='rtl'] .col-3, [dir='rtl'] .col-4, [dir='rtl'] .col-5,
|
||||
[dir='rtl'] .col-6, [dir='rtl'] .col-7, [dir='rtl'] .col-8, [dir='rtl'] .col-9, [dir='rtl'] .col-10,
|
||||
[dir='rtl'] .col-11, [dir='rtl'] .col-12 {
|
||||
float: right;
|
||||
}
|
||||
.col-1 {
|
||||
width: 4.16666666666667%;
|
||||
}
|
||||
.col-2 {
|
||||
width: 10.4166666666667%;
|
||||
}
|
||||
.col-3 {
|
||||
width: 16.6666666666667%;
|
||||
}
|
||||
.col-4 {
|
||||
width: 22.9166666666667%;
|
||||
}
|
||||
.col-5 {
|
||||
width: 29.1666666666667%;
|
||||
}
|
||||
.col-6 {
|
||||
width: 35.4166666666667%;
|
||||
}
|
||||
.col-7 {
|
||||
width: 41.6666666666667%;
|
||||
}
|
||||
.col-8 {
|
||||
width: 47.9166666666667%;
|
||||
}
|
||||
.col-9 {
|
||||
width: 55.3333333333333%;
|
||||
}
|
||||
.col-10 {
|
||||
width: 60.4166666666667%;
|
||||
}
|
||||
.col-11 {
|
||||
width: 66.6666666666667%;
|
||||
}
|
||||
.col-12 {
|
||||
width: 72.9166666666667%;
|
||||
}
|
||||
.col-13 {
|
||||
width: 79.1666666666667%;
|
||||
}
|
||||
.col-14 {
|
||||
width: 85.4166666666667%;
|
||||
}
|
||||
.col-15 {
|
||||
width: 91.6666666666667%;
|
||||
}
|
||||
.col-16 {
|
||||
width: 97.9166666666667%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#header .col-1,
|
||||
#nav-x .col-1 { width: 40px }
|
||||
#header .col-2,
|
||||
#nav-x .col-2 { width: 100px }
|
||||
#header .col-3,
|
||||
#nav-x .col-3 { width: 160px }
|
||||
#header .col-4,
|
||||
#nav-x .col-4 { width: 220px }
|
||||
#header .col-5,
|
||||
#nav-x .col-5 { width: 280px }
|
||||
#header .col-6,
|
||||
#nav-x .col-6 { width: 340px }
|
||||
#header .col-7,
|
||||
#nav-x .col-7 { width: 400px }
|
||||
#header .col-8,
|
||||
#nav-x .col-8 { width: 460px }
|
||||
#header .col-9,
|
||||
#nav-x .col-9 { width: 520px }
|
||||
#header .col-10,
|
||||
#nav-x .col-10 { width: 580px }
|
||||
#header .col-11,
|
||||
#nav-x .col-11 { width: 640px }
|
||||
#header .col-12,
|
||||
#nav-x .col-12 { width: 700px }
|
||||
#header .col-13,
|
||||
#nav-x .col-13 { width: 760px }
|
||||
#header .col-14,
|
||||
#nav-x .col-14 { width: 820px }
|
||||
#header .col-15,
|
||||
#nav-x .col-15 { width: 880px }
|
||||
#header .col-16,
|
||||
#nav-x .col-16 { width: 940px }
|
||||
|
||||
|
||||
|
||||
body {
|
||||
padding:0 20px;
|
||||
}
|
||||
#header,
|
||||
#searchResults,
|
||||
#nav-x {
|
||||
margin:0;
|
||||
}
|
||||
#body-content {
|
||||
margin:0;
|
||||
}
|
||||
#body-content > .col-12 {
|
||||
width:77.9804965%;
|
||||
margin:0 0 0 0.97%; /* this percentage chosen to make IE9 happy */
|
||||
}
|
||||
#side-nav {
|
||||
width: 19.9804965%;
|
||||
margin:0 1.063829787234% 0 0;
|
||||
}
|
||||
|
||||
#header .wrap {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
#header-wrapper #nav-x div.wrap,
|
||||
#searchResults.wrap {
|
||||
max-width:100%;
|
||||
}
|
||||
|
||||
.nav-x {
|
||||
margin:-2px 0 0 0;
|
||||
}
|
||||
|
||||
#devdoc-nav.fixed,
|
||||
#devdoc-nav.fixed a.totop {
|
||||
left:20px; /* !important ... for IE i think */
|
||||
}
|
||||
|
||||
#sticky-header {
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
#sticky-header > div {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.sticky-menu {
|
||||
width:100%;
|
||||
left:-20px;
|
||||
}
|
||||
|
||||
.col-right {
|
||||
margin-right:0px;
|
||||
}
|
||||
|
||||
@media screen and (max-width:772px) {
|
||||
.col-5, .col-6, .col-7 {
|
||||
clear: both;
|
||||
width: 97.0238096%}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
#masthead-title {
|
||||
color: #373332;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
#headerLeft a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#header {
|
||||
border-bottom: 4px solid rgb(1, 125, 187);
|
||||
}
|
|
@ -0,0 +1,188 @@
|
|||
$(document).ready(function() {
|
||||
// prep nav expandos
|
||||
var pagePath = document.location.pathname;
|
||||
if (pagePath.indexOf(SITE_ROOT) == 0) {
|
||||
pagePath = pagePath.substr(SITE_ROOT.length);
|
||||
if (pagePath == '' || pagePath.charAt(pagePath.length - 1) == '/') {
|
||||
pagePath += 'index.html';
|
||||
}
|
||||
}
|
||||
|
||||
if (SITE_ROOT.match(/\.\.\//) || SITE_ROOT == '') {
|
||||
// If running locally, SITE_ROOT will be a relative path, so account for that by
|
||||
// finding the relative URL to this page. This will allow us to find links on the page
|
||||
// leading back to this page.
|
||||
var pathParts = pagePath.split('/');
|
||||
var relativePagePathParts = [];
|
||||
var upDirs = (SITE_ROOT.match(/(\.\.\/)+/) || [''])[0].length / 3;
|
||||
for (var i = 0; i < upDirs; i++) {
|
||||
relativePagePathParts.push('..');
|
||||
}
|
||||
for (var i = 0; i < upDirs; i++) {
|
||||
relativePagePathParts.push(pathParts[pathParts.length - (upDirs - i) - 1]);
|
||||
}
|
||||
relativePagePathParts.push(pathParts[pathParts.length - 1]);
|
||||
pagePath = relativePagePathParts.join('/');
|
||||
} else {
|
||||
// Otherwise the page path should be an absolute URL.
|
||||
pagePath = SITE_ROOT + pagePath;
|
||||
}
|
||||
|
||||
// select current page in sidenav and set up prev/next links if they exist
|
||||
var $selNavLink = $('.nav-y').find('a[href="' + pagePath + '"]');
|
||||
if ($selNavLink.length) {
|
||||
$selListItem = $selNavLink.closest('li');
|
||||
|
||||
$selListItem.addClass('selected');
|
||||
$selListItem.closest('li>ul').addClass('expanded');
|
||||
|
||||
// set up prev links
|
||||
var $prevLink = [];
|
||||
var $prevListItem = $selListItem.prev('li');
|
||||
if ($prevListItem.length) {
|
||||
if ($prevListItem.hasClass('nav-section')) {
|
||||
// jump to last topic of previous section
|
||||
$prevLink = $prevListItem.find('a:last');
|
||||
} else {
|
||||
// jump to previous topic in this section
|
||||
$prevLink = $prevListItem.find('a:eq(0)');
|
||||
}
|
||||
} else {
|
||||
// jump to this section's index page (if it exists)
|
||||
$prevLink = $selListItem.parents('li').find('a');
|
||||
}
|
||||
|
||||
if ($prevLink.length) {
|
||||
var prevHref = $prevLink.attr('href');
|
||||
if (prevHref == SITE_ROOT + 'index.html') {
|
||||
// Don't show Previous when it leads to the homepage
|
||||
$('.prev-page-link').hide();
|
||||
} else {
|
||||
$('.prev-page-link').attr('href', prevHref).show();
|
||||
}
|
||||
} else {
|
||||
$('.prev-page-link').hide();
|
||||
}
|
||||
|
||||
// set up next links
|
||||
var $nextLink = [];
|
||||
if ($selListItem.hasClass('nav-section')) {
|
||||
// we're on an index page, jump to the first topic
|
||||
$nextLink = $selListItem.find('ul').find('a:eq(0)')
|
||||
} else {
|
||||
// jump to the next topic in this section (if it exists)
|
||||
$nextLink = $selListItem.next('li').find('a:eq(0)');
|
||||
if (!$nextLink.length) {
|
||||
// no more topics in this section, jump to the first topic in the next section
|
||||
$nextLink = $selListItem.parents('li').next('li.nav-section').find('a:eq(0)');
|
||||
}
|
||||
}
|
||||
if ($nextLink.length) {
|
||||
$('.next-page-link').attr('href', $nextLink.attr('href')).show();
|
||||
} else {
|
||||
$('.next-page-link').hide();
|
||||
}
|
||||
}
|
||||
|
||||
// Set up expand/collapse behavior
|
||||
$('.nav-y li').has('ul').click(function() {
|
||||
if ($(this).hasClass('expanded')) {
|
||||
return;
|
||||
}
|
||||
|
||||
// hide other
|
||||
var $old = $('.nav-y li.expanded');
|
||||
if ($old.length) {
|
||||
var $oldUl = $old.children('ul');
|
||||
$oldUl.css('height', $oldUl.height() + 'px');
|
||||
window.setTimeout(function() {
|
||||
$oldUl
|
||||
.addClass('animate-height')
|
||||
.css('height', '');
|
||||
}, 0);
|
||||
$old.removeClass('expanded');
|
||||
}
|
||||
|
||||
// show me
|
||||
$(this).addClass('expanded');
|
||||
var $ul = $(this).children('ul');
|
||||
var expandedHeight = $ul.height();
|
||||
$ul
|
||||
.removeClass('animate-height')
|
||||
.css('height', 0);
|
||||
window.setTimeout(function() {
|
||||
$ul
|
||||
.addClass('animate-height')
|
||||
.css('height', expandedHeight + 'px');
|
||||
}, 0);
|
||||
});
|
||||
|
||||
// Stop expand/collapse behavior when clicking on nav section links (since we're navigating away
|
||||
// from the page)
|
||||
$('.nav-y li').has('ul').find('a:eq(0)').click(function(evt) {
|
||||
window.location.href = $(this).attr('href');
|
||||
return false;
|
||||
});
|
||||
|
||||
// Set up play-on-hover <video> tags.
|
||||
$('video.play-on-hover').bind('click', function(){
|
||||
$(this).get(0).load(); // in case the video isn't seekable
|
||||
$(this).get(0).play();
|
||||
});
|
||||
|
||||
// Set up tooltips
|
||||
var TOOLTIP_MARGIN = 10;
|
||||
$('acronym').each(function() {
|
||||
var $target = $(this);
|
||||
var $tooltip = $('<div>')
|
||||
.addClass('tooltip-box')
|
||||
.text($target.attr('title'))
|
||||
.hide()
|
||||
.appendTo('body');
|
||||
$target.removeAttr('title');
|
||||
|
||||
$target.hover(function() {
|
||||
// in
|
||||
var targetRect = $target.offset();
|
||||
targetRect.width = $target.width();
|
||||
targetRect.height = $target.height();
|
||||
|
||||
$tooltip.css({
|
||||
left: targetRect.left,
|
||||
top: targetRect.top + targetRect.height + TOOLTIP_MARGIN
|
||||
});
|
||||
$tooltip.addClass('below');
|
||||
$tooltip.show();
|
||||
}, function() {
|
||||
// out
|
||||
$tooltip.hide();
|
||||
});
|
||||
});
|
||||
|
||||
// Set up <h2> deeplinks
|
||||
$('h2').click(function() {
|
||||
var id = $(this).attr('id');
|
||||
if (id) {
|
||||
document.location.hash = id;
|
||||
}
|
||||
});
|
||||
|
||||
// Set up fixed navbar
|
||||
var navBarIsFixed = false;
|
||||
$(window).scroll(function() {
|
||||
var scrollTop = $(window).scrollTop();
|
||||
var navBarShouldBeFixed = (scrollTop > (100 - 40));
|
||||
if (navBarIsFixed != navBarShouldBeFixed) {
|
||||
if (navBarShouldBeFixed) {
|
||||
$('#nav')
|
||||
.addClass('fixed')
|
||||
.prependTo('#page-container');
|
||||
} else {
|
||||
$('#nav')
|
||||
.removeClass('fixed')
|
||||
.prependTo('#nav-container');
|
||||
}
|
||||
navBarIsFixed = navBarShouldBeFixed;
|
||||
}
|
||||
});
|
||||
});
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
After Width: | Height: | Size: 318 B |
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
|
@ -0,0 +1,679 @@
|
|||
<?cs include:"doctype.cs" ?>
|
||||
<?cs include:"macros.cs" ?>
|
||||
<?cs include:"macros_override.cs" ?>
|
||||
<html<?cs if:devsite ?> devsite<?cs /if ?>>
|
||||
<?cs include:"head_tag.cs" ?>
|
||||
<body class="gc-documentation <?cs if:(reference.gms || reference.gcm) ?>google<?cs /if ?>
|
||||
<?cs if:(guide||develop||training||reference||tools||sdk) ?>develop<?cs
|
||||
if:reference ?> reference<?cs
|
||||
/if ?><?cs
|
||||
elif:design ?>design<?cs
|
||||
elif:distribute ?>distribute<?cs
|
||||
/if ?>" itemscope itemtype="http://schema.org/Article">
|
||||
<div id="doc-api-level" class="<?cs var:class.since ?>" style="display:none"></div>
|
||||
<a name="top"></a>
|
||||
<?cs include:"header.cs" ?>
|
||||
|
||||
<div class="col-12" id="doc-col">
|
||||
|
||||
<div id="api-info-block">
|
||||
|
||||
<?cs # are there inherited members ?>
|
||||
<?cs each:cl=class.inherited ?>
|
||||
<?cs if:subcount(cl.methods) ?>
|
||||
<?cs set:inhmethods = #1 ?>
|
||||
<?cs /if ?>
|
||||
<?cs if:subcount(cl.constants) ?>
|
||||
<?cs set:inhconstants = #1 ?>
|
||||
<?cs /if ?>
|
||||
<?cs if:subcount(cl.fields) ?>
|
||||
<?cs set:inhfields = #1 ?>
|
||||
<?cs /if ?>
|
||||
<?cs if:subcount(cl.attrs) ?>
|
||||
<?cs set:inhattrs = #1 ?>
|
||||
<?cs /if ?>
|
||||
<?cs /each ?>
|
||||
|
||||
<div class="sum-details-links">
|
||||
<?cs if:inhattrs || inhconstants || inhfields || inhmethods || (!class.subclasses.hidden &&
|
||||
(subcount(class.subclasses.direct) || subcount(class.subclasses.indirect))) ?>
|
||||
Summary:
|
||||
<?cs if:subcount(class.inners) ?>
|
||||
<a href="#nestedclasses">Nested Classes</a>
|
||||
<?cs set:linkcount = #1 ?>
|
||||
<?cs /if ?>
|
||||
<?cs if:subcount(class.attrs) ?>
|
||||
<?cs if:linkcount ?>| <?cs /if ?><a href="#lattrs">XML Attrs</a>
|
||||
<?cs set:linkcount = #1 ?>
|
||||
<?cs /if ?>
|
||||
<?cs if:inhattrs ?>
|
||||
<?cs if:linkcount ?>| <?cs /if ?><a href="#inhattrs">Inherited XML Attrs</a>
|
||||
<?cs set:linkcount = #1 ?>
|
||||
<?cs /if ?>
|
||||
<?cs if:subcount(class.enumConstants) ?>
|
||||
<?cs if:linkcount ?>| <?cs /if ?><a href="#enumconstants">Enums</a>
|
||||
<?cs set:linkcount = #1 ?>
|
||||
<?cs /if ?>
|
||||
<?cs if:subcount(class.constants) ?>
|
||||
<?cs if:linkcount ?>| <?cs /if ?><a href="#constants">Constants</a>
|
||||
<?cs set:linkcount = #1 ?>
|
||||
<?cs /if ?>
|
||||
<?cs if:inhconstants ?>
|
||||
<?cs if:linkcount ?>| <?cs /if ?><a href="#inhconstants">Inherited Constants</a>
|
||||
<?cs set:linkcount = #1 ?>
|
||||
<?cs /if ?>
|
||||
<?cs if:subcount(class.fields) ?>
|
||||
<?cs if:linkcount ?>| <?cs /if ?><a href="#lfields">Fields</a>
|
||||
<?cs set:linkcount = #1 ?>
|
||||
<?cs /if ?>
|
||||
<?cs if:inhfields ?>
|
||||
<?cs if:linkcount ?>| <?cs /if ?><a href="#inhfields">Inherited Fields</a>
|
||||
<?cs set:linkcount = #1 ?>
|
||||
<?cs /if ?>
|
||||
<?cs if:subcount(class.ctors.public) ?>
|
||||
<?cs if:linkcount ?>| <?cs /if ?><a href="#pubctors">Ctors</a>
|
||||
<?cs set:linkcount = #1 ?>
|
||||
<?cs /if ?>
|
||||
<?cs if:subcount(class.ctors.protected) ?>
|
||||
<?cs if:linkcount ?>| <?cs /if ?><a href="#proctors">Protected Ctors</a>
|
||||
<?cs set:linkcount = #1 ?>
|
||||
<?cs /if ?>
|
||||
<?cs if:subcount(class.methods.public) ?>
|
||||
<?cs if:linkcount ?>| <?cs /if ?><a href="#pubmethods">Methods</a>
|
||||
<?cs set:linkcount = #1 ?>
|
||||
<?cs /if ?>
|
||||
<?cs if:subcount(class.methods.protected) ?>
|
||||
<?cs if:linkcount ?>| <?cs /if ?><a href="#promethods">Protected Methods</a>
|
||||
<?cs set:linkcount = #1 ?>
|
||||
<?cs /if ?>
|
||||
<?cs if:inhmethods ?>
|
||||
<?cs if:linkcount ?>| <?cs /if ?><a href="#inhmethods">Inherited Methods</a>
|
||||
<?cs /if ?>
|
||||
| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
|
||||
<?cs /if ?>
|
||||
</div><!-- end sum-details-links -->
|
||||
<div class="api-level">
|
||||
<?cs call:since_tags(class) ?><?cs
|
||||
if:class.deprecatedsince
|
||||
?><br>Deprecated since <a href="<?cs var:toroot ?>guide/topics/manifest/uses-sdk-element.html#ApiLevels"
|
||||
>API level <?cs var:class.deprecatedsince ?></a><?cs
|
||||
/if ?>
|
||||
<?cs call:federated_refs(class) ?>
|
||||
</div>
|
||||
</div><!-- end api-info-block -->
|
||||
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
|
||||
<div id="jd-header">
|
||||
<?cs var:class.scope ?>
|
||||
<?cs var:class.static ?>
|
||||
<?cs var:class.final ?>
|
||||
<?cs var:class.abstract ?>
|
||||
<?cs var:class.kind ?>
|
||||
<h1 itemprop="name"><?cs var:class.name ?></h1>
|
||||
|
||||
<?cs set:colspan = subcount(class.inheritance) ?>
|
||||
<?cs each:supr = class.inheritance ?>
|
||||
<?cs if:colspan == 2 ?>
|
||||
extends <?cs call:type_link(supr.short_class) ?><br/>
|
||||
<?cs /if ?>
|
||||
<?cs if:last(supr) && subcount(supr.interfaces) ?>
|
||||
implements
|
||||
<?cs each:t=supr.interfaces ?>
|
||||
<?cs call:type_link(t) ?>
|
||||
<?cs /each ?>
|
||||
<?cs /if ?>
|
||||
<?cs set:colspan = colspan-1 ?>
|
||||
<?cs /each ?>
|
||||
<?cs call:show_annotations_list(class) ?>
|
||||
|
||||
</div><!-- end header -->
|
||||
|
||||
<div id="naMessage"></div>
|
||||
|
||||
<div id="jd-content" class="api apilevel-<?cs var:class.since ?>">
|
||||
<table class="jd-inheritance-table">
|
||||
<?cs set:colspan = subcount(class.inheritance) ?>
|
||||
<?cs each:supr = class.inheritance ?>
|
||||
<tr>
|
||||
<?cs loop:i = 1, (subcount(class.inheritance)-colspan), 1 ?>
|
||||
<td class="jd-inheritance-space"> <?cs if:(subcount(class.inheritance)-colspan) == i ?> ↳<?cs /if ?></td>
|
||||
<?cs /loop ?>
|
||||
<td colspan="<?cs var:colspan ?>" class="jd-inheritance-class-cell"><?cs
|
||||
if:colspan == 1
|
||||
?><?cs call:class_name(class.qualifiedType) ?><?cs
|
||||
else
|
||||
?><?cs call:type_link(supr.class) ?><?cs
|
||||
/if ?></td>
|
||||
</tr>
|
||||
<?cs set:colspan = colspan-1 ?>
|
||||
<?cs /each ?>
|
||||
</table>
|
||||
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
|
||||
<?cs if:subcount(class.subclasses.direct) && !class.subclasses.hidden ?>
|
||||
<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
|
||||
<?cs call:expando_trigger("subclasses-direct", "closed") ?>Known Direct Subclasses
|
||||
<?cs call:expandable_class_list("subclasses-direct", class.subclasses.direct, "list") ?>
|
||||
</td></tr></table>
|
||||
<?cs /if ?>
|
||||
|
||||
<?cs if:subcount(class.subclasses.indirect) && !class.subclasses.hidden ?>
|
||||
<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
|
||||
<?cs call:expando_trigger("subclasses-indirect", "closed") ?>Known Indirect Subclasses
|
||||
<?cs call:expandable_class_list("subclasses-indirect", class.subclasses.indirect, "list") ?>
|
||||
</td></tr></table>
|
||||
<?cs /if ?>
|
||||
|
||||
<div class="jd-descr">
|
||||
<?cs call:deprecated_warning(class) ?>
|
||||
<?cs if:subcount(class.descr) ?>
|
||||
<h2>Class Overview</h2>
|
||||
<p itemprop="articleBody"><?cs call:tag_list(class.descr) ?></p>
|
||||
<?cs /if ?>
|
||||
|
||||
<?cs call:see_also_tags(class.seeAlso) ?>
|
||||
|
||||
</div><!-- jd-descr -->
|
||||
|
||||
|
||||
<?cs # summary macros ?>
|
||||
|
||||
<?cs def:write_method_summary(methods, included) ?>
|
||||
<?cs set:count = #1 ?>
|
||||
<?cs each:method = methods ?>
|
||||
<?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
|
||||
<tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:method.since ?>" >
|
||||
<td class="jd-typecol"><nobr>
|
||||
<?cs var:method.abstract ?>
|
||||
<?cs var:method.synchronized ?>
|
||||
<?cs var:method.final ?>
|
||||
<?cs var:method.static ?>
|
||||
<?cs call:type_link(method.generic) ?>
|
||||
<?cs call:type_link(method.returnType) ?></nobr>
|
||||
</td>
|
||||
<td class="jd-linkcol" width="100%"><nobr>
|
||||
<span class="sympad"><?cs call:cond_link(method.name, toroot, method.href, included) ?></span>(<?cs call:parameter_list(method.params) ?>)</nobr>
|
||||
<?cs if:subcount(method.shortDescr) || subcount(method.deprecated) ?>
|
||||
<div class="jd-descrdiv">
|
||||
<?cs call:short_descr(method) ?>
|
||||
<?cs call:show_annotations_list(method) ?>
|
||||
</div>
|
||||
<?cs /if ?>
|
||||
</td></tr>
|
||||
<?cs set:count = count + #1 ?>
|
||||
<?cs /each ?>
|
||||
<?cs /def ?>
|
||||
|
||||
<?cs def:write_field_summary(fields, included) ?>
|
||||
<?cs set:count = #1 ?>
|
||||
<?cs each:field=fields ?>
|
||||
<tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:field.since ?>" >
|
||||
<td class="jd-typecol"><nobr>
|
||||
<?cs var:field.scope ?>
|
||||
<?cs var:field.static ?>
|
||||
<?cs var:field.final ?>
|
||||
<?cs call:type_link(field.type) ?></nobr></td>
|
||||
<td class="jd-linkcol"><?cs call:cond_link(field.name, toroot, field.href, included) ?></td>
|
||||
<td class="jd-descrcol" width="100%">
|
||||
<?cs call:short_descr(field) ?>
|
||||
<?cs call:show_annotations_list(field) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?cs set:count = count + #1 ?>
|
||||
<?cs /each ?>
|
||||
<?cs /def ?>
|
||||
|
||||
<?cs def:write_constant_summary(fields, included) ?>
|
||||
<?cs set:count = #1 ?>
|
||||
<?cs each:field=fields ?>
|
||||
<tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:field.since ?>" >
|
||||
<td class="jd-typecol"><?cs call:type_link(field.type) ?></td>
|
||||
<td class="jd-linkcol"><?cs call:cond_link(field.name, toroot, field.href, included) ?></td>
|
||||
<td class="jd-descrcol" width="100%">
|
||||
<?cs call:short_descr(field) ?>
|
||||
<?cs call:show_annotations_list(field) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?cs set:count = count + #1 ?>
|
||||
<?cs /each ?>
|
||||
<?cs /def ?>
|
||||
|
||||
<?cs def:write_attr_summary(attrs, included) ?>
|
||||
<?cs set:count = #1 ?>
|
||||
<tr>
|
||||
<td><nobr><em>Attribute Name</em></nobr></td>
|
||||
<td><nobr><em>Related Method</em></nobr></td>
|
||||
<td><nobr><em>Description</em></nobr></td>
|
||||
</tr>
|
||||
<?cs each:attr=attrs ?>
|
||||
<tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:attr.since ?>" >
|
||||
<td class="jd-linkcol"><?cs if:included ?><a href="<?cs var:toroot ?><?cs var:attr.href ?>"><?cs /if ?><?cs var:attr.name ?><?cs if:included ?></a><?cs /if ?></td>
|
||||
<td class="jd-linkcol"><?cs each:m=attr.methods ?>
|
||||
<?cs call:cond_link(m.name, toroot, m.href, included) ?>
|
||||
<?cs /each ?>
|
||||
</td>
|
||||
<td class="jd-descrcol" width="100%">
|
||||
<?cs call:short_descr(attr) ?>
|
||||
<?cs call:show_annotations_list(attr) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?cs set:count = count + #1 ?>
|
||||
<?cs /each ?>
|
||||
<?cs /def ?>
|
||||
|
||||
<?cs def:write_inners_summary(classes) ?>
|
||||
<?cs set:count = #1 ?>
|
||||
<?cs each:cl=class.inners ?>
|
||||
<tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:cl.since ?>" >
|
||||
<td class="jd-typecol"><nobr>
|
||||
<?cs var:cl.scope ?>
|
||||
<?cs var:cl.static ?>
|
||||
<?cs var:cl.final ?>
|
||||
<?cs var:cl.abstract ?>
|
||||
<?cs var:cl.kind ?></nobr></td>
|
||||
<td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td>
|
||||
<td class="jd-descrcol" width="100%">
|
||||
<?cs call:short_descr(cl) ?>
|
||||
<?cs call:show_annotations_list(cl) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?cs set:count = count + #1 ?>
|
||||
<?cs /each ?>
|
||||
<?cs /def ?>
|
||||
|
||||
<?cs # end macros ?>
|
||||
|
||||
<div class="jd-descr">
|
||||
<?cs # make sure there's a summary view to display ?>
|
||||
<?cs if:subcount(class.inners)
|
||||
|| subcount(class.attrs)
|
||||
|| inhattrs
|
||||
|| subcount(class.enumConstants)
|
||||
|| subcount(class.constants)
|
||||
|| inhconstants
|
||||
|| subcount(class.fields)
|
||||
|| inhfields
|
||||
|| subcount(class.ctors.public)
|
||||
|| subcount(class.ctors.protected)
|
||||
|| subcount(class.methods.public)
|
||||
|| subcount(class.methods.protected)
|
||||
|| inhmethods ?>
|
||||
<h2>Summary</h2>
|
||||
|
||||
<?cs if:subcount(class.inners) ?>
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- ======== NESTED CLASS SUMMARY ======== -->
|
||||
<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
|
||||
<?cs call:write_inners_summary(class.inners) ?>
|
||||
<?cs /if ?>
|
||||
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<?cs if:subcount(class.attrs) ?>
|
||||
<!-- =========== FIELD SUMMARY =========== -->
|
||||
<table id="lattrs" class="jd-sumtable"><tr><th colspan="12">XML Attributes</th></tr>
|
||||
<?cs call:write_attr_summary(class.attrs, 1) ?>
|
||||
<?cs /if ?>
|
||||
|
||||
<?cs # if there are inherited attrs, write the table ?>
|
||||
<?cs if:inhattrs ?>
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- =========== FIELD SUMMARY =========== -->
|
||||
<table id="inhattrs" class="jd-sumtable"><tr><th>
|
||||
<a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
|
||||
<div style="clear:left;">Inherited XML Attributes</div></th></tr>
|
||||
<?cs each:cl=class.inherited ?>
|
||||
<?cs if:subcount(cl.attrs) ?>
|
||||
<tr class="api apilevel-<?cs var:cl.since ?>" >
|
||||
<td colspan="12">
|
||||
<?cs call:expando_trigger("inherited-attrs-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
|
||||
<?cs call:cond_link(cl.qualified, toroot, cl.link, cl.included) ?>
|
||||
<div id="inherited-attrs-<?cs var:cl.qualified ?>">
|
||||
<div id="inherited-attrs-<?cs var:cl.qualified ?>-list"
|
||||
class="jd-inheritedlinks">
|
||||
</div>
|
||||
<div id="inherited-attrs-<?cs var:cl.qualified ?>-summary" style="display: none;">
|
||||
<table class="jd-sumtable-expando">
|
||||
<?cs call:write_attr_summary(cl.attrs, cl.included) ?></table>
|
||||
</div>
|
||||
</div>
|
||||
</td></tr>
|
||||
<?cs /if ?>
|
||||
<?cs /each ?>
|
||||
</table>
|
||||
<?cs /if ?>
|
||||
|
||||
<?cs if:subcount(class.enumConstants) ?>
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- =========== ENUM CONSTANT SUMMARY =========== -->
|
||||
<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
|
||||
<?cs set:count = #1 ?>
|
||||
<?cs each:field=class.enumConstants ?>
|
||||
<tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:field.since ?>" >
|
||||
<td class="jd-descrcol"><?cs call:type_link(field.type) ?> </td>
|
||||
<td class="jd-linkcol"><?cs call:cond_link(field.name, toroot, field.href, cl.included) ?> </td>
|
||||
<td class="jd-descrcol" width="100%">
|
||||
<?cs call:short_descr(field) ?>
|
||||
<?cs call:show_annotations_list(field) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?cs set:count = count + #1 ?>
|
||||
<?cs /each ?>
|
||||
<?cs /if ?>
|
||||
|
||||
<?cs if:subcount(class.constants) ?>
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- =========== ENUM CONSTANT SUMMARY =========== -->
|
||||
<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
|
||||
<?cs call:write_constant_summary(class.constants, 1) ?>
|
||||
</table>
|
||||
<?cs /if ?>
|
||||
|
||||
<?cs # if there are inherited constants, write the table ?>
|
||||
<?cs if:inhconstants ?>
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- =========== ENUM CONSTANT SUMMARY =========== -->
|
||||
<table id="inhconstants" class="jd-sumtable"><tr><th>
|
||||
<a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
|
||||
<div style="clear:left;">Inherited Constants</div></th></tr>
|
||||
<?cs each:cl=class.inherited ?>
|
||||
<?cs if:subcount(cl.constants) ?>
|
||||
<tr class="api apilevel-<?cs var:cl.since ?>" >
|
||||
<td colspan="12">
|
||||
<?cs call:expando_trigger("inherited-constants-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
|
||||
<?cs call:cond_link(cl.qualified, toroot, cl.link, cl.included) ?>
|
||||
<div id="inherited-constants-<?cs var:cl.qualified ?>">
|
||||
<div id="inherited-constants-<?cs var:cl.qualified ?>-list"
|
||||
class="jd-inheritedlinks">
|
||||
</div>
|
||||
<div id="inherited-constants-<?cs var:cl.qualified ?>-summary" style="display: none;">
|
||||
<table class="jd-sumtable-expando">
|
||||
<?cs call:write_constant_summary(cl.constants, cl.included) ?></table>
|
||||
</div>
|
||||
</div>
|
||||
</td></tr>
|
||||
<?cs /if ?>
|
||||
<?cs /each ?>
|
||||
</table>
|
||||
<?cs /if ?>
|
||||
|
||||
<?cs if:subcount(class.fields) ?>
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- =========== FIELD SUMMARY =========== -->
|
||||
<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
|
||||
<?cs call:write_field_summary(class.fields, 1) ?>
|
||||
</table>
|
||||
<?cs /if ?>
|
||||
|
||||
<?cs # if there are inherited fields, write the table ?>
|
||||
<?cs if:inhfields ?>
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- =========== FIELD SUMMARY =========== -->
|
||||
<table id="inhfields" class="jd-sumtable"><tr><th>
|
||||
<a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
|
||||
<div style="clear:left;">Inherited Fields</div></th></tr>
|
||||
<?cs each:cl=class.inherited ?>
|
||||
<?cs if:subcount(cl.fields) ?>
|
||||
<tr class="api apilevel-<?cs var:cl.since ?>" >
|
||||
<td colspan="12">
|
||||
<?cs call:expando_trigger("inherited-fields-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
|
||||
<?cs call:cond_link(cl.qualified, toroot, cl.link, cl.included) ?>
|
||||
<div id="inherited-fields-<?cs var:cl.qualified ?>">
|
||||
<div id="inherited-fields-<?cs var:cl.qualified ?>-list"
|
||||
class="jd-inheritedlinks">
|
||||
</div>
|
||||
<div id="inherited-fields-<?cs var:cl.qualified ?>-summary" style="display: none;">
|
||||
<table class="jd-sumtable-expando">
|
||||
<?cs call:write_field_summary(cl.fields, cl.included) ?></table>
|
||||
</div>
|
||||
</div>
|
||||
</td></tr>
|
||||
<?cs /if ?>
|
||||
<?cs /each ?>
|
||||
</table>
|
||||
<?cs /if ?>
|
||||
|
||||
<?cs if:subcount(class.ctors.public) ?>
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||
<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
|
||||
<?cs call:write_method_summary(class.ctors.public, 1) ?>
|
||||
</table>
|
||||
<?cs /if ?>
|
||||
|
||||
<?cs if:subcount(class.ctors.protected) ?>
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||
<table id="proctors" class="jd-sumtable"><tr><th colspan="12">Protected Constructors</th></tr>
|
||||
<?cs call:write_method_summary(class.ctors.protected, 1) ?>
|
||||
</table>
|
||||
<?cs /if ?>
|
||||
|
||||
<?cs if:subcount(class.methods.public) ?>
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
|
||||
<?cs call:write_method_summary(class.methods.public, 1) ?>
|
||||
</table>
|
||||
<?cs /if ?>
|
||||
|
||||
<?cs if:subcount(class.methods.protected) ?>
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
|
||||
<?cs call:write_method_summary(class.methods.protected, 1) ?>
|
||||
</table>
|
||||
<?cs /if ?>
|
||||
|
||||
<?cs # if there are inherited methods, write the table ?>
|
||||
<?cs if:inhmethods ?>
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
<table id="inhmethods" class="jd-sumtable"><tr><th>
|
||||
<a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
|
||||
<div style="clear:left;">Inherited Methods</div></th></tr>
|
||||
<?cs each:cl=class.inherited ?>
|
||||
<?cs if:subcount(cl.methods) ?>
|
||||
<tr class="api apilevel-<?cs var:cl.since ?>" >
|
||||
<td colspan="12"><?cs call:expando_trigger("inherited-methods-"+cl.qualified, "closed") ?>
|
||||
From <?cs var:cl.kind ?>
|
||||
<?cs if:cl.included ?>
|
||||
<a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
|
||||
<?cs elif:cl.federated ?>
|
||||
<a href="<?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
|
||||
<?cs else ?>
|
||||
<?cs var:cl.qualified ?>
|
||||
<?cs /if ?>
|
||||
<div id="inherited-methods-<?cs var:cl.qualified ?>">
|
||||
<div id="inherited-methods-<?cs var:cl.qualified ?>-list"
|
||||
class="jd-inheritedlinks">
|
||||
</div>
|
||||
<div id="inherited-methods-<?cs var:cl.qualified ?>-summary" style="display: none;">
|
||||
<table class="jd-sumtable-expando">
|
||||
<?cs call:write_method_summary(cl.methods, cl.included) ?></table>
|
||||
</div>
|
||||
</div>
|
||||
</td></tr>
|
||||
<?cs /if ?>
|
||||
<?cs /each ?>
|
||||
</table>
|
||||
<?cs /if ?>
|
||||
<?cs /if ?>
|
||||
</div><!-- jd-descr (summary) -->
|
||||
|
||||
<!-- Details -->
|
||||
|
||||
<?cs def:write_field_details(fields) ?>
|
||||
<?cs each:field=fields ?>
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
|
||||
<A NAME="<?cs var:field.anchor ?>"></A>
|
||||
<?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
|
||||
<div class="jd-details api apilevel-<?cs var:field.since ?>">
|
||||
<h4 class="jd-details-title">
|
||||
<span class="normal">
|
||||
<?cs var:field.scope ?>
|
||||
<?cs var:field.static ?>
|
||||
<?cs var:field.final ?>
|
||||
<?cs call:type_link(field.type) ?>
|
||||
</span>
|
||||
<?cs var:field.name ?>
|
||||
</h4>
|
||||
<div class="api-level">
|
||||
<?cs call:since_tags(field) ?>
|
||||
<?cs call:federated_refs(field) ?>
|
||||
</div>
|
||||
<div class="jd-details-descr">
|
||||
<?cs call:show_annotations_list(field) ?>
|
||||
<?cs call:description(field) ?>
|
||||
<?cs if:subcount(field.constantValue) ?>
|
||||
<div class="jd-tagdata">
|
||||
<span class="jd-tagtitle">Constant Value: </span>
|
||||
<span>
|
||||
<?cs if:field.constantValue.isString ?>
|
||||
<?cs var:field.constantValue.str ?>
|
||||
<?cs else ?>
|
||||
<?cs var:field.constantValue.dec ?>
|
||||
(<?cs var:field.constantValue.hex ?>)
|
||||
<?cs /if ?>
|
||||
</span>
|
||||
</div>
|
||||
<?cs /if ?>
|
||||
</div>
|
||||
</div>
|
||||
<?cs /each ?>
|
||||
<?cs /def ?>
|
||||
|
||||
<?cs def:write_method_details(methods) ?>
|
||||
<?cs each:method=methods ?>
|
||||
<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
|
||||
<A NAME="<?cs var:method.anchor ?>"></A>
|
||||
<?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
|
||||
<div class="jd-details api apilevel-<?cs var:method.since ?>">
|
||||
<h4 class="jd-details-title">
|
||||
<span class="normal">
|
||||
<?cs var:method.scope ?>
|
||||
<?cs var:method.static ?>
|
||||
<?cs var:method.final ?>
|
||||
<?cs var:method.abstract ?>
|
||||
<?cs var:method.synchronized ?>
|
||||
<?cs call:type_link(method.returnType) ?>
|
||||
</span>
|
||||
<span class="sympad"><?cs var:method.name ?></span>
|
||||
<span class="normal">(<?cs call:parameter_list(method.params) ?>)</span>
|
||||
</h4>
|
||||
<div class="api-level">
|
||||
<div><?cs call:since_tags(method) ?></div>
|
||||
<?cs call:federated_refs(method) ?>
|
||||
</div>
|
||||
<div class="jd-details-descr">
|
||||
<?cs call:show_annotations_list(method) ?>
|
||||
<?cs call:description(method) ?>
|
||||
</div>
|
||||
</div>
|
||||
<?cs /each ?>
|
||||
<?cs /def ?>
|
||||
|
||||
<?cs def:write_attr_details(attrs) ?>
|
||||
<?cs each:attr=attrs ?>
|
||||
<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
|
||||
<A NAME="<?cs var:attr.anchor ?>"></A>
|
||||
<div class="jd-details">
|
||||
<h4 class="jd-details-title"><?cs var:attr.name ?>
|
||||
</h4>
|
||||
<div class="jd-details-descr">
|
||||
<?cs call:show_annotations_list(attr) ?>
|
||||
<?cs call:description(attr) ?>
|
||||
|
||||
<div class="jd-tagdata">
|
||||
<h5 class="jd-tagtitle">Related Methods</h5>
|
||||
<ul class="nolist">
|
||||
<?cs each:m=attr.methods ?>
|
||||
<li><a href="<?cs var:toroot ?><?cs var:m.href ?>"><?cs var:m.name ?></a></li>
|
||||
<?cs /each ?>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?cs /each ?>
|
||||
<?cs /def ?>
|
||||
|
||||
|
||||
<!-- XML Attributes -->
|
||||
<?cs if:subcount(class.attrs) ?>
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- ========= FIELD DETAIL ======== -->
|
||||
<h2>XML Attributes</h2>
|
||||
<?cs call:write_attr_details(class.attrs) ?>
|
||||
<?cs /if ?>
|
||||
|
||||
<!-- Enum Values -->
|
||||
<?cs if:subcount(class.enumConstants) ?>
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- ========= ENUM CONSTANTS DETAIL ======== -->
|
||||
<h2>Enum Values</h2>
|
||||
<?cs call:write_field_details(class.enumConstants) ?>
|
||||
<?cs /if ?>
|
||||
|
||||
<!-- Constants -->
|
||||
<?cs if:subcount(class.constants) ?>
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- ========= ENUM CONSTANTS DETAIL ======== -->
|
||||
<h2>Constants</h2>
|
||||
<?cs call:write_field_details(class.constants) ?>
|
||||
<?cs /if ?>
|
||||
|
||||
<!-- Fields -->
|
||||
<?cs if:subcount(class.fields) ?>
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- ========= FIELD DETAIL ======== -->
|
||||
<h2>Fields</h2>
|
||||
<?cs call:write_field_details(class.fields) ?>
|
||||
<?cs /if ?>
|
||||
|
||||
<!-- Public ctors -->
|
||||
<?cs if:subcount(class.ctors.public) ?>
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||
<h2>Public Constructors</h2>
|
||||
<?cs call:write_method_details(class.ctors.public) ?>
|
||||
<?cs /if ?>
|
||||
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||
<!-- Protected ctors -->
|
||||
<?cs if:subcount(class.ctors.protected) ?>
|
||||
<h2>Protected Constructors</h2>
|
||||
<?cs call:write_method_details(class.ctors.protected) ?>
|
||||
<?cs /if ?>
|
||||
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- ========= METHOD DETAIL ======== -->
|
||||
<!-- Public methdos -->
|
||||
<?cs if:subcount(class.methods.public) ?>
|
||||
<h2>Public Methods</h2>
|
||||
<?cs call:write_method_details(class.methods.public) ?>
|
||||
<?cs /if ?>
|
||||
|
||||
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- ========= METHOD DETAIL ======== -->
|
||||
<?cs if:subcount(class.methods.protected) ?>
|
||||
<h2>Protected Methods</h2>
|
||||
<?cs call:write_method_details(class.methods.protected) ?>
|
||||
<?cs /if ?>
|
||||
|
||||
<?cs # the next two lines must be exactly like this to be parsed by eclipse ?>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<A NAME="navbar_top"></A>
|
||||
|
||||
<?cs include:"footer.cs" ?>
|
||||
</div> <!-- jd-content -->
|
||||
|
||||
</div><!-- end doc-content -->
|
||||
|
||||
<?cs include:"trailer.cs" ?>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,53 @@
|
|||
<?cs include:"doctype.cs" ?>
|
||||
<?cs include:"macros.cs" ?>
|
||||
<?cs include:"macros_override.cs" ?>
|
||||
<html<?cs if:devsite ?> devsite<?cs /if ?>>
|
||||
<?cs include:"head_tag.cs" ?>
|
||||
<body class="gc-documentation <?cs if:(reference.gms || reference.gcm) ?>google<?cs /if ?>
|
||||
<?cs if:(guide||develop||training||reference||tools||sdk) ?>develop<?cs
|
||||
if:reference ?> reference<?cs
|
||||
/if ?><?cs
|
||||
elif:design ?>design<?cs
|
||||
elif:distribute ?>distribute<?cs
|
||||
/if ?>" itemscope itemtype="http://schema.org/Article">
|
||||
<a name="top"></a>
|
||||
<?cs include:"header.cs" ?>
|
||||
|
||||
<div class="col-12" id="doc-col">
|
||||
|
||||
<div id="jd-header">
|
||||
<h1><?cs var:page.title ?></h1>
|
||||
</div>
|
||||
|
||||
<div id="jd-content">
|
||||
<p>These are the CyanogenMod Platform API classes. See all <a href="packages.html">API packages</a>.</p>
|
||||
<div class="jd-letterlist"><?cs each:letter=docs.classes ?>
|
||||
<a href="#letter_<?cs name:letter ?>"><?cs name:letter ?></a> <?cs /each?>
|
||||
</div>
|
||||
|
||||
<?cs each:letter=docs.classes ?>
|
||||
<?cs set:count = #1 ?>
|
||||
<h2 id="letter_<?cs name:letter ?>"><?cs name:letter ?></h2>
|
||||
<table class="jd-sumtable">
|
||||
<?cs set:cur_row = #0 ?>
|
||||
<?cs each:cl = letter ?>
|
||||
<tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:cl.since ?>" >
|
||||
<td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td>
|
||||
<td class="jd-descrcol" width="100%">
|
||||
<?cs call:short_descr(cl) ?>
|
||||
<?cs call:show_annotations_list(cl) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?cs set:count = count + #1 ?>
|
||||
<?cs /each ?>
|
||||
</table>
|
||||
<?cs /each ?>
|
||||
|
||||
<?cs include:"footer.cs" ?>
|
||||
</div><!-- end jd-content -->
|
||||
</div><!-- end doc-content -->
|
||||
|
||||
<?cs include:"trailer.cs" ?>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,10 @@
|
|||
<?cs def:custom_masthead() ?>
|
||||
<div id="header">
|
||||
<div id="headerLeft">
|
||||
<a href="<?cs var:toroot ?>reference/packages.html" tabindex="-1"><img
|
||||
src="<?cs var:toroot ?>assets/cid_smart.png" alt="CID" width="50" height="50"/>
|
||||
<span id="masthead-title">CyanogenMod Platform SDK</span></a>
|
||||
</div>
|
||||
</div><!-- header --><?cs
|
||||
/def ?>
|
||||
|
|
@ -0,0 +1,516 @@
|
|||
<?cs
|
||||
def:fullpage() ?>
|
||||
<div id="body-content">
|
||||
<?cs /def ?>
|
||||
<?cs
|
||||
def:sdk_nav() ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
<div id="devdoc-nav" class="scroll-pane">
|
||||
|
||||
<?cs
|
||||
include:"../../../../frameworks/base/docs/html/sdk/sdk_toc.cs" ?>
|
||||
|
||||
|
||||
</div>
|
||||
</div> <!-- end side-nav -->
|
||||
<?cs /def ?><?cs
|
||||
|
||||
def:no_nav() ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<?cs /def ?><?cs
|
||||
|
||||
def:tools_nav() ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
<div id="devdoc-nav" class="scroll-pane">
|
||||
<?cs
|
||||
include:"../../../../frameworks/base/docs/html/tools/tools_toc.cs" ?>
|
||||
|
||||
|
||||
</div>
|
||||
</div> <!-- end side-nav -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
scrollIntoView("devdoc-nav");
|
||||
});
|
||||
</script>
|
||||
<?cs /def ?>
|
||||
<?cs
|
||||
def:training_nav() ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
<div id="devdoc-nav" class="scroll-pane">
|
||||
|
||||
|
||||
<?cs
|
||||
include:"../../../../frameworks/base/docs/html/training/training_toc.cs" ?>
|
||||
|
||||
|
||||
</div>
|
||||
</div> <!-- end side-nav -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
scrollIntoView("devdoc-nav");
|
||||
});
|
||||
</script>
|
||||
<?cs /def ?><?cs
|
||||
|
||||
def:googleplay_nav() ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
<div id="devdoc-nav" class="scroll-pane">
|
||||
<?cs include:"../../../../frameworks/base/docs/html/distribute/googleplay/googleplay_toc.cs" ?>
|
||||
</div>
|
||||
</div> <!-- end side-nav -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
scrollIntoView("devdoc-nav");
|
||||
});
|
||||
</script>
|
||||
<?cs /def ?><?cs
|
||||
|
||||
def:essentials_nav() ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
<div id="devdoc-nav" class="scroll-pane">
|
||||
<?cs include:"../../../../frameworks/base/docs/html/distribute/essentials/essentials_toc.cs" ?>
|
||||
</div>
|
||||
</div> <!-- end side-nav -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
scrollIntoView("devdoc-nav");
|
||||
});
|
||||
</script>
|
||||
<?cs /def ?><?cs
|
||||
|
||||
def:users_nav() ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
<div id="devdoc-nav" class="scroll-pane">
|
||||
<?cs include:"../../../../frameworks/base/docs/html/distribute/users/users_toc.cs" ?>
|
||||
</div>
|
||||
</div> <!-- end side-nav -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
scrollIntoView("devdoc-nav");
|
||||
});
|
||||
</script>
|
||||
<?cs /def ?><?cs
|
||||
|
||||
def:engage_nav() ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
<div id="devdoc-nav" class="scroll-pane">
|
||||
<?cs include:"../../../../frameworks/base/docs/html/distribute/engage/engage_toc.cs" ?>
|
||||
</div>
|
||||
</div> <!-- end side-nav -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
scrollIntoView("devdoc-nav");
|
||||
});
|
||||
</script>
|
||||
<?cs /def ?><?cs
|
||||
|
||||
def:analyze_nav() ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
<div id="devdoc-nav" class="scroll-pane">
|
||||
<?cs include:"../../../../frameworks/base/docs/html/distribute/analyze/analyze_toc.cs" ?>
|
||||
</div>
|
||||
</div> <!-- end side-nav -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
scrollIntoView("devdoc-nav");
|
||||
});
|
||||
</script>
|
||||
<?cs /def ?><?cs
|
||||
|
||||
def:monetize_nav() ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
<div id="devdoc-nav" class="scroll-pane">
|
||||
<?cs include:"../../../../frameworks/base/docs/html/distribute/monetize/monetize_toc.cs" ?>
|
||||
</div>
|
||||
</div> <!-- end side-nav -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
scrollIntoView("devdoc-nav");
|
||||
});
|
||||
</script>
|
||||
<?cs /def ?><?cs
|
||||
|
||||
def:disttools_nav() ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
<div id="devdoc-nav" class="scroll-pane">
|
||||
<?cs include:"../../../../frameworks/base/docs/html/distribute/tools/disttools_toc.cs" ?>
|
||||
</div>
|
||||
</div> <!-- end side-nav -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
scrollIntoView("devdoc-nav");
|
||||
});
|
||||
</script>
|
||||
<?cs /def ?><?cs
|
||||
|
||||
def:stories_nav() ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
<div id="devdoc-nav" class="scroll-pane">
|
||||
<?cs include:"../../../../frameworks/base/docs/html/distribute/stories/stories_toc.cs" ?>
|
||||
</div>
|
||||
</div> <!-- end side-nav -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
scrollIntoView("devdoc-nav");
|
||||
});
|
||||
</script>
|
||||
<?cs /def ?><?cs
|
||||
|
||||
def:guide_nav() ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
<div id="devdoc-nav" class="scroll-pane">
|
||||
|
||||
<?cs
|
||||
include:"../../../../frameworks/base/docs/html/guide/guide_toc.cs" ?>
|
||||
|
||||
|
||||
</div>
|
||||
</div> <!-- end side-nav -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
scrollIntoView("devdoc-nav");
|
||||
});
|
||||
</script>
|
||||
<?cs /def ?>
|
||||
<?cs
|
||||
def:design_nav() ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
<div id="devdoc-nav" class="scroll-pane">
|
||||
|
||||
|
||||
<?cs
|
||||
include:"../../../../frameworks/base/docs/html/design/design_toc.cs" ?>
|
||||
|
||||
|
||||
</div>
|
||||
</div> <!-- end side-nav -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
scrollIntoView("devdoc-nav");
|
||||
});
|
||||
</script>
|
||||
<?cs /def ?>
|
||||
<?cs
|
||||
def:distribute_nav() ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
<div id="devdoc-nav" class="scroll-pane">
|
||||
|
||||
<?cs
|
||||
include:"../../../../frameworks/base/docs/html/distribute/distribute_toc.cs" ?>
|
||||
|
||||
|
||||
</div>
|
||||
</div> <!-- end side-nav -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
scrollIntoView("devdoc-nav");
|
||||
});
|
||||
</script>
|
||||
<?cs /def ?>
|
||||
|
||||
<?cs
|
||||
def:samples_nav() ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
<div id="devdoc-nav" class="scroll-pane">
|
||||
|
||||
<?cs
|
||||
include:"../../../../frameworks/base/docs/html/samples/samples_toc.cs" ?>
|
||||
|
||||
</div>
|
||||
|
||||
</div> <!-- end side-nav -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
scrollIntoView("devdoc-nav");
|
||||
});
|
||||
</script>
|
||||
<?cs /def ?>
|
||||
|
||||
<?cs
|
||||
def:google_nav() ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
<div id="devdoc-nav" class="scroll-pane">
|
||||
|
||||
<?cs
|
||||
include:"../../../../frameworks/base/docs/html/google/google_toc.cs" ?>
|
||||
|
||||
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
showGoogleRefTree();
|
||||
|
||||
</script>
|
||||
</div> <!-- end side-nav -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
scrollIntoView("devdoc-nav");
|
||||
});
|
||||
</script>
|
||||
<?cs /def ?>
|
||||
|
||||
<?cs
|
||||
def:about_nav() ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
<div id="devdoc-nav" class="scroll-pane">
|
||||
|
||||
<?cs
|
||||
include:"../../../../frameworks/base/docs/html/about/about_toc.cs" ?>
|
||||
|
||||
|
||||
</div>
|
||||
</div> <!-- end side-nav -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
scrollIntoView("devdoc-nav");
|
||||
});
|
||||
</script>
|
||||
<?cs /def ?>
|
||||
|
||||
|
||||
<?cs
|
||||
def:wear_nav() ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
<div id="devdoc-nav" class="scroll-pane">
|
||||
|
||||
<?cs
|
||||
include:"../../../../frameworks/base/docs/html/wear/wear_toc.cs" ?>
|
||||
|
||||
|
||||
</div>
|
||||
</div> <!-- end side-nav -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
scrollIntoView("devdoc-nav");
|
||||
});
|
||||
</script>
|
||||
<?cs /def ?>
|
||||
|
||||
<?cs
|
||||
def:preview_nav() ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
<div id="devdoc-nav" class="scroll-pane">
|
||||
<?cs
|
||||
include:"../../../../frameworks/base/docs/html/preview/preview_toc.cs" ?>
|
||||
</div>
|
||||
</div> <!-- end side-nav -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
scrollIntoView("devdoc-nav");
|
||||
});
|
||||
</script>
|
||||
<?cs /def ?>
|
||||
|
||||
<?cs # The default side navigation for the reference docs ?><?cs
|
||||
def:default_left_nav() ?>
|
||||
<?cs if:reference.gcm || reference.gms ?>
|
||||
<?cs call:google_nav() ?>
|
||||
<?cs else ?>
|
||||
<div class="wrap clearfix" id="body-content">
|
||||
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
|
||||
<div id="devdoc-nav">
|
||||
<div id="api-nav-header">
|
||||
<div id="api-level-toggle">
|
||||
<label for="apiLevelCheckbox" class="disabled"
|
||||
title="Select your target API level to dim unavailable APIs">API level: </label>
|
||||
<div class="select-wrapper">
|
||||
<select id="apiLevelSelector">
|
||||
<!-- option elements added by buildApiLevelSelector() -->
|
||||
</select>
|
||||
</div>
|
||||
</div><!-- end toggle -->
|
||||
<div id="api-nav-title">CyanogenMod APIs</div>
|
||||
</div><!-- end nav header -->
|
||||
<script>
|
||||
var SINCE_DATA = [ <?cs
|
||||
each:since = since ?>'<?cs
|
||||
var:since.name ?>'<?cs
|
||||
if:!last(since) ?>, <?cs /if ?><?cs
|
||||
/each
|
||||
?> ];
|
||||
buildApiLevelSelector();
|
||||
</script>
|
||||
|
||||
<div id="swapper">
|
||||
<div id="nav-panels">
|
||||
<div id="resize-packages-nav">
|
||||
<div id="packages-nav" class="scroll-pane">
|
||||
|
||||
<ul>
|
||||
<?cs call:package_link_list(docs.packages) ?>
|
||||
</ul><br/>
|
||||
|
||||
</div> <!-- end packages-nav -->
|
||||
</div> <!-- end resize-packages -->
|
||||
<div id="classes-nav" class="scroll-pane">
|
||||
|
||||
|
||||
<?cs
|
||||
if:subcount(class.package) ?>
|
||||
<ul>
|
||||
<?cs call:list("Annotations", class.package.annotations) ?>
|
||||
<?cs call:list("Interfaces", class.package.interfaces) ?>
|
||||
<?cs call:list("Classes", class.package.classes) ?>
|
||||
<?cs call:list("Enums", class.package.enums) ?>
|
||||
<?cs call:list("Exceptions", class.package.exceptions) ?>
|
||||
<?cs call:list("Errors", class.package.errors) ?>
|
||||
</ul><?cs
|
||||
elif:subcount(package) ?>
|
||||
<ul>
|
||||
<?cs call:class_link_list("Annotations", package.annotations) ?>
|
||||
<?cs call:class_link_list("Interfaces", package.interfaces) ?>
|
||||
<?cs call:class_link_list("Classes", package.classes) ?>
|
||||
<?cs call:class_link_list("Enums", package.enums) ?>
|
||||
<?cs call:class_link_list("Exceptions", package.exceptions) ?>
|
||||
<?cs call:class_link_list("Errors", package.errors) ?>
|
||||
</ul><?cs
|
||||
else ?>
|
||||
<p style="padding:10px">Select a package to view its members</p><?cs
|
||||
/if ?><br/>
|
||||
|
||||
|
||||
</div><!-- end classes -->
|
||||
</div><!-- end nav-panels -->
|
||||
<div id="nav-tree" style="display:none" class="scroll-pane">
|
||||
<div id="tree-list"></div>
|
||||
</div><!-- end nav-tree -->
|
||||
</div><!-- end swapper -->
|
||||
<div id="nav-swap">
|
||||
<a class="fullscreen">fullscreen</a>
|
||||
<a href='#' onclick='swapNav();return false;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>
|
||||
</div>
|
||||
</div> <!-- end devdoc-nav -->
|
||||
</div> <!-- end side-nav -->
|
||||
<script type="text/javascript">
|
||||
// init fullscreen based on user pref
|
||||
var fullscreen = readCookie("fullscreen");
|
||||
if (fullscreen != 0) {
|
||||
if (fullscreen == "false") {
|
||||
toggleFullscreen(false);
|
||||
} else {
|
||||
toggleFullscreen(true);
|
||||
}
|
||||
}
|
||||
// init nav version for mobile
|
||||
if (isMobile) {
|
||||
swapNav(); // tree view should be used on mobile
|
||||
$('#nav-swap').hide();
|
||||
} else {
|
||||
chooseDefaultNav();
|
||||
if ($("#nav-tree").is(':visible')) {
|
||||
init_default_navtree("<?cs var:toroot ?>");
|
||||
}
|
||||
}
|
||||
// scroll the selected page into view
|
||||
$(document).ready(function() {
|
||||
scrollIntoView("packages-nav");
|
||||
scrollIntoView("classes-nav");
|
||||
});
|
||||
</script>
|
||||
<?cs /if ?>
|
||||
<?cs
|
||||
/def ?>
|
||||
|
||||
<?cs
|
||||
def:custom_left_nav() ?><?cs
|
||||
if:fullpage ?><?cs
|
||||
call:fullpage() ?><?cs
|
||||
elif:nonavpage ?><?cs
|
||||
call:no_nav() ?><?cs
|
||||
elif:guide ?><?cs
|
||||
call:guide_nav() ?><?cs
|
||||
elif:design ?><?cs
|
||||
call:design_nav() ?><?cs
|
||||
elif:training ?><?cs
|
||||
call:training_nav() ?><?cs
|
||||
elif:tools ?><?cs
|
||||
call:tools_nav() ?><?cs
|
||||
elif:google ?><?cs
|
||||
call:google_nav() ?><?cs
|
||||
elif:samples ?><?cs
|
||||
call:samples_nav() ?><?cs
|
||||
elif:distribute ?><?cs
|
||||
if:googleplay ?><?cs
|
||||
call:googleplay_nav() ?><?cs
|
||||
elif:essentials ?><?cs
|
||||
call:essentials_nav() ?><?cs
|
||||
elif:users ?><?cs
|
||||
call:users_nav() ?><?cs
|
||||
elif:engage ?><?cs
|
||||
call:engage_nav() ?><?cs
|
||||
elif:monetize ?><?cs
|
||||
call:monetize_nav() ?><?cs
|
||||
elif:analyze ?><?cs
|
||||
call:analyze_nav() ?><?cs
|
||||
elif:disttools ?><?cs
|
||||
call:disttools_nav() ?><?cs
|
||||
elif:stories ?><?cs
|
||||
call:stories_nav() ?><?cs
|
||||
/if ?><?cs
|
||||
elif:about ?><?cs
|
||||
call:about_nav() ?><?cs
|
||||
elif:distribute ?><?cs
|
||||
call:distribute_nav() ?><?cs
|
||||
elif:wear ?><?cs
|
||||
call:wear_nav() ?><?cs
|
||||
elif:preview ?><?cs
|
||||
call:preview_nav() ?><?cs
|
||||
else ?><?cs
|
||||
call:default_left_nav() ?> <?cs
|
||||
/if ?><?cs
|
||||
/def ?>
|
||||
|
||||
<?cs # appears at the bottom of every page ?><?cs
|
||||
def:custom_cc_copyright() ?>
|
||||
Except as noted, this content is
|
||||
licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
|
||||
Creative Commons Attribution 2.5</a>. For details and
|
||||
restrictions, see the <a href="<?cs var:toroot ?>license.html">Content
|
||||
License</a>.<?cs
|
||||
/def ?>
|
||||
|
||||
<?cs
|
||||
def:custom_copyright() ?>
|
||||
Except as noted, this content is licensed under <a
|
||||
href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
|
||||
For details and restrictions, see the <a href="<?cs var:toroot ?>license.html">
|
||||
Content License</a>.<?cs
|
||||
/def ?>
|
||||
|
||||
<?cs
|
||||
def:custom_footerlinks() ?>
|
||||
<p>
|
||||
<a href="<?cs var:toroot ?>about/index.html">About Android</a> |
|
||||
<a href="<?cs var:toroot ?>legal.html">Legal</a> |
|
||||
<a href="<?cs var:toroot ?>support.html">Support</a>
|
||||
</p><?cs
|
||||
/def ?>
|
||||
|
||||
<?cs # appears on the right side of the blue bar at the bottom off every page ?><?cs
|
||||
def:custom_buildinfo() ?><?cs
|
||||
if:!google && !reference.gcm && !reference.gms ?>
|
||||
Android <?cs var:sdk.version ?> r<?cs var:sdk.rel.id ?> — <?cs
|
||||
/if ?>
|
||||
<script src="<?cs var:toroot ?>timestamp.js" type="text/javascript"></script>
|
||||
<script>document.write(BUILD_TIMESTAMP)</script>
|
||||
<?cs /def ?>
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
<head>
|
||||
<?cs
|
||||
####### If building devsite, add some meta data needed for when generating the top nav ######### ?>
|
||||
<?cs
|
||||
if:devsite ?><?cs
|
||||
if:guide||develop||training||reference||tools||sdk||google||samples
|
||||
?><meta name="top_category" value="develop" /><?cs
|
||||
elif:google
|
||||
?><meta name="top_category" value="google" /><?cs
|
||||
elif:reference && !(reference.gms || reference.gcm)
|
||||
?><meta name="top_category" value="css-fullscreen" /><?cs
|
||||
/if ?>
|
||||
<?cs
|
||||
/if
|
||||
?><?cs
|
||||
# END if/else devsite ?>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta name="viewport" content="width=<?cs
|
||||
if:page.viewport_width ?><?cs
|
||||
var:page.viewport_width ?><?cs
|
||||
else ?>device-width<?cs /if ?>" />
|
||||
<?cs
|
||||
if:page.metaDescription ?>
|
||||
<meta name="Description" content="<?cs var:page.metaDescription ?>"><?cs
|
||||
/if ?>
|
||||
<link rel="shortcut icon" type="image/x-icon" href="<?cs var:toroot ?>favicon.ico" />
|
||||
<title><?cs
|
||||
if:page.title ?><?cs
|
||||
var:page.title ?> | <?cs
|
||||
/if ?>Android Developers</title>
|
||||
|
||||
<!-- STYLESHEETS -->
|
||||
<link rel="stylesheet"
|
||||
href="<?cs
|
||||
if:android.whichdoc != 'online' ?>http:<?cs
|
||||
/if ?>//fonts.googleapis.com/css?family=Roboto+Condensed">
|
||||
<link rel="stylesheet" href="<?cs
|
||||
if:android.whichdoc != 'online' ?>http:<?cs
|
||||
/if ?>//fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold"
|
||||
title="roboto">
|
||||
<link href="<?cs var:toroot ?>assets/css/default.css?v=5" rel="stylesheet" type="text/css">
|
||||
|
||||
<?cs if:reference && !(reference.gms || reference.gcm || preview) ?>
|
||||
<!-- FULLSCREEN STYLESHEET -->
|
||||
<link href="<?cs var:toroot ?>assets/css/fullscreen.css" rel="stylesheet" class="fullscreen"
|
||||
type="text/css">
|
||||
<?cs /if ?>
|
||||
|
||||
<!-- JAVASCRIPT -->
|
||||
<script src="<?cs if:android.whichdoc != 'online' ?>http:<?cs /if ?>//www.google.com/jsapi" type="text/javascript"></script>
|
||||
<?cs
|
||||
if:devsite
|
||||
?><script src="<?cs var:toroot ?>_static/js/android_3p-bundle.js" type="text/javascript"></script><?cs
|
||||
else
|
||||
?><script src="<?cs var:toroot ?>assets/js/android_3p-bundle.js" type="text/javascript"></script><?cs
|
||||
/if ?><?cs
|
||||
if:page.customHeadTag ?>
|
||||
<?cs var:page.customHeadTag ?><?cs
|
||||
/if ?>
|
||||
<script type="text/javascript">
|
||||
var toRoot = "<?cs var:toroot ?>";
|
||||
var metaTags = [<?cs var:meta.tags ?>];
|
||||
var devsite = <?cs if:devsite ?>true<?cs else ?>false<?cs /if ?>;
|
||||
</script>
|
||||
<script src="<?cs var:toroot ?>assets/js/docs.js?v=3" type="text/javascript"></script>
|
||||
|
||||
<?cs if:helpoutsWidget ?>
|
||||
<script type="text/javascript" src="https://helpouts.google.com/ps/res/embed.js" defer async
|
||||
data-helpouts-embed data-helpouts-vertical="programming"
|
||||
data-helpouts-tags="<?cs var:page.tags ?>" data-helpouts-prefix="android"
|
||||
data-helpouts-standalone="true"></script>
|
||||
<?cs /if ?>
|
||||
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', 'UA-5831155-1', 'android.com');
|
||||
ga('create', 'UA-49880327-2', 'android.com', {'name': 'universal'}); // New tracker);
|
||||
ga('send', 'pageview');
|
||||
ga('universal.send', 'pageview'); // Send page view for new tracker.
|
||||
</script>
|
||||
|
||||
</head>
|
|
@ -0,0 +1,36 @@
|
|||
<?cs # Create a comma separated list of annotations on obj that were in showAnnotations in Doclava ?>
|
||||
<?cs # pre is an HTML string to start the list, post is an HTML string to close the list ?>
|
||||
<?cs # for example call:show_annotations_list(cl, "<td>Annotations: ", "</td>") ?>
|
||||
<?cs # if obj has nothing on obj.showAnnotations, nothing will be output ?>
|
||||
<?cs def:show_annotations_list(obj) ?>
|
||||
<?cs each:anno = obj.showAnnotations ?>
|
||||
<?cs if:first(anno) ?>
|
||||
<span class='annotation-message'>
|
||||
Included in documentation by the annotations:
|
||||
<?cs /if ?>
|
||||
@<?cs var:anno.type.label ?>
|
||||
<?cs if:last(anno) == 0 ?>
|
||||
,
|
||||
<?cs /if ?>
|
||||
<?cs if:last(anno)?>
|
||||
</span>
|
||||
<?cs /if ?>
|
||||
<?cs /each ?>
|
||||
<?cs /def ?>
|
||||
|
||||
<?cs # Override default class_link_table to display annotations ?>
|
||||
<?cs def:class_link_table(classes) ?>
|
||||
<?cs set:count = #1 ?>
|
||||
<table class="jd-sumtable-expando">
|
||||
<?cs each:cl=classes ?>
|
||||
<tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:cl.type.since ?>" >
|
||||
<td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td>
|
||||
<td class="jd-descrcol" width="100%">
|
||||
<?cs call:short_descr(cl) ?>
|
||||
<?cs call:show_annotations_list(cl) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?cs set:count = count + #1 ?>
|
||||
<?cs /each ?>
|
||||
</table>
|
||||
<?cs /def ?>
|
|
@ -0,0 +1,65 @@
|
|||
<?cs include:"doctype.cs" ?>
|
||||
<?cs include:"macros.cs" ?>
|
||||
<?cs include:"macros_override.cs" ?>
|
||||
<html<?cs if:devsite ?> devsite<?cs /if ?>>
|
||||
<?cs include:"head_tag.cs" ?>
|
||||
|
||||
<body class="gc-documentation <?cs if:(reference.gms || reference.gcm) ?>google<?cs /if ?>
|
||||
<?cs if:(guide||develop||training||reference||tools||sdk) ?>develop<?cs
|
||||
if:reference ?> reference<?cs
|
||||
/if ?><?cs
|
||||
elif:design ?>design<?cs
|
||||
elif:distribute ?>distribute<?cs
|
||||
/if ?>">
|
||||
<div id="doc-api-level" class="<?cs var:package.since ?>" style="display:none"></div>
|
||||
<a name="top"></a>
|
||||
<?cs include:"header.cs" ?>
|
||||
|
||||
<div class="col-12" id="doc-col">
|
||||
|
||||
<div id="api-info-block">
|
||||
<div class="api-level">
|
||||
<?cs call:since_tags(package) ?>
|
||||
<?cs call:federated_refs(package) ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="jd-header">
|
||||
package
|
||||
<h1><?cs var:package.name ?></h1>
|
||||
</div><!-- end header -->
|
||||
|
||||
<div id="naMessage"></div>
|
||||
|
||||
<div id="jd-content" class="api apilevel-<?cs var:package.since ?>">
|
||||
|
||||
<?cs if:subcount(package.descr) ?>
|
||||
<div class="jd-descr">
|
||||
<?cs call:tag_list(package.descr) ?>
|
||||
</div>
|
||||
<?cs /if ?>
|
||||
|
||||
<?cs def:class_table(label, classes) ?>
|
||||
<?cs if:subcount(classes) ?>
|
||||
<h2><?cs var:label ?></h2>
|
||||
<div class="jd-sumtable">
|
||||
<?cs call:class_link_table(classes) ?>
|
||||
</div>
|
||||
<?cs /if ?>
|
||||
<?cs /def ?>
|
||||
|
||||
<?cs call:class_table("Annotations", package.annotations) ?>
|
||||
<?cs call:class_table("Interfaces", package.interfaces) ?>
|
||||
<?cs call:class_table("Classes", package.classes) ?>
|
||||
<?cs call:class_table("Enums", package.enums) ?>
|
||||
<?cs call:class_table("Exceptions", package.exceptions) ?>
|
||||
<?cs call:class_table("Errors", package.errors) ?>
|
||||
|
||||
<?cs include:"footer.cs" ?>
|
||||
</div><!-- end jd-content -->
|
||||
</div><!-- doc-content -->
|
||||
|
||||
<?cs include:"trailer.cs" ?>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,45 @@
|
|||
<?cs include:"doctype.cs" ?>
|
||||
<?cs include:"macros.cs" ?>
|
||||
<html<?cs if:devsite ?> devsite<?cs /if ?>>
|
||||
<?cs include:"head_tag.cs" ?>
|
||||
<body class="gc-documentation <?cs if:(reference.gms || reference.gcm) ?>google<?cs /if ?>
|
||||
<?cs if:(guide||develop||training||reference||tools||sdk) ?>develop<?cs
|
||||
if:reference ?> reference<?cs
|
||||
/if ?><?cs
|
||||
elif:design ?>design<?cs
|
||||
elif:distribute ?>distribute<?cs
|
||||
/if ?>">
|
||||
<a name="top"></a>
|
||||
<?cs include:"header.cs" ?>
|
||||
|
||||
<div class="col-12" id="doc-col">
|
||||
|
||||
<div id="jd-header">
|
||||
<h1><?cs var:page.title ?></h1>
|
||||
</div>
|
||||
|
||||
<div id="jd-content">
|
||||
|
||||
<div class="jd-descr">
|
||||
<p><?cs call:tag_list(root.descr) ?></p>
|
||||
</div>
|
||||
|
||||
<?cs set:count = #1 ?>
|
||||
<table class="jd-sumtable">
|
||||
<?cs each:pkg = docs.packages ?>
|
||||
<tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:pkg.since ?>" >
|
||||
<td class="jd-linkcol"><?cs call:package_link(pkg) ?></td>
|
||||
<td class="jd-descrcol" width="100%"><?cs call:tag_list(pkg.shortDescr) ?></td>
|
||||
</tr>
|
||||
<?cs set:count = count + #1 ?>
|
||||
<?cs /each ?>
|
||||
</table>
|
||||
|
||||
<?cs include:"footer.cs" ?>
|
||||
</div><!-- end jd-content -->
|
||||
</div> <!-- end doc-content -->
|
||||
|
||||
<?cs include:"trailer.cs" ?>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1 @@
|
|||
var BUILD_TIMESTAMP = "<?cs var:page.now ?>";
|
|
@ -1,3 +0,0 @@
|
|||
# CDMA APN list
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/replicant/prebuilt/common/etc/apns-conf-cdma.xml:system/etc/apns-conf.xml
|
|
@ -9,30 +9,35 @@ UI_PATH := vendor/replicant/prebuilt/common/media/audio/ui
|
|||
|
||||
# Alarms
|
||||
PRODUCT_COPY_FILES += \
|
||||
$(ALARM_PATH)/CyanAlarm.ogg:system/media/audio/alarms/CyanAlarm.ogg \
|
||||
$(ALARM_PATH)/NuclearLaunch.ogg:system/media/audio/alarms/NuclearLaunch.ogg
|
||||
$(ALARM_PATH)/CyanAlarm.ogg:system/media/audio/alarms/CyanAlarm.ogg \
|
||||
$(ALARM_PATH)/NuclearLaunch.ogg:system/media/audio/alarms/NuclearLaunch.ogg
|
||||
|
||||
# Notifications
|
||||
PRODUCT_COPY_FILES += \
|
||||
$(NOTIFICATION_PATH)/CyanMail.ogg:system/media/audio/notifications/CyanMail.ogg \
|
||||
$(NOTIFICATION_PATH)/CyanMessage.ogg:system/media/audio/notifications/CyanMessage.ogg \
|
||||
$(NOTIFICATION_PATH)/CyanPing.ogg:system/media/audio/notifications/CyanPing.ogg \
|
||||
$(NOTIFICATION_PATH)/Doink.ogg:system/media/audio/notifications/Doink.ogg \
|
||||
$(NOTIFICATION_PATH)/Laser.ogg:system/media/audio/notifications/Laser.ogg \
|
||||
$(NOTIFICATION_PATH)/Naughty.ogg:system/media/audio/notifications/Naughty.ogg \
|
||||
$(NOTIFICATION_PATH)/Pong.ogg:system/media/audio/notifications/Pong.ogg \
|
||||
$(NOTIFICATION_PATH)/Rang.ogg:system/media/audio/notifications/Rang.ogg \
|
||||
$(NOTIFICATION_PATH)/Stone.ogg:system/media/audio/notifications/Stone.ogg
|
||||
$(NOTIFICATION_PATH)/CyanDoink.ogg:system/media/audio/notifications/CyanDoink.ogg \
|
||||
$(NOTIFICATION_PATH)/CyanMail.ogg:system/media/audio/notifications/CyanMail.ogg \
|
||||
$(NOTIFICATION_PATH)/CyanMessage.ogg:system/media/audio/notifications/CyanMessage.ogg \
|
||||
$(NOTIFICATION_PATH)/Laser.ogg:system/media/audio/notifications/Laser.ogg \
|
||||
$(NOTIFICATION_PATH)/Naughty.ogg:system/media/audio/notifications/Naughty.ogg \
|
||||
$(NOTIFICATION_PATH)/Pong.ogg:system/media/audio/notifications/Pong.ogg \
|
||||
$(NOTIFICATION_PATH)/Rang.ogg:system/media/audio/notifications/Rang.ogg \
|
||||
$(NOTIFICATION_PATH)/Stone.ogg:system/media/audio/notifications/Stone.ogg
|
||||
|
||||
# Ringtones
|
||||
ifeq ($(TARGET_NEEDS_BOOSTED_SOUNDS),true)
|
||||
PRODUCT_COPY_FILES += \
|
||||
$(RINGTONE_PATH)/Bongo.ogg:system/media/audio/ringtones/Bongo.ogg \
|
||||
$(RINGTONE_PATH)/Boxbeat.ogg:system/media/audio/ringtones/Boxbeat.ogg \
|
||||
$(RINGTONE_PATH)/CyanTone.ogg:system/media/audio/ringtones/CyanTone.ogg \
|
||||
$(RINGTONE_PATH)/Gigolo.ogg:system/media/audio/ringtones/Gigolo.ogg \
|
||||
$(RINGTONE_PATH)/Highscore.ogg:system/media/audio/ringtones/Highscore.ogg \
|
||||
$(RINGTONE_PATH)/House_of_house.ogg:system/media/audio/ringtones/House_of_house.ogg \
|
||||
$(RINGTONE_PATH)/Lyon.ogg:system/media/audio/ringtones/Lyon.ogg \
|
||||
$(RINGTONE_PATH)/Rockin.ogg:system/media/audio/ringtones/Rockin.ogg \
|
||||
$(RINGTONE_PATH)/Silmarillia.ogg:system/media/audio/ringtones/Silmarillia.ogg
|
||||
|
||||
$(RINGTONE_PATH)/boosted/Boxbeat.ogg:system/media/audio/ringtones/Boxbeat.ogg \
|
||||
$(RINGTONE_PATH)/boosted/CyanTone.ogg:system/media/audio/ringtones/CyanTone.ogg \
|
||||
$(RINGTONE_PATH)/boosted/Highscore.ogg:system/media/audio/ringtones/Highscore.ogg \
|
||||
$(RINGTONE_PATH)/boosted/Lyon.ogg:system/media/audio/ringtones/Lyon.ogg \
|
||||
$(RINGTONE_PATH)/boosted/Rockin.ogg:system/media/audio/ringtones/Rockin.ogg
|
||||
else
|
||||
PRODUCT_COPY_FILES += \
|
||||
$(RINGTONE_PATH)/Boxbeat.ogg:system/media/audio/ringtones/Boxbeat.ogg \
|
||||
$(RINGTONE_PATH)/CyanTone.ogg:system/media/audio/ringtones/CyanTone.ogg \
|
||||
$(RINGTONE_PATH)/Highscore.ogg:system/media/audio/ringtones/Highscore.ogg \
|
||||
$(RINGTONE_PATH)/Lyon.ogg:system/media/audio/ringtones/Lyon.ogg \
|
||||
$(RINGTONE_PATH)/Rockin.ogg:system/media/audio/ringtones/Rockin.ogg \
|
||||
$(RINGTONE_PATH)/Sheep.mp3:system/media/audio/ringtones/Sheep.mp3 \
|
||||
$(RINGTONE_PATH)/Yukaay.ogg:system/media/audio/ringtones/Yukaay.ogg
|
||||
endif
|
||||
|
|
335
config/common.mk
335
config/common.mk
|
@ -1,27 +1,73 @@
|
|||
PRODUCT_BRAND ?= replicant
|
||||
|
||||
-include vendor/replicant-security/security.mk
|
||||
ifneq ($(TARGET_SCREEN_WIDTH) $(TARGET_SCREEN_HEIGHT),$(space))
|
||||
# determine the smaller dimension
|
||||
TARGET_BOOTANIMATION_SIZE := $(shell \
|
||||
if [ $(TARGET_SCREEN_WIDTH) -lt $(TARGET_SCREEN_HEIGHT) ]; then \
|
||||
echo $(TARGET_SCREEN_WIDTH); \
|
||||
else \
|
||||
echo $(TARGET_SCREEN_HEIGHT); \
|
||||
fi )
|
||||
|
||||
SUPERUSER_EMBEDDED := true
|
||||
SUPERUSER_PACKAGE_PREFIX := com.android.settings.cyanogenmod.superuser
|
||||
# get a sorted list of the sizes
|
||||
bootanimation_sizes := $(subst .zip,, $(shell ls vendor/replicant/prebuilt/common/bootanimation))
|
||||
bootanimation_sizes := $(shell echo -e $(subst $(space),'\n',$(bootanimation_sizes)) | sort -rn)
|
||||
|
||||
ifneq ($(TARGET_BOOTANIMATION_NAME),)
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/replicant/prebuilt/common/bootanimation/$(TARGET_BOOTANIMATION_NAME).zip:system/media/bootanimation.zip
|
||||
# find the appropriate size and set
|
||||
define check_and_set_bootanimation
|
||||
$(eval TARGET_BOOTANIMATION_NAME := $(shell \
|
||||
if [ -z "$(TARGET_BOOTANIMATION_NAME)" ]; then
|
||||
if [ $(1) -le $(TARGET_BOOTANIMATION_SIZE) ]; then \
|
||||
echo $(1); \
|
||||
exit 0; \
|
||||
fi;
|
||||
fi;
|
||||
echo $(TARGET_BOOTANIMATION_NAME); ))
|
||||
endef
|
||||
$(foreach size,$(bootanimation_sizes), $(call check_and_set_bootanimation,$(size)))
|
||||
|
||||
ifeq ($(TARGET_BOOTANIMATION_HALF_RES),true)
|
||||
PRODUCT_BOOTANIMATION := vendor/replicant/prebuilt/common/bootanimation/halfres/$(TARGET_BOOTANIMATION_NAME).zip
|
||||
else
|
||||
PRODUCT_BOOTANIMATION := vendor/replicant/prebuilt/common/bootanimation/$(TARGET_BOOTANIMATION_NAME).zip
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef CM_NIGHTLY
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.rommanager.developerid=cyanogenmodnightly
|
||||
else
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.rommanager.developerid=cyanogenmod
|
||||
endif
|
||||
|
||||
PRODUCT_BUILD_PROP_OVERRIDES += BUILD_UTC_DATE=0
|
||||
|
||||
ifeq ($(PRODUCT_GMS_CLIENTID_BASE),)
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.com.google.clientidbase=android-google
|
||||
else
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.com.google.clientidbase=$(PRODUCT_GMS_CLIENTID_BASE)
|
||||
endif
|
||||
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
keyguard.no_require_sim=true \
|
||||
ro.url.legal=http://www.google.com/intl/%s/mobile/android/basic/phone-legal.html \
|
||||
ro.url.legal.android_privacy=http://www.google.com/intl/%s/mobile/android/basic/privacy.html \
|
||||
ro.com.google.clientidbase=android-google \
|
||||
ro.com.android.wifi-watchlist=GoogleGuest \
|
||||
ro.setupwizard.enterprise_mode=1 \
|
||||
ro.com.android.dateformat=MM-dd-yyyy \
|
||||
ro.com.android.dataroaming=false
|
||||
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.build.selinux=1
|
||||
|
||||
ifneq ($(TARGET_BUILD_VARIANT),user)
|
||||
# Thank you, please drive thru!
|
||||
PRODUCT_PROPERTY_OVERRIDES += persist.sys.dun.override=0
|
||||
endif
|
||||
|
||||
ifneq ($(TARGET_BUILD_VARIANT),eng)
|
||||
# Enable ADB authentication
|
||||
ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=1
|
||||
|
@ -34,45 +80,40 @@ PRODUCT_COPY_FILES += \
|
|||
vendor/replicant/CHANGELOG.mkdn:system/etc/CHANGELOG-CM.txt
|
||||
|
||||
# Backup Tool
|
||||
ifneq ($(WITH_GMS),true)
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/replicant/prebuilt/common/bin/backuptool.sh:system/bin/backuptool.sh \
|
||||
vendor/replicant/prebuilt/common/bin/backuptool.functions:system/bin/backuptool.functions \
|
||||
vendor/replicant/prebuilt/common/bin/backuptool.sh:install/bin/backuptool.sh \
|
||||
vendor/replicant/prebuilt/common/bin/backuptool.functions:install/bin/backuptool.functions \
|
||||
vendor/replicant/prebuilt/common/bin/50-cm.sh:system/addon.d/50-cm.sh \
|
||||
vendor/replicant/prebuilt/common/bin/blacklist:system/addon.d/blacklist
|
||||
endif
|
||||
|
||||
# Signature compatibility validation
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/replicant/prebuilt/common/bin/otasigcheck.sh:install/bin/otasigcheck.sh
|
||||
|
||||
# init.d support
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/replicant/prebuilt/common/etc/init.d/00banner:system/etc/init.d/00banner \
|
||||
vendor/replicant/prebuilt/common/bin/sysinit:system/bin/sysinit
|
||||
|
||||
ifneq ($(TARGET_BUILD_VARIANT),user)
|
||||
# userinit support
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/replicant/prebuilt/common/etc/init.d/90userinit:system/etc/init.d/90userinit
|
||||
|
||||
# SELinux filesystem labels
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/replicant/prebuilt/common/etc/init.d/50selinuxrelabel:system/etc/init.d/50selinuxrelabel
|
||||
endif
|
||||
|
||||
# CM-specific init file
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/replicant/prebuilt/common/etc/init.local.rc:root/init.cm.rc
|
||||
|
||||
# Compcache/Zram support
|
||||
# Copy over added mimetype supported in libcore.net.MimeUtils
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/replicant/prebuilt/common/bin/compcache:system/bin/compcache \
|
||||
vendor/replicant/prebuilt/common/bin/handle_compcache:system/bin/handle_compcache
|
||||
vendor/replicant/prebuilt/common/lib/content-types.properties:system/lib/content-types.properties
|
||||
|
||||
# Prebuilt apps
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/replicant/prebuilt/common/apps/FDroid.apk:system/app/FDroid.apk \
|
||||
vendor/replicant/prebuilt/common/apps/TerminalEmulator.apk:system/app/TerminalEmulator.apk \
|
||||
vendor/replicant/prebuilt/common/apps/lib/armeabi/libjackpal-termexec2.so:system/lib/libjackpal-termexec2.so \
|
||||
vendor/replicant/prebuilt/common/apps/lib/armeabi/libjackpal-androidterm5.so:system/lib/libjackpal-androidterm5.so
|
||||
|
||||
# Bring in camera effects
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/replicant/prebuilt/common/media/LMprec_508.emd:system/media/LMprec_508.emd \
|
||||
vendor/replicant/prebuilt/common/media/PFFprec_600.emd:system/media/PFFprec_600.emd
|
||||
vendor/replicant/prebuilt/common/apps/FDroid.apk:system/app/FDroid.apk
|
||||
|
||||
# Enable SIP+VoIP on all targets
|
||||
PRODUCT_COPY_FILES += \
|
||||
|
@ -86,60 +127,73 @@ PRODUCT_COPY_FILES += \
|
|||
PRODUCT_COPY_FILES += \
|
||||
vendor/replicant/config/permissions/com.cyanogenmod.android.xml:system/etc/permissions/com.cyanogenmod.android.xml
|
||||
|
||||
# Don't export PS1 in /system/etc/mkshrc.
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/replicant/prebuilt/common/etc/mkshrc:system/etc/mkshrc
|
||||
|
||||
# T-Mobile theme engine
|
||||
# Theme engine
|
||||
include vendor/replicant/config/themes_common.mk
|
||||
|
||||
# Required CM packages
|
||||
PRODUCT_PACKAGES += \
|
||||
Camera \
|
||||
Development \
|
||||
LatinIME \
|
||||
Superuser \
|
||||
su
|
||||
BluetoothExt \
|
||||
Profiles
|
||||
|
||||
# Optional CM packages
|
||||
PRODUCT_PACKAGES += \
|
||||
VoicePlus \
|
||||
VideoEditor \
|
||||
VoiceDialer \
|
||||
SoundRecorder \
|
||||
Basic
|
||||
libemoji \
|
||||
Terminal
|
||||
|
||||
# Include librsjni explicitly to workaround GMS issue
|
||||
PRODUCT_PACKAGES += \
|
||||
librsjni
|
||||
|
||||
# Custom CM packages
|
||||
PRODUCT_PACKAGES += \
|
||||
Launcher3 \
|
||||
Trebuchet \
|
||||
DSPManager \
|
||||
libcyanogen-dsp \
|
||||
audio_effects.conf \
|
||||
AudioFX \
|
||||
ReplicantWallpapers \
|
||||
Apollo \
|
||||
CMFileManager \
|
||||
LockClock
|
||||
Eleven \
|
||||
LockClock \
|
||||
CyanogenSetupWizard \
|
||||
CMSettingsProvider \
|
||||
ExactCalculator
|
||||
|
||||
# CM Platform Library
|
||||
PRODUCT_PACKAGES += \
|
||||
CellBroadcastReceiver
|
||||
org.cyanogenmod.platform-res \
|
||||
org.cyanogenmod.platform \
|
||||
org.cyanogenmod.platform.xml
|
||||
|
||||
# CM Hardware Abstraction Framework
|
||||
PRODUCT_PACKAGES += \
|
||||
org.cyanogenmod.hardware \
|
||||
org.cyanogenmod.hardware.xml
|
||||
|
||||
# Extra tools in CM
|
||||
PRODUCT_PACKAGES += \
|
||||
openvpn \
|
||||
e2fsck \
|
||||
libsepol \
|
||||
mke2fs \
|
||||
tune2fs \
|
||||
bash \
|
||||
vim \
|
||||
nano \
|
||||
htop \
|
||||
powertop \
|
||||
lsof \
|
||||
mkfs.ntfs \
|
||||
fsck.ntfs \
|
||||
mount.ntfs \
|
||||
gdbserver \
|
||||
micro_bench \
|
||||
oprofiled \
|
||||
sqlite3 \
|
||||
strace \
|
||||
pigz
|
||||
|
||||
WITH_EXFAT ?= true
|
||||
ifeq ($(WITH_EXFAT),true)
|
||||
TARGET_USES_EXFAT := true
|
||||
PRODUCT_PACKAGES += \
|
||||
mount.exfat \
|
||||
fsck.exfat \
|
||||
mkfs.exfat \
|
||||
ntfsfix \
|
||||
ntfs-3g
|
||||
mkfs.exfat
|
||||
endif
|
||||
|
||||
# Openssh
|
||||
PRODUCT_PACKAGES += \
|
||||
|
@ -155,28 +209,157 @@ PRODUCT_PACKAGES += \
|
|||
PRODUCT_PACKAGES += \
|
||||
rsync
|
||||
|
||||
PRODUCT_PACKAGE_OVERLAYS += vendor/replicant/overlay/dictionaries
|
||||
PRODUCT_PACKAGE_OVERLAYS += vendor/replicant/overlay/common
|
||||
|
||||
ifeq ($(USE_OPENGL_RENDERER),true)
|
||||
PRODUCT_PACKAGE_OVERLAYS += vendor/replicant/overlay/opengl
|
||||
else
|
||||
BOARD_EGL_CFG := vendor/replicant/prebuilt/softwaregl/configs/egl.cfg
|
||||
|
||||
PRODUCT_PROPERTY_OVERRIDES += ro.softwaregl=true
|
||||
|
||||
PRODUCT_PACKAGE_OVERLAYS += vendor/replicant/overlay/softwaregl
|
||||
endif
|
||||
|
||||
PRODUCT_VERSION_MAJOR = 4
|
||||
PRODUCT_VERSION_MINOR = 2
|
||||
PRODUCT_VERSION_MAINTENANCE = 2
|
||||
|
||||
REPLICANT_VERSION := "replicant-4.2"
|
||||
# Stagefright FFMPEG plugin
|
||||
PRODUCT_PACKAGES += \
|
||||
libffmpeg_extractor \
|
||||
libffmpeg_omx \
|
||||
media_codecs_ffmpeg.xml
|
||||
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.cm.version=$(REPLICANT_VERSION) \
|
||||
ro.modversion=$(REPLICANT_VERSION)
|
||||
media.sf.omx-plugin=libffmpeg_omx.so \
|
||||
media.sf.extractor-plugin=libffmpeg_extractor.so
|
||||
|
||||
-include vendor/replicant/sepolicy/sepolicy.mk
|
||||
-include $(WORKSPACE)/hudson/image-auto-bits.mk
|
||||
# These packages are excluded from user builds
|
||||
ifneq ($(TARGET_BUILD_VARIANT),user)
|
||||
PRODUCT_PACKAGES += \
|
||||
procmem \
|
||||
procrank \
|
||||
su
|
||||
endif
|
||||
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
persist.sys.root_access=0
|
||||
|
||||
PRODUCT_PACKAGE_OVERLAYS += vendor/replicant/overlay/common
|
||||
|
||||
PRODUCT_VERSION_MAJOR = 13
|
||||
PRODUCT_VERSION_MINOR = 0
|
||||
PRODUCT_VERSION_MAINTENANCE = 0-RC0
|
||||
|
||||
# Set CM_BUILDTYPE from the env RELEASE_TYPE, for jenkins compat
|
||||
|
||||
ifndef CM_BUILDTYPE
|
||||
ifdef RELEASE_TYPE
|
||||
# Starting with "CM_" is optional
|
||||
RELEASE_TYPE := $(shell echo $(RELEASE_TYPE) | sed -e 's|^CM_||g')
|
||||
CM_BUILDTYPE := $(RELEASE_TYPE)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Filter out random types, so it'll reset to UNOFFICIAL
|
||||
ifeq ($(filter RELEASE NIGHTLY SNAPSHOT EXPERIMENTAL,$(CM_BUILDTYPE)),)
|
||||
CM_BUILDTYPE :=
|
||||
endif
|
||||
|
||||
ifdef CM_BUILDTYPE
|
||||
ifneq ($(CM_BUILDTYPE), SNAPSHOT)
|
||||
ifdef CM_EXTRAVERSION
|
||||
# Force build type to EXPERIMENTAL
|
||||
CM_BUILDTYPE := EXPERIMENTAL
|
||||
# Remove leading dash from CM_EXTRAVERSION
|
||||
CM_EXTRAVERSION := $(shell echo $(CM_EXTRAVERSION) | sed 's/-//')
|
||||
# Add leading dash to CM_EXTRAVERSION
|
||||
CM_EXTRAVERSION := -$(CM_EXTRAVERSION)
|
||||
endif
|
||||
else
|
||||
ifndef CM_EXTRAVERSION
|
||||
# Force build type to EXPERIMENTAL, SNAPSHOT mandates a tag
|
||||
CM_BUILDTYPE := EXPERIMENTAL
|
||||
else
|
||||
# Remove leading dash from CM_EXTRAVERSION
|
||||
CM_EXTRAVERSION := $(shell echo $(CM_EXTRAVERSION) | sed 's/-//')
|
||||
# Add leading dash to CM_EXTRAVERSION
|
||||
CM_EXTRAVERSION := -$(CM_EXTRAVERSION)
|
||||
endif
|
||||
endif
|
||||
else
|
||||
# If CM_BUILDTYPE is not defined, set to UNOFFICIAL
|
||||
CM_BUILDTYPE := UNOFFICIAL
|
||||
CM_EXTRAVERSION :=
|
||||
endif
|
||||
|
||||
ifeq ($(CM_BUILDTYPE), UNOFFICIAL)
|
||||
ifneq ($(TARGET_UNOFFICIAL_BUILD_ID),)
|
||||
CM_EXTRAVERSION := -$(TARGET_UNOFFICIAL_BUILD_ID)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(CM_BUILDTYPE), RELEASE)
|
||||
ifndef TARGET_VENDOR_RELEASE_BUILD_ID
|
||||
CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR).$(PRODUCT_VERSION_MAINTENANCE)$(PRODUCT_VERSION_DEVICE_SPECIFIC)-$(CM_BUILD)
|
||||
else
|
||||
ifeq ($(TARGET_BUILD_VARIANT),user)
|
||||
CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(TARGET_VENDOR_RELEASE_BUILD_ID)-$(CM_BUILD)
|
||||
else
|
||||
CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR).$(PRODUCT_VERSION_MAINTENANCE)$(PRODUCT_VERSION_DEVICE_SPECIFIC)-$(CM_BUILD)
|
||||
endif
|
||||
endif
|
||||
else
|
||||
CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(shell date -u +%Y%m%d)-$(CM_BUILDTYPE)$(CM_EXTRAVERSION)-$(CM_BUILD)
|
||||
endif
|
||||
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.cm.version=$(CM_VERSION) \
|
||||
ro.cm.releasetype=$(CM_BUILDTYPE) \
|
||||
ro.modversion=$(CM_VERSION) \
|
||||
ro.cmlegal.url=https://cyngn.com/legal/privacy-policy
|
||||
|
||||
-include vendor/cm-priv/keys/keys.mk
|
||||
|
||||
CM_DISPLAY_VERSION := $(CM_VERSION)
|
||||
|
||||
ifneq ($(PRODUCT_DEFAULT_DEV_CERTIFICATE),)
|
||||
ifneq ($(PRODUCT_DEFAULT_DEV_CERTIFICATE),build/target/product/security/testkey)
|
||||
ifneq ($(CM_BUILDTYPE), UNOFFICIAL)
|
||||
ifndef TARGET_VENDOR_RELEASE_BUILD_ID
|
||||
ifneq ($(CM_EXTRAVERSION),)
|
||||
# Remove leading dash from CM_EXTRAVERSION
|
||||
CM_EXTRAVERSION := $(shell echo $(CM_EXTRAVERSION) | sed 's/-//')
|
||||
TARGET_VENDOR_RELEASE_BUILD_ID := $(CM_EXTRAVERSION)
|
||||
else
|
||||
TARGET_VENDOR_RELEASE_BUILD_ID := $(shell date -u +%Y%m%d)
|
||||
endif
|
||||
else
|
||||
TARGET_VENDOR_RELEASE_BUILD_ID := $(TARGET_VENDOR_RELEASE_BUILD_ID)
|
||||
endif
|
||||
CM_DISPLAY_VERSION=$(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(TARGET_VENDOR_RELEASE_BUILD_ID)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# by default, do not update the recovery with system updates
|
||||
PRODUCT_PROPERTY_OVERRIDES += persist.sys.recovery_update=false
|
||||
|
||||
ifndef CM_PLATFORM_SDK_VERSION
|
||||
# This is the canonical definition of the SDK version, which defines
|
||||
# the set of APIs and functionality available in the platform. It
|
||||
# is a single integer that increases monotonically as updates to
|
||||
# the SDK are released. It should only be incremented when the APIs for
|
||||
# the new release are frozen (so that developers don't write apps against
|
||||
# intermediate builds).
|
||||
CM_PLATFORM_SDK_VERSION := 4
|
||||
endif
|
||||
|
||||
ifndef CM_PLATFORM_REV
|
||||
# For internal SDK revisions that are hotfixed/patched
|
||||
# Reset after each CM_PLATFORM_SDK_VERSION release
|
||||
# If you are doing a release and this is NOT 0, you are almost certainly doing it wrong
|
||||
CM_PLATFORM_REV := 0
|
||||
endif
|
||||
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.cm.display.version=$(CM_DISPLAY_VERSION)
|
||||
|
||||
# CyanogenMod Platform SDK Version
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.cm.build.version.plat.sdk=$(CM_PLATFORM_SDK_VERSION)
|
||||
|
||||
# CyanogenMod Platform Internal
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.cm.build.version.plat.rev=$(CM_PLATFORM_REV)
|
||||
|
||||
-include $(WORKSPACE)/build_env/image-auto-bits.mk
|
||||
|
||||
-include vendor/cyngn/product.mk
|
||||
|
||||
$(call prepend-product-if-exists, vendor/extra/product.mk)
|
||||
|
|
|
@ -1,26 +1,34 @@
|
|||
# Inherit common CM stuff
|
||||
$(call inherit-product, vendor/replicant/config/common.mk)
|
||||
|
||||
# Bring in all audio files
|
||||
include frameworks/base/data/sounds/NewAudio.mk
|
||||
|
||||
# Extra Ringtones
|
||||
include frameworks/base/data/sounds/AudioPackageNewWave.mk
|
||||
|
||||
# Bring in all video files
|
||||
$(call inherit-product, frameworks/base/data/videos/VideoPackage2.mk)
|
||||
|
||||
# Include CM audio files
|
||||
include vendor/replicant/config/cm_audio.mk
|
||||
|
||||
ifeq ($(USE_OPENGL_RENDERER),true)
|
||||
PRODUCT_PACKAGES += \
|
||||
HoloSpiralWallpaper \
|
||||
MagicSmokeWallpapers \
|
||||
NoiseField \
|
||||
Galaxy4 \
|
||||
HoloSpiralWallpaper \
|
||||
LiveWallpapers \
|
||||
LiveWallpapersPicker \
|
||||
VisualizationWallpapers \
|
||||
PhaseBeam
|
||||
MagicSmokeWallpapers
|
||||
endif
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
NoiseField \
|
||||
PhaseBeam \
|
||||
PhotoTable \
|
||||
SoundRecorder \
|
||||
PhotoPhase
|
||||
|
||||
# Extra tools in CM
|
||||
PRODUCT_PACKAGES += \
|
||||
7z \
|
||||
bash \
|
||||
bzip2 \
|
||||
curl \
|
||||
powertop \
|
||||
unrar \
|
||||
unzip \
|
||||
vim \
|
||||
wget \
|
||||
zip
|
||||
|
|
|
@ -1,20 +1,21 @@
|
|||
# Inherit common CM stuff
|
||||
$(call inherit-product, vendor/replicant/config/common_full.mk)
|
||||
|
||||
# Default ringtone
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.config.ringtone=Orion.ogg \
|
||||
ro.config.notification_sound=Argon.ogg \
|
||||
ro.config.alarm_alert=Hassium.ogg
|
||||
|
||||
# Required CM packages
|
||||
PRODUCT_PACKAGES += \
|
||||
Mms
|
||||
LatinIME
|
||||
|
||||
# BT config
|
||||
PRODUCT_COPY_FILES += \
|
||||
system/bluetooth/data/main.conf:system/etc/bluetooth/main.conf
|
||||
# Include CM LatinIME dictionaries
|
||||
PRODUCT_PACKAGE_OVERLAYS += vendor/replicant/overlay/dictionaries
|
||||
|
||||
ifeq ($(TARGET_BOOTANIMATION_NAME),)
|
||||
# Default notification/alarm sounds
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.config.notification_sound=Argon.ogg \
|
||||
ro.config.alarm_alert=Helium.ogg
|
||||
|
||||
ifeq ($(TARGET_SCREEN_WIDTH) $(TARGET_SCREEN_HEIGHT),$(space))
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/replicant/prebuilt/common/bootanimation/vertical-480x800.zip:system/media/bootanimation.zip
|
||||
endif
|
||||
|
||||
$(call inherit-product, vendor/replicant/config/telephony.mk)
|
||||
|
|
|
@ -1,15 +1,17 @@
|
|||
# Inherit common CM stuff
|
||||
$(call inherit-product, vendor/replicant/config/common_full.mk)
|
||||
|
||||
# Default ringtone
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.config.ringtone=Orion.ogg \
|
||||
ro.config.notification_sound=Argon.ogg \
|
||||
ro.config.alarm_alert=Hassium.ogg
|
||||
# Required CM packages
|
||||
PRODUCT_PACKAGES += \
|
||||
LatinIME
|
||||
|
||||
# BT config
|
||||
PRODUCT_COPY_FILES += \
|
||||
system/bluetooth/data/main.nonsmartphone.conf:system/etc/bluetooth/main.conf
|
||||
# Include CM LatinIME dictionaries
|
||||
PRODUCT_PACKAGE_OVERLAYS += vendor/cm/overlay/dictionaries
|
||||
|
||||
# Default notification/alarm sounds
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.config.notification_sound=Argon.ogg \
|
||||
ro.config.alarm_alert=Helium.ogg
|
||||
|
||||
ifeq ($(TARGET_BOOTANIMATION_NAME),)
|
||||
PRODUCT_COPY_FILES += \
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
# Inherit common CM stuff
|
||||
$(call inherit-product, vendor/cm/config/common_full.mk)
|
||||
|
||||
# Default notification/alarm sounds
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.config.notification_sound=Argon.ogg \
|
||||
ro.config.alarm_alert=Helium.ogg
|
||||
|
||||
ifeq ($(TARGET_SCREEN_WIDTH) $(TARGET_SCREEN_HEIGHT),$(space))
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/cm/prebuilt/common/bootanimation/800.zip:system/media/bootanimation.zip
|
||||
endif
|
|
@ -1,22 +1,21 @@
|
|||
# Inherit common CM stuff
|
||||
$(call inherit-product, vendor/replicant/config/common.mk)
|
||||
|
||||
# Bring in all audio files
|
||||
include frameworks/base/data/sounds/NewAudio.mk
|
||||
|
||||
# Include CM audio files
|
||||
include vendor/replicant/config/cm_audio.mk
|
||||
|
||||
# Default ringtone
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.config.ringtone=Orion.ogg \
|
||||
ro.config.notification_sound=Argon.ogg \
|
||||
ro.config.alarm_alert=Hassium.ogg
|
||||
|
||||
# Required CM packages
|
||||
PRODUCT_PACKAGES += \
|
||||
Mms
|
||||
LatinIME
|
||||
|
||||
# Default notification/alarm sounds
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.config.notification_sound=Argon.ogg \
|
||||
ro.config.alarm_alert=Helium.ogg
|
||||
|
||||
ifeq ($(TARGET_BOOTANIMATION_NAME),)
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/replicant/prebuilt/common/bootanimation/vertical-320x480.zip:system/media/bootanimation.zip
|
||||
endif
|
||||
|
||||
$(call inherit-product, vendor/cm/config/telephony.mk)
|
||||
|
|
|
@ -1,21 +1,17 @@
|
|||
# Inherit common CM stuff
|
||||
$(call inherit-product, vendor/replicant/config/common.mk)
|
||||
|
||||
# Bring in all audio files
|
||||
include frameworks/base/data/sounds/NewAudio.mk
|
||||
|
||||
# Include CM audio files
|
||||
include vendor/replicant/config/cm_audio.mk
|
||||
|
||||
# Default ringtone
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.config.ringtone=Orion.ogg \
|
||||
ro.config.notification_sound=Argon.ogg \
|
||||
ro.config.alarm_alert=Hassium.ogg
|
||||
# Required CM packages
|
||||
PRODUCT_PACKAGES += \
|
||||
LatinIME
|
||||
|
||||
# BT config
|
||||
PRODUCT_COPY_FILES += \
|
||||
system/bluetooth/data/main.nonsmartphone.conf:system/etc/bluetooth/main.conf
|
||||
# Default notification/alarm sounds
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.config.notification_sound=Argon.ogg \
|
||||
ro.config.alarm_alert=Helium.ogg
|
||||
|
||||
ifeq ($(TARGET_BOOTANIMATION_NAME),)
|
||||
PRODUCT_COPY_FILES += \
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
# Inherit common CM stuff
|
||||
$(call inherit-product, vendor/cm/config/common.mk)
|
||||
|
||||
# Include CM audio files
|
||||
include vendor/cm/config/cm_audio.mk
|
||||
|
||||
# Default notification/alarm sounds
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.config.notification_sound=Argon.ogg \
|
||||
ro.config.alarm_alert=Helium.ogg
|
||||
|
||||
ifeq ($(TARGET_SCREEN_WIDTH) $(TARGET_SCREEN_HEIGHT),$(space))
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/cm/prebuilt/common/bootanimation/800.zip:system/media/bootanimation.zip
|
||||
endif
|
|
@ -1,12 +0,0 @@
|
|||
# GSM APN list
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/replicant/prebuilt/common/etc/apns-conf.xml:system/etc/apns-conf.xml
|
||||
|
||||
# GSM SPN overrides list
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/replicant/prebuilt/common/etc/spn-conf.xml:system/etc/spn-conf.xml
|
||||
|
||||
# SIM Toolkit
|
||||
PRODUCT_PACKAGES += \
|
||||
Stk
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2014 The CyanogenMod Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<permissions>
|
||||
<!-- The features listed here should coincide with the various iterations of
|
||||
the CyanogenMod theme engine. New org.cyanogenmod.theme.vX features
|
||||
should only be added when the structure of the theme apk format is changed
|
||||
-->
|
||||
|
||||
<!-- This is an alias for org.cyanogenmod.theme.v1 -->
|
||||
<feature name="org.cyanogenmod.theme" />
|
||||
|
||||
<!-- Supports themes using v1 of the theme engine -->
|
||||
<feature name="org.cyanogenmod.theme.v1" />
|
||||
</permissions>
|
|
@ -0,0 +1,17 @@
|
|||
# World APN list
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/replicant/prebuilt/common/etc/apns-conf.xml:system/etc/apns-conf.xml
|
||||
|
||||
# Selective SPN list for operator number who has the problem.
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/replicant/prebuilt/common/etc/selective-spn-conf.xml:system/etc/selective-spn-conf.xml
|
||||
|
||||
# Telephony packages
|
||||
PRODUCT_PACKAGES += \
|
||||
messaging \
|
||||
Stk \
|
||||
CellBroadcastReceiver
|
||||
|
||||
# Default ringtone
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.config.ringtone=Orion.ogg
|
|
@ -1,8 +1,8 @@
|
|||
# T-Mobile theme engine
|
||||
# Theme engine
|
||||
PRODUCT_PACKAGES += \
|
||||
ThemeManager \
|
||||
ThemeChooser \
|
||||
com.tmobile.themes
|
||||
aapt \
|
||||
ThemeChooser \
|
||||
ThemesProvider
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/replicant/config/permissions/com.tmobile.software.themes.xml:system/etc/permissions/com.tmobile.software.themes.xml
|
||||
vendor/replicant/config/permissions/org.cyanogenmod.theme.xml:system/etc/permissions/org.cyanogenmod.theme.xml
|
||||
|
|
|
@ -9,9 +9,3 @@ mkdir -p $BASEDIR/prebuilt/common/apps/
|
|||
curl -L -o $BASEDIR/prebuilt/common/apps/FDroid.apk -O -L https://f-droid.org/FDroid.apk
|
||||
curl -L -o $BASEDIR/prebuilt/common/apps/FDroid.apk.asc -O -L https://f-droid.org/FDroid.apk.asc
|
||||
gpg --armor --verify $BASEDIR/prebuilt/common/apps/FDroid.apk.asc $BASEDIR/prebuilt/common/apps/FDroid.apk
|
||||
|
||||
# Terminal Emulator
|
||||
curl -L -o $BASEDIR/prebuilt/common/apps/TerminalEmulator.apk -O -L https://f-droid.org/repo/jackpal.androidterm_71.apk
|
||||
curl -L -o $BASEDIR/prebuilt/common/apps/TerminalEmulator.apk.asc -O -L https://f-droid.org/repo/jackpal.androidterm_71.apk.asc
|
||||
gpg --armor --verify $BASEDIR/prebuilt/common/apps/TerminalEmulator.apk.asc $BASEDIR/prebuilt/common/apps/TerminalEmulator.apk
|
||||
unzip -o -d $BASEDIR/prebuilt/common/apps/ $BASEDIR/prebuilt/common/apps/TerminalEmulator.apk lib/armeabi/libjackpal-termexec2.so lib/armeabi/libjackpal-androidterm5.so
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 567 KiB |
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2015 The CyanogenMod Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<resources>
|
||||
<!-- Configures the voicemail number for this MCC/MNC pair //-->
|
||||
<string-array translatable="false" name="config_default_vm_number">
|
||||
<item>901</item>
|
||||
</string-array>
|
||||
</resources>
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2015 The CyanogenMod Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<resources>
|
||||
<!-- Configures the voicemail number for this MCC/MNC pair //-->
|
||||
<string-array translatable="false" name="config_default_vm_number">
|
||||
<item>901</item>
|
||||
</string-array>
|
||||
</resources>
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2015 The CyanogenMod Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<resources>
|
||||
<!-- Configures the voicemail number for this MCC/MNC pair //-->
|
||||
<string-array translatable="false" name="config_default_vm_number">
|
||||
<item>901</item>
|
||||
</string-array>
|
||||
</resources>
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2015 The CyanogenMod Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<resources>
|
||||
<!-- Configures the voicemail number for this MCC/MNC pair //-->
|
||||
<string-array translatable="false" name="config_default_vm_number">
|
||||
<item>200</item>
|
||||
</string-array>
|
||||
</resources>
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2013 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<!-- These resources are around just to allow their values to be customized
|
||||
for different hardware and product builds. -->
|
||||
<resources>
|
||||
<!-- SoftBank maintains a MMS UserAgent whitelist, we must use one of the white-listed strings to be able to send/receive -->
|
||||
<string name="config_mms_user_agent">Nexus5</string>
|
||||
<string name="config_mms_user_agent_profile_url">http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
|
||||
</resources>
|
|
@ -1,29 +1,69 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<!-- default to disabling the menu key. The CM setting to
|
||||
do this is a no-op unless the below item is true -->
|
||||
<bool name="config_disableMenuKeyInLockScreen">true</bool>
|
||||
<!--
|
||||
Copyright (C) 2013 The CyanogenMod Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string-array name="config_locationProviderPackageNames" translatable="false">
|
||||
<!-- The Google provider -->
|
||||
<item>com.google.android.gms</item>
|
||||
<!-- The standard AOSP fused location provider -->
|
||||
<item>com.android.location.fused</item>
|
||||
<!-- The Google provider -->
|
||||
<item>com.google.android.location</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Package name for default keyguard appwidget [DO NOT TRANSLATE] -->
|
||||
<string name="widget_default_package_name">com.cyanogenmod.lockclock</string>
|
||||
|
||||
<!-- Class name for default keyguard appwidget [DO NOT TRANSLATE] -->
|
||||
<string name="widget_default_class_name">com.cyanogenmod.lockclock.ClockWidgetProvider</string>
|
||||
|
||||
<bool name="config_cellBroadcastAppLinks">true</bool>
|
||||
|
||||
<!-- Disable stock OTA components if installed -->
|
||||
<string-array name="config_disabledComponents" translatable="false">
|
||||
<item>com.google.android.gsf/com.google.android.gsf.update.SystemUpdateActivity</item>
|
||||
<item>com.google.android.gsf/com.google.android.gsf.update.SystemUpdateService</item>
|
||||
<item>com.google.android.gsf/com.google.android.gsf.update.SystemUpdateService$Receiver</item>
|
||||
<item>com.google.android.gsf/com.google.android.gsf.update.SystemUpdateService$SecretCodeReceiver</item>
|
||||
<item>com.google.android.gms/com.google.android.gms.update.SystemUpdateActivity</item>
|
||||
<item>com.google.android.gms/com.google.android.gms.update.SystemUpdateService$Receiver</item>
|
||||
<item>com.google.android.gms/com.google.android.gms.update.SystemUpdateService$ActiveReceiver</item>
|
||||
<item>com.google.android.gms/com.google.android.gms.update.SystemUpdateService$SecretCodeReceiver</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Force enabling of some services that could have been previously disabled -->
|
||||
<string-array name="config_forceEnabledComponents" translatable="false">
|
||||
<item>com.google.android.gsf/com.google.android.gsf.update.SystemUpdateService</item>
|
||||
<item>com.google.android.gms/com.google.android.gms.update.SystemUpdateService</item>
|
||||
</string-array>
|
||||
|
||||
<string name="config_mms_user_agent">CyanogenMod</string>
|
||||
<string name="config_mms_user_agent_profile_url">http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
|
||||
|
||||
<!-- Defines the default set of global actions. Actions may still be disabled or hidden based
|
||||
on the current state of the device. -->
|
||||
<string-array translatable="false" name="config_globalActionsList">
|
||||
<item>power</item>
|
||||
<item>reboot</item>
|
||||
<item>profile</item>
|
||||
<item>airplane</item>
|
||||
<item>bugreport</item>
|
||||
<item>users</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Defines external services to be started by the SystemServer at boot. The service itself
|
||||
should publish as a binder services in its onStart -->
|
||||
<string-array name="config_externalCMServices">
|
||||
<item>org.cyanogenmod.platform.internal.CMStatusBarManagerService</item>
|
||||
<item>org.cyanogenmod.platform.internal.ProfileManagerService</item>
|
||||
<item>org.cyanogenmod.platform.internal.PartnerInterfaceService</item>
|
||||
<item>org.cyanogenmod.platform.internal.CMTelephonyManagerService</item>
|
||||
<item>org.cyanogenmod.platform.internal.CMHardwareService</item>
|
||||
<item>org.cyanogenmod.platform.internal.AppSuggestManagerService</item>
|
||||
<item>org.cyanogenmod.platform.internal.PerformanceManagerService</item>
|
||||
</string-array>
|
||||
</resources>
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2011 The CyanogenMod Project
|
||||
<!-- Copyright (C) 2011 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
|
@ -14,7 +14,7 @@
|
|||
limitations under the License.
|
||||
-->
|
||||
|
||||
<permissions>
|
||||
<feature name="com.tmobile.software.themes" />
|
||||
</permissions>
|
||||
|
||||
<resources>
|
||||
<!-- No camera for you, tablet user -->
|
||||
<bool name="kg_enable_camera_default_widget">true</bool>
|
||||
</resources>
|
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2013 The CyanogenMod Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<!-- Package name for default keyguard appwidget [DO NOT TRANSLATE] -->
|
||||
<string name="widget_default_package_name">com.cyanogenmod.lockclock</string>
|
||||
|
||||
<!-- Class name for default keyguard appwidget [DO NOT TRANSLATE] -->
|
||||
<string name="widget_default_class_name">com.cyanogenmod.lockclock.ClockWidgetProvider</string>
|
||||
|
||||
<!-- default to disabling the menu key. The CM setting to
|
||||
do this is a no-op unless the below item is true -->
|
||||
<bool name="config_disableMenuKeyInLockScreen">true</bool>
|
||||
</resources>
|
|
@ -17,14 +17,8 @@
|
|||
*/
|
||||
-->
|
||||
<resources>
|
||||
<string name="def_backup_transport">com.google.android.backup/.BackupTransportService</string>
|
||||
<bool name="def_advanced_reboot">true</bool>
|
||||
<!-- Circle -->
|
||||
<integer name="def_battery_style">2</integer>
|
||||
<string name="def_backup_transport">com.google.android.gms/.backup.BackupTransportService</string>
|
||||
|
||||
<!-- Enable notification counters in statusbar -->
|
||||
<integer name="def_notif_count">1</integer>
|
||||
<!-- Right QS pulldown -->
|
||||
<integer name="def_qs_quick_pulldown">1</integer>
|
||||
<!-- Default lockscreen targets -->
|
||||
<string name="def_lockscreen_targets">#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;component=com.android.mms/.ui.ConversationList;S.icon_resource=ic_lockscreen_sms_normal;end|#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;component=com.andrew.apollo/.ui.activities.HomeActivity;S.icon_resource=ic_lockscreen_music_normal;end|#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;component=com.android.contacts/.activities.DialtactsActivity;S.icon_resource=ic_lockscreen_phone_normal;end|#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;component=com.android.browser/.BrowserActivity;S.icon_resource=ic_lockscreen_browser_normal;end</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,26 +1,27 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
/*
|
||||
** Copyright 2011, The CyanogenMod Project
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
** You may obtain a copy of the License at
|
||||
**
|
||||
** http://www.apache.org/licenses/LICENSE-2.0
|
||||
**
|
||||
** Unless required by applicable law or agreed to in writing, software
|
||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
** See the License for the specific language governing permissions and
|
||||
** limitations under the License.
|
||||
*/
|
||||
Copyright (C) 2014 The CyanogenMod Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<!-- These resources are around just to allow their values to be customized
|
||||
for different hardware and product builds. -->
|
||||
<resources>
|
||||
<!-- Control whether status bar should distinguish HSPA data icon form UMTS data icon on devices -->
|
||||
<!-- Control whether status bar should distinguish HSPA data icon
|
||||
from UMTS data icon on devices -->
|
||||
<bool name="config_hspa_data_distinguishable">true</bool>
|
||||
</resources>
|
||||
|
||||
<!-- Should "4G" be shown instead of "LTE" when the network is NETWORK_TYPE_LTE? -->
|
||||
<bool name="config_show4GForLTE">false</bool>
|
||||
</resources>
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2013 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<!-- These resources are around just to allow their values to be customized
|
||||
for different hardware and product builds. -->
|
||||
<mms_config version="4">
|
||||
<!-- SoftBank maintains a MMS UserAgent whitelist, we must use one of the white-listed strings to be able to send/receive -->
|
||||
<string name="userAgent">Nexus5</string>
|
||||
<string name="uaProfUrl">http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
|
||||
</mms_config>
|
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2015 The CyanogenMod Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<resources>
|
||||
<!-- Help URL, Tap & pay [DO NOT TRANSLATE] -->
|
||||
<string name="help_url_nfc_payment" translatable="false">https://support.google.com/wallet/answer/1347934</string>
|
||||
</resources>
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2013 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<resources>
|
||||
|
||||
<!-- Enable backups -->
|
||||
<bool name="enable_backup">true</bool>
|
||||
<string name="backup_api_key">AEdPqrEAAAAIDoOx_2qXwj5RZmKa0fpkv1aqEldrwBp-pnv6Sg</string>
|
||||
|
||||
</resources>
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2012 The CyanogenMod Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
|
||||
<!-- The preferred APN to use, in the format name,mcc,mnc
|
||||
Leave empty to choose automatically. -->
|
||||
<string name="config_preferred_apn">fast.t-mobile.com,310,260</string>
|
||||
</resources>
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2012 The CyanogenMod Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
|
||||
<!-- The preferred APN to use, in the format name,mcc,mnc
|
||||
Leave empty to choose automatically. -->
|
||||
<string name="config_preferred_apn">pta,310,410</string>
|
||||
</resources>
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2012 The CyanogenMod Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
|
||||
<!-- The preferred APN to use, in the format name,mcc,mnc
|
||||
Leave empty to choose automatically. -->
|
||||
<string name="config_preferred_apn">lte.ktfwing.com,450,08</string>
|
||||
</resources>
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2015 The CyanogenMod Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<resources>
|
||||
<!-- Class name for the default in-call UI Service [DO NOT TRANSLATE] -->
|
||||
<string-array name="incall_default_classes" translatable="false">
|
||||
<item>com.android.dialer/com.android.incallui.InCallServiceImpl</item>
|
||||
<item>com.cyngn.dialer/com.android.incallui.InCallServiceImpl</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Class name for the default main dialer activity [DO NOT TRANSLATE] -->
|
||||
<string-array name="dialer_default_classes" translatable="false">
|
||||
<item>com.android.dialer/com.android.dialer.DialtactsActivity</item>
|
||||
<item>com.cyngn.dialer/com.android.dialer.DialtactsActivity</item>
|
||||
</string-array>
|
||||
</resources>
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2015 The CyanogenMod Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<resources>
|
||||
<string-array name="dialer_default_classes" translatable="false">
|
||||
<item>com.android.dialer/com.android.dialer.DialtactsActivity</item>
|
||||
<item>com.cyngn.dialer/com.android.dialer.DialtactsActivity</item>
|
||||
</string-array>
|
||||
</resources>
|
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2013 The CyanogenMod Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<!-- Automatic power profile management per app.
|
||||
Each item should list the fully-qualified activity
|
||||
name and the power profile id, separated by a comma. -->
|
||||
<string-array name="config_auto_perf_activities" translatable="false">
|
||||
<item>com.aurorasoftworks.quadrant.*BenchmarkExecutionActivity,2</item>
|
||||
<item>com.antutu.ABenchMark.*,2</item>
|
||||
<item>.*com.antutu.benchmark.*,2</item>
|
||||
</string-array>
|
||||
</resources>
|
30
overlay/common/vendor/cmsdk/packages/CMSettingsProvider/res/values/defaults.xml
vendored
Normal file
30
overlay/common/vendor/cmsdk/packages/CMSettingsProvider/res/values/defaults.xml
vendored
Normal file
|
@ -0,0 +1,30 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014-2015 The CyanogenMod Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<resources>
|
||||
<!-- Defaults for System -->
|
||||
|
||||
<!-- Default for CMSettings.System.QS_QUICK_PULLDOWN
|
||||
0. Off
|
||||
1. Right
|
||||
2. Left -->
|
||||
<integer name="def_qs_quick_pulldown">1</integer>
|
||||
|
||||
<!-- Defaults for Secure -->
|
||||
|
||||
<!-- Default for CMSettings.Secure.STATS_COLLECTION -->
|
||||
<bool name="def_stats_collection">true</bool>
|
||||
</resources>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,10 @@
|
|||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
# a wrapper for curl which provides wget syntax, for compatibility
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := wget
|
||||
LOCAL_SRC_FILES := bin/wget
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_MODULE_CLASS := EXECUTABLES
|
||||
LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
|
||||
include $(BUILD_PREBUILT)
|
|
@ -1,7 +1,7 @@
|
|||
#!/sbin/sh
|
||||
#
|
||||
# /system/addon.d/50-cm.sh
|
||||
# During a CM10 upgrade, this script backs up /system/etc/hosts,
|
||||
# During a CM13.0 upgrade, this script backs up /system/etc/hosts,
|
||||
# /system is formatted and reinstalled, then the file is restored.
|
||||
#
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
export C=/tmp/backupdir
|
||||
export S=/system
|
||||
export V=10.1
|
||||
export V=13.0
|
||||
|
||||
backup_file() {
|
||||
if [ -e "$1" ]; then
|
||||
|
|
|
@ -5,27 +5,39 @@
|
|||
|
||||
export C=/tmp/backupdir
|
||||
export S=/system
|
||||
export V=10.1
|
||||
export V=13.0
|
||||
|
||||
# Scripts in /system/addon.d expect to find backuptool.functions in /tmp
|
||||
cp -f /tmp/install/bin/backuptool.functions /tmp
|
||||
|
||||
# Preserve /system/addon.d in /tmp/addon.d
|
||||
preserve_addon_d() {
|
||||
mkdir -p /tmp/addon.d/
|
||||
cp -a /system/addon.d/* /tmp/addon.d/
|
||||
chmod 755 /tmp/addon.d/*.sh
|
||||
if [ -d /system/addon.d/ ]; then
|
||||
mkdir -p /tmp/addon.d/
|
||||
cp -a /system/addon.d/* /tmp/addon.d/
|
||||
chmod 755 /tmp/addon.d/*.sh
|
||||
fi
|
||||
}
|
||||
|
||||
# Restore /system/addon.d in /tmp/addon.d
|
||||
# Restore /system/addon.d from /tmp/addon.d
|
||||
restore_addon_d() {
|
||||
cp -a /tmp/addon.d/* /system/addon.d/
|
||||
rm -rf /tmp/addon.d/
|
||||
if [ -d /tmp/addon.d/ ]; then
|
||||
cp -a /tmp/addon.d/* /system/addon.d/
|
||||
rm -rf /tmp/addon.d/
|
||||
fi
|
||||
}
|
||||
|
||||
# Proceed only if /system is the expected major and minor version
|
||||
check_prereq() {
|
||||
# If there is no build.prop file the partition is probably empty.
|
||||
if [ ! -r /system/build.prop ]; then
|
||||
return 0
|
||||
fi
|
||||
if ( ! grep -q "^ro.cm.version=$V.*" /system/build.prop ); then
|
||||
echo "Not backing up files from incompatible version: $V"
|
||||
exit 127
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
check_blacklist() {
|
||||
|
@ -33,23 +45,47 @@ check_blacklist() {
|
|||
## Discard any known bad backup scripts
|
||||
cd /$1/addon.d/
|
||||
for f in *sh; do
|
||||
s=$(md5sum $f | awk {'print $1'})
|
||||
s=$(md5sum $f | cut -c-32)
|
||||
grep -q $s /system/addon.d/blacklist && rm -f $f
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
check_whitelist() {
|
||||
found=0
|
||||
if [ -f /system/addon.d/whitelist ];then
|
||||
## forcefully keep any version-independent stuff
|
||||
cd /$1/addon.d/
|
||||
for f in *sh; do
|
||||
s=$(md5sum $f | cut -c-32)
|
||||
grep -q $s /system/addon.d/whitelist
|
||||
if [ $? -eq 0 ]; then
|
||||
found=1
|
||||
else
|
||||
rm -f $f
|
||||
fi
|
||||
done
|
||||
fi
|
||||
return $found
|
||||
}
|
||||
|
||||
# Execute /system/addon.d/*.sh scripts with $1 parameter
|
||||
run_stage() {
|
||||
for script in $(find /tmp/addon.d/ -name '*.sh' |sort -n); do
|
||||
$script $1
|
||||
done
|
||||
if [ -d /tmp/addon.d/ ]; then
|
||||
for script in $(find /tmp/addon.d/ -name '*.sh' |sort -n); do
|
||||
$script $1
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
backup)
|
||||
mkdir -p $C
|
||||
check_prereq
|
||||
if check_prereq; then
|
||||
if check_whitelist system; then
|
||||
exit 127
|
||||
fi
|
||||
fi
|
||||
check_blacklist system
|
||||
preserve_addon_d
|
||||
run_stage pre-backup
|
||||
|
@ -57,7 +93,11 @@ case "$1" in
|
|||
run_stage post-backup
|
||||
;;
|
||||
restore)
|
||||
check_prereq
|
||||
if check_prereq; then
|
||||
if check_whitelist tmp; then
|
||||
exit 127
|
||||
fi
|
||||
fi
|
||||
check_blacklist tmp
|
||||
run_stage pre-restore
|
||||
run_stage restore
|
||||
|
|
|
@ -1,53 +0,0 @@
|
|||
#!/system/bin/sh
|
||||
#
|
||||
# Compcache manager
|
||||
# shade@chemlab.org (cyanogen)
|
||||
#
|
||||
|
||||
isramzswap="$(find /system/lib/modules/ -name ramzswap.ko 2>/dev/null)"
|
||||
isramzswapbuiltin="$(ls -l /dev/block/ramzswap0 2>/dev/null)"
|
||||
|
||||
if [ -n "$isramzswap$isramzswapbuiltin" ] ; then
|
||||
MODULE=ramzswap
|
||||
DEV=/dev/block/ramzswap0
|
||||
else
|
||||
DEV=/dev/block/zram0
|
||||
MODULE=zram
|
||||
SYSFS_PATH=/sys/block/zram0
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo 3 > /proc/sys/vm/drop_caches
|
||||
echo 30 > /proc/sys/vm/swappiness
|
||||
modprobe $MODULE
|
||||
if [ $MODULE = ramzswap ]; then
|
||||
rzscontrol $DEV --disksize_kb=$2 --init
|
||||
else
|
||||
echo "$(($2 * 1024))" > $SYSFS_PATH/disksize
|
||||
mkswap $DEV >/dev/null
|
||||
fi
|
||||
swapon $DEV
|
||||
;;
|
||||
|
||||
stop)
|
||||
swapoff $DEV >/dev/null 2>&1
|
||||
rmmod $MODULE >/dev/null 2>&1
|
||||
;;
|
||||
stats)
|
||||
if [ $MODULE = ramzswap ]; then
|
||||
rzscontrol $DEV --stats
|
||||
else
|
||||
cd $SYSFS_PATH && for i in * ; do
|
||||
echo -n "$i:"
|
||||
cat $i
|
||||
done
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start <size>|stop|stats}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
|
@ -1,484 +0,0 @@
|
|||
#! /system/bin/sh
|
||||
#
|
||||
# Warning: if you want to run this script in cm-recovery change the above to #!/sbin/sh
|
||||
#
|
||||
# fix_permissions - fixes permissions on Android data directories after upgrade
|
||||
# shade@chemlab.org
|
||||
#
|
||||
# original concept: http://blog.elsdoerfer.name/2009/05/25/android-fix-package-uid-mismatches/
|
||||
# implementation by: Cyanogen
|
||||
# improved by: ankn, smeat, thenefield, farmatito, rikupw, Kastro
|
||||
#
|
||||
# v1.1-v1.31r3 - many improvements and concepts from XDA developers.
|
||||
# v1.34 through v2.00 - A lot of frustration [by Kastro]
|
||||
# v2.01 - Completely rewrote the script for SPEED, thanks for the input farmatito
|
||||
# /data/data depth recursion is tweaked;
|
||||
# fixed single mode;
|
||||
# functions created for modularity;
|
||||
# logging can be disabled via CLI for more speed;
|
||||
# runtime computation added to end (Runtime: mins secs);
|
||||
# progress (current # of total) added to screen;
|
||||
# fixed CLI argument parsing, now you can have more than one option!;
|
||||
# debug cli option;
|
||||
# verbosity can be disabled via CLI option for less noise;;
|
||||
# [by Kastro, (XDA: k4str0), twitter;mattcarver]
|
||||
# v2.02 - ignore com.htc.resources.apk if it exists and minor code cleanups,
|
||||
# fix help text, implement simulated run (-s) [farmatito]
|
||||
# v2.03 - fixed chown group ownership output [Kastro]
|
||||
# v2.04 - replaced /system/sd with $SD_EXT_DIRECTORY [Firerat]
|
||||
VERSION="2.04"
|
||||
|
||||
# Defaults
|
||||
DEBUG=0 # Debug off by default
|
||||
LOGGING=1 # Logging on by default
|
||||
VERBOSE=1 # Verbose on by default
|
||||
|
||||
# Messages
|
||||
UID_MSG="Changing user ownership for:"
|
||||
GID_MSG="Changing group ownership for:"
|
||||
PERM_MSG="Changing permissions for:"
|
||||
|
||||
# Programs needed
|
||||
ECHO="busybox echo"
|
||||
GREP="busybox grep"
|
||||
EGREP="busybox egrep"
|
||||
CAT="busybox cat"
|
||||
CHOWN="busybox chown"
|
||||
CHMOD="busybox chmod"
|
||||
MOUNT="busybox mount"
|
||||
UMOUNT="busybox umount"
|
||||
CUT="busybox cut"
|
||||
FIND="busybox find"
|
||||
LS="busybox ls"
|
||||
TR="busybox tr"
|
||||
TEE="busybox tee"
|
||||
TEST="busybox test"
|
||||
SED="busybox sed"
|
||||
RM="busybox rm"
|
||||
WC="busybox wc"
|
||||
EXPR="busybox expr"
|
||||
DATE="busybox date"
|
||||
|
||||
# Initialise vars
|
||||
CODEPATH=""
|
||||
LOCALUID=""
|
||||
LOCALGID=""
|
||||
PACKAGE=""
|
||||
REMOVE=0
|
||||
NOSYSTEM=0
|
||||
ONLY_ONE=""
|
||||
SIMULATE=0
|
||||
SYSREMOUNT=0
|
||||
SYSMOUNT=0
|
||||
DATAMOUNT=0
|
||||
SYSSDMOUNT=0
|
||||
FP_STARTTIME=$( $DATE +"%m-%d-%Y %H:%M:%S" )
|
||||
FP_STARTEPOCH=$( $DATE +%s )
|
||||
if $TEST "$SD_EXT_DIRECTORY" = ""; then
|
||||
#check for mount point, /system/sd included in tests for backward compatibility
|
||||
for MP in /sd-ext /system/sd;do
|
||||
if $TEST -d $MP; then
|
||||
SD_EXT_DIRECTORY=$MP
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fp_usage()
|
||||
{
|
||||
$ECHO "Usage $0 [OPTIONS] [APK_PATH]"
|
||||
$ECHO " -d turn on debug"
|
||||
$ECHO " -f fix only package APK_PATH"
|
||||
$ECHO " -l disable logging for this run (faster)"
|
||||
$ECHO " -r remove stale data directories"
|
||||
$ECHO " of uninstalled packages while fixing permissions"
|
||||
$ECHO " -s simulate only"
|
||||
$ECHO " -u check only non-system directories"
|
||||
$ECHO " -v disable verbosity for this run (less output)"
|
||||
$ECHO " -V print version"
|
||||
$ECHO " -h this help"
|
||||
}
|
||||
|
||||
fp_parseargs()
|
||||
{
|
||||
# Parse options
|
||||
while $TEST $# -ne 0; do
|
||||
case "$1" in
|
||||
-d)
|
||||
DEBUG=1
|
||||
;;
|
||||
-f)
|
||||
if $TEST $# -lt 2; then
|
||||
$ECHO "$0: missing argument for option $1"
|
||||
exit 1
|
||||
else
|
||||
if $TEST $( $ECHO $2 | $CUT -c1 ) != "-"; then
|
||||
ONLY_ONE=$2
|
||||
shift;
|
||||
else
|
||||
$ECHO "$0: missing argument for option $1"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
-r)
|
||||
REMOVE=1
|
||||
;;
|
||||
-s)
|
||||
SIMULATE=1
|
||||
;;
|
||||
-l)
|
||||
if $TEST $LOGGING -eq 0; then
|
||||
LOGGING=1
|
||||
else
|
||||
LOGGING=0
|
||||
fi
|
||||
;;
|
||||
-v)
|
||||
if $TEST $VERBOSE -eq 0; then
|
||||
VERBOSE=1
|
||||
else
|
||||
VERBOSE=0
|
||||
fi
|
||||
;;
|
||||
-u)
|
||||
NOSYSTEM=1
|
||||
;;
|
||||
-V)
|
||||
$ECHO "$0 $VERSION"
|
||||
exit 0
|
||||
;;
|
||||
-h)
|
||||
fp_usage
|
||||
exit 0
|
||||
;;
|
||||
-*)
|
||||
$ECHO "$0: unknown option $1"
|
||||
$ECHO
|
||||
fp_usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift;
|
||||
done
|
||||
}
|
||||
|
||||
fp_print()
|
||||
{
|
||||
MSG=$@
|
||||
if $TEST $LOGGING -eq 1; then
|
||||
$ECHO $MSG | $TEE -a $LOG_FILE
|
||||
else
|
||||
$ECHO $MSG
|
||||
fi
|
||||
}
|
||||
|
||||
fp_start()
|
||||
{
|
||||
if $TEST $SIMULATE -eq 0 ; then
|
||||
if $TEST $( $GREP -c " /system " "/proc/mounts" ) -ne 0; then
|
||||
DEVICE=$( $GREP " /system " "/proc/mounts" | $CUT -d ' ' -f1 )
|
||||
if $TEST $DEBUG -eq 1; then
|
||||
fp_print "/system mounted on $DEVICE"
|
||||
fi
|
||||
if $TEST $( $GREP " /system " "/proc/mounts" | $GREP -c " ro " ) -ne 0; then
|
||||
$MOUNT -o remount,rw $DEVICE /system
|
||||
SYSREMOUNT=1
|
||||
fi
|
||||
else
|
||||
$MOUNT /system > /dev/null 2>&1
|
||||
SYSMOUNT=1
|
||||
fi
|
||||
|
||||
if $TEST $( $GREP -c " /data " "/proc/mounts" ) -eq 0; then
|
||||
$MOUNT /data > /dev/null 2>&1
|
||||
DATAMOUNT=1
|
||||
fi
|
||||
|
||||
if $TEST -e /dev/block/mmcblk0p2 && $TEST $( $GREP -c " $SD_EXT_DIRECTORY " "/proc/mounts" ) -eq 0; then
|
||||
$MOUNT $SD_EXT_DIRECTORY > /dev/null 2>&1
|
||||
SYSSDMOUNT=1
|
||||
fi
|
||||
fi
|
||||
if $TEST $( $MOUNT | $GREP -c /sdcard ) -eq 0; then
|
||||
LOG_FILE="/data/fix_permissions.log"
|
||||
else
|
||||
LOG_FILE="/sdcard/fix_permissions.log"
|
||||
fi
|
||||
if $TEST ! -e "$LOG_FILE"; then
|
||||
> $LOG_FILE
|
||||
fi
|
||||
|
||||
fp_print "$0 $VERSION started at $FP_STARTTIME"
|
||||
}
|
||||
|
||||
fp_chown_uid()
|
||||
{
|
||||
FP_OLDUID=$1
|
||||
FP_UID=$2
|
||||
FP_FILE=$3
|
||||
|
||||
#if user ownership doesn't equal then change them
|
||||
if $TEST "$FP_OLDUID" != "$FP_UID"; then
|
||||
if $TEST $VERBOSE -ne 0; then
|
||||
fp_print "$UID_MSG $FP_FILE from '$FP_OLDUID' to '$FP_UID'"
|
||||
fi
|
||||
if $TEST $SIMULATE -eq 0; then
|
||||
$CHOWN $FP_UID "$FP_FILE"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
fp_chown_gid()
|
||||
{
|
||||
FP_OLDGID=$1
|
||||
FP_GID=$2
|
||||
FP_FILE=$3
|
||||
|
||||
#if group ownership doesn't equal then change them
|
||||
if $TEST "$FP_OLDGID" != "$FP_GID"; then
|
||||
if $TEST $VERBOSE -ne 0; then
|
||||
fp_print "$GID_MSG $FP_FILE from '$FP_OLDGID' to '$FP_GID'"
|
||||
fi
|
||||
if $TEST $SIMULATE -eq 0; then
|
||||
$CHOWN :$FP_GID "$FP_FILE"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
fp_chmod()
|
||||
{
|
||||
FP_OLDPER=$1
|
||||
FP_OLDPER=$( $ECHO $FP_OLDPER | cut -c2-10 )
|
||||
FP_PERSTR=$2
|
||||
FP_PERNUM=$3
|
||||
FP_FILE=$4
|
||||
|
||||
#if the permissions are not equal
|
||||
if $TEST "$FP_OLDPER" != "$FP_PERSTR"; then
|
||||
if $TEST $VERBOSE -ne 0; then
|
||||
fp_print "$PERM_MSG $FP_FILE from '$FP_OLDPER' to '$FP_PERSTR' ($FP_PERNUM)"
|
||||
fi
|
||||
#change the permissions
|
||||
if $TEST $SIMULATE -eq 0; then
|
||||
$CHMOD $FP_PERNUM "$FP_FILE"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
fp_all()
|
||||
{
|
||||
FP_NUMS=$( $CAT /data/system/packages.xml | $EGREP "^<package.*serId" | $GREP -v framework-res.apk | $GREP -v com.htc.resources.apk | $WC -l )
|
||||
I=0
|
||||
$CAT /data/system/packages.xml | $EGREP "^<package.*serId" | $GREP -v framework-res.apk | $GREP -v com.htc.resources.apk | while read all_line; do
|
||||
I=$( $EXPR $I + 1 )
|
||||
fp_package "$all_line" $I $FP_NUMS
|
||||
done
|
||||
}
|
||||
|
||||
fp_single()
|
||||
{
|
||||
FP_SFOUND=$( $CAT /data/system/packages.xml | $EGREP "^<package.*serId" | $GREP -v framework-res.apk | $GREP -v com.htc.resources.apk | $GREP -i $ONLY_ONE | wc -l )
|
||||
if $TEST $FP_SFOUND -gt 1; then
|
||||
fp_print "Cannot perform single operation on $FP_SFOUND matched package(s)."
|
||||
elif $TEST $FP_SFOUND = "" -o $FP_SFOUND -eq 0; then
|
||||
fp_print "Could not find the package you specified in the packages.xml file."
|
||||
else
|
||||
FP_SPKG=$( $CAT /data/system/packages.xml | $EGREP "^<package.*serId" | $GREP -v framework-res.apk | $GREP -v com.htc.resources.apk | $GREP -i $ONLY_ONE )
|
||||
fp_package "${FP_SPKG}" 1 1
|
||||
fi
|
||||
}
|
||||
|
||||
fp_package()
|
||||
{
|
||||
pkgline=$1
|
||||
curnum=$2
|
||||
endnum=$3
|
||||
CODEPATH=$( $ECHO $pkgline | $SED 's%.* codePath="\(.*\)".*%\1%' | $CUT -d '"' -f1 )
|
||||
PACKAGE=$( $ECHO $pkgline | $SED 's%.* name="\(.*\)".*%\1%' | $CUT -d '"' -f1 )
|
||||
LOCALUID=$( $ECHO $pkgline | $SED 's%.*serId="\(.*\)".*%\1%' | $CUT -d '"' -f1 )
|
||||
LOCALGID=$LOCALUID
|
||||
APPDIR=$( $ECHO $CODEPATH | $SED 's%^\(.*\)/.*%\1%' )
|
||||
APK=$( $ECHO $CODEPATH | $SED 's%^.*/\(.*\..*\)$%\1%' )
|
||||
|
||||
#debug
|
||||
if $TEST $DEBUG -eq 1; then
|
||||
fp_print "CODEPATH: $CODEPATH APPDIR: $APPDIR APK:$APK UID/GID:$LOCALUID:$LOCALGID"
|
||||
fi
|
||||
|
||||
#check for existence of apk
|
||||
if $TEST -e $CODEPATH; then
|
||||
fp_print "Processing ($curnum of $endnum): $PACKAGE..."
|
||||
|
||||
#lets get existing permissions of CODEPATH
|
||||
OLD_UGD=$( $LS -ln "$CODEPATH" )
|
||||
OLD_PER=$( $ECHO $OLD_UGD | $CUT -d ' ' -f1 )
|
||||
OLD_UID=$( $ECHO $OLD_UGD | $CUT -d ' ' -f3 )
|
||||
OLD_GID=$( $ECHO $OLD_UGD | $CUT -d ' ' -f4 )
|
||||
|
||||
#apk source dirs
|
||||
if $TEST "$APPDIR" = "/system/app"; then
|
||||
#skip system apps if set
|
||||
if $TEST "$NOSYSTEM" = "1"; then
|
||||
fp_print "***SKIPPING SYSTEM APP ($PACKAGE)!"
|
||||
return
|
||||
fi
|
||||
fp_chown_uid $OLD_UID 0 "$CODEPATH"
|
||||
fp_chown_gid $OLD_GID 0 "$CODEPATH"
|
||||
fp_chmod $OLD_PER "rw-r--r--" 644 "$CODEPATH"
|
||||
elif $TEST "$APPDIR" = "/data/app" || $TEST "$APPDIR" = "/sd-ext/app"; then
|
||||
fp_chown_uid $OLD_UID 1000 "$CODEPATH"
|
||||
fp_chown_gid $OLD_GID 1000 "$CODEPATH"
|
||||
fp_chmod $OLD_PER "rw-r--r--" 644 "$CODEPATH"
|
||||
elif $TEST "$APPDIR" = "/data/app-private" || $TEST "$APPDIR" = "/sd-ext/app-private"; then
|
||||
fp_chown_uid $OLD_UID 1000 "$CODEPATH"
|
||||
fp_chown_gid $OLD_GID $LOCALGID "$CODEPATH"
|
||||
fp_chmod $OLD_PER "rw-r-----" 640 "$CODEPATH"
|
||||
fi
|
||||
else
|
||||
fp_print "$CODEPATH does not exist ($curnum of $endnum). Reinstall..."
|
||||
if $TEST $REMOVE -eq 1; then
|
||||
if $TEST -d /data/data/$PACKAGE ; then
|
||||
fp_print "Removing stale dir /data/data/$PACKAGE"
|
||||
if $TEST $SIMULATE -eq 0 ; then
|
||||
$RM -R /data/data/$PACKAGE
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
#the data/data for the package
|
||||
if $TEST -d "/data/data/$PACKAGE"; then
|
||||
#find all directories in /data/data/$PACKAGE
|
||||
$FIND /data/data/$PACKAGE -type d -exec $LS -ldn {} \; | while read dataline; do
|
||||
#get existing permissions of that directory
|
||||
OLD_PER=$( $ECHO $dataline | $CUT -d ' ' -f1 )
|
||||
OLD_UID=$( $ECHO $dataline | $CUT -d ' ' -f3 )
|
||||
OLD_GID=$( $ECHO $dataline | $CUT -d ' ' -f4 )
|
||||
FILEDIR=$( $ECHO $dataline | $CUT -d ' ' -f9 )
|
||||
FOURDIR=$( $ECHO $FILEDIR | $CUT -d '/' -f5 )
|
||||
|
||||
#set defaults for iteration
|
||||
ISLIB=0
|
||||
REVPERM=755
|
||||
REVPSTR="rwxr-xr-x"
|
||||
REVUID=$LOCALUID
|
||||
REVGID=$LOCALGID
|
||||
|
||||
if $TEST "$FOURDIR" = ""; then
|
||||
#package directory, perms:755 owner:$LOCALUID:$LOCALGID
|
||||
fp_chmod $OLD_PER "rwxr-xr-x" 755 "$FILEDIR"
|
||||
elif $TEST "$FOURDIR" = "lib"; then
|
||||
#lib directory, perms:755 owner:1000:1000
|
||||
#lib files, perms:755 owner:1000:1000
|
||||
ISLIB=1
|
||||
REVPERM=755
|
||||
REVPSTR="rwxr-xr-x"
|
||||
REVUID=1000
|
||||
REVGID=1000
|
||||
fp_chmod $OLD_PER "rwxr-xr-x" 755 "$FILEDIR"
|
||||
elif $TEST "$FOURDIR" = "shared_prefs"; then
|
||||
#shared_prefs directories, perms:771 owner:$LOCALUID:$LOCALGID
|
||||
#shared_prefs files, perms:660 owner:$LOCALUID:$LOCALGID
|
||||
REVPERM=660
|
||||
REVPSTR="rw-rw----"
|
||||
fp_chmod $OLD_PER "rwxrwx--x" 771 "$FILEDIR"
|
||||
elif $TEST "$FOURDIR" = "databases"; then
|
||||
#databases directories, perms:771 owner:$LOCALUID:$LOCALGID
|
||||
#databases files, perms:660 owner:$LOCALUID:$LOCALGID
|
||||
REVPERM=660
|
||||
REVPSTR="rw-rw----"
|
||||
fp_chmod $OLD_PER "rwxrwx--x" 771 "$FILEDIR"
|
||||
elif $TEST "$FOURDIR" = "cache"; then
|
||||
#cache directories, perms:771 owner:$LOCALUID:$LOCALGID
|
||||
#cache files, perms:600 owner:$LOCALUID:$LOCALGID
|
||||
REVPERM=600
|
||||
REVPSTR="rw-------"
|
||||
fp_chmod $OLD_PER "rwxrwx--x" 771 "$FILEDIR"
|
||||
else
|
||||
#other directories, perms:771 owner:$LOCALUID:$LOCALGID
|
||||
REVPERM=771
|
||||
REVPSTR="rwxrwx--x"
|
||||
fp_chmod $OLD_PER "rwxrwx--x" 771 "$FILEDIR"
|
||||
fi
|
||||
|
||||
#change ownership of directories matched
|
||||
if $TEST "$ISLIB" = "1"; then
|
||||
fp_chown_uid $OLD_UID 1000 "$FILEDIR"
|
||||
fp_chown_gid $OLD_GID 1000 "$FILEDIR"
|
||||
else
|
||||
fp_chown_uid $OLD_UID $LOCALUID "$FILEDIR"
|
||||
fp_chown_gid $OLD_GID $LOCALGID "$FILEDIR"
|
||||
fi
|
||||
|
||||
#if any files exist in directory with improper permissions reset them
|
||||
$FIND $FILEDIR -type f -maxdepth 1 ! -perm $REVPERM -exec $LS -ln {} \; | while read subline; do
|
||||
OLD_PER=$( $ECHO $subline | $CUT -d ' ' -f1 )
|
||||
SUBFILE=$( $ECHO $subline | $CUT -d ' ' -f9 )
|
||||
fp_chmod $OLD_PER $REVPSTR $REVPERM "$SUBFILE"
|
||||
done
|
||||
|
||||
#if any files exist in directory with improper user reset them
|
||||
$FIND $FILEDIR -type f -maxdepth 1 ! -user $REVUID -exec $LS -ln {} \; | while read subline; do
|
||||
OLD_UID=$( $ECHO $subline | $CUT -d ' ' -f3 )
|
||||
SUBFILE=$( $ECHO $subline | $CUT -d ' ' -f9 )
|
||||
fp_chown_uid $OLD_UID $REVUID "$SUBFILE"
|
||||
done
|
||||
|
||||
#if any files exist in directory with improper group reset them
|
||||
$FIND $FILEDIR -type f -maxdepth 1 ! -group $REVGID -exec $LS -ln {} \; | while read subline; do
|
||||
OLD_GID=$( $ECHO $subline | $CUT -d ' ' -f4 )
|
||||
SUBFILE=$( $ECHO $subline | $CUT -d ' ' -f9 )
|
||||
fp_chown_gid $OLD_GID $REVGID "$SUBFILE"
|
||||
done
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
date_diff()
|
||||
{
|
||||
if $TEST $# -ne 2; then
|
||||
FP_DDM="E"
|
||||
FP_DDS="E"
|
||||
return
|
||||
fi
|
||||
FP_DDD=$( $EXPR $2 - $1 )
|
||||
FP_DDM=$( $EXPR $FP_DDD / 60 )
|
||||
FP_DDS=$( $EXPR $FP_DDD % 60 )
|
||||
}
|
||||
|
||||
fp_end()
|
||||
{
|
||||
if $TEST $SYSREMOUNT -eq 1; then
|
||||
$MOUNT -o remount,ro $DEVICE /system > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
if $TEST $SYSSDMOUNT -eq 1; then
|
||||
$UMOUNT $SD_EXT_DIRECTORY > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
if $TEST $SYSMOUNT -eq 1; then
|
||||
$UMOUNT /system > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
if $TEST $DATAMOUNT -eq 1; then
|
||||
$UMOUNT /data > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
FP_ENDTIME=$( $DATE +"%m-%d-%Y %H:%M:%S" )
|
||||
FP_ENDEPOCH=$( $DATE +%s )
|
||||
|
||||
date_diff $FP_STARTEPOCH $FP_ENDEPOCH
|
||||
|
||||
fp_print "$0 $VERSION ended at $FP_ENDTIME (Runtime:${FP_DDM}m${FP_DDS}s)"
|
||||
}
|
||||
|
||||
#MAIN SCRIPT
|
||||
|
||||
fp_parseargs $@
|
||||
fp_start
|
||||
if $TEST "$ONLY_ONE" != "" -a "$ONLY_ONE" != "0" ; then
|
||||
fp_single "$ONLY_ONE"
|
||||
else
|
||||
fp_all
|
||||
fi
|
||||
fp_end
|
|
@ -1,31 +0,0 @@
|
|||
#!/system/bin/sh
|
||||
#
|
||||
# Compcache handler
|
||||
# Decides whether or not Compcache is enabled
|
||||
#
|
||||
MEMTOTAL=$( awk '{ if ($1 eq "MemTotal:") print $2 ;exit }' </proc/meminfo )
|
||||
|
||||
if [ `getprop persist.service.zram` == 1 ];
|
||||
then
|
||||
PROP=`getprop ro.zram.default`
|
||||
setprop persist.service.zram $PROP
|
||||
fi
|
||||
|
||||
if [ -e /data/property/persist.service.zram ];
|
||||
then
|
||||
PROP=`getprop persist.service.zram`
|
||||
else
|
||||
PROP=`getprop ro.zram.default`
|
||||
setprop persist.service.zram $PROP
|
||||
fi
|
||||
|
||||
if [ $PROP != 0 ]
|
||||
then
|
||||
CCSIZE=$(($(($MEMTOTAL * $PROP)) / 100))
|
||||
`dirname $0`/compcache start $CCSIZE
|
||||
else
|
||||
`dirname $0`/compcache stop
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
#!/sbin/sh
|
||||
|
||||
# Validate that the incoming OTA is compatible with an already-installed
|
||||
# system
|
||||
|
||||
grep -q "Command:.*\"--wipe\_data\"" /tmp/recovery.log
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Data will be wiped after install; skipping signature check..."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
grep -q "Command:.*\"--headless\"" /tmp/recovery.log
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Headless mode install; skipping signature check..."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -f /data/system/packages.xml -a -f /tmp/releasekey ]; then
|
||||
relCert=$(grep -A3 'package name="com.android.htmlviewer"' /data/system/packages.xml | grep "cert index" | head -n 1 | sed -e 's|.*"\([[:digit:]][[:digit:]]*\)".*|\1|g')
|
||||
|
||||
# Tools missing? Err on the side of caution and exit cleanly
|
||||
if [ "z$relCert" == "z" ]; then exit 0; fi
|
||||
|
||||
grep "cert index=\"$relCert\"" /data/system/packages.xml | grep -q `cat /tmp/releasekey`
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "You have an installed system that isn't signed with this build's key, aborting..."
|
||||
exit 124
|
||||
fi
|
||||
fi
|
||||
|
||||
exit 0
|
|
@ -1,4 +1,9 @@
|
|||
#!/system/bin/sh
|
||||
|
||||
export PATH=/sbin:/system/sbin:/system/bin:/system/xbin
|
||||
/system/bin/logwrapper /system/xbin/run-parts /system/etc/init.d
|
||||
for i in /system/etc/init.d/*; do
|
||||
if [ -x $i ]; then
|
||||
/system/bin/log -t sysinit Running $i
|
||||
$i
|
||||
fi
|
||||
done
|
||||
|
|
|
@ -0,0 +1,184 @@
|
|||
#!/system/bin/sh
|
||||
# wget-curl, a curl wrapper acting as a wget drop-in replacement - version git-HEAD
|
||||
# Usage: wget [wget args] [i need to fill this in later] <url(s)>
|
||||
# Download all URLs given using curl, but using wget's options.
|
||||
#
|
||||
#
|
||||
# End of help.
|
||||
# Copyright (c) 2015 Kylie McClain <somasis@exherbo.org>
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
# copyright notice and this permission notice appear in all copies.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
#
|
||||
# End of copyright.
|
||||
#
|
||||
|
||||
set -o pipefail
|
||||
shopt -u shift_verbose >/dev/null 2>&1
|
||||
|
||||
help() {
|
||||
sed -n '/^#/!d;s/^# //;s/^#//;3,${p;}' "$0" | \
|
||||
while IFS= read help_line;do
|
||||
if [[ "$help_line" == "End of help." ]];then
|
||||
exit 0
|
||||
else
|
||||
printf "%s\n" "$help_line"
|
||||
fi
|
||||
done
|
||||
exit 0
|
||||
}
|
||||
|
||||
version() {
|
||||
sed 's/^# //;s/, .* - version / /;2q;$!d' "$0"
|
||||
copyright
|
||||
exit 0
|
||||
}
|
||||
|
||||
copyright() {
|
||||
sed -n '/^#/!d;s/^# //;s/^#//;/End of help./,${p;}' "$0" | \
|
||||
while IFS= read copyright_line;do
|
||||
if [[ "$copyright_line" == "End of help." ]];then
|
||||
true
|
||||
elif [[ "$copyright_line" == "End of copyright." ]];then
|
||||
break
|
||||
else
|
||||
printf '%s\n' "$copyright_line"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
stderr() {
|
||||
printf "$@" >&2
|
||||
}
|
||||
|
||||
error() {
|
||||
stderr "$0: $1\n"
|
||||
exit "$2"
|
||||
}
|
||||
|
||||
invalid_arg() {
|
||||
error "invalid option -- '$1'" 2
|
||||
}
|
||||
|
||||
append_opt() {
|
||||
for opt in $@;do
|
||||
CURL_OPTS="${CURL_OPTS} ${opt}"
|
||||
done
|
||||
}
|
||||
|
||||
curl() {
|
||||
eval "command curl $@ ${CURL_RAW}"
|
||||
}
|
||||
|
||||
append_raw_arg() {
|
||||
CURL_RAW="$CURL_RAW $@"
|
||||
}
|
||||
|
||||
has_opt() { # exit 0 if CURL_OPTS has arg, non-zero if doesn't
|
||||
if [[ "$CURL_OPTS" == *" $1"* ]];then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
reexec_without() { # download afterwards without $1 in OPTS
|
||||
reexec_args_without="$reexec_args_without $@"
|
||||
reexec=1
|
||||
}
|
||||
|
||||
reexec_only() {
|
||||
for arg in $@;do
|
||||
CURL_OPTS_REEXEC_ONLY="${CURL_OPTS_REEXEC_ONLY} $arg"
|
||||
done
|
||||
}
|
||||
|
||||
print_url() {
|
||||
has_opt -s || printf "%s\n" "$1"
|
||||
}
|
||||
|
||||
# 46ABDFHIKLNOPQRSTUVXabcdhiklm nH nc nd np nv opqrtvwx
|
||||
while getopts ':46ABDFHIKLNO:PQRST:U:VXa:bcdhiklmopqrtvwx' argument "$@";do
|
||||
case "$argument" in
|
||||
# a lot of these are noop right now because they are wget mirror args
|
||||
# which curl doesn't really do, and i am not sure if i should implement them
|
||||
4) append_opt -4 ;;
|
||||
6) append_opt -6 ;;
|
||||
A) true ;; # probably can't implement this easily...
|
||||
B) true ;;
|
||||
D) true ;;
|
||||
E) true ;;
|
||||
F) true ;; # curl doesn't care what the input is
|
||||
H) true ;;
|
||||
I) true ;;
|
||||
K) true ;;
|
||||
L) true ;;
|
||||
N) true ;;
|
||||
O) append_opt "-o $OPTARG" ;;
|
||||
P) true ;;
|
||||
Q) true ;;
|
||||
R) true ;;
|
||||
S) append_opt -I;reexec_without -I -s ;;
|
||||
T) append_opt "-m $OPTARG" ;;
|
||||
U) append_opt "--user-agent \"$OPTARG\"" ;;
|
||||
V) version; curl --version; exit 0 ;;
|
||||
X) true ;;
|
||||
a) append_raw_arg "2>&1 | tee -a $OPTARG" ;;
|
||||
b)
|
||||
wget_log="wget-log"
|
||||
i=1
|
||||
while [[ -f "${wget_log}" ]];do
|
||||
# if that exists, increment until we find something that doesn't
|
||||
i=$(($i+1))
|
||||
wget_log="wget-log.${i}"
|
||||
done
|
||||
append_raw_arg ">\"$wget_log\" 2>&1 &"
|
||||
printf "Continuing in background, pid %s.\nOutput will be written to '$wget_log'.\n" "$$"
|
||||
;;
|
||||
c) append_opt "-C -" ;;
|
||||
d) append_opt "-v" ;;
|
||||
e) true ;;
|
||||
h) help ;;
|
||||
i)
|
||||
[[ ! -f "$OPTARG" ]] && error "$OPTARG does not exist" 3
|
||||
for url in $(<"$OPTARG");do
|
||||
URLS=( ${URLS[@]} "$url" )
|
||||
done
|
||||
;;
|
||||
q) append_opt "-s" ;;
|
||||
esac
|
||||
shift $(($OPTIND-1))
|
||||
done
|
||||
|
||||
# set wget default equivilants
|
||||
append_opt -L # follow redirects
|
||||
append_opt -# # progress bar
|
||||
|
||||
if [[ -z "${URLS[@]}" ]];then
|
||||
URLS=( ${@} )
|
||||
fi
|
||||
|
||||
for url in ${URLS[@]};do
|
||||
url_file=${url##*/}
|
||||
if [[ "$url" == "$url_file" ]];then
|
||||
# has no remote file name and -o is not in CURL_OPTS... assume index.html
|
||||
has_opt -o || append_opt "-o index.html"
|
||||
fi
|
||||
|
||||
eval "print_url '$url';curl ${CURL_OPTS} -- $url"
|
||||
if [[ "$reexec" ]];then
|
||||
for reexec_arg in ${reexec_args_without};do
|
||||
CURL_OPTS_REEXEC=$(echo "${CURL_OPTS_REEXEC:-$CURL_OPTS}" | sed "s# $reexec_arg##")
|
||||
done
|
||||
eval "print_url '$url';curl ${CURL_OPTS_REEXEC} ${CURL_OPTS_REEXEC_ONLY} -- $url"
|
||||
fi
|
||||
done
|
|
@ -0,0 +1 @@
|
|||
b0a27bcb5c7504a81e1450a8313e37cb
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue