darkobas | 7e205cb | 2018-07-26 10:00:47 +0200 | [diff] [blame] | 1 | #!/system/bin/sh |
| 2 | # |
| 3 | # ADDOND_VERSION=2 |
| 4 | # |
| 5 | # /system/addon.d/69-gapps.sh |
| 6 | # |
| 7 | . /postinstall/tmp/backuptool.functions |
| 8 | |
| 9 | list_files() { |
| 10 | cat <<EOF |
| 11 | app/FaceLock/FaceLock.apk |
| 12 | app/GoogleCalendarSyncAdapter/GoogleCalendarSyncAdapter.apk |
| 13 | app/GoogleContactsSyncAdapter/GoogleContactsSyncAdapter.apk |
| 14 | app/GoogleExtShared/GoogleExtShared.apk |
| 15 | app/GoogleTTS/GoogleTTS.apk |
Marko Man | ffd15b4 | 2018-09-02 09:22:40 +0200 | [diff] [blame] | 16 | app/SoundPickerPrebuilt/SoundPickerPrebuilt.apk |
darkobas | 7e205cb | 2018-07-26 10:00:47 +0200 | [diff] [blame] | 17 | etc/default-permissions/default-permissions.xml |
| 18 | etc/default-permissions/opengapps-permissions.xml |
| 19 | etc/g.prop |
| 20 | etc/permissions/com.google.android.dialer.support.xml |
| 21 | etc/permissions/com.google.android.maps.xml |
| 22 | etc/permissions/com.google.android.media.effects.xml |
| 23 | etc/permissions/com.google.widevine.software.drm.xml |
| 24 | etc/permissions/privapp-permissions-google.xml |
| 25 | etc/preferred-apps/google.xml |
Marko Man | ffd15b4 | 2018-09-02 09:22:40 +0200 | [diff] [blame] | 26 | etc/sysconfig/google-hiddenapi-package-whitelist.xml |
darkobas | 7e205cb | 2018-07-26 10:00:47 +0200 | [diff] [blame] | 27 | etc/sysconfig/google.xml |
| 28 | etc/sysconfig/google_build.xml |
Marko Man | ffd15b4 | 2018-09-02 09:22:40 +0200 | [diff] [blame] | 29 | etc/sysconfig/google_exclusives_enable.xml |
darkobas | 7e205cb | 2018-07-26 10:00:47 +0200 | [diff] [blame] | 30 | framework/com.google.android.dialer.support.jar |
| 31 | framework/com.google.android.maps.jar |
| 32 | framework/com.google.android.media.effects.jar |
| 33 | framework/com.google.widevine.software.drm.jar |
| 34 | lib/libfilterpack_facedetect.so |
| 35 | lib/libfrsdk.so |
Marko Man | ffd15b4 | 2018-09-02 09:22:40 +0200 | [diff] [blame] | 36 | lib64/libbarhopper.so |
darkobas | 7e205cb | 2018-07-26 10:00:47 +0200 | [diff] [blame] | 37 | lib64/libfacenet.so |
| 38 | lib64/libfilterpack_facedetect.so |
| 39 | lib64/libfrsdk.so |
| 40 | lib64/libjni_latinimegoogle.so |
Marko Man | ffd15b4 | 2018-09-02 09:22:40 +0200 | [diff] [blame] | 41 | priv-app/AndroidMigratePrebuilt/AndroidMigratePrebuilt.apk |
| 42 | priv-app/AndroidPlatformServices/AndroidPlatformServices.apk |
darkobas | 7e205cb | 2018-07-26 10:00:47 +0200 | [diff] [blame] | 43 | priv-app/ConfigUpdater/ConfigUpdater.apk |
darkobas | 7e205cb | 2018-07-26 10:00:47 +0200 | [diff] [blame] | 44 | priv-app/GoogleBackupTransport/GoogleBackupTransport.apk |
| 45 | priv-app/GoogleExtServices/GoogleExtServices.apk |
| 46 | priv-app/GoogleFeedback/GoogleFeedback.apk |
| 47 | priv-app/GoogleOneTimeInitializer/GoogleOneTimeInitializer.apk |
| 48 | priv-app/GooglePartnerSetup/GooglePartnerSetup.apk |
| 49 | priv-app/GoogleServicesFramework/GoogleServicesFramework.apk |
| 50 | priv-app/Phonesky/Phonesky.apk |
Marko Man | ffd15b4 | 2018-09-02 09:22:40 +0200 | [diff] [blame] | 51 | priv-app/PrebuiltGmsCorePi/PrebuiltGmsCorePi.apk |
darkobas | 7e205cb | 2018-07-26 10:00:47 +0200 | [diff] [blame] | 52 | priv-app/SetupWizard/SetupWizard.apk |
| 53 | priv-app/Turbo/Turbo.apk |
| 54 | priv-app/Velvet/Velvet.apk |
Marko Man | f7b0f45 | 2018-09-13 02:24:52 +0200 | [diff] [blame] | 55 | priv-app/WellbeingPrebuilt/WellbeingPrebuilt.apk |
darkobas | 7e205cb | 2018-07-26 10:00:47 +0200 | [diff] [blame] | 56 | usr/srec/en-US/APP_NAME.fst |
| 57 | usr/srec/en-US/APP_NAME.syms |
| 58 | usr/srec/en-US/CLG.prewalk.fst |
| 59 | usr/srec/en-US/CONTACT_NAME.fst |
| 60 | usr/srec/en-US/CONTACT_NAME.syms |
| 61 | usr/srec/en-US/SONG_NAME.fst |
| 62 | usr/srec/en-US/SONG_NAME.syms |
| 63 | usr/srec/en-US/am_phonemes.syms |
| 64 | usr/srec/en-US/app_bias.fst |
| 65 | usr/srec/en-US/c_fst |
| 66 | usr/srec/en-US/commands.abnf |
| 67 | usr/srec/en-US/compile_grammar.config |
| 68 | usr/srec/en-US/config.pumpkin |
| 69 | usr/srec/en-US/confirmation_bias.fst |
| 70 | usr/srec/en-US/contacts.abnf |
| 71 | usr/srec/en-US/contacts_bias.fst |
| 72 | usr/srec/en-US/contacts_disambig.fst |
| 73 | usr/srec/en-US/dict |
| 74 | usr/srec/en-US/dictation.config |
| 75 | usr/srec/en-US/dnn |
| 76 | usr/srec/en-US/embedded_class_denorm.mfar |
| 77 | usr/srec/en-US/embedded_normalizer.mfar |
| 78 | usr/srec/en-US/endpointer_dictation.config |
| 79 | usr/srec/en-US/endpointer_model |
| 80 | usr/srec/en-US/endpointer_model.mmap |
| 81 | usr/srec/en-US/endpointer_voicesearch.config |
| 82 | usr/srec/en-US/ep_portable_mean_stddev |
| 83 | usr/srec/en-US/ep_portable_model.uint8.mmap |
| 84 | usr/srec/en-US/g2p.data |
| 85 | usr/srec/en-US/g2p_fst |
| 86 | usr/srec/en-US/g2p_graphemes.syms |
| 87 | usr/srec/en-US/g2p_phonemes.syms |
| 88 | usr/srec/en-US/grammar.config |
| 89 | usr/srec/en-US/hmm_symbols |
| 90 | usr/srec/en-US/hmmlist |
| 91 | usr/srec/en-US/input_mean_std_dev |
| 92 | usr/srec/en-US/lexicon.U.fst |
| 93 | usr/srec/en-US/lstm_model.uint8.data |
| 94 | usr/srec/en-US/magic_mic.config |
| 95 | usr/srec/en-US/media_bias.fst |
| 96 | usr/srec/en-US/metadata |
| 97 | usr/srec/en-US/monastery_config.pumpkin |
| 98 | usr/srec/en-US/norm_fst |
| 99 | usr/srec/en-US/offensive_word_normalizer.mfar |
| 100 | usr/srec/en-US/offline_action_data.pb |
| 101 | usr/srec/en-US/phonelist |
| 102 | usr/srec/en-US/portable_lstm |
| 103 | usr/srec/en-US/portable_meanstddev |
| 104 | usr/srec/en-US/pumpkin.mmap |
| 105 | usr/srec/en-US/read_items_bias.fst |
| 106 | usr/srec/en-US/rescoring.fst.compact |
| 107 | usr/srec/en-US/semantics.pumpkin |
| 108 | usr/srec/en-US/skip_items_bias.fst |
| 109 | usr/srec/en-US/time_bias.fst |
| 110 | usr/srec/en-US/transform.mfar |
| 111 | usr/srec/en-US/voice_actions.config |
| 112 | usr/srec/en-US/voice_actions_compiler.config |
| 113 | usr/srec/en-US/word_confidence_classifier |
| 114 | usr/srec/en-US/wordlist.syms |
| 115 | addon.d/69-gapps.sh |
| 116 | addon.d/addond_tail |
| 117 | addon.d/addond_head |
| 118 | EOF |
| 119 | } |
| 120 | |
| 121 | case "$1" in |
| 122 | backup) |
| 123 | list_files | while read FILE DUMMY; do |
| 124 | backup_file $S/$FILE |
| 125 | done |
| 126 | ;; |
| 127 | restore) |
| 128 | list_files | while read FILE REPLACEMENT; do |
| 129 | R="" |
| 130 | [ -n "$REPLACEMENT" ] && R="$S/$REPLACEMENT" |
| 131 | [ -f "$C/$S/$FILE" ] && restore_file $S/$FILE $R |
| 132 | done |
| 133 | ;; |
| 134 | pre-backup) |
| 135 | # Stub |
| 136 | ;; |
| 137 | post-backup) |
| 138 | # Stub |
| 139 | ;; |
| 140 | pre-restore) |
| 141 | # Remove Stock/AOSP apps (from GApps Installer) |
| 142 | rm -rf /postinstall/system/priv-app/ExtServices |
| 143 | rm -rf /postinstall/system/app/ExtShared |
| 144 | rm -rf /postinstall/system/app/Provision |
| 145 | rm -rf /postinstall/system/priv-app/Provision |
| 146 | |
| 147 | # Remov/postinstalle 'other' apps (per installer.data) |
| 148 | rm -rf /postinstall/system/app/BookmarkProvider |
| 149 | rm -rf /postinstall/system/app/BooksStub |
| 150 | rm -rf /postinstall/system/app/CalendarGoogle |
| 151 | rm -rf /postinstall/system/app/CloudPrint |
| 152 | rm -rf /postinstall/system/app/DeskClockGoogle |
| 153 | rm -rf /postinstall/system/app/EditorsDocsStub |
| 154 | rm -rf /postinstall/system/app/EditorsSheetsStub |
| 155 | rm -rf /postinstall/system/app/EditorsSlidesStub |
| 156 | rm -rf /postinstall/system/app/Gmail |
| 157 | rm -rf /postinstall/system/app/Gmail2 |
| 158 | rm -rf /postinstall/system/app/GoogleCalendar |
| 159 | rm -rf /postinstall/system/app/GoogleCloudPrint |
| 160 | rm -rf /postinstall/system/app/GoogleHangouts |
| 161 | rm -rf /postinstall/system/app/GoogleKeep |
| 162 | rm -rf /postinstall/system/app/GoogleLatinIme |
| 163 | rm -rf /postinstall/system/app/GooglePlus |
| 164 | rm -rf /postinstall/system/app/Keep |
| 165 | rm -rf /postinstall/system/app/NewsWeather |
| 166 | rm -rf /postinstall/system/app/NewsstandStub |
| 167 | rm -rf /postinstall/system/app/PartnerBookmarksProvider |
| 168 | rm -rf /postinstall/system/app/PrebuiltBugleStub |
| 169 | rm -rf /postinstall/system/app/PrebuiltKeepStub |
| 170 | rm -rf /postinstall/system/app/QuickSearchBox |
| 171 | rm -rf /postinstall/system/app/Vending |
| 172 | rm -rf /postinstall/system/priv-app/GmsCore |
| 173 | rm -rf /postinstall/system/priv-app/GmsCore_update |
| 174 | rm -rf /postinstall/system/priv-app/GoogleHangouts |
| 175 | rm -rf /postinstall/system/priv-app/GoogleNow |
| 176 | rm -rf /postinstall/system/priv-app/GoogleSearch |
| 177 | rm -rf /postinstall/system/priv-app/OneTimeInitializer |
| 178 | rm -rf /postinstall/system/priv-app/QuickSearchBox |
| 179 | rm -rf /postinstall/system/priv-app/Velvet_update |
| 180 | rm -rf /postinstall/system/priv-app/Vending |
Marko Man | f7b0f45 | 2018-09-13 02:24:52 +0200 | [diff] [blame] | 181 | rm -rf /postinstall/system/priv-app/WellbeingPrebuilt |
darkobas | 7e205cb | 2018-07-26 10:00:47 +0200 | [diff] [blame] | 182 | |
| 183 | # Remov/postinstalle 'priv-app' apps from 'app' (per installer.data) |
| 184 | rm -rf /postinstall/system/app/CanvasPackageInstaller |
| 185 | rm -rf /postinstall/system/app/ConfigUpdater |
| 186 | rm -rf /postinstall/system/app/GoogleBackupTransport |
| 187 | rm -rf /postinstall/system/app/GoogleFeedback |
| 188 | rm -rf /postinstall/system/app/GoogleLoginService |
| 189 | rm -rf /postinstall/system/app/GoogleOneTimeInitializer |
| 190 | rm -rf /postinstall/system/app/GooglePartnerSetup |
| 191 | rm -rf /postinstall/system/app/GoogleServicesFramework |
| 192 | rm -rf /postinstall/system/app/OneTimeInitializer |
| 193 | rm -rf /postinstall/system/app/Phonesky |
| 194 | rm -rf /postinstall/system/app/PrebuiltGmsCore |
| 195 | rm -rf /postinstall/system/app/SetupWizard |
| 196 | rm -rf /postinstall/system/app/Velvet |
| 197 | |
| 198 | # Remov/postinstalle 'required' apps (per installer.data) |
| 199 | rm -rf /postinstall/system/app/LatinIME/lib//libjni_keyboarddecoder.so |
| 200 | rm -rf /postinstall/system/app/LatinIME/lib//libjni_latinimegoogle.so |
| 201 | rm -rf /postinstall/system/lib/libjni_keyboarddecoder.so |
| 202 | rm -rf /postinstall/system/lib/libjni_latinimegoogle.so |
| 203 | rm -rf /postinstall/system/lib64/libjni_keyboarddecoder.so |
| 204 | rm -rf /postinstall/system/lib64/libjni_latinimegoogle.so |
| 205 | |
| 206 | # Remove 'user requested' apps (from gapps-config) |
| 207 | |
| 208 | # Stub |
| 209 | ;; |
| 210 | post-restore) |
| 211 | if [ -d "/postinstall" ]; then |
| 212 | P="/postinstall/system" |
| 213 | else |
| 214 | P="/system" |
| 215 | fi |
| 216 | |
Marko Man | ffd15b4 | 2018-09-02 09:22:40 +0200 | [diff] [blame] | 217 | # Recreate required symlinks (from GApps Installer) |
| 218 | install -d "/system/system/app/FaceLock/lib/arm64" |
| 219 | ln -sfn "/system/system/lib64/libfacenet.so" "/system/system/app/FaceLock/lib/arm64/libfacenet.so" |
| 220 | install -d "/system/app/LatinIME/lib64/arm64" |
| 221 | ln -sfn "/system/lib64/libjni_latinimegoogle.so" "/system/app/LatinIME/lib64/arm64/libjni_latinimegoogle.so" |
| 222 | ln -sfn "/system/lib64/libjni_keyboarddecoder.so" "/system/app/LatinIME/lib64/arm64/libjni_keyboarddecoder.so" |
| 223 | |
| 224 | # Apply build.prop changes (from GApps Installer) |
| 225 | sed -i "s/ro.error.receiver.system.apps=.*/ro.error.receiver.system.apps=com.google.android.gms/g" /system/system/build.prop |
| 226 | |
| 227 | # Re-pre-ODEX APKs (from GApps Installer) |
| 228 | |
| 229 | # Remove any empty folders we may have created during the removal process |
| 230 | for i in /system/app /system/priv-app /system/usr/srec; do |
| 231 | if [ -d $i ]; then |
| 232 | find $i -type d -exec rmdir -p '{}' \+ 2>/dev/null; |
| 233 | fi |
| 234 | done; |
darkobas | 7e205cb | 2018-07-26 10:00:47 +0200 | [diff] [blame] | 235 | for i in $(list_files); do |
| 236 | chown root:root "$P/$i" |
| 237 | chmod 644 "$P/$i" |
| 238 | chmod 755 "$(dirname "$P/$i")" |
Marko Man | ffd15b4 | 2018-09-02 09:22:40 +0200 | [diff] [blame] | 239 | if [ "$API" -ge "26" ]; then # Android 8.0+ uses 0600 for its permission on build.prop |
| 240 | chmod 600 /system/build.prop |
| 241 | fi |
darkobas | 7e205cb | 2018-07-26 10:00:47 +0200 | [diff] [blame] | 242 | done |
| 243 | |
darkobas | 7e205cb | 2018-07-26 10:00:47 +0200 | [diff] [blame] | 244 | ;; |
| 245 | esac |