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