gapps.sh 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. #!/bin/bash
  2. # (c) Joey Rizzoli, 2015
  3. # Released under GPL v2 License
  4. ##
  5. # var
  6. #
  7. DATE=$(date +%F-%H-%M)
  8. TOP=$(realpath .)
  9. ANDROIDV=5.1
  10. OUT=$TOP/out
  11. BUILD=$TOP/build
  12. METAINF=$BUILD/meta
  13. COMMON=$TOP/prebuilt/gapps/common
  14. GLOG=/tmp/gapps_log
  15. ##
  16. # functions
  17. #
  18. function printerr(){
  19. echo "$(tput setaf 1)$1$(tput sgr 0)"
  20. }
  21. function printdone(){
  22. echo "$(tput setaf 2)$1$(tput sgr 0)"
  23. }
  24. function clean(){
  25. echo "Cleaning up..."
  26. rm -r $OUT/$GARCH
  27. rm /tmp/$BUILDZIP
  28. return $?
  29. }
  30. function Gfailed(){
  31. printerr "Build failed, check $GLOG"
  32. exit 1
  33. }
  34. function create(){
  35. test -f $GLOG && rm -f $GLOG
  36. echo "Starting GApps compilation" > $GLOG
  37. echo "ARCH= $GARCH" >> $GLOG
  38. echo "OS= $(uname -s -r)" >> $GLOG
  39. echo "NAME= $(whoami) at $(uname -n)" >> $GLOG
  40. PREBUILT=$TOP/prebuilt/gapps/$GARCH
  41. test -d $OUT || mkdir $OUT;
  42. test -d $OUT/$GARCH || mkdir -p $OUT/$GARCH
  43. echo "Build directories are now ready" >> $GLOG
  44. echo "Getting prebuilts..."
  45. echo "Copying stuffs" >> $GLOG
  46. cp -r $PREBUILT $OUT/$GARCH >> $GLOG
  47. mv $OUT/$GARCH/$GARCH $OUT/$GARCH/arch >> $GLOG
  48. cp -r $COMMON $OUT/$GARCH >> $GLOG
  49. }
  50. function zipit(){
  51. BUILDZIP=gapps-$ANDROIDV-$GARCH-$DATE.zip
  52. echo "Importing installation scripts..."
  53. cp -r $METAINF $OUT/$GARCH/META-INF && echo "Meta copied" >> $GLOG
  54. echo "Creating package..."
  55. cd $OUT/$GARCH
  56. zip -r /tmp/$BUILDZIP . >> $GLOG
  57. rm -rf $OUT/tmp >> $GLOG
  58. cd $TOP
  59. if [ -f /tmp/$BUILDZIP ]; then
  60. echo "Signing zip..."
  61. java -Xmx2048m -jar $TOP/build/sign/signapk.jar -w $TOP/build/sign/testkey.x509.pem $TOP/build/sign/testkey.pk8 /tmp/$BUILDZIP $OUT/$BUILDZIP >> $GLOG
  62. else
  63. printerr "Couldn't zip files!"
  64. echo "Couldn't find unsigned zip file, aborting" >> $GLOG
  65. return 1
  66. fi
  67. }
  68. function getmd5(){
  69. if [ -x $(which md5sum) ]; then
  70. echo "md5sum is installed, getting md5..." >> $GLOG
  71. echo "Getting md5sum..."
  72. GMD5=$(md5sum $OUT/$BUILDZIP)
  73. echo -e "$GMD5" > $OUT/gapps-$ANDROIDV-$GARCH-$DATE.md5
  74. echo "md5 exported at $OUT/gapps-$ANDROIDV-$GARCH-$DATE.md5"
  75. return 0
  76. else
  77. echo "md5sum is not installed, aborting" >> $GLOG
  78. return 1
  79. fi
  80. }
  81. ##
  82. # main
  83. #
  84. GARCH=$1
  85. create
  86. LASTRETURN=$?
  87. if [ -x $(which realpath) ]; then
  88. echo "Realpath found!" >> $GLOG
  89. else
  90. TOP=$(cd . && pwd) # some os X love
  91. echo "No realpath found!" >> $GLOG
  92. fi
  93. if [ "$LASTRETURN" == 0 ]; then
  94. zipit
  95. LASTRETURN=$?
  96. if [ "$LASTRETURN" == 0 ]; then
  97. getmd5
  98. LASTRETURN=$?
  99. if [ "$LASTRETURN" == 0 ]; then
  100. clean
  101. LASTRETURN=$?
  102. if [ "$LASTRETURN" == 0 ]; then
  103. echo "Done!" >> $GLOG
  104. printdone "Build completed: $GMD5"
  105. exit 0
  106. else
  107. Gfailed
  108. fi
  109. else
  110. Gfailed
  111. fi
  112. else
  113. Gfailed
  114. fi
  115. else
  116. Gfailed
  117. fi