Guest User

Untitled

a guest
Feb 20th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.51 KB | None | 0 0
  1. #!/bin/bash
  2. # Original script by lithid back in the day!, modified by the_plattypus
  3.  
  4. APKTOOL="apktool" # Place apktool path here or leave it alone if its in your path
  5. language_lst="values-ar values-ar-rEG values-ar-rIL values-bg values-bg-rBG values-br values-ca-rES values-cs values-cs-rCZ values-da values-da-rDK values-de values-de-rAT values-de-rCH values-de-rDE values-de-rLI values-el values-el-rGR values-en-rAU values-en-rCA values-en-rGB values-en-rIE values-en-rIN values-en-rNZ values-en-rSG values-en-rUS values-en-rZA values-es values-es-rES values-es-rUS values-fi values-fi-rFI values-fr values-fr-rBE values-fr-rCA values-fr-rCH values-fr-rFR values-he-rIL values-hi-rIN values-hr values-hr-rHR values-hu values-hu-rHU values-id-rID values-it values-it-rCH values-it-rIT values-ja values-ja-rJP values-ko values-ko-rKR values-lt-rLT values-lv-rLV values-mcc204 values-mcc204-cs values-mcc204-da values-mcc204-de values-mcc204-el values-mcc204-es values-mcc204-es-rUS values-mcc204-fr values-mcc204-it values-mcc204-ja values-mcc204-ko values-mcc204-nl values-mcc204-pl values-mcc204-pt values-mcc204-pt-rPT values-mcc204-ru values-mcc204-sv values-mcc204-tr values-mcc204-zh-rCN values-mcc204-zh-rTW values-mcc230 values-mcc230-cs values-mcc230-da values-mcc230-de values-mcc230-el values-mcc230-es values-mcc230-es-rUS values-mcc230-fr values-mcc230-it values-mcc230-ja values-mcc230-ko values-mcc230-nl values-mcc230-pl values-mcc230-pt values-mcc230-pt-rPT values-mcc230-ru values-mcc230-sv values-mcc230-tr values-mcc230-zh-rCN values-mcc230-zh-rTW values-mcc232 values-mcc232-cs values-mcc232-da values-mcc232-de values-mcc232-el values-mcc232-es values-mcc232-es-rUS values-mcc232-fr values-mcc232-it values-mcc232-ja values-mcc232-ko values-mcc232-nl values-mcc232-pl values-mcc232-pt values-mcc232-pt-rPT values-mcc232-ru values-mcc232-sv values-mcc232-tr values-mcc232-zh-rCN values-mcc232-zh-rTW values-mcc234 values-mcc234-cs values-mcc234-da values-mcc234-de values-mcc234-el values-mcc234-es values-mcc234-es-rUS values-mcc234-fr values-mcc234-it values-mcc234-ja values-mcc234-ko values-mcc234-nl values-mcc234-pl values-mcc234-pt values-mcc234-pt-rPT values-mcc234-ru values-mcc234-sv values-mcc234-tr values-mcc234-zh-rCN values-mcc234-zh-rTW values-mcc260 values-mcc260-cs values-mcc260-da values-mcc260-de values-mcc260-el values-mcc260-es values-mcc260-es-rUS values-mcc260-fr values-mcc260-it values-mcc260-ja values-mcc260-ko values-mcc260-nl values-mcc260-pl values-mcc260-pt values-mcc260-pt-rPT values-mcc260-ru values-mcc260-sv values-mcc260-tr values-mcc260-zh-rCN values-mcc260-zh-rTW values-mcc262 values-mcc262-cs values-mcc262-da values-mcc262-de values-mcc262-el values-mcc262-es values-mcc262-es-rUS values-mcc262-fr values-mcc262-it values-mcc262-ja values-mcc262-ko values-mcc262-nl values-mcc262-pl values-mcc262-pt values-mcc262-pt-rPT values-mcc262-ru values-mcc262-sv values-mcc262-tr values-mcc262-zh-rCN values-mcc262-zh-rTW values-nb values-nb-rNO values-nl values-nl-rBE values-nl-rNL values-pl values-pl-rPL values-pt values-pt-rBR values-pt-rPT values-ro values-ro-rRO values-ru values-ru-rRU values-sk values-sk-rSK values-sl values-sl-rSI values-sr values-sr-rRS values-sv values-sv-rSE values-th values-th-rTH values-tl-rPH values-tr values-tr-rTR values-uk-rUA values-vi values-vi-rVN values-zh-rCN values-zh-rHK values-zh-rTW values-zh-rTW-hdpi values-cs-nokeys values-da-nokeys values-de-nokeys values-el-nokeys values-es-nokeys values-es-rUS-nokeys values-fr-nokeys values-it-nokeys values-ja-nokeys values-ko-nokeys values-nb-nokeys values-nl-nokeys values-pl-nokeys values-pt-nokeys values-pt-rPT-nokeys values-ru-nokeys values-sv-nokeys values-tr-nokeys values-zh-rCN-nokeys values-zh-rTW-nokeys values-lt values-ca values-uk values-lv values-tl values-in values-iw values-ms values-no values-rm values-fa values-sw values-zh-rMO values-mcc262-sk values-mcc262-tl values-mcc234-hr values-mcc234-hu values-mcc262-fi values-mcc234-tl values-mcc234-sr values-mcc234-lv values-mcc262-lv values-mcc234-bg values-mcc234-en-rGB values-mcc234-sl values-mcc262-nb values-mcc234-uk values-mcc262-en-rGB values-mcc262-vi values-mcc234-nb values-mcc262-uk values-mcc262-lt values-mcc262-sr values-mcc262-ar values-mcc262-bg values-mcc234-sk values-mcc262-ca values-mcc262-ro values-mcc234-vi values-mcc262-th values-mcc234-ar values-mcc234-ca values-mcc262-hu values-mcc234-fi values-mcc234-lt values-mcc262-hr values-mcc262-sl values-mcc234-th values-mcc234-ro values-mcc206-de values-mcc228-de values-mcc262-fa values-mcc295-de values-mcc262-rm values-mcc270-de values-mcc262-in values-mcc262-iw values-zh-rHK-land-hdpi values-zh-rCN-land-hdpi values-zh-rHK-hdpi values-zh-rTW-land-hdpi values-mcc214 values-mcc311 values-mcc310 values-mcc466 values-mcc310-mnc220 values-mcc310-mnc200 values-mcc310-mnc270 values-mcc890-mnc126 values-mcc214-mnc1 values-mcc310-mnc800 values-mcc234-mnc15-gb values-mcc310-mnc490 values-mcc204-mnc4 values-mcc310-mnc260 values-mcc250-mnc1 values-mcc204-mnc4-nl values-mcc214-mnc1-es values-mcc310-mnc230 values-mcc310-mnc26 values-mcc310-mnc210 values-mcc310-mnc330 values-mcc234-mnc15 values-mcc310-mnc170 values-mcc310-mnc280 values-mcc310-mnc290 values-mcc310-mnc660 values-mcc310-mnc160 values-mcc262-mnc2-de values-mcc310-mnc240 values-mcc310-mnc580 values-mcc310-mnc310 values-mcc310-mnc250 values-mcc262-mnc2 values-en-rSA values-mcc238-mnc6 values-mcc235-mnc94 values-mcc505-mnc6 values-mcc240-mnc2 values-mcc505-mnc3 values-zh-rCN-hdpi values-mcc234-mnc20 values-mcc272-mnc5 values-mcc232-mnc10 values-en-rUA values-en-rRU values-en-rUA-hdpi values-en-rRU-hdpi values-es-rMX values-zh-rCN-normal-port values-zh-rCN-normal-land values-ur values-ja-rEN values-et values-is values-nn values-tr-800x480 values-zz-rZZ values-mcc466-zz-rZZ values-mcc230-zz-rZZ values-mcc234-zz-rZZ values-mcc214-zz-rZZ values-mcc204-zz-rZZ values-mcc232-zz-rZZ values-mcc262-zz-rZZ values-mcc260-zz-rZZ values-en values-zh-rTW-finger values-de-keysexposed values-ru-keysexposed values-ja-finger values-zh-rTW-keyshidden values-de-keyshidden values-fr-keyshidden values-it-keysexposed values-ru-finger values-ja-keyshidden values-nl-finger values-pl-finger values-fr-finger values-de-finger values-ko-finger values-zh-rCN-keysexposed values-nl-keyshidden values-es-keyshidden values-ru-keyshidden values-zh-rCN-keyshidden values-cs-keysexposed values-cs-finger values-es-finger values-cs-keyshidden values-fr-keysexposed values-nl-keysexposed values-zh-rTW-keysexposed values-it-keyshidden values-it-finger values-pl-keyshidden values-ja-keysexposed values-pl-keysexposed values-ko-keyshidden values-es-keysexposed values-zh-rCN-finger values-ko-keysexposed values-zh values-he values-es-rCR values-es-rCL values-eu values-es-rSV values-es-rNI values-ln values-es-rAR values-gl values-es-rPY values-es-rBO values-es-rPE values-es-rVE values-hi values-mo"
  6.  
  7. app_lst="AccountSyncManager HtcMusicMarkedItems ApplicationsProvider HtcNotes AppSharing HtcNotesProvider BlueSky HTCPDFViewer Bluetooth HtcPhotoGridWidget3D BrcmBluetoothServices HtcPhotoWidget Browser HtcPowerStripWidget Burgundy HtcProfileWidget Calculator HtcResetNotify Calendar HtcRichNotesWidget3D CalendarProvider HtcRingtoneWidget CertInstaller HtcScreenBrightnessWidget CheckinProvider HtcScreenTimeoutWidget com.htc.FriendStream3DWidget HtcSettingsProvider com.htc.htcmsgwidgets3d htcsettingwidgets com.htc.MusicWidget HTCSetupWizard com.htc.Sync3DWidget HtcSoundRecorder com.htc.TrendsWidget HtcSoundSetDownloadManager com.htc.Twitter3DWidget HtcSprintService ContactsProvider HtcStreamPlayer CSPeopleSyncService HtcTipWidget CustomizationSettingsProvider HtcTwitter CustomizationSetup htcwatchwidget3d DCSStock HtcWeather3DWidget DebugTool HtcWeatherWallpaper DefaultContainerService HTMLViewer DFPI Idlescreen_Base DMPortRead idlescreen_shortcut dms install_flash_player DockMode JETCET_PRINT DownloadProvider JETCET_PRINT_Resources DownloadProviderUi LiveWallpapers DrmProvider MagicSmokeWallpapers EPST Mail EReader Maps FieldTrial MarketUpdater FilePicker MediaProvider FlashLitePlugin MediaUploader Flickr MessageTabPlugin framework-res Mms FriendStream Mode10Wallpapers fusion MyHTC FusionStockWidget yPen Gmail MyPenTips GoogleBackupTransport MyReportAgent GoogleCalendarSyncAdapter MyShelf_Widget GoogleContactsSyncAdapter MySketcher GoogleFeedback NetworkLocation GooglePartnerSetup OnlineAssetDetails GoogleQuickSearchBox PackageInstaller GoogleServicesFramework PCSCII GSD PenAppView HtcAddProgramWidget Phone HTCAlbum PicoTts HtcAutoRotateWidget PluginManager HtcBackgroundDataWidget PolarisOffice htcbookmarkwidget3d PRAndroid HtcCalculatorWidget PVWmdrmProxy htccalendarwidgets3d PVWmdrmService HTCCamera QuickLookup HtcCarPanel restartapp HtcClock3DWidget Rosie HtcCompressViewer Settings HtcConnectedMedia SettingsProvider HtcContacts SetupWizard htccontactwidgets3D SkinPicker HtcDataRoamingWidget Stock HtcDataStripWidget Street HtcDialer Superuser HtcDirect Swype HtcDirectDownloadsProvider SystemUI HtcDLNAMiddleLayer Talk HtcDMC TaskManager HtcFacebook TelephonyProvider HtcFeedback TtsService HtcFootprints Updater HtcFootprintsWidget3d UpgradeSetup HtcGreader UploadProvider HtcGreaderWidget UserDictionaryProvider HtcHubSyncProvider vdmc HtcImageWallpaper Vending HTC_IME VisualizationWallpapers HTCLivewallpaperStreak VoiceSearch HtcLocationPicker VpnServices HtcLocationService WatchApp HtcLockScreen WeatherAgentService HtcLoggers Weather htcmailwidgets3d WeatherLiveWallpaper HtcMessageCS WeatherProvider HtcMessageProvider WeatherSyncProvider HtcMessageUploader WifiRouter HtcMusic WorldClock HtcMusicEnhancer YouTube"
  8.  
  9. function check_apk_do(){
  10. echo "Pharsing through apks & folders..."
  11. da_apks=$(find -name '*.apk' |egrep -v 'build|dist')
  12. for x in $da_apks; do
  13. $APKTOOL d -f -t express $x &>> /dev/null
  14. echo $x >> apklist.txt
  15. done
  16. }
  17.  
  18. function check_jar_do(){
  19. da_jars=$(find -name '*.jar' |egrep -v 'build|dist')
  20. for x in $da_jars; do
  21. echo "Decompiling $x!"
  22. $APKTOOL d $x &>> /dev/null
  23. done
  24. }
  25.  
  26. function check_do(){
  27. check_apks=$(find -name '*.apk' |egrep -v 'build|dist' |wc -l)
  28. check_jars=$(find -name '*.jar' |egrep -v 'build|dist' |wc -l)
  29.  
  30. if [ "$check_apks" -ge "1" ] && [ "$check_jars" -ge "1" ]; then
  31. check_apk_do
  32. check_jar_do
  33. elif [ $check_apks -ge "1" ]; then
  34. check_apk_do
  35. elif [ $check_jars -ge "1" ]; then
  36. check_jar_do
  37. else
  38. echo "Nothing"
  39. fi
  40. }
  41.  
  42. function png_crush_this(){
  43. check_do
  44. pngs=$(find -name "*.png")
  45. for x in $pngs;
  46. do
  47. echo "Crushing $x!"
  48. pngcrush -brute "$x" tmp.png |grep -v 'IDAT' |grep -v '|' &>> pnglog.log
  49. mv -f tmp.png $x
  50. done
  51. }
  52.  
  53. function language_blaster(){
  54. check_do
  55. echo "Pharsing languages to delete..."
  56. for x in $language_lst;
  57. do
  58. how_many=$(find -name $x |wc -l)
  59. if [ "$how_many" -gt "1" ]; then
  60. for y in $(find -name $x); do
  61. if [ -d "$y" ]; then
  62. echo "Removing $y"
  63. rm -rf $y
  64. else
  65. echo "$y wasn't found no reason to remove."
  66. fi
  67. done
  68. elif [ "$how_many" = "1" ]; then
  69. if [ -d $(find -name $x) ]; then
  70. echo "Removing $x"
  71. rm -rf $(find -name $x)
  72. else
  73. echo "$x wasn't found no reason to remove"
  74. fi
  75. else
  76. echo "Found $how_many | So can't do much." &>> /dev/null
  77. fi
  78. done
  79. }
  80.  
  81. function build_apk(){
  82. echo "Building all the apks, this may take a while..."
  83. for x in $app_lst; do
  84. $APKTOOL b $x &>> /dev/null
  85. done
  86. }
  87.  
  88. function unzip_apk(){
  89. echo "unzipping apks..."
  90. da_apks=$(find -name '*.apk' |egrep -v 'build|dist')
  91. for x in $da_apks; do
  92. d="$z $x"
  93. y=${d%.apk}
  94. d=${y##*/}
  95. mkdir extracted/$d && mkdir extracted/$d/build && unzip $x -d extracted/$d/build/apk
  96. cp -r ~/language-removed/newTest/extracted/$d/build/apk/META-INF/ ~/language-removed/newTest/$d/build/apk/
  97. cp ~/language-removed/newTest/extracted/$d/build/apk/AndroidManifest.xml ~/language-removed/newTest/$d/build/apk/AndroidManifest.xml
  98. cp -r ~/language-removed/newTest/extracted/$d/build/apk/assets/ ~/language-removed/newTest/$d/build/apk/
  99. echo $x >> apkextractlist.txt
  100. done
  101. }
  102.  
  103. function finalize_apk(){
  104. echo "copying files..."
  105. da_apks=$(find -name '*.apk' |egrep -v 'build|dist')
  106. for x in $da_apks; do
  107. d="$z $x"
  108. y=${d%.apk}
  109. d=${y##*/}
  110. cd ~/language-removed/newTest/$d/build/apk/
  111. zip -r $d.apk .
  112. mv $d.apk ~/language-removed/newTest/output/
  113. cd ~/language-removed/newTest/
  114. mv $d.apk ~/language-removed/newTest/orig/
  115. done
  116. }
  117.  
  118. function clean_up(){
  119. echo "copying files..."
  120. da_apks=$(find -name '*.apk' |egrep -v 'build|dist')
  121. for x in $da_apks; do
  122. d="$z $x"
  123. y=${d%.apk}
  124. d=${y##*/}
  125. rm -rf ~/language-removed/newTest/$d
  126. cd ~/language-removed/newTest/extracted
  127. rm -rf ~/language-removed/newTest/$d
  128. done
  129. }
  130.  
  131. if [ "$1" = "-ALL" ]; then
  132. png_crush_this
  133. language_blaster
  134. build_apk
  135. unzip_apk
  136. finalize_apk
  137. clean_up
  138. elif [ "$1" = "-P" ]; then
  139. png_crush_this
  140. elif [ "$1" = "-L" ]; then
  141. language_blaster
  142. elif [ "$1" = "-B" ]; then
  143. build_apk
  144. elif [ "$1" = "-U" ]; then
  145. unzip_apk
  146. elif [ "$1" = "-F" ]; then
  147. finalize_apk
  148. elif [ "$1" = "-C" ]; then
  149. clean_up
  150. elif [ "$1" == "--help" ]; then
  151. echo "Usage: lithid-tool.sh [OPTION]"
  152. echo "Here is a list of available options:"
  153. echo "-P | Only pngcrush files recursively"
  154. echo "-L | Only blast the languages recursively"
  155. echo "-B | Only build apks"
  156. echo "-U | Only unzip apks"
  157. echo "-F | Only finalize apks"
  158. echo "-C | Clean up folders"
  159. echo "-ALL | Blast languages,pngcrush pimp style, and build most apks!"
  160. echo "-----------------------------------------------"
  161. exit 0
  162. else
  163. echo "Written by Lithid & The Plattypus"
  164. echo "[Error]: Expected 1 parameter, got $#."
  165. echo "Please type --help for help using this script"
  166. echo "-----------------------------------------------"
  167. exit 0
  168. fi
  169. exit 0
Add Comment
Please, Sign In to add comment