gapps.sh 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. #!/bin/bash
  2. # (c) Joey Rizzoli, 2015
  3. # (c) Paul Keith, 2017
  4. # Released under GPL v2 License
  5. ##
  6. # var
  7. #
  8. DATE=$(date +%F-%H-%M)
  9. TOP=$(realpath .)
  10. ANDROIDV=7.1.2
  11. OUT=$TOP/out
  12. BUILD=$TOP/build
  13. METAINF=$BUILD/meta
  14. COMMON=$TOP/common/proprietary
  15. GLOG=/tmp/gapps_log
  16. ADDOND=$TOP/addond.sh
  17. ##
  18. # functions
  19. #
  20. function printerr() {
  21. echo "$(tput setaf 1)$1$(tput sgr 0)"
  22. }
  23. function printdone() {
  24. echo "$(tput setaf 2)$1$(tput sgr 0)"
  25. }
  26. function clean() {
  27. echo "Cleaning up..."
  28. rm -r $OUT/$GARCH
  29. rm /tmp/$BUILDZIP
  30. return $?
  31. }
  32. function Gfailed() {
  33. printerr "Build failed, check $GLOG"
  34. exit 1
  35. }
  36. function create() {
  37. test -f $GLOG && rm -f $GLOG
  38. echo "Starting GApps compilation" > $GLOG
  39. echo "ARCH= $GARCH" >> $GLOG
  40. echo "OS= $(uname -s -r)" >> $GLOG
  41. echo "NAME= $(whoami) at $(uname -n)" >> $GLOG
  42. PREBUILT=$TOP/$GARCH/proprietary
  43. test -d $OUT || mkdir $OUT;
  44. test -d $OUT/$GARCH || mkdir -p $OUT/$GARCH
  45. test -d $OUT/$GARCH/system || mkdir -p $OUT/$GARCH/system
  46. echo "Build directories are now ready" >> $GLOG
  47. echo "Getting prebuilts..."
  48. echo "Copying stuff" >> $GLOG
  49. cp -r $PREBUILT/* $OUT/$GARCH/system >> $GLOG
  50. cp -r $COMMON/* $OUT/$GARCH/system >> $GLOG
  51. echo "Generating addon.d script" >> $GLOG
  52. test -d $OUT/$GARCH/system/addon.d || mkdir -p $OUT/$GARCH/system/addon.d
  53. test -f $ADDOND && rm -f $ADDOND
  54. cat $TOP/addond_head > $ADDOND
  55. for txt_file in proprietary-files-common proprietary-files-$GARCH
  56. do
  57. cat $TOP/$txt_file.txt | while read l
  58. do
  59. if [ "$l" != "" ]; then
  60. line=$(echo "$l" | sed 's/^-//g')
  61. line=${line%%|*}
  62. line=${line%%:*}
  63. echo "$line" >> $ADDOND.tmp
  64. fi
  65. done
  66. done
  67. cat $ADDOND.tmp | LC_ALL=C sort | uniq >> $ADDOND
  68. rm $ADDOND.tmp
  69. cat $TOP/addond_tail >> $ADDOND
  70. chmod 755 $ADDOND
  71. mv $ADDOND $OUT/$GARCH/system/addon.d/30-gapps.sh
  72. }
  73. function zipit() {
  74. BUILDZIP=gapps-$ANDROIDV-$GARCH-$DATE.zip
  75. echo "Importing installation scripts..."
  76. test -d $OUT/$GARCH/META-INF || mkdir $OUT/$GARCH/META-INF;
  77. cp -r $METAINF/* $OUT/$GARCH/META-INF/ && echo "Meta copied" >> $GLOG
  78. echo "Creating package..."
  79. cd $OUT/$GARCH
  80. zip -r /tmp/$BUILDZIP . >> $GLOG
  81. rm -rf $OUT/tmp >> $GLOG
  82. cd $TOP
  83. if [ -f /tmp/$BUILDZIP ]; then
  84. echo "Signing zip..."
  85. 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
  86. else
  87. printerr "Couldn't zip files!"
  88. echo "Couldn't find unsigned zip file, aborting" >> $GLOG
  89. return 1
  90. fi
  91. }
  92. function getmd5() {
  93. if [ -x $(which md5sum) ]; then
  94. echo "md5sum is installed, getting md5..." >> $GLOG
  95. echo "Getting md5sum..."
  96. GMD5=$(md5sum $OUT/$BUILDZIP)
  97. echo -e "$GMD5" > $OUT/gapps-$ANDROIDV-$GARCH-$DATE.zip.md5sum
  98. echo "md5 exported at $OUT/gapps-$ANDROIDV-$GARCH-$DATE.zip.md5sum"
  99. return 0
  100. else
  101. echo "md5sum is not installed, aborting" >> $GLOG
  102. return 1
  103. fi
  104. }
  105. ##
  106. # main
  107. #
  108. GARCH=$1
  109. create
  110. LASTRETURN=$?
  111. if [ -x $(which realpath) ]; then
  112. echo "Realpath found!" >> $GLOG
  113. else
  114. TOP=$(cd . && pwd) # some darwin love
  115. echo "No realpath found!" >> $GLOG
  116. fi
  117. if [ "$LASTRETURN" == 0 ]; then
  118. zipit
  119. LASTRETURN=$?
  120. if [ "$LASTRETURN" == 0 ]; then
  121. getmd5
  122. LASTRETURN=$?
  123. if [ "$LASTRETURN" == 0 ]; then
  124. clean
  125. LASTRETURN=$?
  126. if [ "$LASTRETURN" == 0 ]; then
  127. echo "Done!" >> $GLOG
  128. printdone "Build completed: $GMD5"
  129. exit 0
  130. else
  131. Gfailed
  132. fi
  133. else
  134. Gfailed
  135. fi
  136. else
  137. Gfailed
  138. fi
  139. else
  140. Gfailed
  141. fi