Advertisement
Guest User

Untitled

a guest
Feb 20th, 2017
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.24 KB | None | 0 0
  1. #!/sbin/sh
  2. #
  3. # /system/addon.d/70-gapps.sh
  4. #
  5. . /tmp/backuptool.functions
  6.  
  7. list_files() {
  8. cat <<EOF
  9. app/FaceLock/FaceLock.apk
  10. app/GoogleCalendarSyncAdapter/GoogleCalendarSyncAdapter.apk
  11. app/GoogleContactsSyncAdapter/GoogleContactsSyncAdapter.apk
  12. app/GoogleExtShared/GoogleExtShared.apk
  13. app/GoogleTTS/GoogleTTS.apk
  14. etc/default-permissions/default-permissions.xml
  15. etc/default-permissions/opengapps-permissions.xml
  16. etc/g.prop
  17. etc/permissions/com.google.android.dialer.support.xml
  18. etc/permissions/com.google.android.maps.xml
  19. etc/permissions/com.google.android.media.effects.xml
  20. etc/permissions/com.google.widevine.software.drm.xml
  21. etc/preferred-apps/google.xml
  22. etc/sysconfig/google.xml
  23. etc/sysconfig/google_build.xml
  24. etc/sysconfig/google_vr_build.xml
  25. etc/sysconfig/nexus.xml
  26. etc/sysconfig/whitelist_com.android.omadm.service.xml
  27. framework/com.google.android.dialer.support.jar
  28. framework/com.google.android.maps.jar
  29. framework/com.google.android.media.effects.jar
  30. framework/com.google.widevine.software.drm.jar
  31. lib/libfacenet.so
  32. lib/libfilterpack_facedetect.so
  33. lib/libjni_latinimegoogle.so
  34. priv-app/ConfigUpdater/ConfigUpdater.apk
  35. priv-app/GmsCoreSetupPrebuilt/GmsCoreSetupPrebuilt.apk
  36. priv-app/GoogleBackupTransport/GoogleBackupTransport.apk
  37. priv-app/GoogleExtServices/GoogleExtServices.apk
  38. priv-app/GoogleFeedback/GoogleFeedback.apk
  39. priv-app/GoogleLoginService/GoogleLoginService.apk
  40. priv-app/GoogleOneTimeInitializer/GoogleOneTimeInitializer.apk
  41. priv-app/GooglePartnerSetup/GooglePartnerSetup.apk
  42. priv-app/GoogleServicesFramework/GoogleServicesFramework.apk
  43. priv-app/HotwordEnrollment/HotwordEnrollment.apk
  44. priv-app/Phonesky/Phonesky.apk
  45. priv-app/PrebuiltGmsCore/PrebuiltGmsCore.apk
  46. priv-app/SetupWizard/SetupWizard.apk
  47. priv-app/Velvet/Velvet.apk
  48. usr/srec/en-US/APP_NAME.fst
  49. usr/srec/en-US/APP_NAME.syms
  50. usr/srec/en-US/CLG.prewalk.fst
  51. usr/srec/en-US/CONTACT_NAME.fst
  52. usr/srec/en-US/CONTACT_NAME.syms
  53. usr/srec/en-US/SONG_NAME.fst
  54. usr/srec/en-US/SONG_NAME.syms
  55. usr/srec/en-US/c_fst
  56. usr/srec/en-US/class_normalizer.mfar
  57. usr/srec/en-US/commands.abnf
  58. usr/srec/en-US/compile_grammar.config
  59. usr/srec/en-US/config.pumpkin
  60. usr/srec/en-US/confirmation_bias.fst
  61. usr/srec/en-US/contacts.abnf
  62. usr/srec/en-US/contacts_bias.fst
  63. usr/srec/en-US/contacts_disambig.fst
  64. usr/srec/en-US/dict
  65. usr/srec/en-US/dictation.config
  66. usr/srec/en-US/dnn
  67. usr/srec/en-US/endpointer_dictation.config
  68. usr/srec/en-US/endpointer_model
  69. usr/srec/en-US/endpointer_model.mmap
  70. usr/srec/en-US/endpointer_voicesearch.config
  71. usr/srec/en-US/ep_portable_mean_stddev
  72. usr/srec/en-US/ep_portable_model.mmap
  73. usr/srec/en-US/g2p.data
  74. usr/srec/en-US/g2p_fst
  75. usr/srec/en-US/grammar.config
  76. usr/srec/en-US/graphemes.syms
  77. usr/srec/en-US/hmm_symbols
  78. usr/srec/en-US/hmmlist
  79. usr/srec/en-US/input_mean_std_dev
  80. usr/srec/en-US/lexicon.U.fst
  81. usr/srec/en-US/lstm_model.uint8.data
  82. usr/srec/en-US/magic_mic.config
  83. usr/srec/en-US/metadata
  84. usr/srec/en-US/monastery_config.pumpkin
  85. usr/srec/en-US/norm_fst
  86. usr/srec/en-US/normalizer.mfar
  87. usr/srec/en-US/offensive_word_normalizer.mfar
  88. usr/srec/en-US/offline_action_data.pb
  89. usr/srec/en-US/phonelist
  90. usr/srec/en-US/phonelist.syms
  91. usr/srec/en-US/phonemes.syms
  92. usr/srec/en-US/portable_lstm
  93. usr/srec/en-US/portable_meanstddev
  94. usr/srec/en-US/pumpkin.mmap
  95. usr/srec/en-US/rescoring.fst.louds
  96. usr/srec/en-US/semantics.pumpkin
  97. usr/srec/en-US/voice_actions.config
  98. usr/srec/en-US/voice_actions_compiler.config
  99. usr/srec/en-US/word_classifier
  100. usr/srec/en-US/wordlist.syms
  101. vendor/lib/libfrsdk.so
  102. EOF
  103. }
  104.  
  105. # Backup/Restore using /sdcard if the installed GApps size plus a buffer for other addon.d backups (204800=200MB) is larger than /tmp
  106. installed_gapps_size_kb=$(grep "^installed_gapps_size_kb" /tmp/gapps.prop | cut -d= -f2)
  107. if [ ! "$installed_gapps_size_kb" ]; then
  108. installed_gapps_size_kb=$(cd /system; du -ak $(list_files) | awk '{ i+=$1 } END { print i }')
  109. echo "installed_gapps_size_kb=$installed_gapps_size_kb" >> /tmp/gapps.prop
  110. fi
  111.  
  112. free_tmp_size_kb=$(grep "^free_tmp_size_kb" /tmp/gapps.prop | cut -d= -f2)
  113. if [ ! "$free_tmp_size_kb" ]; then
  114. free_tmp_size_kb=$(df -k /tmp | tail -n 1 | awk '{ print $4 }')
  115. echo "free_tmp_size_kb=$free_tmp_size_kb" >> /tmp/gapps.prop
  116. fi
  117.  
  118. buffer_size_kb=204800
  119. if [ $((installed_gapps_size_kb + buffer_size_kb)) -ge "$free_tmp_size_kb" ]; then
  120. C=/sdcard/tmp-gapps
  121. fi
  122.  
  123. case "$1" in
  124. backup)
  125. list_files | while read FILE DUMMY; do
  126. backup_file "$S"/"$FILE"
  127. done
  128. ;;
  129. restore)
  130. list_files | while read FILE REPLACEMENT; do
  131. R=""
  132. [ -n "$REPLACEMENT" ] && R="$S/$REPLACEMENT"
  133. [ -f "$C/$S/$FILE" ] && restore_file "$S"/"$FILE" "$R"
  134. done
  135. ;;
  136. pre-backup)
  137. # Stub
  138. ;;
  139. post-backup)
  140. # Stub
  141. ;;
  142. pre-restore)
  143. # Remove Stock/AOSP apps (from GApps Installer)
  144. rm -rf /system/priv-app/ExtServices
  145. rm -rf /system/app/Provision
  146. rm -rf /system/priv-app/Provision
  147.  
  148. # Remove 'other' apps (per installer.data)
  149. rm -rf /system/app/BooksStub
  150. rm -rf /system/app/CalendarGoogle
  151. rm -rf /system/app/CloudPrint
  152. rm -rf /system/app/DeskClockGoogle
  153. rm -rf /system/app/EditorsDocsStub
  154. rm -rf /system/app/EditorsSheetsStub
  155. rm -rf /system/app/EditorsSlidesStub
  156. rm -rf /system/app/Gmail
  157. rm -rf /system/app/Gmail2
  158. rm -rf /system/app/GoogleCalendar
  159. rm -rf /system/app/GoogleCloudPrint
  160. rm -rf /system/app/GoogleHangouts
  161. rm -rf /system/app/GoogleKeep
  162. rm -rf /system/app/GoogleLatinIme
  163. rm -rf /system/app/GooglePlus
  164. rm -rf /system/app/Keep
  165. rm -rf /system/app/NewsWeather
  166. rm -rf /system/app/NewsstandStub
  167. rm -rf /system/app/PartnerBookmarksProvider
  168. rm -rf /system/app/PrebuiltBugleStub
  169. rm -rf /system/app/PrebuiltKeepStub
  170. rm -rf /system/app/QuickSearchBox
  171. rm -rf /system/app/Vending
  172. rm -rf /system/priv-app/GmsCore
  173. rm -rf /system/priv-app/GmsCore_update
  174. rm -rf /system/priv-app/GoogleHangouts
  175. rm -rf /system/priv-app/GoogleNow
  176. rm -rf /system/priv-app/GoogleSearch
  177. rm -rf /system/priv-app/OneTimeInitializer
  178. rm -rf /system/priv-app/QuickSearchBox
  179. rm -rf /system/priv-app/Velvet_update
  180. rm -rf /system/priv-app/Vending
  181.  
  182. # Remove 'priv-app' apps from 'app' (per installer.data)
  183. rm -rf /system/app/CanvasPackageInstaller
  184. rm -rf /system/app/ConfigUpdater
  185. rm -rf /system/app/GoogleBackupTransport
  186. rm -rf /system/app/GoogleFeedback
  187. rm -rf /system/app/GoogleLoginService
  188. rm -rf /system/app/GoogleOneTimeInitializer
  189. rm -rf /system/app/GooglePartnerSetup
  190. rm -rf /system/app/GoogleServicesFramework
  191. rm -rf /system/app/OneTimeInitializer
  192. rm -rf /system/app/Phonesky
  193. rm -rf /system/app/PrebuiltGmsCore
  194. rm -rf /system/app/SetupWizard
  195. rm -rf /system/app/Velvet
  196.  
  197. # Remove 'required' apps (per installer.data)
  198. rm -rf /system/app/LatinIME/lib//libjni_keyboarddecoder.so
  199. rm -rf /system/app/LatinIME/lib//libjni_latinimegoogle.so
  200. rm -rf /system/lib/libjni_keyboarddecoder.so
  201. rm -rf /system/lib/libjni_latinimegoogle.so
  202. rm -rf /system/lib64/libjni_keyboarddecoder.so
  203. rm -rf /system/lib64/libjni_latinimegoogle.so
  204.  
  205. # Remove 'user requested' apps (from gapps-config)
  206.  
  207. ;;
  208. post-restore)
  209. # Recreate required symlinks (from GApps Installer)
  210. install -d "/system/app/FaceLock/lib/arm"
  211. ln -sfn "/system/lib/libfacenet.so" "/system/app/FaceLock/lib/arm/libfacenet.so"
  212. install -d "/system/app/LatinIME/lib/arm"
  213. ln -sfn "/system/lib/libjni_latinimegoogle.so" "/system/app/LatinIME/lib/arm/libjni_latinimegoogle.so"
  214. ln -sfn "/system/lib/libjni_keyboarddecoder.so" "/system/app/LatinIME/lib/arm/libjni_keyboarddecoder.so"
  215.  
  216. # Apply build.prop changes (from GApps Installer)
  217. sed -i "s/ro.error.receiver.system.apps=.*/ro.error.receiver.system.apps=com.google.android.gms/g" /system/build.prop
  218.  
  219. # Re-pre-ODEX APKs (from GApps Installer)
  220.  
  221. # Remove any empty folders we may have created during the removal process
  222. for i in /system/app /system/priv-app /system/vendor/pittpatt /system/usr/srec; do
  223. find $i -type d | xargs -r rmdir -p --ignore-fail-on-non-empty;
  224. done;
  225. # Fix ownership/permissions and clean up after backup and restore from /sdcard
  226. find /system/vendor/pittpatt -type d -exec chown 0:2000 '{}' \; # Change pittpatt folders to root:shell per Google Factory Settings
  227. for i in $(list_files); do
  228. chown root:root "/system/$i"
  229. chmod 644 "/system/$i"
  230. chmod 755 $(dirname "/system/$i")
  231. done
  232. rm -rf /sdcard/tmp-gapps
  233. ;;
  234. esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement