gapps.sh 3.3 KB

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