Advertisement
sniper_nuko

deodex zipalign 選択型 linux

May 11th, 2014
414
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 8.21 KB | None | 0 0
  1. #!/bin/bash
  2. #
  3. # deodex zippalign 選択型 linux
  4.  
  5. clear
  6.  
  7. if [ ! -e app ]; then
  8.     mkdir app
  9. fi
  10.  
  11. if [ ! -e framework ]; then
  12.     mkdir framework
  13. fi
  14.  
  15. if [ ! -e priv-app ]; then
  16.     mkdir priv-app
  17. fi
  18.  
  19. # toolsフォルダチェック
  20. if [ ! -e tools ]; then
  21.     echo "toolsフォルダがありません"
  22.     echo "終了します"
  23.     exit
  24. else
  25.     chmod -R 0755 tools
  26. fi
  27.  
  28. # app 繰り返しdeodex
  29. app_deodex () {
  30.     clear
  31.     if [ $aodex != "0" ]; then
  32.         echo "Android 4.0 API:14"
  33.         echo "Android 4.0.4 API:15"
  34.         echo "Android 4.1 API:16"
  35.         echo "Android 4.2 API:17"
  36.         echo "Android 4.3 API:18"
  37.         echo "Android 4.4 API:19"
  38.         read -p "APIレベル入力:" api
  39.         cd app
  40.         # odexリスト
  41.         aodexlist=`find *.odex | sed s/.odex//`
  42.         # odexリスト分deodex繰り返し処理
  43.         echo "app deodex開始"
  44.         for aodexfile in ${aodexlist[@]}
  45.         do
  46.             clear
  47.             echo "API: $api"
  48.             echo "$aodexfile deodex中..."
  49.             ../tools/baksmali -a $api -d ../framework -x $aodexfile.odex -o $aodexfile
  50.             ../tools/smali -a $api $aodexfile -o classes.dex
  51.             ../tools/7z a -tzip $aodexfile.apk classes.dex
  52.             rm -rf $aodexfile $aodexfile.odex classes.dex
  53.             echo "$aodexfile deodex完"
  54.         done
  55.         cd ..
  56.         clear
  57.         aapknew=`find app | grep -c ".apk"`
  58.         aodexnew=`find app | grep -c ".odex"`
  59.         echo "app apkファイル数: $aapknew odexファイル数: $aodexnew"
  60.         echo "appのdeodex完了しました"
  61.         read Wait
  62.     else
  63.         echo "appにodexファイルがありません"
  64.         read Wait
  65.     fi
  66. }
  67.  
  68. # framework 繰り返しdeodex
  69. framework_deodex () {
  70.     clear
  71.     fodex=`find framework | grep -c ".odex"`
  72.     if [ $fodex != "0" ]; then
  73.         echo "Android 4.0 API:14"
  74.         echo "Android 4.0.4 API:15"
  75.         echo "Android 4.1 API:16"
  76.         echo "Android 4.2 API:17"
  77.         echo "Android 4.3 API:18"
  78.         echo "Android 4.4 API:19"
  79.         read -p "APIレベル入力:" api
  80.         cd framework
  81.         # playstationcertified.odexを退避
  82.         if [ -e playstationcertified.odex ]; then
  83.             mv playstationcertified.odex ../
  84.         fi
  85.         # SemcGenericUxpResチェック
  86.         echo " framework deodex開始"
  87.         if [ -e SemcGenericUxpRes.odex ]; then
  88.             clear
  89.             echo "API: $api"
  90.             echo "SemcGenericUxpRes deodex中..."
  91.             ../tools/baksmali -a $api -d ../framework -x SemcGenericUxpRes.odex -o \
  92.             SemcGenericUxpRes
  93.             ../tools/smali -a $api SemcGenericUxpRes -o classes.dex
  94.             ../tools/7z a -tzip SemcGenericUxpRes.apk classes.dex
  95.             rm -rf SemcGenericUxpRes SemcGenericUxpRes.odex classes.dex
  96.             echo "SemcGenericUxpRes deodex完"
  97.         fi
  98.         # odexリスト
  99.         fodexlist=`find *.odex | sed s/.odex//`
  100.         # odexリスト分deodex繰り返し処理
  101.         for fodexfile in ${fodexlist[@]}
  102.         do
  103.             clear
  104.             echo "API: $api"
  105.             echo "$fodexfile deodex中..."
  106.             ../tools/baksmali -a $api -d ../framework -x $fodexfile.odex -o $fodexfile
  107.             ../tools/smali -a $api $fodexfile -o classes.dex
  108.             ../tools/7z a -tzip $fodexfile.jar classes.dex
  109.             rm -rf $fodexfile $fodexfile.odex classes.dex
  110.             echo "$fodexfile deodex完"
  111.         done
  112.         cd ..
  113.         clear
  114.         fapknew=`find framework | grep -c ".apk"`
  115.         fjarnew=`find framework | grep -c ".jar"`
  116.         fodexnew=`find framewokr | grep -c ".odex"`
  117.         echo "framework apkファイル数: $fapknew jarファイル数: $fjarnew \
  118.         odexファイル数: $fodexnew"
  119.         if [ -e playstationcertified.odex ]; then
  120.             mv playstationcertified.odex framework/
  121.         fi
  122.         echo "frameworkのdeodex完了しました"
  123.         read Wait
  124.     else
  125.         echo "frameworkにodexファイルがありません"
  126.         read Wait
  127.     fi
  128. }
  129.  
  130. # priv-app 繰り返しdeodex
  131. priv_app_deodex () {
  132.     clear
  133.     podex=`find priv-app | grep -c ".odex"`
  134.     if [ $podex != "0" ]; then
  135.         echo "Android 4.0 API:14"
  136.         echo "Android 4.0.4 API:15"
  137.         echo "Android 4.1 API:16"
  138.         echo "Android 4.2 API:17"
  139.         echo "Android 4.3 API:18"
  140.         echo "Android 4.4 API:19"
  141.         echo "APIレベルを選択して入力"
  142.         read  -p "APIレベル入力:" api
  143.         cd priv-app
  144.         # odexリスト
  145.         podexlist=`find *.odex | sed s/.odex//`
  146.         # odexリスト分deodex繰り返し処理
  147.         echo "priv-app deodexk開始"
  148.         for podexfile in ${podexlist[@]}
  149.         do
  150.             clear
  151.             echo "API: $api"
  152.             echo "$podexfile deodex中..."
  153.             ../tools/baksmali -a $api -d ../framework -x $podexfile.odex -o $podexfile
  154.             ../tools/smali -a $api $podexfile -o classes.dex
  155.             ../tools/7z a -tzip $podexfile.apk classes.dex
  156.             rm -rf $podexfile $podexfile.odex classes.dex
  157.             echo "$podexfile deodex完"
  158.         done
  159.         cd ..
  160.         clear
  161.         papknew=`find priv-app | grep -c ".apk"`
  162.         podexnew=`find priv-app | grep -c ".odex"`
  163.         echo "priv-app apkファイル数: $papknew odexファイル数: $podexnew"
  164.         echo "priv-appのdeodex完了しました"
  165.         read Wait
  166.     else
  167.         echo "priv-appにodexファイルがありません"
  168.         read Wait
  169.     fi
  170. }
  171.  
  172. # app apk最適化
  173. app_zipalign () {
  174.     clear
  175.     aodexnew=`find app | grep -c ".odex"`
  176.     if [ $aodexnew != "0" ]; then
  177.         azip=`find app | grep -c ".apk"`
  178.         if [ $azip != "0" ]; then
  179.             cd app
  180.             # apkリスト
  181.             aziplist=`find *.apk`
  182.             # apkリスト分繰り返し最適化処理
  183.             echo "最適化開始"
  184.             for azipfile in ${aziplist[@]}
  185.             do
  186.                 ../tools/zipalign-linux 4 $azipfile $azipfile-ed
  187.                 rm $azipfile
  188.                 mv $azipfile-ed $azipfile
  189.                 echo "$azipfile 最適化完"
  190.             done
  191.             cd ..
  192.             azipnew=`find app | grep -c ".apk"`
  193.             echo "app apkファイル数: $azipnew"
  194.             echo "appの最適化完了しました"
  195.             read Wait
  196.         else
  197.             echo "appに最適化するapkがありません"
  198.             read Wait
  199.         fi
  200.     else
  201.         echo "deodexされていません"
  202.         read Wait
  203.     fi
  204. }
  205.  
  206. # framework apk最適化
  207. framework_zipalign () {
  208.     clear
  209.     fodexnew=`find framework | grep -c ".odex"`
  210.     if [ $fodexnew != "0" ]; then
  211.         fzip=`find framework | grep -c ".apk"`
  212.         if [ $fzip != "0" ]; then
  213.             cd framework
  214.             # apkリスト
  215.             fziplist=`find *.apk`
  216.             # apkリスト分繰り返し最適化処理
  217.             echo "最適化開始"
  218.             for fzipfile in ${fziplist[@]}
  219.             do
  220.                 ../tools/zipalign-linux 4 $fzipfile $fzipfile-ed
  221.                 rm $fzipfile
  222.                 mv $fzipfile-ed $fzipfile
  223.                 echo "$fzipfile 最適化完"
  224.             done
  225.             cd ..
  226.             fzipnew=`find framework | grep -c ".apk"`
  227.             echo "framework apkファイル数: $fzipnew"
  228.             echo "frameworkの最適化完了しました"
  229.             read Wait
  230.         else
  231.             echo "frameworkに最適化するapkがありません"
  232.             read Wait
  233.         fi
  234.     else
  235.         echo "deodexされていません"
  236.         read Wait
  237.     fi
  238. }
  239.  
  240. # priv-app apk最適化
  241. priv_app_zipalign () {
  242.     clear
  243.     podexnew=`find priv-app | grep -c ".odex"`
  244.     if [ $podexnew != "0" ]; then
  245.         pzip=`find priv-app | grep -c ".apk"`
  246.         if [ $pzip != "0" ]; then
  247.             cd priv-app
  248.             # apkリスト
  249.             pziplist=`find *.apk`
  250.             # apkリスト分繰り返し最適化処理
  251.             echo "最適化開始"
  252.             for pzipfile in ${pziplist[@]}
  253.             do
  254.                 ../tools/zipalign-linux 4 $pzipfile $pzipfile-ed
  255.                 rm $pzipfile
  256.                 mv $pzipfile-ed $pzipfile
  257.                 echo "$pzipfile 最適化完"
  258.             done
  259.             cd ..
  260.             pzipnew=`find priv-app | grep -c ".apk"`
  261.             echo "priv-app apkファイル数: $pzipnew"
  262.             echo "priv-appの最適化完了しました"
  263.             read Wait
  264.         else
  265.             echo "priv-appに最適化するapkがありません"
  266.             read Wait
  267.         fi
  268.     else
  269.         echo "deodexされていません"
  270.         read Wait
  271.     fi
  272. }
  273.  
  274. cleaning () {
  275.     rm -rf app framework priv-app system signed_deodex.zip deodex.zip
  276.     mkdir app framework priv-app
  277. }
  278.  
  279. # エラー処理
  280. err_java () {
  281.     clear
  282.     echo "Javaが実行できません"
  283.     echo "処理を中止します"
  284.     read Wait
  285.     exit
  286. }
  287.  
  288. err_unknown () {
  289.     clear
  290.     echo "不明なエラーが発生しました"
  291.     echo "処理を中止します"
  292.     read Wait
  293.     exit
  294. }
  295.  
  296. clear
  297. echo ""
  298. echo "***************************************************************"
  299. echo "          deodex zipalign                                      "
  300. echo "***************************************************************"
  301. echo ""
  302. echo "1 - app deodex"
  303. echo "2 - framework deodex"
  304. echo "3 - priv-app deodex"
  305. echo "4 - app 最適化"
  306. echo "5 - framework 最適化"
  307. echo "6 - priv-app 最適化"
  308. echo "7 - クリーニング"
  309. echo "0 - EXIT"
  310.  
  311. echo -e
  312. echo -e -n "番号選択 :"
  313. read opt
  314. case $opt in
  315.     1) app_deodex ;;
  316.     2) framework_deodex ;;
  317.     3) priv_app_deodex ;;
  318.     4) app_zipalign ;;
  319.     5) framework_zipalign ;;
  320.     6) priv_app_zipalign ;;
  321.     7) cleaning ;;
  322.     0)
  323.         clear
  324.         exit
  325.         ;;
  326. esac
  327.  
  328. ./Select
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement