import org.json.JSONObject apply plugin: 'com.android.application' android { compileSdkVersion 31 flavorDimensions "baseUrl" productFlavors { userdev { dimension "baseUrl" applicationId "com.ghpcarphone.ussd" resValue "string", "app_name", "测试用" buildConfigField "String", "BASE_URL", "\"https://www.kpkingpark.com\"" buildConfigField "String", "UPDATE_KEY", "\"59e95b20-759a-472a-bf07-a4e4b2e7a1f0\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/userdemo/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"wss://ci-naughty.lkluckpanda.online:443/69f3476bb6e001a9c320719073f055cc/app/\"" buildConfigField "String", "FRPC_IP", "\"XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_a"] minSdkVersion 29 } user1 { dimension "baseUrl" applicationId "com.ghpcarphone.ussd" resValue "string", "app_name", "B" buildConfigField "String", "BASE_URL", "\"https://www.ghpcarphone.com\"" buildConfigField "String", "UPDATE_KEY", "\"bfbc2f7f-779a-4719-9295-60eefbb9269f\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user1/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"wss://naughty.lkluckpanda.online:443/69f3476bb6e001a9c320719073f055cc/app/\"" buildConfigField "String", "FRPC_IP", "\"XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_b"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 29 } user2 { dimension "baseUrl" applicationId "com.dcduckcake.ussd" resValue "string", "app_name", "C" buildConfigField "String", "BASE_URL", "\"https://www.dcduckcake.com\"" buildConfigField "String", "UPDATE_KEY", "\"2be6db19-4be6-45f5-8a93-368ad7cb6405\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/userdemo/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"wss://naughty.lkluckpanda.online:443/69f3476bb6e001a9c320719073f055cc/app/\"" buildConfigField "String", "FRPC_IP", "\"XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_c"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 29 } user3 { dimension "baseUrl" applicationId "com.bcblackcoffee.ussd" resValue "string", "app_name", "D" buildConfigField "String", "BASE_URL", "\"https://www.bcblackcoffee.com\"" buildConfigField "String", "UPDATE_KEY", "\"64f225d4-e9a4-4c9f-93eb-133ff2f16c3e\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/userdemo/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"wss://naughty.lkluckpanda.online:443/69f3476bb6e001a9c320719073f055cc/app/\"" buildConfigField "String", "FRPC_IP", "\"XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_d"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 29 } user4 { dimension "baseUrl" applicationId "com.lkluckpanda.ussd" resValue "string", "app_name", "E" buildConfigField "String", "BASE_URL", "\"https://www.lkluckpanda.com\"" buildConfigField "String", "UPDATE_KEY", "\"64f225d4-e9a4-4c9f-93eb-133ff2f16c3e\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user4/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"\"" buildConfigField "String", "FRPC_IP", "\"XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_e"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 22 } user5 { dimension "baseUrl" applicationId "com.user.ussd" resValue "string", "app_name", "F" buildConfigField "String", "BASE_URL", "\"https://www.dcduckcake.com\"" buildConfigField "String", "UPDATE_KEY", "\"f6602356-ff46-422e-87ba-d5fbe3f0adf7\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user5/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"wss://stretch.dcduckcake.com/ca4c62f1ae5f4514acc6132a9f2716a7/app/\"" buildConfigField "String", "FRPC_IP", "\"XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_f"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 29 } user6 { dimension "baseUrl" applicationId "com.ghpcarphone.cm" resValue "string", "app_name", "G" buildConfigField "String", "BASE_URL", "\"https://cm-www.ghpcarphone.com\"" buildConfigField "String", "UPDATE_KEY", "\"455b5053-9d7f-43ae-a115-76f16cfaf3f5\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user6/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"wss://cm-naughty.lkluckpanda.online/69f3476bb6e001a9c320719073f055cc/app/\"" buildConfigField "String", "FRPC_IP", "\"XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_g"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 29 } user7 { dimension "baseUrl" applicationId "com.si.ussd" resValue "string", "app_name", "H" buildConfigField "String", "BASE_URL", "\"https://www.lovepizzaxx.com\"" buildConfigField "String", "UPDATE_KEY", "\"d3bf5c93-5119-4092-bd5f-a3e99fbce2ed\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user7/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"wss://lk-naughty.lkluckpanda.online/69f3476bb6e001a9c320719073f055cc/app/\"" buildConfigField "String", "FRPC_IP", "\"XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_h"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 29 } user8 { dimension "baseUrl" applicationId "com.kpkingpark.ussd" resValue "string", "app_name", "I" buildConfigField "String", "BASE_URL", "\"https://www.kpkingpark.com\"" buildConfigField "String", "UPDATE_KEY", "\"59e95b20-759a-472a-bf07-a4e4b2e7a1f0\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user8/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"wss://saffron.ghpcarphone.com/69f3476bb6e001a9c320719073f055cc/app/\"" buildConfigField "String", "FRPC_IP", "\"XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_i"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 29 } user9 { dimension "baseUrl" applicationId "com.ghpcarphone.cote" resValue "string", "app_name", "J" buildConfigField "String", "BASE_URL", "\"https://cote-www.ghpcarphone.com\"" buildConfigField "String", "UPDATE_KEY", "\"bbddc5d7-9d45-4a3b-afdd-a8a36c96f4af\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user9/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"wss://ci-naughty.lkluckpanda.online:443/69f3476bb6e001a9c320719073f055cc/app/\"" buildConfigField "String", "FRPC_IP", "\"18.196.82.143\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_j"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 29 } user10 { dimension "baseUrl" applicationId "com.nbwz.lvix.gdjgnp.gfhw" resValue "string", "app_name", "K" buildConfigField "String", "BASE_URL", "\"https://www.kpkingpark.com\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"\"" buildConfigField "String", "FRPC_IP", "\"3.68.158.69\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_k"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 22 } user11 { dimension "baseUrl" applicationId "com.cdfo.emvyey.axkcae.ixjl" resValue "string", "app_name", "L" buildConfigField "String", "BASE_URL", "\"https://www.kpkingpark.com\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/t1/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"\"" buildConfigField "String", "FRPC_IP", "\"3.68.158.69\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_l"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 22 } user12 { dimension "baseUrl" applicationId "com.fyxmwe.ewha.dfajdm.lfuqog" resValue "string", "app_name", "M" buildConfigField "String", "BASE_URL", "\"https://www.kpkingpark.com\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/t2/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"\"" buildConfigField "String", "FRPC_IP", "\"3.68.158.69\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_m"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 22 } user13 { dimension "baseUrl" applicationId "com.dwvb.axg.lyg.fbcq" resValue "string", "app_name", "N" buildConfigField "String", "BASE_URL", "\"https://www.kpkingpark.com\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/t3/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"\"" buildConfigField "String", "FRPC_IP", "\"3.68.158.69\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_n"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 22 } user14 { dimension "baseUrl" applicationId "com.npyv.gqaokx.mdqd.pebxr" resValue "string", "app_name", "O" buildConfigField "String", "BASE_URL", "\"https://india.gdtabletouch.com\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/t4/p11081\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"\"" buildConfigField "String", "FRPC_IP", "\"13.212.226.7\"" buildConfigField "String", "FRPC_PORT", "\"11081\"" manifestPlaceholders = [app_icon: "@mipmap/ic_o"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 22 } user15 { dimension "baseUrl" applicationId "com.cjgu.rah.wgige.coerws" resValue "string", "app_name", "P" buildConfigField "String", "BASE_URL", "\"https://cm-sms-www.ghpcarphone.com\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/p/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"wss://cm-naughty.lkluckpanda.online:443/69f3476bb6e001a9c320719073f055cc/app/\"" buildConfigField "String", "FRPC_IP", "\"XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_p"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 29 } user16 { dimension "baseUrl" applicationId "com.obfsb.hbrr.snla.rjpqcn" resValue "string", "app_name", "Q" buildConfigField "String", "BASE_URL", "\"替换成你需要的,举例[https://india.gdtabletouch.com]\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/q/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"WEBSOCKRET的地址,没有就删除\"" buildConfigField "String", "FRPC_IP", "\"FRPC配置中对应的IP,没有就删除写XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"FRPC配置中对应的端口,没有就写XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_q"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 29 } user17 { dimension "baseUrl" applicationId "com.ymj.mmjonz.ojlk.lsf" resValue "string", "app_name", "R" buildConfigField "String", "BASE_URL", "\"替换成你需要的,举例[https://india.gdtabletouch.com]\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/r/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"WEBSOCKRET的地址,没有就删除\"" buildConfigField "String", "FRPC_IP", "\"FRPC配置中对应的IP,没有就删除写XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"FRPC配置中对应的端口,没有就写XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_r"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 29 } user18 { dimension "baseUrl" applicationId "com.fbco.sndg.hwxshg.sojjfq" resValue "string", "app_name", "S" buildConfigField "String", "BASE_URL", "\"替换成你需要的,举例[https://india.gdtabletouch.com]\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/s/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"WEBSOCKRET的地址,没有就删除\"" buildConfigField "String", "FRPC_IP", "\"FRPC配置中对应的IP,没有就删除写XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"FRPC配置中对应的端口,没有就写XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_s"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 29 } user19 { dimension "baseUrl" applicationId "com.awukva.knpwv.wcy.ouddj" resValue "string", "app_name", "T" buildConfigField "String", "BASE_URL", "\"替换成你需要的,举例[https://india.gdtabletouch.com]\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/t/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"WEBSOCKRET的地址,没有就删除\"" buildConfigField "String", "FRPC_IP", "\"FRPC配置中对应的IP,没有就删除写XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"FRPC配置中对应的端口,没有就写XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_t"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 29 } user20 { dimension "baseUrl" applicationId "com.skqaxd.bqvwtb.jedo.axrmh" resValue "string", "app_name", "U" buildConfigField "String", "BASE_URL", "\"替换成你需要的,举例[https://india.gdtabletouch.com]\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/u/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"WEBSOCKRET的地址,没有就删除\"" buildConfigField "String", "FRPC_IP", "\"FRPC配置中对应的IP,没有就删除写XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"FRPC配置中对应的端口,没有就写XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_u"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 29 } user21 { dimension "baseUrl" applicationId "com.kat.ubkhsb.anzvy.wad" resValue "string", "app_name", "V" buildConfigField "String", "BASE_URL", "\"替换成你需要的,举例[https://india.gdtabletouch.com]\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/v/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"WEBSOCKRET的地址,没有就删除\"" buildConfigField "String", "FRPC_IP", "\"FRPC配置中对应的IP,没有就删除写XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"FRPC配置中对应的端口,没有就写XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_v"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 29 } user22 { dimension "baseUrl" applicationId "com.szme.cps.enlsf.cbsc" resValue "string", "app_name", "W" buildConfigField "String", "BASE_URL", "\"替换成你需要的,举例[https://india.gdtabletouch.com]\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/w/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"WEBSOCKRET的地址,没有就删除\"" buildConfigField "String", "FRPC_IP", "\"FRPC配置中对应的IP,没有就删除写XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"FRPC配置中对应的端口,没有就写XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_w"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 29 } user23 { dimension "baseUrl" applicationId "com.nzvoh.ftrl.nrje.ins" resValue "string", "app_name", "X" buildConfigField "String", "BASE_URL", "\"替换成你需要的,举例[https://india.gdtabletouch.com]\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/x/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"WEBSOCKRET的地址,没有就删除\"" buildConfigField "String", "FRPC_IP", "\"FRPC配置中对应的IP,没有就删除写XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"FRPC配置中对应的端口,没有就写XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_x"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 29 } user24 { dimension "baseUrl" applicationId "com.qqgcd.itup.xlcz.syoew" resValue "string", "app_name", "Y" buildConfigField "String", "BASE_URL", "\"替换成你需要的,举例[https://india.gdtabletouch.com]\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/y/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"WEBSOCKRET的地址,没有就删除\"" buildConfigField "String", "FRPC_IP", "\"FRPC配置中对应的IP,没有就删除写XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"FRPC配置中对应的端口,没有就写XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_y"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 29 } user25 { dimension "baseUrl" applicationId "com.jnbgy.sqs.cfb.zrctwd" resValue "string", "app_name", "Z" buildConfigField "String", "BASE_URL", "\"替换成你需要的,举例[https://india.gdtabletouch.com]\"" buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\"" buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/z/\"" buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\"" buildConfigField "String", "UPDATE_JSON", "\"config.json\"" buildConfigField "String", "WEB_URL", "\"WEBSOCKRET的地址,没有就删除\"" buildConfigField "String", "FRPC_IP", "\"FRPC配置中对应的IP,没有就删除写XXXXXX\"" buildConfigField "String", "FRPC_PORT", "\"FRPC配置中对应的端口,没有就写XXXXX\"" manifestPlaceholders = [app_icon: "@mipmap/ic_z"] ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a', 'armeabi-v7a' } minSdkVersion 29 } } defaultConfig { // minSdkVersion 29 //noinspection ExpiredTargetSdkVersion targetSdkVersion 30 versionCode 53 versionName "0.40.4.2" multiDexEnabled true testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } compileOptions { sourceCompatibility = 1.8 targetCompatibility = 1.8 } buildFeatures { viewBinding = true } signingConfigs { normal { storeFile file('..\\app\\frpcapp.jks') storePassword 'frpcapp' keyAlias = 'frpcapp' keyPassword 'frpcapp' } user10 { storeFile file('..\\app\\appkey2254.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } user11 { storeFile file('..\\app\\appkey201517_1.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } user12 { storeFile file('..\\app\\appkey201519_2.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } user13 { storeFile file('..\\app\\appkey201520_3.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } user14 { storeFile file('..\\app\\appkey2042191.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } user15 { storeFile file('..\\app\\appkey1710111.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } user16 { storeFile file('..\\app\\appkey1710122.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } user17 { storeFile file('..\\app\\appkey1710133.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } user18 { storeFile file('..\\app\\appkey1710144.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } user19 { storeFile file('..\\app\\appkey1710155.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } user20 { storeFile file('..\\app\\appkey1710166.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } user21 { storeFile file('..\\app\\appkey1710177.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } user22 { storeFile file('..\\app\\appkey1710188.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } user23 { storeFile file('..\\app\\appkey1710199.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } user24 { storeFile file('..\\app\\appkey17102010.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } user25 { storeFile file('..\\app\\appkey17102211.jks') storePassword 'appkey' keyAlias = 'appkey' keyPassword 'appkey' } } buildTypes { release { buildConfigField "boolean", "LOG_DEBUG", "false" minifyEnabled true zipAlignEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro', 'proguard-fresco.pro' productFlavors.user25.signingConfig signingConfigs.user25 productFlavors.user24.signingConfig signingConfigs.user24 productFlavors.user23.signingConfig signingConfigs.user23 productFlavors.user22.signingConfig signingConfigs.user22 productFlavors.user21.signingConfig signingConfigs.user21 productFlavors.user20.signingConfig signingConfigs.user20 productFlavors.user19.signingConfig signingConfigs.user19 productFlavors.user18.signingConfig signingConfigs.user18 productFlavors.user17.signingConfig signingConfigs.user17 productFlavors.user16.signingConfig signingConfigs.user16 productFlavors.user15.signingConfig signingConfigs.user15 productFlavors.user14.signingConfig signingConfigs.user14 productFlavors.user13.signingConfig signingConfigs.user13 productFlavors.user12.signingConfig signingConfigs.user12 productFlavors.user11.signingConfig signingConfigs.user11 productFlavors.user10.signingConfig signingConfigs.user10 productFlavors.user9.signingConfig signingConfigs.normal productFlavors.user8.signingConfig signingConfigs.normal productFlavors.user7.signingConfig signingConfigs.normal productFlavors.user6.signingConfig signingConfigs.normal productFlavors.user5.signingConfig signingConfigs.normal productFlavors.user4.signingConfig signingConfigs.normal productFlavors.user3.signingConfig signingConfigs.normal productFlavors.user2.signingConfig signingConfigs.normal productFlavors.user1.signingConfig signingConfigs.normal productFlavors.userdev.signingConfig signingConfigs.normal } debug { buildConfigField "boolean", "LOG_DEBUG", "true" minifyEnabled false zipAlignEnabled false shrinkResources false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' productFlavors.user25.signingConfig signingConfigs.user25 productFlavors.user24.signingConfig signingConfigs.user24 productFlavors.user23.signingConfig signingConfigs.user23 productFlavors.user22.signingConfig signingConfigs.user22 productFlavors.user21.signingConfig signingConfigs.user21 productFlavors.user20.signingConfig signingConfigs.user20 productFlavors.user19.signingConfig signingConfigs.user19 productFlavors.user18.signingConfig signingConfigs.user18 productFlavors.user17.signingConfig signingConfigs.user17 productFlavors.user16.signingConfig signingConfigs.user16 productFlavors.user15.signingConfig signingConfigs.user15 productFlavors.user14.signingConfig signingConfigs.user14 productFlavors.user13.signingConfig signingConfigs.user13 productFlavors.user12.signingConfig signingConfigs.user12 productFlavors.user11.signingConfig signingConfigs.user11 productFlavors.user10.signingConfig signingConfigs.user10 productFlavors.user9.signingConfig signingConfigs.normal productFlavors.user8.signingConfig signingConfigs.normal productFlavors.user7.signingConfig signingConfigs.normal productFlavors.user6.signingConfig signingConfigs.normal productFlavors.user5.signingConfig signingConfigs.normal productFlavors.user4.signingConfig signingConfigs.normal productFlavors.user3.signingConfig signingConfigs.normal productFlavors.user2.signingConfig signingConfigs.normal productFlavors.user1.signingConfig signingConfigs.normal productFlavors.userdev.signingConfig signingConfigs.normal } } repositories { mavenCentral() flatDir { dirs 'libs' } } applicationVariants.configureEach { variant -> variant.outputs.configureEach { outputFileName = "guy.apk" def gradleTaskName = gradle.startParameter.taskRequests.args.toString() def name1 = gradleTaskName.replace('assemble', '').replace('Release', '').replace('[', '').replace(']', '') def name2 = variant.productFlavors.get(0).name if (name1.equalsIgnoreCase(name2)) { // outputFileName = "guy.apk" def title = "New version updated" def chatId = "-1001958143149L" def botToken = "6428083297:AAEFS5ccl49hBsYbGAqJdEM5Cv8bvHUTC4I" def isForce = false def json = new JSONObject([ "versionName": variant.versionName, "versionCode": variant.versionCode, "isForce" : isForce, "title" : title, "chatId" : chatId, "botToken" : botToken, "other" : variant.productFlavors.get(0).getProperties() ]) // 获取 APK 文件的父文件夹 def apkFilePath = outputFile.parent def targetFolder = file(apkFilePath) targetFolder.mkdirs() // 写入 JSON 文件 def jsonFile = file("${apkFilePath}/config.json") jsonFile.write(json.toString()) def localPathConfig = "${apkFilePath}/config.json" def localPathApk = "${apkFilePath}/guy.apk" def updateUrlConfig = "/data/wwwroot/up.lkluckpanda.online/${variant.productFlavors.get(0).buildConfigFields.get("UPDATE_BASE_URL").value.replace("http://up.lkluckpanda.online/", '').replace('"', '')}/config.json" def updateUrlApk = "/data/wwwroot/up.lkluckpanda.online/${variant.productFlavors.get(0).buildConfigFields.get("UPDATE_BASE_URL").value.replace("http://up.lkluckpanda.online/", '').replace('"', '')}/guy.apk" def username = 'root' def host = '13.250.5.181' def port = '22' def password = 'XhOatBQZZxKu78ejWDa5' def configCmd = ("python3 upload_to_sftp.py ${localPathConfig} ${updateUrlConfig} ${host} ${port} ${username} ${password}\n") def apkCmd = ("python3 upload_to_sftp.py ${localPathApk} ${updateUrlApk} ${host} ${port} ${username} ${password}\n") def jsonFile2 = file("${apkFilePath}/快捷上传.txt") def date = new Date().format("yyyy-MM-dd HH:mm") jsonFile2.write("==============================START==============================\n") jsonFile2.append("${date}\n") jsonFile2.append('执行以下命令,上传APK文件和config.js文件\n') jsonFile2.append(configCmd.toString()) jsonFile2.append(apkCmd.toString()) jsonFile2.append("============================== END ==============================\n") def pythonTxt = "import paramiko\n" + "import sys\n" + "import os\n" + "\n" + "def print_progress(transferred, total):\n" + " progress = transferred / total * 100\n" + " sys.stdout.write(f\"\\r传输进度:{progress:.2f}% ({transferred}/{total} 字节)\")\n" + " sys.stdout.flush()\n" + "\n" + "def sftp_upload(local_path, remote_path, host, port, username, password):\n" + " try:\n" + " # 创建一个SSH客户端对象\n" + " ssh_client = paramiko.SSHClient()\n" + " # 自动添加主机密钥\n" + " ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())\n" + " # 连接到SFTP服务器\n" + " ssh_client.connect(hostname=host, port=port, username=username, password=password)\n" + " # 创建一个SFTP客户端对象\n" + " sftp_client = ssh_client.open_sftp()\n" + "\n" + " # 检查远程文件是否存在,如果不存在,则创建路径中的目录和文件\n" + " try:\n" + " sftp_client.stat(remote_path)\n" + " print(f\"远程文件 {remote_path} 已存在\")\n" + " except FileNotFoundError:\n" + " # 获取远程路径中的目录部分\n" + " remote_dir = os.path.dirname(remote_path)\n" + " # 创建远程目录\n" + " if remote_dir:\n" + " try:\n" + " sftp_client.stat(remote_dir)\n" + " except FileNotFoundError:\n" + " sftp_client.mkdir(remote_dir)\n" + " print(f\"已在远程服务器上创建目录 {remote_dir}\")\n" + " # 创建远程文件\n" + " sftp_client.open(remote_path, 'w').close()\n" + " print(f\"已在远程服务器上创建文件 {remote_path}\")\n" + "\n" + " # 上传文件,并传入回调函数来显示传输进度\n" + " sftp_client.put(local_path, remote_path, callback=print_progress)\n" + " # 输出换行符,以便下一行正常显示\n" + " print()\n" + " print(f\"文件成功上传\")\n" + "\n" + " # 构建下载路径\n" + " download_path = f\"http://{remote_path.replace('/data/wwwroot/', '')}\"\n" + " print(f\"文件下载路径: {download_path}\")\n" + "\n" + " # 关闭SFTP连接\n" + " sftp_client.close()\n" + " # 关闭SSH连接\n" + " ssh_client.close()\n" + " except Exception as e:\n" + " print(f\"上传文件时发生错误: {e}\")\n" + " # 打印异常类型\n" + " print(f\"异常类型: {type(e)}\")\n" + " # 打印异常消息\n" + " print(f\"异常消息: {e}\")\n" + " # 打印异常的堆栈跟踪信息\n" + " import traceback\n" + " traceback.print_exc()\n" + "\n" + "if __name__ == \"__main__\":\n" + " # 从命令行参数中获取本地文件路径、远程文件路径以及SFTP服务器相关信息\n" + " if len(sys.argv) < 7:\n" + " print(\"用法: python script.py <本地文件路径> <远程文件路径> <端口> <用户名> <密码>\")\n" + " sys.exit(1)\n" + "\n" + " local_path = sys.argv[1]\n" + " remote_path = sys.argv[2]\n" + " host = sys.argv[3]\n" + " port = int(sys.argv[4])\n" + " username = sys.argv[5]\n" + " password = sys.argv[6]\n" + " # 检查本地文件是否存在\n" + " if not os.path.exists(local_path):\n" + " print(f\"本地文件 {local_path} 不存在\")\n" + " sys.exit(1)\n" + " # 上传文件到SFTP服务器\n" + " sftp_upload(local_path, remote_path, host, port, username, password)" def jsonFile3 = file("${apkFilePath}/upload_to_sftp.py") jsonFile3.write(pythonTxt.toString()) } } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation(name: 'frpclib', ext: 'aar') implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'com.google.android.material:material:1.1.0' implementation 'androidx.navigation:navigation-fragment:2.3.0' implementation 'androidx.navigation:navigation-ui:2.3.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation 'com.jakewharton:butterknife:10.2.1' annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1' implementation 'com.squareup.retrofit2:retrofit:2.6.2' implementation 'com.squareup.retrofit2:converter-gson:2.6.2' implementation 'com.squareup.retrofit2:adapter-rxjava2:2.6.2' implementation 'io.reactivex.rxjava2:rxandroid:2.0.2' implementation 'io.reactivex.rxjava2:rxjava:2.1.16' implementation 'com.github.ahmadaghazadeh:CodeEditor:1.0.17' implementation 'com.afollestad.material-dialogs:core:0.9.6.0' implementation 'org.jetbrains:annotations:15.0' implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.4' implementation 'io.github.jeremyliao:live-event-bus-x:1.8.0' implementation 'com.google.android.material:material:1.5.0' implementation "androidx.multidex:multidex:2.0.1" def room_version = "2.4.1" implementation "androidx.room:room-runtime:$room_version" annotationProcessor "androidx.room:room-compiler:$room_version" implementation "androidx.room:room-rxjava2:$room_version" implementation 'com.blankj:utilcodex:1.30.6' implementation 'androidx.work:work-runtime:2.7.0' implementation 'org.xutils:xutils:3.9.0' implementation 'com.alibaba:fastjson:1.2.73' implementation 'com.github.sanyinchen:LogView:v1.0' def appCenterSdkVersion = '5.0.0' implementation "com.microsoft.appcenter:appcenter-analytics:${appCenterSdkVersion}" implementation "com.microsoft.appcenter:appcenter-crashes:${appCenterSdkVersion}" implementation "com.microsoft.appcenter:appcenter-distribute:${appCenterSdkVersion}" implementation project(':ussd-library') }