mirror of
https://github.com/opengapps/opengapps.git
synced 2025-11-08 07:54:31 +00:00
447 lines
33 KiB
Bash
Executable File
447 lines
33 KiB
Bash
Executable File
#This file is part of The Open GApps script of @mfonville.
|
|
#
|
|
# The Open GApps scripts are free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# These scripts are distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
|
|
# Static definitions, lists of packages per variant and in the core
|
|
# setupwizard is defined in in.compatibility.sh api19hack
|
|
gappscore="defaultetc
|
|
defaultframework
|
|
googlebackuptransport
|
|
googlecontactssync
|
|
googlefeedback
|
|
googleonetimeinitializer
|
|
googlepartnersetup
|
|
googlepixelconfig
|
|
gmscore
|
|
gsfcore
|
|
vending"
|
|
|
|
gappscore_optional=""
|
|
|
|
gappssuper="dmagent
|
|
docs
|
|
earth
|
|
fitness
|
|
hangouts
|
|
indic
|
|
japanese
|
|
korean
|
|
pinyin
|
|
projectfi
|
|
sheets
|
|
slides
|
|
street
|
|
zhuyin"
|
|
|
|
gappsstock="cameragoogle
|
|
duo
|
|
googlepay
|
|
keyboardgoogle
|
|
translate
|
|
vrservice"
|
|
|
|
gappsstock_optional=""
|
|
|
|
gappsfull="books
|
|
chrome
|
|
drive
|
|
keep
|
|
movies
|
|
newsstand
|
|
playgames
|
|
talkback"
|
|
|
|
gappsfull_optional=""
|
|
|
|
gappsmini="clockgoogle
|
|
maps
|
|
messenger
|
|
photos
|
|
youtube"
|
|
|
|
gappsmini_optional=""
|
|
|
|
# googletts for micro is defined in inc.compatibility.sh api23hack
|
|
gappsmicro="calendargoogle
|
|
exchangegoogle
|
|
gmail"
|
|
|
|
gappsnano="search
|
|
speech"
|
|
|
|
gappspico="calsync"
|
|
|
|
stockremove="browser
|
|
camerastock
|
|
dialerstock
|
|
email
|
|
gallery
|
|
launcher
|
|
mms
|
|
picotts"
|
|
|
|
gappstvcore="configupdater
|
|
googlebackuptransport
|
|
googlecontactssync
|
|
gsfcore
|
|
tvetc
|
|
tvgmscore
|
|
tvvending"
|
|
|
|
gappstvmini="backdrop
|
|
leanbacklauncher
|
|
livechannels
|
|
tvkeyboardgoogle
|
|
tvremote
|
|
tvsearch
|
|
tvwidget
|
|
tvwallpaper"
|
|
|
|
gappstvstock="castreceiver
|
|
talkback
|
|
tvmovies
|
|
tvplaygames
|
|
tvyoutube"
|
|
|
|
miniremove=""
|
|
|
|
case "$ARCH" in
|
|
arm64|x86_64) LIBFOLDER="lib64";;
|
|
*) LIBFOLDER="lib";;
|
|
esac
|
|
|
|
get_fallback_arch(){
|
|
case "$1" in
|
|
arm) fallback_arch="all";;
|
|
arm64) fallback_arch="arm";;
|
|
x86) fallback_arch="arm";; # By using libhoudini
|
|
x86_64) fallback_arch="x86";; # e.g. chain: x86_64->x86->arm->all
|
|
*) fallback_arch="$1";; # Return original arch if no fallback available
|
|
esac
|
|
}
|
|
|
|
get_supported_variants(){
|
|
case "$1" in
|
|
aroma) if [ "$API" -ge "22" ]; then
|
|
supported_variants="pico nano micro mini full stock super"
|
|
else
|
|
supported_variants="pico nano micro mini full stock"
|
|
fi
|
|
gappsremove_variant="super";;
|
|
super) supported_variants="pico nano micro mini full stock super"; gappsremove_variant="super";;
|
|
stock) supported_variants="pico nano micro mini full stock"; gappsremove_variant="super";;
|
|
full) supported_variants="pico nano micro mini full"; gappsremove_variant="super";;
|
|
mini) supported_variants="pico nano micro mini"; gappsremove_variant="super";;
|
|
micro) supported_variants="pico nano micro"; gappsremove_variant="super";;
|
|
nano) supported_variants="pico nano"; gappsremove_variant="super";;
|
|
pico) supported_variants="pico"; gappsremove_variant="super";;
|
|
|
|
tvstock) supported_variants="tvmini tvstock"; gappsremove_variant="tvstock";;
|
|
tvmini) supported_variants="tvmini"; gappsremove_variant="tvstock";;
|
|
|
|
*) supported_variants="";;
|
|
esac
|
|
}
|
|
|
|
get_gapps_list(){
|
|
# Compile the list of applications that will be build for this variant
|
|
case "$1" in
|
|
tv*) gapps_list="$gappstvcore $gappstvcore_optional";;
|
|
*) gapps_list="$gappscore $gappscore_optional";;
|
|
esac
|
|
for variant in $1; do
|
|
eval "addtogapps=\"\$gapps$variant \$gapps${variant}_optional\""
|
|
gapps_list="$gapps_list $addtogapps"
|
|
done
|
|
}
|
|
|
|
buildtarget() {
|
|
preparebuildarea
|
|
|
|
# Compile the list of applications that will have to be build for this variant
|
|
get_gapps_list "$SUPPORTEDVARIANTS"
|
|
gapps="$gapps_list"
|
|
|
|
for app in $gapps; do
|
|
get_package_info "$app"
|
|
if [ -n "$packagename" ]; then
|
|
buildapp "$packagename" "$packagemaxapi" "$packagetype/$app" "$packagetarget"
|
|
fi
|
|
for file in $packagefiles; do
|
|
buildfile "$file" "$packagetype/$app" "common"
|
|
done
|
|
for framework in $packageframework; do
|
|
buildframework "$framework" "$packagetype/$app" "common"
|
|
done
|
|
for lib in $packagelibs; do
|
|
buildsystemlib "$lib" "$packagetype/$app" "common"
|
|
done
|
|
done
|
|
|
|
EXTRACTFILES="app_densities.txt app_sizes.txt" # Is executed as first
|
|
CHMODXFILES=""
|
|
}
|
|
|
|
get_package_info(){
|
|
packagename=""
|
|
packagetype=""
|
|
packagetarget=""
|
|
packagefiles=""
|
|
packageframework=""
|
|
packagelibs=""
|
|
packagemaxapi="$API"
|
|
packagegappsremove=""
|
|
case "$1" in
|
|
# Common GApps
|
|
configupdater) packagetype="Core"; packagename="com.google.android.configupdater"; packagetarget="priv-app/ConfigUpdater";; # On Android TV 5.1 and 6.0 this is in /app
|
|
extsharedgoogle) packagetype="Core"; packagename="com.google.android.ext.shared"; packagetarget="app/GoogleExtShared";;
|
|
extservicesgoogle) packagetype="Core"; packagename="com.google.android.ext.services"; packagetarget="priv-app/GoogleExtServices";;
|
|
googlebackuptransport) packagetype="Core"; packagename="com.google.android.backuptransport"; packagetarget="priv-app/GoogleBackupTransport";;
|
|
googlecontactssync) packagetype="Core"; packagename="com.google.android.syncadapters.contacts"; packagetarget="app/GoogleContactsSyncAdapter";;
|
|
gsfcore) packagetype="Core"; packagename="com.google.android.gsf"; packagetarget="priv-app/GoogleServicesFramework";;
|
|
talkback) packagetype="GApps"; packagename="com.google.android.marvin.talkback"; packagetarget="app/talkback";;
|
|
webviewgoogle) packagetype="GApps"; packagename="com.google.android.webview"; packagetarget="app/WebViewGoogle"; packagegappsremove="$webviewgappsremove";;
|
|
trichromelibrary) packagetype="GApps"; packagename="com.google.android.trichromelibrary"; packagetarget="app/TrichromeLibrary";;
|
|
webviewstub) packagetype="GApps"; packagename="com.google.android.webview.stub"; packagetarget="app/WebViewStub";;
|
|
|
|
# Regular GApps
|
|
backuprestore) packagetype="Core"; packagename="com.google.android.apps.restore"; packagetarget="priv-app/GoogleRestore";;
|
|
carriersetup) packagetype="Core"; packagename="com.google.android.carriersetup"; packagetarget="priv-app/CarrierSetup";;
|
|
datatransfertool) packagetype="Core"; packagename="com.google.android.apps.pixelmigrate"; packagetarget="priv-app/AndroidMigratePrebuilt";;
|
|
defaultetc) packagetype="Core";
|
|
if [ "$API" -ge "29" ]; then # Specific permission files for Android 10.0+
|
|
packagefiles="etc/default-permissions/default-permissions.xml etc/default-permissions/opengapps-permissions-q.xml etc/permissions/privapp-permissions-google.xml etc/permissions/split-permissions-google.xml etc/preferred-apps/google.xml etc/sysconfig/google-hiddenapi-package-whitelist.xml etc/sysconfig/google.xml etc/sysconfig/google_build.xml etc/sysconfig/google_exclusives_enable.xml"
|
|
elif [ "$API" -ge "28" ]; then # Specific permission files for Android 9.0
|
|
packagefiles="etc/default-permissions/default-permissions.xml etc/default-permissions/opengapps-permissions.xml etc/permissions/privapp-permissions-google.xml etc/preferred-apps/google.xml etc/sysconfig/google-hiddenapi-package-whitelist.xml etc/sysconfig/google.xml etc/sysconfig/google_build.xml etc/sysconfig/google_exclusives_enable.xml"
|
|
elif [ "$API" -ge "26" ]; then # Specific permission files for Android 8.0 to 8.1
|
|
packagefiles="etc/default-permissions/default-permissions.xml etc/default-permissions/opengapps-permissions.xml etc/permissions/privapp-permissions-google.xml etc/preferred-apps/google.xml etc/sysconfig/google.xml etc/sysconfig/google_build.xml etc/sysconfig/google_exclusives_enable.xml"
|
|
elif [ "$API" -ge "25" ]; then # Specific permission files for Android 7.1
|
|
packagefiles="etc/default-permissions/default-permissions.xml etc/default-permissions/opengapps-permissions.xml etc/preferred-apps/google.xml etc/sysconfig/google.xml etc/sysconfig/google_build.xml etc/sysconfig/google_exclusives_enable.xml"
|
|
elif [ "$API" -ge "21" ]; then # Specific permission files for Android 5.0 to 7.0
|
|
packagefiles="etc/preferred-apps/google.xml etc/sysconfig/google.xml etc/sysconfig/google_build.xml"
|
|
elif [ "$API" -ge "19" ]; then # Specific permission files for Android 4.4
|
|
packagefiles="etc/preferred-apps/google.xml"
|
|
else # Add all sysconfig and permission files for undetected/newer Android version
|
|
packagefiles="etc/default-permissions/default-permissions.xml etc/default-permissions/opengapps-permissions.xml etc/permissions/privapp-permissions-google.xml etc/preferred-apps/google.xml etc/sysconfig/google-hiddenapi-package-whitelist.xml etc/sysconfig/google.xml etc/sysconfig/google_build.xml etc/sysconfig/google_exclusives_enable.xml"
|
|
fi;;
|
|
defaultframework) packagetype="Core";
|
|
if [ "$API" -ge "25" ]; then # Specific permission files and frameworks for Android 7.1+
|
|
packagefiles="etc/permissions/com.google.android.maps.xml etc/permissions/com.google.android.media.effects.xml"
|
|
packageframework="com.google.android.maps.jar com.google.android.media.effects.jar"
|
|
elif [ "$API" -ge "19" ]; then # Specific permission files and frameworks for Android 4.4 to 7.0
|
|
packagefiles="etc/permissions/com.google.android.maps.xml etc/permissions/com.google.android.media.effects.xml etc/permissions/com.google.widevine.software.drm.xml"
|
|
packageframework="com.google.android.maps.jar com.google.android.media.effects.jar com.google.widevine.software.drm.jar"
|
|
else # Add all permission files and frameworks for undetected/newer Android version
|
|
packagefiles="etc/permissions/com.google.android.maps.xml etc/permissions/com.google.android.media.effects.xml etc/permissions/com.google.widevine.software.drm.xml"
|
|
packageframework="com.google.android.maps.jar com.google.android.media.effects.jar com.google.widevine.software.drm.jar"
|
|
fi;;
|
|
gmscore) packagetype="Core"; packagename="com.google.android.gms";
|
|
if [ "$API" -eq "28" ]; then # Path on Android 9.0 is priv-app/PrebuiltGmsCorePi
|
|
packagetarget="priv-app/PrebuiltGmsCorePi"
|
|
elif [ "$API" -eq "27" ]; then # Path on Android 8.1 is priv-app/PrebuiltGmsCorePix
|
|
packagetarget="priv-app/PrebuiltGmsCorePix"
|
|
else # The path on Android 10.0 and on versions <= 8.0 is priv-app/PrebuiltGmsCore
|
|
packagetarget="priv-app/PrebuiltGmsCore"
|
|
fi;;
|
|
gmssetup) packagetype="Core"; packagename="com.google.android.gms.setup"; packagetarget="priv-app/GmsCoreSetupPrebuilt";;
|
|
googlefeedback) packagetype="Core"; packagename="com.google.android.feedback"; packagetarget="priv-app/GoogleFeedback";;
|
|
googleonetimeinitializer) packagetype="Core"; packagename="com.google.android.onetimeinitializer"; packagetarget="priv-app/GoogleOneTimeInitializer";;
|
|
googlepartnersetup) packagetype="Core"; packagename="com.google.android.partnersetup"; packagetarget="priv-app/GooglePartnerSetup";;
|
|
googlepixelconfig) packagetype="Core";
|
|
if [ "$API" -ge "28" ]; then # Specific permission files for Android 9.0
|
|
packagefiles="etc/sysconfig/nexus.xml etc/sysconfig/pixel_2018_exclusive.xml etc/sysconfig/pixel_experience_2017.xml etc/sysconfig/pixel_experience_2018.xml"
|
|
elif [ "$API" -ge "26" ]; then # Specific permission files for Android 8.0 to 8.1
|
|
packagefiles="etc/sysconfig/nexus.xml etc/sysconfig/pixel_2017_exclusive.xml etc/sysconfig/pixel_experience_2017.xml"
|
|
elif [ "$API" -ge "25" ]; then # Specific permission files for Android 7.1
|
|
packagefiles="etc/sysconfig/nexus.xml"
|
|
fi;;
|
|
gsflogin) packagetype="Core"; packagename="com.google.android.gsf.login"; packagetarget="priv-app/GoogleLoginService";; # Permanently removed in Android 7.1+
|
|
platformservicesoreo) packagetype="Core"; packagename="com.google.android.gms.policy_sidecar_o"; packagetarget="priv-app/AndroidPlatformServices";; # On Android < 9.0
|
|
platformservices) packagetype="Core"; packagename="com.google.android.gms.policy_sidecar_aps"; packagetarget="priv-app/AndroidPlatformServices";;
|
|
setupwizard) packagetype="Core"; packagename="com.google.android.setupwizard"; packagetarget="priv-app/SetupWizard";; # Android 4.4 only (see api19hack in inc.buildtarget.sh)
|
|
setupwizarddefault) packagetype="Core"; packagename="com.google.android.setupwizard.default"; packagetarget="priv-app/SetupWizard";; # SetupWizardPrebuilt on Pixels
|
|
setupwizardtablet) packagetype="Core"; packagename="com.google.android.setupwizard.tablet"; packagetarget="priv-app/SetupWizard";;
|
|
vending) packagetype="Core"; packagename="com.android.vending"; packagetarget="priv-app/Phonesky";;
|
|
|
|
actionsservices) packagetype="GApps"; packagename="com.google.android.as"; packagetarget="priv-app/MatchmakerPrebuilt"
|
|
if [ "$API" -ge "28" ]; then # Add an overlay for Android 9.0+
|
|
packagefiles="product/overlay/ActionsServicesOverlay.apk"
|
|
packagegappsremove="product/overlay/ActionsServicesOverlay.apk vendor/overlay/ActionsServicesOverlay.apk"
|
|
fi;;
|
|
androidauto) packagetype="GApps"; packagename="com.google.android.projection.gearhead"; packagetarget="app/AndroidAutoPrebuilt";;
|
|
batteryusage) packagetype="GApps"; packagename="com.google.android.apps.turbo"; packagetarget="priv-app/Turbo";;
|
|
bettertogether) packagetype="GApps"; packagename="com.google.android.apps.multidevice.client"; packagetarget="app/SMSConnectPrebuilt";;
|
|
books) packagetype="GApps"; packagename="com.google.android.apps.books"; packagetarget="app/Books";;
|
|
calculatorgoogle) packagetype="GApps"; packagename="com.google.android.calculator"; packagetarget="app/CalculatorGooglePrebuilt";;
|
|
calendargoogle) packagetype="GApps"; packagename="com.google.android.calendar"; packagetarget="app/CalendarGooglePrebuilt";;
|
|
calsync) packagetype="GApps"; packagename="com.google.android.syncadapters.calendar"; packagetarget="app/GoogleCalendarSyncAdapter";;
|
|
cameragoogle) packagetype="GApps"; packagename="com.google.android.googlecamera"; packagetarget="app/GoogleCamera";
|
|
# Camera 2018 bundle disabled until more verification of proper functionality is confirmed
|
|
# if [ "$API" -ge "28" ]; then # On Android 9.0 we bundle Camera 2018 for non-legacy camera
|
|
# packagefiles="etc/permissions/com.google.android.camera.experimental2018.xml"; packageframework="com.google.android.camera.experimental2018.jar"
|
|
# if [ "$API" -ge "26" ]; then # On Android 8.0 to 8.1 we bundle Camera 2017 for non-legacy camera
|
|
# packagefiles="etc/permissions/com.google.android.camera.experimental2017.xml"; packageframework="com.google.android.camera.experimental2017.jar"
|
|
if [ "$API" -ge "25" ]; then # On Android 7.1 we bundle Camera 2016 for non-legacy camera
|
|
packagefiles="etc/permissions/com.google.android.camera.experimental2016.xml"; packageframework="com.google.android.camera.experimental2016.jar"
|
|
elif [ "$API" -ge "23" ]; then # On Android 6.0 to 7.0 we bundle Camera 2015 for non-legacy camera
|
|
packagefiles="etc/permissions/com.google.android.camera.experimental2015.xml"; packageframework="com.google.android.camera.experimental2015.jar"
|
|
else
|
|
packagefiles="etc/permissions/com.google.android.camera2.xml"; packageframework="com.google.android.camera2.jar"
|
|
fi;;
|
|
cameragooglelegacy) packagetype="GApps"; packagename="com.google.android.googlecamera"; packagetarget="app/GoogleCameraLegacy"; packagemaxapi="22"; packagefiles="etc/permissions/com.google.android.camera2.xml"; packageframework="com.google.android.camera2.jar";;
|
|
chrome) packagetype="GApps"; packagename="com.android.chrome"; packagetarget="app/Chrome";;
|
|
carrierservices) packagetype="GApps"; packagename="com.google.android.ims"; packagetarget="priv-app/CarrierServices";;
|
|
clockgoogle) packagetype="GApps"; packagename="com.google.android.deskclock"; packagetarget="app/PrebuiltDeskClockGoogle";;
|
|
contactsgoogle) packagetype="GApps"; packagename="com.google.android.contacts"; packagetarget="priv-app/GoogleContacts";;
|
|
dialerframework) packagetype="GApps"; packagefiles="etc/permissions/com.google.android.dialer.support.xml etc/sysconfig/dialer_experience.xml"; packageframework="com.google.android.dialer.support.jar";;
|
|
dialergoogle) packagetype="GApps"; packagename="com.google.android.dialer"; packagetarget="priv-app/GoogleDialer"
|
|
if [ "$API" -ge "28" ]; then # Add an overlay for Android 9.0+
|
|
packagefiles="product/overlay/DefaultDialerOverlay.apk product/overlay/PhoneOverlay.apk product/overlay/TelecomOverlay.apk"
|
|
packagegappsremove="product/overlay/DefaultDialerOverlay.apk product/overlay/PhoneOverlay.apk product/overlay/TelecomOverlay.apk vendor/overlay/DefaultDialerOverlay.apk vendor/overlay/PhoneOverlay.apk vendor/overlay/TelecomOverlay.apk"
|
|
fi;;
|
|
dmagent) packagetype="GApps"; packagename="com.google.android.apps.enterprise.dmagent"; packagetarget="app/DMAgent";;
|
|
docs) packagetype="GApps"; packagename="com.google.android.apps.docs.editors.docs"; packagetarget="app/EditorsDocs";;
|
|
drive) packagetype="GApps"; packagename="com.google.android.apps.docs"; packagetarget="app/Drive";;
|
|
duo) packagetype="GApps"; packagename="com.google.android.apps.tachyon"; packagetarget="app/Duo";;
|
|
earth) packagetype="GApps"; packagename="com.google.earth"; packagetarget="app/GoogleEarth";;
|
|
exchangegoogle) packagetype="GApps"; packagename="com.google.android.gm.exchange"; packagetarget="app/PrebuiltExchange3Google";;
|
|
fitness) packagetype="GApps"; packagename="com.google.android.apps.fitness"; packagetarget="app/FitnessPrebuilt";;
|
|
gcs) packagetype="GApps"; packagename="com.google.android.apps.gcs"; packagetarget="priv-app/GCS";;
|
|
gmail) packagetype="GApps"; packagename="com.google.android.gm"; packagetarget="app/PrebuiltGmail";;
|
|
googlenow) packagetype="GApps"; packagename="com.google.android.launcher"; packagetarget="app/GoogleHome";;
|
|
googlepay) packagetype="GApps"; packagename="com.google.android.apps.walletnfcrel"; packagetarget="app/Wallet";;
|
|
googletts) packagetype="GApps"; packagename="com.google.android.tts"; packagetarget="app/GoogleTTS";;
|
|
hangouts) packagetype="GApps"; packagename="com.google.android.talk"; packagetarget="app/Hangouts";;
|
|
indic) packagetype="GApps"; packagename="com.google.android.apps.inputmethod.hindi"; packagetarget="app/GoogleHindiIME";;
|
|
japanese) packagetype="GApps"; packagename="com.google.android.inputmethod.japanese"; packagetarget="app/GoogleJapaneseInput";; # JapaneseIME exists in some ROMs
|
|
korean) packagetype="GApps"; packagename="com.google.android.inputmethod.korean"; packagetarget="app/KoreanIME";;
|
|
keep) packagetype="GApps"; packagename="com.google.android.keep"; packagetarget="app/PrebuiltKeep";;
|
|
keyboardgoogle) packagetype="GApps"; packagename="com.google.android.inputmethod.latin";
|
|
if [ "$API" -ge "24" ]; then
|
|
packagetarget="app/LatinIMEGooglePrebuilt"
|
|
else
|
|
packagetarget="app/LatinImeGoogle"
|
|
fi;;
|
|
maps) packagetype="GApps"; packagename="com.google.android.apps.maps"; packagetarget="app/Maps";;
|
|
markup) packagetype="GApps"; packagename="com.google.android.markup"; packagetarget="app/MarkupGoogle";
|
|
if [ "$LIBFOLDER" = "lib64" ]; then
|
|
packagelibs="libsketchology_native.so+fallback";
|
|
else
|
|
packagelibs="libsketchology_native.so";
|
|
fi;;
|
|
messenger) packagetype="GApps"; packagename="com.google.android.apps.messaging"; packagetarget="app/PrebuiltBugle";;
|
|
movies) packagetype="GApps"; packagename="com.google.android.videos"; packagetarget="app/Videos";;
|
|
moviesvrmode) packagetype="GApps"; packagename="com.google.android.videos.vrmode"; packagetarget="app/Videos";;
|
|
music) packagetype="GApps"; packagename="com.google.android.music"; packagetarget="app/Music2";;
|
|
newsstand) packagetype="GApps"; packagename="com.google.android.apps.magazines"; packagetarget="app/Newsstand";;
|
|
packageinstallergoogle) packagetype="GApps"; packagename="com.google.android.packageinstaller"; packagetarget="priv-app/GooglePackageInstaller";;
|
|
pixelicons) packagetype="GApps"; packagename="com.google.android.nexusicons"; packagetarget="app/NexusLauncherIcons";;
|
|
pixellauncher) packagetype="GApps"; packagename="com.google.android.apps.nexuslauncher"; packagetarget="priv-app/NexusLauncherPrebuilt"
|
|
if [ "$API" -ge "28" ]; then # Add an overlay for Android 9.0+
|
|
packagefiles="product/overlay/PixelLauncherOverlay.apk"
|
|
packagegappsremove="product/overlay/PixelLauncherOverlay.apk vendor/overlay/PixelLauncherOverlay.apk"
|
|
fi;;
|
|
photos) packagetype="GApps"; packagename="com.google.android.apps.photos"; packagetarget="app/Photos";;
|
|
photosvrmode) packagetype="GApps"; packagename="com.google.android.apps.photos.vrmode"; packagetarget="app/Photos";;
|
|
pinyin) packagetype="GApps"; packagename="com.google.android.inputmethod.pinyin"; packagetarget="app/GooglePinyinIME";;
|
|
playgames) packagetype="GApps"; packagename="com.google.android.play.games"; packagetarget="app/PlayGames";;
|
|
printservicegoogle) packagetype="GApps"; packagename="com.google.android.printservice.recommendation"; packagetarget="app/GooglePrintRecommendationService";;
|
|
projectfi) packagetype="GApps"; packagename="com.google.android.apps.tycho"; packagetarget="app/Tycho";;
|
|
recorder) packagetype="GApps"; packagename="com.google.android.apps.recorder"; packagetarget="app/Recorder";;
|
|
search) packagetype="GApps"; packagename="com.google.android.googlequicksearchbox"; packagetarget="priv-app/Velvet";;
|
|
sheets) packagetype="GApps"; packagename="com.google.android.apps.docs.editors.sheets"; packagetarget="app/EditorsSheets";;
|
|
slides) packagetype="GApps"; packagename="com.google.android.apps.docs.editors.slides"; packagetarget="app/EditorsSlides";;
|
|
soundpicker) packagetype="GApps"; packagename="com.google.android.soundpicker"; packagetarget="app/SoundPickerPrebuilt";;
|
|
speech) packagetype="GApps"; packagefiles="usr/srec/en-US/";;
|
|
storagemanagergoogle) packagetype="GApps"; packagename="com.google.android.storagemanager"; packagetarget="priv-app/StorageManagerGoogle";;
|
|
street) packagetype="GApps"; packagename="com.google.android.street"; packagetarget="app/Street";;
|
|
taggoogle) packagetype="GApps"; packagename="com.google.android.tag"; packagetarget="priv-app/TagGoogle";;
|
|
translate) packagetype="GApps"; packagename="com.google.android.apps.translate"; packagetarget="app/TranslatePrebuilt";;
|
|
vrservice) packagetype="GApps"; packagename="com.google.vr.vrcore"; packagetarget="app/GoogleVrCore"
|
|
if [ "$API" -ge "27" ]; then # Specific sysconfig and permission files for VR on Android 8.1+
|
|
packagefiles="etc/sysconfig/google_vr_build.xml etc/permissions/com.google.vr.platform.xml"
|
|
packageframework="com.google.vr.platform.jar";
|
|
elif [ "$API" -ge "24" ]; then # Specific sysconfig file for VR on Android 7.0
|
|
packagefiles="etc/sysconfig/google_vr_build.xml";
|
|
fi;;
|
|
wallpapers) packagetype="GApps"; packagename="com.google.android.apps.wallpaper"; packagetarget="app/WallpaperPickerGooglePrebuilt";;
|
|
wellbeing) packagetype="GApps"; packagename="com.google.android.apps.wellbeing"; packagetarget="priv-app/WellbeingPrebuilt"
|
|
if [ "$API" -ge "28" ]; then # Add an overlay for Android 9.0+
|
|
packagefiles="product/overlay/WellbeingOverlay.apk"
|
|
packagegappsremove="product/overlay/WellbeingOverlay.apk vendor/overlay/WellbeingOverlay.apk"
|
|
fi;;
|
|
youtube) packagetype="GApps"; packagename="com.google.android.youtube"; packagetarget="app/YouTube";;
|
|
ytmusic) packagetype="GApps"; packagename="com.google.android.apps.youtube.music"; packagetarget="app/YouTubeMusicPrebuilt";;
|
|
zhuyin) packagetype="GApps"; packagename="com.google.android.apps.inputmethod.zhuyin"; packagetarget="app/GoogleZhuyinIME";; # ZhuyinIME exists in some ROMs
|
|
|
|
# TV GApps
|
|
notouch) packagetype="Core"; packagename="com.google.android.gsf.notouch"; packagetarget="app/NoTouchAuthDelegate";;
|
|
tvetc) packagetype="Core";
|
|
if [ "$API" -ge "28" ]; then # Specific permission files for Android 9.0
|
|
packagefiles="etc/permissions/privapp-permissions-atv.xml etc/sysconfig/google.xml etc/sysconfig/google_atv.xml etc/sysconfig/google_build.xml etc/permissions/com.google.android.tv.installed.xml etc/permissions/privapp-permissions-google.xml etc/sysconfig/google-hiddenapi-package-whitelist.xml";
|
|
else
|
|
packagefiles="etc/permissions/privapp-permissions-atv.xml etc/sysconfig/google.xml etc/sysconfig/google_atv.xml etc/sysconfig/google_build.xml etc/permissions/com.google.android.tv.installed.xml";
|
|
fi;;
|
|
tvframework) packagetype="Core"; packagefiles="etc/permissions/com.google.android.pano.v1.xml etc/permissions/com.google.widevine.software.drm.xml"; packageframework="com.google.android.pano.v1.jar com.google.widevine.software.drm.jar";;
|
|
tvgmscore) packagetype="Core"; packagename="com.google.android.gms.leanback"; packagetarget="priv-app/PrebuiltGmsCorePano";;
|
|
tvvending) packagetype="Core"; packagename="com.android.vending.leanback";
|
|
if [ "$API" -ge "24" ]; then
|
|
packagetarget="priv-app/Tubesky"
|
|
else
|
|
packagetarget="priv-app/PhoneskyKamikazeCanvas"
|
|
fi;;
|
|
|
|
backdrop) packagetype="GApps"; packagename="com.google.android.backdrop.leanback"; packagetarget="app/Backdrop";;
|
|
castreceiver) packagetype="GApps"; packagename="com.google.android.apps.mediashell.leanback" packagetarget="priv-app/AndroidMediaShell";;
|
|
leanbacklauncher) packagetype="GApps"; packagename="com.google.android.leanbacklauncher.leanback" packagetarget="priv-app/LeanbackLauncher";;
|
|
leanbackrecommendations) packagetype="GApps"; packagename="com.google.android.leanbacklauncher.recommendations.leanback"; packagetarget="priv-app/RecommendationsService";;
|
|
livechannels) packagetype="GApps"; packagename="com.google.android.tv.leanback" packagetarget="priv-app/TV";;
|
|
overscan) packagetype="GApps"; packagename="com.google.android.tungsten.overscan" packagetarget="priv-app/Overscan";;
|
|
setupwraith) packagetype="GApps"; packagename="com.google.android.tungsten.setupwraith";
|
|
if [ "$API" -ge "26" ]; then
|
|
packagetarget="priv-app/SetupWraithPrebuilt"
|
|
else
|
|
packagetarget="priv-app/SetupWraith"
|
|
fi;;
|
|
|
|
secondscreensetup) packagetype="GApps"; packagename="com.google.android.sss"; packagetarget="app/SecondScreenSetup";;
|
|
secondscreenauthbridge) packagetype="GApps"; packagename="com.google.android.sss.authbridge"; packagetarget="app/SecondScreenSetupAuthBridge";;
|
|
tvlauncher) packagetype="GApps"; packagename="com.google.android.tvlauncher.leanback" packagetarget="priv-app/TVLauncher";;
|
|
tvkeyboardgoogle) packagetype="GApps"; packagename="com.google.android.leanback.ime"; packagetarget="app/LeanbackIme";;
|
|
tvmovies) packagetype="GApps"; packagename="com.google.android.videos.leanback"; packagetarget="app/VideosPano";;
|
|
tvmusic) packagetype="GApps"; packagename="com.google.android.music.leanback"; packagetarget="app/Music2Pano";;
|
|
tvpackageinstallergoogle) packagetype="GApps"; packagename="com.google.android.pano.packageinstaller"; packagetarget="priv-app/CanvasPackageInstaller";; # On Android 5.1 and 6.0 this was in /app
|
|
tvplaygames) packagetype="GApps"; packagename="com.google.android.play.games.leanback"; packagetarget="app/PlayGames";; # Only change is leanback in the packagename
|
|
tvrecommendations) packagetype="GApps"; packagename="com.google.android.tvrecommendations.leanback" packagetarget="priv-app/TVRecommendations";;
|
|
tvremote) packagetype="GApps"; packagetarget="priv-app/AtvRemoteService";
|
|
if [ "$API" -ge "24" ]; then
|
|
packagename="com.google.android.tv.remote.service.leanback"
|
|
else
|
|
packagename="com.google.android.tv.remote"
|
|
packagelibs="libatv_uinputbridge.so"
|
|
fi;;
|
|
tvsearch) packagetype="GApps"; packagename="com.google.android.katniss.leanback"; packagetarget="priv-app/Katniss";;
|
|
tvvoiceinput) packagetype="GApps"; packagename="com.google.android.tv.voiceinput"; packagetarget="app/TvVoiceInput";; # Available only on Android 5.1
|
|
tvwallpaper) packagetype="GApps"; packagename="com.google.android.landscape"; packagetarget="app/LandscapeWallpaper";;
|
|
tvwidget) packagetype="GApps"; packagename="com.google.android.atv.widget"; packagetarget="app/AtvWidget";;
|
|
tvyoutube) packagetype="GApps"; packagename="com.google.android.youtube.tv.leanback"; packagetarget="app/YouTubeLeanback";;
|
|
|
|
# Swypelibs
|
|
swypelibs) packagetype="Optional"; packagelibs="libjni_latinimegoogle.so";
|
|
if [ "$API" -eq "23" ]; then # On Android 6.0 there is an extra library
|
|
packagelibs="$packagelibs libjni_keyboarddecoder.so"
|
|
fi;;
|
|
|
|
*) echo "ERROR! Missing build rule for application with keyword $1"; exit 1;;
|
|
esac
|
|
}
|