From 5847301b630aba56bb1074a9f48421bd059fe2b7 Mon Sep 17 00:00:00 2001 From: RaSan147 <34002411+RaSan147@users.noreply.github.com> Date: Thu, 1 Jun 2023 23:46:14 +0600 Subject: [PATCH 1/3] added autobuild 1. workflow 2. key signing --- .github/workflows/build.yml | 62 +++++++++++++++++++++ .github/workflows/del_old.yml | 29 ++++++++++ acode.keystore | Bin 0 -> 4390 bytes sign.sh | 30 ++++++++++ src/plugins/system/utils/changeProvider.js | 2 +- utils/rename.js | 55 ++++++++++++++++++ utils/scripts/build.sh | 7 ++- utils/scripts/clean.sh | 3 +- 8 files changed, 184 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/del_old.yml create mode 100644 acode.keystore create mode 100644 sign.sh create mode 100644 utils/rename.js diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..c02f97954 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,62 @@ +name: Build Android + +on: [push, pull_request, workflow_dispatch] + +jobs: + build: + name: Build APK + runs-on: ubuntu-latest + steps: + - name: Checkout source + uses: actions/checkout@v3 + + - name: Setup java + uses: actions/setup-java@v3 + with: + distribution: 'zulu' # See 'Supported distributions' for available options + java-version: '11' # only 11 works for this project + + - name: Setup Node.js + uses: actions/setup-node@v1 + with: + + node-version: 18.x + + + - name: Install Cordova + run: npm install -g cordova + + - name: Install yarn + run: npm install -g yarn + + - name: Install app dependencies + run: yarn setup + + - name: Configure the platform + run: yarn clean + + # - name: Add Android platform + # run: cordova platform add android + + - name: Build Android dev apk + run: yarn build android paid dev + + - name: Build Android prod aab + run: yarn build android paid prod + + - name: Sign + run: | + sudo chmod 777 ./sign.sh + ./sign.sh + + - name: Upload dev APK + uses: actions/upload-artifact@v3 + with: + name: app-dev + path: ./*.apk + + - name: Upload release bundle + uses: actions/upload-artifact@v3 + with: + name: app-release + path: ./*.aab diff --git a/.github/workflows/del_old.yml b/.github/workflows/del_old.yml new file mode 100644 index 000000000..2f7c79585 --- /dev/null +++ b/.github/workflows/del_old.yml @@ -0,0 +1,29 @@ +name: Delete old workflow runs +on: + workflow_dispatch: + inputs: + days: + description: 'Number of days.' + required: true + default: 30 + minimum_runs: + description: 'The minimum runs to keep for each workflow.' + required: true + default: 6 + delete_workflow_pattern: + description: 'The name of the workflow. if not set then it will target all workflows.' + required: false + +jobs: + del_runs: + runs-on: ubuntu-latest + permissions: write-all + steps: + - name: Delete workflow runs + uses: Mattraks/delete-workflow-runs@v2 + with: + token: ${{ github.token }} + repository: ${{ github.repository }} + retain_days: ${{ github.event.inputs.days }} + keep_minimum_runs: ${{ github.event.inputs.minimum_runs }} + delete_workflow_pattern: ${{ github.event.inputs.delete_workflow_pattern }} diff --git a/acode.keystore b/acode.keystore new file mode 100644 index 0000000000000000000000000000000000000000..c247a87b2d1da80304e27048b748f2395e564842 GIT binary patch literal 4390 zcma)AS2P?9w>6AmjNXOlL^sT6(R;5EF``Eqy+*G?j22y#5N(LwCZZEUq7xFmcOoKs zl=ySkz3cndeY*GIth3JEXYbdu*MXua*l_`PP!#zH2+S9w5pzKTAOIAi$UA{3^47m_ z6BI=x@V_Xc`#=;C!(W)@Z&83C|Dz%%0^k;+z#pI}a0k@k9|b-M6akg|cO-`L1F1)v zzR0n;SQTGW=j2~StYuZnGHT)CJ|M>hutJGJg#Yb`3&zKR-UorLV>AHvct8Ljko@!2 z=M1wyf*&B}%u(>#cZ5I`*uX&BqJX3bEA-5lJ9KBpKN_j!zq(8eyarKwi)+*KA=%zM zpy#Ag3b?$CtJXv)+Ndo}m3Qb;&%IrVANa$zo5;03#ct*x*4Vf1%6(BaMcd0>zB|3aB7J+LW0CC*nF&L< z<_CgL>dM%|b^3t(icQY*R##~a*lVT94^Y4&F$aC}2s(B13qk9O{mySOApnm}F$Ayj zDPGYQ2{2>gu#%UlbkUz{nIV4|zyCeT$n%MqG6Ao#*>Yj4nhZW=^D5;*D|w0Tc?(C;FYP@qBK2N`18AnY%UaB< zYKAmI)xwmNH#wmU@Z3diEnF!e+5HK=N@43kO>=niPTGrw&1p}rMc2cl;k982M6 zI>uvbPiUJPJ2?r*HS9r zMIio=9UK0!kwor{83&h!#fYQHEd=I9tEE;?P9^i!syN z_N+r^mq^%r`V;R)*DvGN+2)!mo;HWl0bR@6q4s(hwNqX(MG4beR)IIFq$DwLCRylbowds)1ouNbddHU!YldmUG3 zAraU=$z#CqMRck|i9t2Hv0aUd>z$B<1X6`zIt9>`K(3xGeSZ}=%0F{#8O_RFMD6aw z1Q9S!Y(g#*2DFGP11^dgoE)ylv=KC)rUkMw?GbIo!QR@sWBOA)bdgr0Gm1L$Aj|YvswFdnkcEjk5thMB*-RL(>E&Y zAORdgwM3DXh+mnOP!RB%*f26Vmd}q`nhplTtr$&~u#^%KU&_uc@sa2U)(C$vAGFGT z!BWIvCp-la#&hkV70k`8c|WXAan5n1zWb^{2#$`JO#qJ?PdN8^>JZMp4xWNzT|Grzs_TrA9#T^$XIrYKC_f6`wq3rusRWskCp9udHesWxyIKT{?N`qY z=0}t|?Xq=BAI|)7X-Oo*Jk3a<00P#po+mF!A7ddoP7>{JGOJm-^KLy9Ds!%Def7@} zuQ>=}+P{ZyZDmC+&W`+v6I-{Yuww&CF&M>X3GQA8D zmgyE+eY#FIOtgo*OKQqQ;`ip;Tj$VxXG)5n3AJ5BU6M}tYfg%@1r+p^UD<&{9(vy4 zf!K@PVvW%qOcY~j?lt~En1VrZI`5FW&LEYqV`0$qx$4*Nwq&TDqzNwIWue6%BFiX> z05o6KZwD&&W@b7!=>6`?lE=!{j;XeX9ATxdV^JoP1HR&FZCY%1Ib_Z4RRje3R0r^_ zAtQ8W*+TGj4B9$RtE(!TT}eJ_MmAQI=UePvJ_{o2j)A)l=^u5zCRwz3xcse2ds9^2;9wJvT8!~in7mVZ(LNr4j7%^}Emb)>G%!M%oU)nV1jv zVJV@uFW+QJK9y2ub!5!hX(8Cb)9fIaFu8~!HHB2uyDdp}_6*QvsL4LJeH50D8}cxu zssx?jy)C|>HOX_4y)1M{)esRqjy`?k;oSFQZa<9<;W#>)8|6qcjP;SOKw6rY6Cbo* zj=-uL5m%61@Y55HZpNdZea&QNqyF8{sG~h~dkebY2x+o$(DLx?L$okY-Q?q{H$&T8bpj1ahr+2YhAsfga4GlU{6lb3bIi$GmPG6+JNHwU zR|zk7Na^zjdF-#g682xs35o?fgdxt|-nG09nRSsf=lH@2^K2{SI=^_*vw9ch4V}gI zJNBtE=ewuU%bEuPsx!`VUO(Yy#y9rfe?aR{?aaf#zqw?-SeBYysSRIq9LPxchD~i2 z7Qrn=23sttmW#+i8UBfDU}_O!W+EILoM$*5ICePpP_}<58WCzBrLmKnJ*$Yg1WZa? zR8&GjTvQ5*0!99_L;xy8fxQ1h?zjM)zs>Pq2JnA{#9!kjse6=r-6Z^_!-nI>9>abZ zvj0y=Ja--F@l@h|x|aU~KLp=KJpzS))C3|l#dNVND=kqMQv3U2eu0OQcm4c2ZJToLi0%N5YIxZ$;ozSsDb5mqfO2|dt>N5B$t zOg7^+gGrJTlZX0qqZ>`yBjQ^j{J`cVMk<=3+ zLv{-pM;_m1@LJr{ZA=MF>D_N-eqvAiP)Vx=KLL#i_{XY4Uss~cBTlU18kUx^wLP6t zxo#hl;I->eC+XYl)pHI(1aQWeLYzz76$P41g#jK)MDZR7naCa3WmX(O_&pcCi6uv! zSBEk^X%<0+W9Eg=7kxIbN+;$)Yk43)_c+~IDXUIpt zUQM^)Rs?vPB7LGA#oZO``Y<6*&0i`v{Q!Z~W8V;k2LJHN#$fO{p+b&7OkGJBWN+ z+Mzz*jFrpDcJmDuGaGUIN+TnP5UqFHnpWji_FgQ!7F|1fv*WJvZFOUNV)jhN9)6{* zWFGZE*96%ZxmS(Z!{C2pR#Iyb|5=Kc+<7msR%slLTcqE(uAEv-Nq-I^R^xTJcV_Mr zLx6D9-84Fl(aEjsawl*c!aZ7x5G|}^OBVN#r^ffez?;d_d@-rTiK?U-vVb>rI?r$PMzdi z2ULdlL)7%MBX6=M ze`l2vFyyoMAqzCgF-k(E4S)e)2_xI1#hz-ux9XP)+nbwZ3J*66!cJq%AbO8K4Vgo= zUP^yH28E`Vqb2Ycs6Q**PGk=?5i$nbSK!I#gQhiimTYuXQ~KWPB;2jGnY4!BH3dv_ zD`!gcfvj2*(XRI4s+`CoTf;;JWUykNr4&;}rV9_kP~BV(e@Z=cwq5CFINRA4eq)~^ zyp?}18IrhKaJ>m}iJplyeNo9n-ZbK2kt<=uu~hH*VB#*Ci`Jc>TKIB{!V~=c{UaSI%S4406gip5xRWV7#~7HWWDPkKX#XdWQ$48m!}t-%K*w zeJtRg-|voMwKwcFYI5Rof1$ZGjmT8pIsfiZ(5tea#hYcD=AEKlP_b=Qm&U%YBFE?n zdi*d+KbdAVw0(7ko|{#J|O5|*%w6r8W*`@!^Eq6lT*#=Uv)YCT}u_gq?9 zsC+BdI84*Xo$FORt%w@uhvg+T`=~m}%Wc$L%+1QPCh3IE^(N*_5CGZD-SE^Vg|YGcQ=l?gJk|b)h0ql7D^&xBz?{AgjW6 zmjil)MQOmbc>GGdc$p6u=&dTn?2I`RI#xluaT!Q0Jt{ZgwaC7&5Uid{@~l0%_@h46 If1RBF05&-w8UO$Q literal 0 HcmV?d00001 diff --git a/sign.sh b/sign.sh new file mode 100644 index 000000000..611f14026 --- /dev/null +++ b/sign.sh @@ -0,0 +1,30 @@ + +## convert aab bundle to APK + +# grab tool for conversion +if [ ! -f bundletool-all-1.13.1.jar ]; then + wget https://github.com/google/bundletool/releases/download/1.13.1/bundletool-all-1.13.1.jar +fi + +# generate signature +if [ ! -f acode.keystore ]; then +# keytool -genkey -v -keystore acode.keystore -alias acode -keyalg RSA -keysize 2048 -validity 10000 -storepasswd acode123 -keypasswd acode123 +keytool -genkey -alias acode \ + -keyalg RSA -keystore acode.keystore \ + -dname "CN=Mark Smith, OU=JavaSoft, O=Sun, L=Cupertino, S=California, C=US" \ + -validity 36500 \ + -keysize 4096 \ + -storepass password -keypass password +fi + +# cleanup if needed +rm -rf *.apks toc.pb + +# convert to apk +for aab in *.aab; do +java -jar "bundletool-all-1.13.1.jar" build-apks --bundle=$aab --mode=universal --output="${aab%.*}.apks" --ks=acode.keystore --ks-pass=pass:password --ks-key-alias=acode --key-pass=pass:password + +# extract apk +unzip ${aab%.*}.apks +mv -v universal.apk ${aab%.*}.apk +done diff --git a/src/plugins/system/utils/changeProvider.js b/src/plugins/system/utils/changeProvider.js index f5bc4a367..3256b33dc 100644 --- a/src/plugins/system/utils/changeProvider.js +++ b/src/plugins/system/utils/changeProvider.js @@ -1,5 +1,5 @@ module.exports = { - changeProvider(reset) { + changeProvider(reset=true) { const fs = require('fs'); const path = require('path'); diff --git a/utils/rename.js b/utils/rename.js new file mode 100644 index 000000000..d42e9fa22 --- /dev/null +++ b/utils/rename.js @@ -0,0 +1,55 @@ +const path = require('path'); +const fs = require('fs'); +const { promisify } = require('util'); +const exec = promisify(require('child_process').exec); + +(async () => { + const platformsDir = path.resolve(__dirname, '../platforms/'); + const configpath = path.resolve(__dirname, '../config.xml'); + const APK_PATH = platformsDir + "/android/app/build/outputs/apk/debug/app-debug.apk"; + const AAB_PATH = platformsDir + "/android/app/build/outputs/bundle/release/app-release.aab"; + const ID_PAID = 'com.foxdebug.acode'; + const ID_FREE = 'com.foxdebug.acodefree'; + const CONFIG_VERSION = / " + target); + fs.rename(artifact, target, () => {}); + + process.exit(0); + } catch (error) { + console.error(error); + process.exit(1); + } +})(); diff --git a/utils/scripts/build.sh b/utils/scripts/build.sh index 8fd108d1a..4fd699fa7 100644 --- a/utils/scripts/build.sh +++ b/utils/scripts/build.sh @@ -34,6 +34,7 @@ script1="node ./utils/config.js $mode $app" script2="webpack --progress --mode $webpackmode " script3="node ./utils/loadStyles.js" script4="cordova build $platform $cordovamode" +script5="node ./utils/rename.js $mode $app" eval " echo \"${RED}$script1${NC}\"; $script1; @@ -42,5 +43,7 @@ $script2&& echo \"${RED}$script3${NC}\"; $script3; echo \"${RED}$script4${NC}\"; -$script4 -" \ No newline at end of file +$script4; +echo \"${RED}$script5${NC}\"; +$script5 +" diff --git a/utils/scripts/clean.sh b/utils/scripts/clean.sh index 2171c4fe0..62e46cd91 100644 --- a/utils/scripts/clean.sh +++ b/utils/scripts/clean.sh @@ -15,5 +15,6 @@ fi eval " cordova platform rm $platform_rm; -cordova platform add $platform_add +cordova platform add $platform_add; +cordova plugin add cordova-plugin-file " \ No newline at end of file From 229b6358aa2b0117b0d34244ea4ea903f61d8f3a Mon Sep 17 00:00:00 2001 From: RaSan147 <34002411+RaSan147@users.noreply.github.com> Date: Thu, 1 Jun 2023 23:49:55 +0600 Subject: [PATCH 2/3] bump build target to 33 for cordova --- build-extras.gradle | 2 +- config.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build-extras.gradle b/build-extras.gradle index c1e4ee1bc..926444bb0 100644 --- a/build-extras.gradle +++ b/build-extras.gradle @@ -1,4 +1,4 @@ -ext.cdvCompileSdkVersion = 31 +ext.cdvCompileSdkVersion = 33 configurations { all { diff --git a/config.xml b/config.xml index a14a98b17..6761d6a68 100644 --- a/config.xml +++ b/config.xml @@ -30,7 +30,7 @@ - + From d99eb6e2dfdcb6977c545f2bc9405c9a513357f5 Mon Sep 17 00:00:00 2001 From: WebLeach <108424424+WebLeach@users.noreply.github.com> Date: Tue, 27 Jun 2023 13:15:59 +0600 Subject: [PATCH 3/3] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c02f97954..2e5491727 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,6 +1,6 @@ name: Build Android -on: [push, pull_request, workflow_dispatch] +on: [push, workflow_dispatch] jobs: build: