├── .github ├── ISSUE_TEMPLATE │ ├── bug.yml │ └── fr.yml └── workflows │ └── build.yml ├── .gitignore ├── CMakeLists.txt ├── HISTORY.md ├── Makefile ├── README.md ├── app ├── .gitignore ├── CMakeLists.txt ├── build.gradle ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── cpp │ ├── arm64-v8a │ │ ├── libcrypto.a │ │ ├── libcrypto.so │ │ ├── libnative.so │ │ ├── libssl.a │ │ └── libssl.so │ ├── armeabi-v7a │ │ ├── libcrypto.a │ │ ├── libcrypto.so │ │ ├── libnative.so │ │ ├── libssl.a │ │ └── libssl.so │ ├── include │ │ └── openssl │ │ │ ├── aes.h │ │ │ ├── asn1.h │ │ │ ├── asn1_mac.h │ │ │ ├── asn1err.h │ │ │ ├── asn1t.h │ │ │ ├── async.h │ │ │ ├── asyncerr.h │ │ │ ├── bio.h │ │ │ ├── bioerr.h │ │ │ ├── blowfish.h │ │ │ ├── bn.h │ │ │ ├── bnerr.h │ │ │ ├── buffer.h │ │ │ ├── buffererr.h │ │ │ ├── camellia.h │ │ │ ├── cast.h │ │ │ ├── cmac.h │ │ │ ├── cmp.h │ │ │ ├── cmp_util.h │ │ │ ├── cmperr.h │ │ │ ├── cms.h │ │ │ ├── cmserr.h │ │ │ ├── comp.h │ │ │ ├── comperr.h │ │ │ ├── conf.h │ │ │ ├── conf_api.h │ │ │ ├── conferr.h │ │ │ ├── configuration.h │ │ │ ├── conftypes.h │ │ │ ├── core.h │ │ │ ├── core_dispatch.h │ │ │ ├── core_names.h │ │ │ ├── core_object.h │ │ │ ├── crmf.h │ │ │ ├── crmferr.h │ │ │ ├── crypto.h │ │ │ ├── cryptoerr.h │ │ │ ├── cryptoerr_legacy.h │ │ │ ├── ct.h │ │ │ ├── cterr.h │ │ │ ├── decoder.h │ │ │ ├── decodererr.h │ │ │ ├── des.h │ │ │ ├── dh.h │ │ │ ├── dherr.h │ │ │ ├── dsa.h │ │ │ ├── dsaerr.h │ │ │ ├── dtls1.h │ │ │ ├── e_os2.h │ │ │ ├── e_ostime.h │ │ │ ├── ebcdic.h │ │ │ ├── ec.h │ │ │ ├── ecdh.h │ │ │ ├── ecdsa.h │ │ │ ├── ecerr.h │ │ │ ├── encoder.h │ │ │ ├── encodererr.h │ │ │ ├── engine.h │ │ │ ├── engineerr.h │ │ │ ├── err.h │ │ │ ├── ess.h │ │ │ ├── esserr.h │ │ │ ├── evp.h │ │ │ ├── evperr.h │ │ │ ├── fips_names.h │ │ │ ├── fipskey.h │ │ │ ├── hmac.h │ │ │ ├── hpke.h │ │ │ ├── http.h │ │ │ ├── httperr.h │ │ │ ├── idea.h │ │ │ ├── kdf.h │ │ │ ├── kdferr.h │ │ │ ├── lhash.h │ │ │ ├── macros.h │ │ │ ├── md2.h │ │ │ ├── md4.h │ │ │ ├── md5.h │ │ │ ├── mdc2.h │ │ │ ├── modes.h │ │ │ ├── obj_mac.h │ │ │ ├── objects.h │ │ │ ├── objectserr.h │ │ │ ├── ocsp.h │ │ │ ├── ocsperr.h │ │ │ ├── opensslconf.h │ │ │ ├── opensslv.h │ │ │ ├── ossl_typ.h │ │ │ ├── param_build.h │ │ │ ├── params.h │ │ │ ├── pem.h │ │ │ ├── pem2.h │ │ │ ├── pemerr.h │ │ │ ├── pkcs12.h │ │ │ ├── pkcs12err.h │ │ │ ├── pkcs7.h │ │ │ ├── pkcs7err.h │ │ │ ├── prov_ssl.h │ │ │ ├── proverr.h │ │ │ ├── provider.h │ │ │ ├── quic.h │ │ │ ├── rand.h │ │ │ ├── randerr.h │ │ │ ├── rc2.h │ │ │ ├── rc4.h │ │ │ ├── rc5.h │ │ │ ├── ripemd.h │ │ │ ├── rsa.h │ │ │ ├── rsaerr.h │ │ │ ├── safestack.h │ │ │ ├── seed.h │ │ │ ├── self_test.h │ │ │ ├── sha.h │ │ │ ├── srp.h │ │ │ ├── srtp.h │ │ │ ├── ssl.h │ │ │ ├── ssl2.h │ │ │ ├── ssl3.h │ │ │ ├── sslerr.h │ │ │ ├── sslerr_legacy.h │ │ │ ├── stack.h │ │ │ ├── store.h │ │ │ ├── storeerr.h │ │ │ ├── symhacks.h │ │ │ ├── thread.h │ │ │ ├── tls1.h │ │ │ ├── trace.h │ │ │ ├── ts.h │ │ │ ├── tserr.h │ │ │ ├── txt_db.h │ │ │ ├── types.h │ │ │ ├── ui.h │ │ │ ├── uierr.h │ │ │ ├── whrlpool.h │ │ │ ├── x509.h │ │ │ ├── x509_vfy.h │ │ │ ├── x509err.h │ │ │ ├── x509v3.h │ │ │ └── x509v3err.h │ └── nothing.c │ ├── java │ └── com │ │ ├── lizongying │ │ └── mytv │ │ │ ├── BootReceiver.kt │ │ │ ├── CardPresenter.kt │ │ │ ├── ChannelFragment.kt │ │ │ ├── ConfirmationFragment.kt │ │ │ ├── Encryptor.kt │ │ │ ├── ErrorFragment.kt │ │ │ ├── Ext.kt │ │ │ ├── InfoFragment.kt │ │ │ ├── InitializerProvider.kt │ │ │ ├── MainActivity.kt │ │ │ ├── MainFragment.kt │ │ │ ├── MyApplication.kt │ │ │ ├── NetworkChangeReceiver.kt │ │ │ ├── PlayerFragment.kt │ │ │ ├── Request.kt │ │ │ ├── SP.kt │ │ │ ├── SettingFragment.kt │ │ │ ├── TV.kt │ │ │ ├── TVList.kt │ │ │ ├── TimeFragment.kt │ │ │ ├── UpdateManager.kt │ │ │ ├── Utils.kt │ │ │ ├── api │ │ │ ├── ApiClient.kt │ │ │ ├── Auth.kt │ │ │ ├── DnsCache.kt │ │ │ ├── FAuth.kt │ │ │ ├── FAuthService.kt │ │ │ ├── FEPG.kt │ │ │ ├── Info.kt │ │ │ ├── KvcollectRequest.kt │ │ │ ├── LiveInfo.kt │ │ │ ├── ReleaseService.kt │ │ │ ├── Tls12SocketFactory.kt │ │ │ ├── YSP.kt │ │ │ ├── YSPApiService.kt │ │ │ ├── YSPBtraceService.kt │ │ │ ├── YSPJceService.kt │ │ │ ├── YSPProtoService.kt │ │ │ └── YSPTokenService.kt │ │ │ ├── jce │ │ │ ├── CompressUtils.java │ │ │ ├── JceConverterFactory.java │ │ │ ├── JceRequestBodyConverter.java │ │ │ ├── JceResponseBodyConverter.java │ │ │ ├── a.java │ │ │ └── b.java │ │ │ ├── models │ │ │ ├── EPG.kt │ │ │ ├── ProgramType.kt │ │ │ ├── TVListViewModel.kt │ │ │ └── TVViewModel.kt │ │ │ ├── proto │ │ │ ├── Ysp.java │ │ │ ├── YspKt.kt │ │ │ └── cnKt.kt │ │ │ └── requests │ │ │ └── MyRequest.kt │ │ ├── qq │ │ └── taf │ │ │ └── jce │ │ │ ├── HexUtil.java │ │ │ ├── JceDecodeException.java │ │ │ ├── JceEncodeException.java │ │ │ ├── JceInputStream.java │ │ │ ├── JceOutputStream.java │ │ │ ├── JceStruct.java │ │ │ └── OnIllegalArgumentException.java │ │ └── tencent │ │ └── videolite │ │ └── android │ │ └── datamodel │ │ └── cctvjce │ │ ├── Action.java │ │ ├── BucketConfig.java │ │ ├── BusinessExtent.java │ │ ├── BusinessHead.java │ │ ├── Coordinates.java │ │ ├── ExtentAccount.java │ │ ├── ExtentData.java │ │ ├── LogReport.java │ │ ├── LoginToken.java │ │ ├── QQVideoJCECmd.java │ │ ├── QUA.java │ │ ├── RequestCommand.java │ │ ├── RequestHead.java │ │ ├── ResponseCommand.java │ │ ├── ResponseHead.java │ │ ├── SafeInfo.java │ │ ├── TVProgram.java │ │ ├── TVTimeShiftProgramRequest.java │ │ ├── TVTimeShiftProgramResponse.java │ │ └── TextInnerLayoutInfo.java │ └── res │ ├── drawable │ ├── appreciate.jpg │ ├── banner.png │ ├── bingtuan.png │ ├── cctv8k.png │ ├── cetv1.png │ ├── chongqing.png │ ├── logo.png │ ├── rounded_background.xml │ ├── rounded_background2.xml │ ├── tianjin.png │ └── xinjiang.png │ ├── layout │ ├── activity_main.xml │ ├── channel.xml │ ├── info.xml │ ├── player.xml │ ├── setting.xml │ └── time.xml │ ├── mipmap-anydpi-v26 │ ├── ic_launcher.xml │ └── ic_launcher_round.xml │ ├── mipmap-hdpi │ ├── ic_launcher.webp │ ├── ic_launcher_foreground.webp │ └── ic_launcher_round.webp │ ├── mipmap-mdpi │ ├── ic_launcher.webp │ ├── ic_launcher_foreground.webp │ └── ic_launcher_round.webp │ ├── mipmap-xhdpi │ ├── ic_launcher.webp │ ├── ic_launcher_foreground.webp │ └── ic_launcher_round.webp │ ├── mipmap-xxhdpi │ ├── ic_launcher.webp │ ├── ic_launcher_foreground.webp │ └── ic_launcher_round.webp │ ├── mipmap-xxxhdpi │ ├── ic_launcher.webp │ ├── ic_launcher_foreground.webp │ └── ic_launcher_round.webp │ ├── values │ ├── attrs.xml │ ├── colors.xml │ ├── ids.xml │ ├── strings.xml │ ├── styles.xml │ └── themes.xml │ └── xml │ └── network.xml ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── history.sh ├── screenshots ├── appreciate.jpeg ├── control.jpg ├── img_1.png ├── img_2.png ├── img_3.png └── zfb.jpg ├── settings.gradle └── version.json /.github/ISSUE_TEMPLATE/bug.yml: -------------------------------------------------------------------------------- 1 | name: Bug 反馈 2 | description: 反馈一个 Bug 3 | labels: [ "bug" ] 4 | title: "[BUG] " 5 | body: 6 | - type: checkboxes 7 | id: checklist 8 | attributes: 9 | label: 检查清单 10 | description: 确保我们的错误报告表单适合您。 11 | options: 12 | - label: 之前没有人提交过类似或相同的 bug report。 13 | required: true 14 | - label: 我正在使用本软件的最新版本。 15 | required: true 16 | - type: dropdown 17 | id: version 18 | attributes: 19 | label: my-ty 版本 20 | description: 请选择正在使用的版本 21 | options: 22 | - 通用版 23 | - 专用版 24 | validations: 25 | required: true 26 | - type: textarea 27 | id: bug 28 | attributes: 29 | label: Bug 描述 30 | description: 请描述 bug 详情 31 | placeholder: | 32 | e.g. Crashed when generating snapshot. 33 | validations: 34 | required: true 35 | - type: textarea 36 | id: expected 37 | attributes: 38 | label: 预期行为 39 | description: 你预期会发生什么? 40 | placeholder: | 41 | e.g. A New snapshot! 42 | validations: 43 | required: true 44 | - type: textarea 45 | id: actual 46 | attributes: 47 | label: 实际行为 48 | description: 反而发生了什么? 49 | placeholder: | 50 | e.g. Crashed. 51 | validations: 52 | required: true 53 | - type: textarea 54 | id: steps 55 | attributes: 56 | label: 复现步骤 57 | description: 如何复现这个 bug。 58 | placeholder: | 59 | 1. Open the app 60 | 2. Crashed 61 | 62 | What an app. 63 | - type: input 64 | id: ui 65 | attributes: 66 | label: UI / OS 67 | description: 你的电视系统 UI 或 OS 或 品牌 68 | placeholder: TCL / XIAOMI / PHONE / etc. 69 | validations: 70 | required: true 71 | - type: input 72 | id: android 73 | attributes: 74 | label: Android 版本 75 | description: 你的 Android 版本 76 | placeholder: "12" 77 | validations: 78 | required: true 79 | - type: textarea 80 | id: additional 81 | attributes: 82 | label: 额外信息 83 | description: 任何你觉得值得说的。 84 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/fr.yml: -------------------------------------------------------------------------------- 1 | name: 功能(新频道)请求 2 | description: 提出一个建议 3 | labels: [ "enhancement" ] 4 | title: "[FR] " 5 | body: 6 | - type: checkboxes 7 | id: checklist 8 | attributes: 9 | label: 检查清单 10 | description: 确保我们的错误报告表单适合您。 11 | options: 12 | - label: 之前没有人提交过类似或相同的功能请求。 13 | required: true 14 | - label: 这个建议不会背离 my-tv 的初衷。 15 | required: true 16 | - type: textarea 17 | id: propose 18 | attributes: 19 | label: 改进目的 20 | description: 改进有什么用 21 | placeholder: | 22 | Show your idea here. 23 | validations: 24 | required: true 25 | - type: textarea 26 | id: solution 27 | attributes: 28 | label: 解决方案 29 | description: 你会怎么完成这个改进? 30 | placeholder: | 31 | How to do it on your opinion? Or left this blank 32 | - type: textarea 33 | id: addition 34 | attributes: 35 | label: 额外信息 36 | description: 任何你觉得值得说的。 37 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: build 2 | 3 | on: 4 | push: 5 | tags: 6 | - 'v*' 7 | 8 | permissions: 9 | contents: write 10 | 11 | jobs: 12 | build: 13 | runs-on: ubuntu-latest 14 | steps: 15 | - name: Checkout code 16 | uses: actions/checkout@v4 17 | 18 | - name: set up JDK 17 19 | uses: actions/setup-java@v4 20 | with: 21 | java-version: '17' 22 | distribution: 'temurin' 23 | 24 | - name: Run build with Gradle wrapper 25 | run: ./gradlew assembleRelease -PIS_SO_BUILD=false 26 | 27 | - name: Sign app APK 28 | id: sign_app 29 | uses: r0adkll/sign-android-release@v1 30 | with: 31 | releaseDirectory: app/build/outputs/apk/release 32 | alias: ${{ secrets.ALIAS }} 33 | signingKeyBase64: ${{ secrets.KEYSTORE }} 34 | keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }} 35 | keyPassword: ${{ secrets.ALIAS_PASSWORD }} 36 | env: 37 | # override default build-tools version (29.0.3) -- optional 38 | BUILD_TOOLS_VERSION: "34.0.0" 39 | 40 | - name: Get History 41 | id: get_history 42 | run: | 43 | chmod +x history.sh 44 | output=$(./history.sh) 45 | echo "$output" > history.md 46 | 47 | - name: Create Release 48 | id: create_release 49 | uses: actions/create-release@v1 50 | env: 51 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 52 | with: 53 | tag_name: ${{ github.ref }} 54 | release_name: Release ${{ github.ref }} 55 | draft: false 56 | prerelease: false 57 | body_path: history.md 58 | 59 | - name: Upload Release Asset 60 | uses: actions/upload-release-asset@v1 61 | env: 62 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 63 | with: 64 | upload_url: ${{ steps.create_release.outputs.upload_url }} 65 | asset_path: ${{ steps.sign_app.outputs.signedReleaseFile }} 66 | asset_name: my-tv-${{ github.ref_name }}.apk 67 | asset_content_type: application/vnd.android.package-archive 68 | 69 | - name: Gitee Create Release 70 | run: | 71 | latest_commit=$(git rev-parse HEAD) 72 | history=$(cat history.md) 73 | curl -v POST https://gitee.com/api/v5/repos/${{ github.repository }}/releases \ 74 | -H "Content-Type: application/json" \ 75 | -d '{ 76 | "access_token": "${{ secrets.GITEE_ACCESS_TOKEN}}", 77 | "tag_name": "${{ github.ref_name }}", 78 | "name": "Release ${{ github.ref_name }}", 79 | "body": "'"$history"'", 80 | "prerelease": false, 81 | "target_commitish": "'"$latest_commit"'" 82 | }' -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | .idea 4 | /local.properties 5 | /.idea/caches 6 | /.idea/libraries 7 | /.idea/modules.xml 8 | /.idea/workspace.xml 9 | /.idea/navEditor.xml 10 | /.idea/assetWizardSettings.xml 11 | .DS_Store 12 | /build 13 | /captures 14 | .externalNativeBuild 15 | .cxx 16 | local.properties 17 | /path/ 18 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Sets the minimum version of CMake required to build your native library. 2 | # This ensures that a certain set of CMake features is available to 3 | # your build. 4 | 5 | cmake_minimum_required(VERSION 3.21.1) 6 | 7 | add_subdirectory(app) 8 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: all 2 | 3 | all: info gen-version 4 | 5 | branch := $(shell git rev-parse --abbrev-ref HEAD) 6 | commit := $(shell git rev-parse --short HEAD) 7 | 8 | info: 9 | @echo 'SHELL='$(SHELL) 10 | @echo 'branch='$(branch) 11 | @echo 'commit='$(commit) 12 | 13 | gen-version: 14 | git describe --tags --always 15 | git describe --tags --always | sed 's/v/ /g' | sed 's/\./ /g' | sed 's/-/ /g' | awk '{print ($$1*16777216)+($$2*65536)+($$3*256)+$$4}' 16 | 17 | #make gen v=v2.0.0 18 | gen: 19 | echo $(v) | sed 's/v/ /g' | sed 's/\./ /g' | sed 's/-/ /g' | awk '{print "{\"version_code\": " ($$1*16777216)+($$2*65536)+($$3*256)+$$4 ", \"version_name\": \"" "v$(v)" "\"}"}' > version.json -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 我的电视 2 | 3 | 电视直播软件,安装即可使用 4 | 5 | ## 使用 6 | 7 | 1. 下载 8 | * [github](https://github.com/lizongying/my-tv/releases/) 9 | * [gitee](https://gitee.com/lizongying/my-tv/releases/) 10 | 2. 安裝 11 | * U盘安装 12 | * 小米电视可以使用小米电视助手进行安装 13 | * 如电视可以启用ADB,也可以通过ADB进行安装 14 | ```shell 15 | adb install my-tv.apk 16 | ``` 17 | 18 | ![image](./screenshots/img_3.png) 19 | ![image](./screenshots/img_2.png) 20 | ![image](./screenshots/img_1.png) 21 | 22 | ## 更新日志 23 | 24 | [更新日志](./HISTORY.md) 25 | 26 | ## TODO 27 | 28 | * 音量不同 29 | * 大湾区卫视、广东4k超高清、广东珠江、三沙卫视 30 | * CHC高清三个电影频道 31 | * 地方频道 32 | * 收藏夹 33 | * 海外 34 | * 隐藏频道 35 | * 亮度调节 36 | * 音量调节 37 | * 軟解 38 | * 自動更新 39 | 40 | 無法自啟的設備: 41 | 斐讯N1盒子,[Phicomm] Phicomm p230 (Android 7.1.2) 42 | 43 | 閃退: 44 | 中国移动盒子(新魔百和M302A) 4.4.2 45 | 46 | ## 版权说明 47 | 48 | [LICENSE](./LICENSE) 49 | 50 | 本项目仅供学习研究,禁止用于商业用途,请于下载二十四小时内删除。 51 | 52 | 本项目可能随时终止,请大家谨慎使用,建议使用官方渠道进行观看。 53 | 54 | 本项目使用的部分代码、图片、文字等资源来源于网络,如有侵权,请联系删除。 55 | 56 | ## 赞赏 57 | 58 | ![image](./screenshots/appreciate.jpeg) -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /release 3 | /cmake_install.cmake 4 | /CMakeFiles/ 5 | /Makefile 6 | /src/main/cpp/native.c 7 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 28 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 44 | 45 | 46 | 47 | 48 | 49 | 52 | 53 | 54 | 55 | 56 | 57 | 61 | 62 | -------------------------------------------------------------------------------- /app/src/main/cpp/arm64-v8a/libcrypto.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/cpp/arm64-v8a/libcrypto.a -------------------------------------------------------------------------------- /app/src/main/cpp/arm64-v8a/libcrypto.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/cpp/arm64-v8a/libcrypto.so -------------------------------------------------------------------------------- /app/src/main/cpp/arm64-v8a/libnative.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/cpp/arm64-v8a/libnative.so -------------------------------------------------------------------------------- /app/src/main/cpp/arm64-v8a/libssl.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/cpp/arm64-v8a/libssl.a -------------------------------------------------------------------------------- /app/src/main/cpp/arm64-v8a/libssl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/cpp/arm64-v8a/libssl.so -------------------------------------------------------------------------------- /app/src/main/cpp/armeabi-v7a/libcrypto.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/cpp/armeabi-v7a/libcrypto.a -------------------------------------------------------------------------------- /app/src/main/cpp/armeabi-v7a/libcrypto.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/cpp/armeabi-v7a/libcrypto.so -------------------------------------------------------------------------------- /app/src/main/cpp/armeabi-v7a/libnative.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/cpp/armeabi-v7a/libnative.so -------------------------------------------------------------------------------- /app/src/main/cpp/armeabi-v7a/libssl.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/cpp/armeabi-v7a/libssl.a -------------------------------------------------------------------------------- /app/src/main/cpp/armeabi-v7a/libssl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/cpp/armeabi-v7a/libssl.so -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/asn1_mac.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #error "This file is obsolete; please update your software." 11 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/asyncerr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_ASYNCERR_H 12 | # define OPENSSL_ASYNCERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * ASYNC reason codes. 23 | */ 24 | # define ASYNC_R_FAILED_TO_SET_POOL 101 25 | # define ASYNC_R_FAILED_TO_SWAP_CONTEXT 102 26 | # define ASYNC_R_INIT_FAILED 105 27 | # define ASYNC_R_INVALID_POOL_SIZE 103 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/blowfish.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_BLOWFISH_H 11 | # define OPENSSL_BLOWFISH_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_BLOWFISH_H 17 | # endif 18 | 19 | # include 20 | 21 | # ifndef OPENSSL_NO_BF 22 | # include 23 | # ifdef __cplusplus 24 | extern "C" { 25 | # endif 26 | 27 | # define BF_BLOCK 8 28 | 29 | # ifndef OPENSSL_NO_DEPRECATED_3_0 30 | 31 | # define BF_ENCRYPT 1 32 | # define BF_DECRYPT 0 33 | 34 | /*- 35 | * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 36 | * ! BF_LONG has to be at least 32 bits wide. ! 37 | * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 38 | */ 39 | # define BF_LONG unsigned int 40 | 41 | # define BF_ROUNDS 16 42 | 43 | typedef struct bf_key_st { 44 | BF_LONG P[BF_ROUNDS + 2]; 45 | BF_LONG S[4 * 256]; 46 | } BF_KEY; 47 | 48 | # endif /* OPENSSL_NO_DEPRECATED_3_0 */ 49 | # ifndef OPENSSL_NO_DEPRECATED_3_0 50 | OSSL_DEPRECATEDIN_3_0 void BF_set_key(BF_KEY *key, int len, 51 | const unsigned char *data); 52 | OSSL_DEPRECATEDIN_3_0 void BF_encrypt(BF_LONG *data, const BF_KEY *key); 53 | OSSL_DEPRECATEDIN_3_0 void BF_decrypt(BF_LONG *data, const BF_KEY *key); 54 | OSSL_DEPRECATEDIN_3_0 void BF_ecb_encrypt(const unsigned char *in, 55 | unsigned char *out, const BF_KEY *key, 56 | int enc); 57 | OSSL_DEPRECATEDIN_3_0 void BF_cbc_encrypt(const unsigned char *in, 58 | unsigned char *out, long length, 59 | const BF_KEY *schedule, 60 | unsigned char *ivec, int enc); 61 | OSSL_DEPRECATEDIN_3_0 void BF_cfb64_encrypt(const unsigned char *in, 62 | unsigned char *out, 63 | long length, const BF_KEY *schedule, 64 | unsigned char *ivec, int *num, 65 | int enc); 66 | OSSL_DEPRECATEDIN_3_0 void BF_ofb64_encrypt(const unsigned char *in, 67 | unsigned char *out, 68 | long length, const BF_KEY *schedule, 69 | unsigned char *ivec, int *num); 70 | OSSL_DEPRECATEDIN_3_0 const char *BF_options(void); 71 | # endif 72 | 73 | # ifdef __cplusplus 74 | } 75 | # endif 76 | # endif 77 | 78 | #endif 79 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/bnerr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_BNERR_H 12 | # define OPENSSL_BNERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * BN reason codes. 23 | */ 24 | # define BN_R_ARG2_LT_ARG3 100 25 | # define BN_R_BAD_RECIPROCAL 101 26 | # define BN_R_BIGNUM_TOO_LONG 114 27 | # define BN_R_BITS_TOO_SMALL 118 28 | # define BN_R_CALLED_WITH_EVEN_MODULUS 102 29 | # define BN_R_DIV_BY_ZERO 103 30 | # define BN_R_ENCODING_ERROR 104 31 | # define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA 105 32 | # define BN_R_INPUT_NOT_REDUCED 110 33 | # define BN_R_INVALID_LENGTH 106 34 | # define BN_R_INVALID_RANGE 115 35 | # define BN_R_INVALID_SHIFT 119 36 | # define BN_R_NOT_A_SQUARE 111 37 | # define BN_R_NOT_INITIALIZED 107 38 | # define BN_R_NO_INVERSE 108 39 | # define BN_R_NO_PRIME_CANDIDATE 121 40 | # define BN_R_NO_SOLUTION 116 41 | # define BN_R_NO_SUITABLE_DIGEST 120 42 | # define BN_R_PRIVATE_KEY_TOO_LARGE 117 43 | # define BN_R_P_IS_NOT_PRIME 112 44 | # define BN_R_TOO_MANY_ITERATIONS 113 45 | # define BN_R_TOO_MANY_TEMPORARY_VARIABLES 109 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/buffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_BUFFER_H 11 | # define OPENSSL_BUFFER_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_BUFFER_H 17 | # endif 18 | 19 | # include 20 | # ifndef OPENSSL_CRYPTO_H 21 | # include 22 | # endif 23 | # include 24 | 25 | 26 | #ifdef __cplusplus 27 | extern "C" { 28 | #endif 29 | 30 | # include 31 | # include 32 | 33 | # ifndef OPENSSL_NO_DEPRECATED_3_0 34 | # define BUF_strdup(s) OPENSSL_strdup(s) 35 | # define BUF_strndup(s, size) OPENSSL_strndup(s, size) 36 | # define BUF_memdup(data, size) OPENSSL_memdup(data, size) 37 | # define BUF_strlcpy(dst, src, size) OPENSSL_strlcpy(dst, src, size) 38 | # define BUF_strlcat(dst, src, size) OPENSSL_strlcat(dst, src, size) 39 | # define BUF_strnlen(str, maxlen) OPENSSL_strnlen(str, maxlen) 40 | # endif 41 | 42 | struct buf_mem_st { 43 | size_t length; /* current number of bytes */ 44 | char *data; 45 | size_t max; /* size of buffer */ 46 | unsigned long flags; 47 | }; 48 | 49 | # define BUF_MEM_FLAG_SECURE 0x01 50 | 51 | BUF_MEM *BUF_MEM_new(void); 52 | BUF_MEM *BUF_MEM_new_ex(unsigned long flags); 53 | void BUF_MEM_free(BUF_MEM *a); 54 | size_t BUF_MEM_grow(BUF_MEM *str, size_t len); 55 | size_t BUF_MEM_grow_clean(BUF_MEM *str, size_t len); 56 | void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz); 57 | 58 | 59 | # ifdef __cplusplus 60 | } 61 | # endif 62 | #endif 63 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/buffererr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_BUFFERERR_H 12 | # define OPENSSL_BUFFERERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * BUF reason codes. 23 | */ 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/cast.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_CAST_H 11 | # define OPENSSL_CAST_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_CAST_H 17 | # endif 18 | 19 | # include 20 | 21 | # ifndef OPENSSL_NO_CAST 22 | # ifdef __cplusplus 23 | extern "C" { 24 | # endif 25 | 26 | # define CAST_BLOCK 8 27 | # define CAST_KEY_LENGTH 16 28 | 29 | # ifndef OPENSSL_NO_DEPRECATED_3_0 30 | 31 | # define CAST_ENCRYPT 1 32 | # define CAST_DECRYPT 0 33 | 34 | # define CAST_LONG unsigned int 35 | 36 | typedef struct cast_key_st { 37 | CAST_LONG data[32]; 38 | int short_key; /* Use reduced rounds for short key */ 39 | } CAST_KEY; 40 | 41 | # endif /* OPENSSL_NO_DEPRECATED_3_0 */ 42 | # ifndef OPENSSL_NO_DEPRECATED_3_0 43 | OSSL_DEPRECATEDIN_3_0 44 | void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data); 45 | OSSL_DEPRECATEDIN_3_0 46 | void CAST_ecb_encrypt(const unsigned char *in, unsigned char *out, 47 | const CAST_KEY *key, int enc); 48 | OSSL_DEPRECATEDIN_3_0 49 | void CAST_encrypt(CAST_LONG *data, const CAST_KEY *key); 50 | OSSL_DEPRECATEDIN_3_0 51 | void CAST_decrypt(CAST_LONG *data, const CAST_KEY *key); 52 | OSSL_DEPRECATEDIN_3_0 53 | void CAST_cbc_encrypt(const unsigned char *in, unsigned char *out, 54 | long length, const CAST_KEY *ks, unsigned char *iv, 55 | int enc); 56 | OSSL_DEPRECATEDIN_3_0 57 | void CAST_cfb64_encrypt(const unsigned char *in, unsigned char *out, 58 | long length, const CAST_KEY *schedule, 59 | unsigned char *ivec, int *num, int enc); 60 | OSSL_DEPRECATEDIN_3_0 61 | void CAST_ofb64_encrypt(const unsigned char *in, unsigned char *out, 62 | long length, const CAST_KEY *schedule, 63 | unsigned char *ivec, int *num); 64 | # endif 65 | 66 | # ifdef __cplusplus 67 | } 68 | # endif 69 | # endif 70 | 71 | #endif 72 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/cmac.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2010-2020 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_CMAC_H 11 | # define OPENSSL_CMAC_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_CMAC_H 17 | # endif 18 | 19 | # ifndef OPENSSL_NO_CMAC 20 | 21 | # ifdef __cplusplus 22 | extern "C" { 23 | # endif 24 | 25 | # include 26 | 27 | # ifndef OPENSSL_NO_DEPRECATED_3_0 28 | /* Opaque */ 29 | typedef struct CMAC_CTX_st CMAC_CTX; 30 | # endif 31 | # ifndef OPENSSL_NO_DEPRECATED_3_0 32 | OSSL_DEPRECATEDIN_3_0 CMAC_CTX *CMAC_CTX_new(void); 33 | OSSL_DEPRECATEDIN_3_0 void CMAC_CTX_cleanup(CMAC_CTX *ctx); 34 | OSSL_DEPRECATEDIN_3_0 void CMAC_CTX_free(CMAC_CTX *ctx); 35 | OSSL_DEPRECATEDIN_3_0 EVP_CIPHER_CTX *CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx); 36 | OSSL_DEPRECATEDIN_3_0 int CMAC_CTX_copy(CMAC_CTX *out, const CMAC_CTX *in); 37 | OSSL_DEPRECATEDIN_3_0 int CMAC_Init(CMAC_CTX *ctx, 38 | const void *key, size_t keylen, 39 | const EVP_CIPHER *cipher, ENGINE *impl); 40 | OSSL_DEPRECATEDIN_3_0 int CMAC_Update(CMAC_CTX *ctx, 41 | const void *data, size_t dlen); 42 | OSSL_DEPRECATEDIN_3_0 int CMAC_Final(CMAC_CTX *ctx, 43 | unsigned char *out, size_t *poutlen); 44 | OSSL_DEPRECATEDIN_3_0 int CMAC_resume(CMAC_CTX *ctx); 45 | # endif 46 | 47 | # ifdef __cplusplus 48 | } 49 | # endif 50 | 51 | # endif 52 | #endif 53 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/cmp_util.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. 3 | * Copyright Nokia 2007-2019 4 | * Copyright Siemens AG 2015-2019 5 | * 6 | * Licensed under the Apache License 2.0 (the "License"). You may not use 7 | * this file except in compliance with the License. You can obtain a copy 8 | * in the file LICENSE in the source distribution or at 9 | * https://www.openssl.org/source/license.html 10 | */ 11 | 12 | #ifndef OPENSSL_CMP_UTIL_H 13 | # define OPENSSL_CMP_UTIL_H 14 | # pragma once 15 | 16 | # include 17 | # ifndef OPENSSL_NO_CMP 18 | 19 | # include 20 | # include 21 | 22 | # ifdef __cplusplus 23 | extern "C" { 24 | # endif 25 | 26 | int OSSL_CMP_log_open(void); 27 | void OSSL_CMP_log_close(void); 28 | # define OSSL_CMP_LOG_PREFIX "CMP " 29 | 30 | /* 31 | * generalized logging/error callback mirroring the severity levels of syslog.h 32 | */ 33 | typedef int OSSL_CMP_severity; 34 | # define OSSL_CMP_LOG_EMERG 0 35 | # define OSSL_CMP_LOG_ALERT 1 36 | # define OSSL_CMP_LOG_CRIT 2 37 | # define OSSL_CMP_LOG_ERR 3 38 | # define OSSL_CMP_LOG_WARNING 4 39 | # define OSSL_CMP_LOG_NOTICE 5 40 | # define OSSL_CMP_LOG_INFO 6 41 | # define OSSL_CMP_LOG_DEBUG 7 42 | # define OSSL_CMP_LOG_TRACE 8 43 | # define OSSL_CMP_LOG_MAX OSSL_CMP_LOG_TRACE 44 | typedef int (*OSSL_CMP_log_cb_t)(const char *func, const char *file, int line, 45 | OSSL_CMP_severity level, const char *msg); 46 | 47 | int OSSL_CMP_print_to_bio(BIO *bio, const char *component, const char *file, 48 | int line, OSSL_CMP_severity level, const char *msg); 49 | /* use of the logging callback for outputting error queue */ 50 | void OSSL_CMP_print_errors_cb(OSSL_CMP_log_cb_t log_fn); 51 | 52 | # ifdef __cplusplus 53 | } 54 | # endif 55 | # endif /* !defined(OPENSSL_NO_CMP) */ 56 | #endif /* !defined(OPENSSL_CMP_UTIL_H) */ 57 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/comp.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_COMP_H 11 | # define OPENSSL_COMP_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_COMP_H 17 | # endif 18 | 19 | # include 20 | 21 | # ifndef OPENSSL_NO_COMP 22 | # include 23 | # include 24 | # ifdef __cplusplus 25 | extern "C" { 26 | # endif 27 | 28 | 29 | 30 | COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); 31 | const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); 32 | int COMP_CTX_get_type(const COMP_CTX* comp); 33 | int COMP_get_type(const COMP_METHOD *meth); 34 | const char *COMP_get_name(const COMP_METHOD *meth); 35 | void COMP_CTX_free(COMP_CTX *ctx); 36 | 37 | int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, 38 | unsigned char *in, int ilen); 39 | int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, 40 | unsigned char *in, int ilen); 41 | 42 | COMP_METHOD *COMP_zlib(void); 43 | 44 | #ifndef OPENSSL_NO_DEPRECATED_1_1_0 45 | # define COMP_zlib_cleanup() while(0) continue 46 | #endif 47 | 48 | # ifdef OPENSSL_BIO_H 49 | # ifdef ZLIB 50 | const BIO_METHOD *BIO_f_zlib(void); 51 | # endif 52 | # endif 53 | 54 | 55 | # ifdef __cplusplus 56 | } 57 | # endif 58 | # endif 59 | #endif 60 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/comperr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_COMPERR_H 12 | # define OPENSSL_COMPERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | # ifndef OPENSSL_NO_COMP 21 | 22 | 23 | /* 24 | * COMP reason codes. 25 | */ 26 | # define COMP_R_ZLIB_DEFLATE_ERROR 99 27 | # define COMP_R_ZLIB_INFLATE_ERROR 100 28 | # define COMP_R_ZLIB_NOT_SUPPORTED 101 29 | 30 | # endif 31 | #endif 32 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/conf_api.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_CONF_API_H 11 | # define OPENSSL_CONF_API_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_CONF_API_H 17 | # endif 18 | 19 | # include 20 | # include 21 | 22 | #ifdef __cplusplus 23 | extern "C" { 24 | #endif 25 | 26 | /* Up until OpenSSL 0.9.5a, this was new_section */ 27 | CONF_VALUE *_CONF_new_section(CONF *conf, const char *section); 28 | /* Up until OpenSSL 0.9.5a, this was get_section */ 29 | CONF_VALUE *_CONF_get_section(const CONF *conf, const char *section); 30 | /* Up until OpenSSL 0.9.5a, this was CONF_get_section */ 31 | STACK_OF(CONF_VALUE) *_CONF_get_section_values(const CONF *conf, 32 | const char *section); 33 | 34 | int _CONF_add_string(CONF *conf, CONF_VALUE *section, CONF_VALUE *value); 35 | char *_CONF_get_string(const CONF *conf, const char *section, 36 | const char *name); 37 | long _CONF_get_number(const CONF *conf, const char *section, 38 | const char *name); 39 | 40 | int _CONF_new_data(CONF *conf); 41 | void _CONF_free_data(CONF *conf); 42 | 43 | #ifdef __cplusplus 44 | } 45 | #endif 46 | #endif 47 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/conferr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_CONFERR_H 12 | # define OPENSSL_CONFERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * CONF reason codes. 23 | */ 24 | # define CONF_R_ERROR_LOADING_DSO 110 25 | # define CONF_R_INVALID_PRAGMA 122 26 | # define CONF_R_LIST_CANNOT_BE_NULL 115 27 | # define CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION 123 28 | # define CONF_R_MISSING_CLOSE_SQUARE_BRACKET 100 29 | # define CONF_R_MISSING_EQUAL_SIGN 101 30 | # define CONF_R_MISSING_INIT_FUNCTION 112 31 | # define CONF_R_MODULE_INITIALIZATION_ERROR 109 32 | # define CONF_R_NO_CLOSE_BRACE 102 33 | # define CONF_R_NO_CONF 105 34 | # define CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE 106 35 | # define CONF_R_NO_SECTION 107 36 | # define CONF_R_NO_SUCH_FILE 114 37 | # define CONF_R_NO_VALUE 108 38 | # define CONF_R_NUMBER_TOO_LARGE 121 39 | # define CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION 124 40 | # define CONF_R_RECURSIVE_DIRECTORY_INCLUDE 111 41 | # define CONF_R_RELATIVE_PATH 125 42 | # define CONF_R_SSL_COMMAND_SECTION_EMPTY 117 43 | # define CONF_R_SSL_COMMAND_SECTION_NOT_FOUND 118 44 | # define CONF_R_SSL_SECTION_EMPTY 119 45 | # define CONF_R_SSL_SECTION_NOT_FOUND 120 46 | # define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103 47 | # define CONF_R_UNKNOWN_MODULE_NAME 113 48 | # define CONF_R_VARIABLE_EXPANSION_TOO_LONG 116 49 | # define CONF_R_VARIABLE_HAS_NO_VALUE 104 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/conftypes.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_CONFTYPES_H 11 | # define OPENSSL_CONFTYPES_H 12 | # pragma once 13 | 14 | #ifndef OPENSSL_CONF_H 15 | # include 16 | #endif 17 | 18 | /* 19 | * The contents of this file are deprecated and will be made opaque 20 | */ 21 | struct conf_method_st { 22 | const char *name; 23 | CONF *(*create) (CONF_METHOD *meth); 24 | int (*init) (CONF *conf); 25 | int (*destroy) (CONF *conf); 26 | int (*destroy_data) (CONF *conf); 27 | int (*load_bio) (CONF *conf, BIO *bp, long *eline); 28 | int (*dump) (const CONF *conf, BIO *bp); 29 | int (*is_number) (const CONF *conf, char c); 30 | int (*to_int) (const CONF *conf, char c); 31 | int (*load) (CONF *conf, const char *name, long *eline); 32 | }; 33 | 34 | struct conf_st { 35 | CONF_METHOD *meth; 36 | void *meth_data; 37 | LHASH_OF(CONF_VALUE) *data; 38 | int flag_dollarid; 39 | int flag_abspath; 40 | char *includedir; 41 | OSSL_LIB_CTX *libctx; 42 | }; 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/core_object.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_CORE_OBJECT_H 11 | # define OPENSSL_CORE_OBJECT_H 12 | # pragma once 13 | 14 | # ifdef __cplusplus 15 | extern "C" { 16 | # endif 17 | 18 | /*- 19 | * Known object types 20 | * 21 | * These numbers are used as values for the OSSL_PARAM parameter 22 | * OSSL_OBJECT_PARAM_TYPE. 23 | * 24 | * For most of these types, there's a corresponding libcrypto object type. 25 | * The corresponding type is indicated with a comment after the number. 26 | */ 27 | # define OSSL_OBJECT_UNKNOWN 0 28 | # define OSSL_OBJECT_NAME 1 /* char * */ 29 | # define OSSL_OBJECT_PKEY 2 /* EVP_PKEY * */ 30 | # define OSSL_OBJECT_CERT 3 /* X509 * */ 31 | # define OSSL_OBJECT_CRL 4 /* X509_CRL * */ 32 | 33 | /* 34 | * The rest of the associated OSSL_PARAM elements is described in core_names.h 35 | */ 36 | 37 | # ifdef __cplusplus 38 | } 39 | # endif 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/crmferr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_CRMFERR_H 12 | # define OPENSSL_CRMFERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | # ifndef OPENSSL_NO_CRMF 21 | 22 | 23 | /* 24 | * CRMF reason codes. 25 | */ 26 | # define CRMF_R_BAD_PBM_ITERATIONCOUNT 100 27 | # define CRMF_R_CRMFERROR 102 28 | # define CRMF_R_ERROR 103 29 | # define CRMF_R_ERROR_DECODING_CERTIFICATE 104 30 | # define CRMF_R_ERROR_DECRYPTING_CERTIFICATE 105 31 | # define CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY 106 32 | # define CRMF_R_FAILURE_OBTAINING_RANDOM 107 33 | # define CRMF_R_ITERATIONCOUNT_BELOW_100 108 34 | # define CRMF_R_MALFORMED_IV 101 35 | # define CRMF_R_NULL_ARGUMENT 109 36 | # define CRMF_R_POPOSKINPUT_NOT_SUPPORTED 113 37 | # define CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY 117 38 | # define CRMF_R_POPO_MISSING 121 39 | # define CRMF_R_POPO_MISSING_PUBLIC_KEY 118 40 | # define CRMF_R_POPO_MISSING_SUBJECT 119 41 | # define CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED 120 42 | # define CRMF_R_SETTING_MAC_ALGOR_FAILURE 110 43 | # define CRMF_R_SETTING_OWF_ALGOR_FAILURE 111 44 | # define CRMF_R_UNSUPPORTED_ALGORITHM 112 45 | # define CRMF_R_UNSUPPORTED_CIPHER 114 46 | # define CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO 115 47 | # define CRMF_R_UNSUPPORTED_POPO_METHOD 116 48 | 49 | # endif 50 | #endif 51 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/cryptoerr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_CRYPTOERR_H 12 | # define OPENSSL_CRYPTOERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * CRYPTO reason codes. 23 | */ 24 | # define CRYPTO_R_BAD_ALGORITHM_NAME 117 25 | # define CRYPTO_R_CONFLICTING_NAMES 118 26 | # define CRYPTO_R_HEX_STRING_TOO_SHORT 121 27 | # define CRYPTO_R_ILLEGAL_HEX_DIGIT 102 28 | # define CRYPTO_R_INSUFFICIENT_DATA_SPACE 106 29 | # define CRYPTO_R_INSUFFICIENT_PARAM_SIZE 107 30 | # define CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE 108 31 | # define CRYPTO_R_INTEGER_OVERFLOW 127 32 | # define CRYPTO_R_INVALID_NEGATIVE_VALUE 122 33 | # define CRYPTO_R_INVALID_NULL_ARGUMENT 109 34 | # define CRYPTO_R_INVALID_OSSL_PARAM_TYPE 110 35 | # define CRYPTO_R_NO_PARAMS_TO_MERGE 131 36 | # define CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL 128 37 | # define CRYPTO_R_ODD_NUMBER_OF_DIGITS 103 38 | # define CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY 123 39 | # define CRYPTO_R_PARAM_NOT_INTEGER_TYPE 124 40 | # define CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE 129 41 | # define CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED 125 42 | # define CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT 130 43 | # define CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION 126 44 | # define CRYPTO_R_PROVIDER_ALREADY_EXISTS 104 45 | # define CRYPTO_R_PROVIDER_SECTION_ERROR 105 46 | # define CRYPTO_R_RANDOM_SECTION_ERROR 119 47 | # define CRYPTO_R_SECURE_MALLOC_FAILURE 111 48 | # define CRYPTO_R_STRING_TOO_LONG 112 49 | # define CRYPTO_R_TOO_MANY_BYTES 113 50 | # define CRYPTO_R_TOO_MANY_RECORDS 114 51 | # define CRYPTO_R_TOO_SMALL_BUFFER 116 52 | # define CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION 120 53 | # define CRYPTO_R_ZERO_LENGTH_NUMBER 115 54 | 55 | #endif 56 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/cterr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_CTERR_H 12 | # define OPENSSL_CTERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | # ifndef OPENSSL_NO_CT 21 | 22 | 23 | /* 24 | * CT reason codes. 25 | */ 26 | # define CT_R_BASE64_DECODE_ERROR 108 27 | # define CT_R_INVALID_LOG_ID_LENGTH 100 28 | # define CT_R_LOG_CONF_INVALID 109 29 | # define CT_R_LOG_CONF_INVALID_KEY 110 30 | # define CT_R_LOG_CONF_MISSING_DESCRIPTION 111 31 | # define CT_R_LOG_CONF_MISSING_KEY 112 32 | # define CT_R_LOG_KEY_INVALID 113 33 | # define CT_R_SCT_FUTURE_TIMESTAMP 116 34 | # define CT_R_SCT_INVALID 104 35 | # define CT_R_SCT_INVALID_SIGNATURE 107 36 | # define CT_R_SCT_LIST_INVALID 105 37 | # define CT_R_SCT_LOG_ID_MISMATCH 114 38 | # define CT_R_SCT_NOT_SET 106 39 | # define CT_R_SCT_UNSUPPORTED_VERSION 115 40 | # define CT_R_UNRECOGNIZED_SIGNATURE_NID 101 41 | # define CT_R_UNSUPPORTED_ENTRY_TYPE 102 42 | # define CT_R_UNSUPPORTED_VERSION 103 43 | 44 | # endif 45 | #endif 46 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/decodererr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_DECODERERR_H 12 | # define OPENSSL_DECODERERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * OSSL_DECODER reason codes. 23 | */ 24 | # define OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT 101 25 | # define OSSL_DECODER_R_DECODER_NOT_FOUND 102 26 | # define OSSL_DECODER_R_MISSING_GET_PARAMS 100 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/dherr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_DHERR_H 12 | # define OPENSSL_DHERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | # ifndef OPENSSL_NO_DH 21 | 22 | 23 | /* 24 | * DH reason codes. 25 | */ 26 | # define DH_R_BAD_FFC_PARAMETERS 127 27 | # define DH_R_BAD_GENERATOR 101 28 | # define DH_R_BN_DECODE_ERROR 109 29 | # define DH_R_BN_ERROR 106 30 | # define DH_R_CHECK_INVALID_J_VALUE 115 31 | # define DH_R_CHECK_INVALID_Q_VALUE 116 32 | # define DH_R_CHECK_PUBKEY_INVALID 122 33 | # define DH_R_CHECK_PUBKEY_TOO_LARGE 123 34 | # define DH_R_CHECK_PUBKEY_TOO_SMALL 124 35 | # define DH_R_CHECK_P_NOT_PRIME 117 36 | # define DH_R_CHECK_P_NOT_SAFE_PRIME 118 37 | # define DH_R_CHECK_Q_NOT_PRIME 119 38 | # define DH_R_DECODE_ERROR 104 39 | # define DH_R_INVALID_PARAMETER_NAME 110 40 | # define DH_R_INVALID_PARAMETER_NID 114 41 | # define DH_R_INVALID_PUBKEY 102 42 | # define DH_R_INVALID_SECRET 128 43 | # define DH_R_KDF_PARAMETER_ERROR 112 44 | # define DH_R_KEYS_NOT_SET 108 45 | # define DH_R_MISSING_PUBKEY 125 46 | # define DH_R_MODULUS_TOO_LARGE 103 47 | # define DH_R_MODULUS_TOO_SMALL 126 48 | # define DH_R_NOT_SUITABLE_GENERATOR 120 49 | # define DH_R_NO_PARAMETERS_SET 107 50 | # define DH_R_NO_PRIVATE_VALUE 100 51 | # define DH_R_PARAMETER_ENCODING_ERROR 105 52 | # define DH_R_PEER_KEY_ERROR 111 53 | # define DH_R_SHARED_INFO_ERROR 113 54 | # define DH_R_UNABLE_TO_CHECK_GENERATOR 121 55 | 56 | # endif 57 | #endif 58 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/dsaerr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_DSAERR_H 12 | # define OPENSSL_DSAERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | # ifndef OPENSSL_NO_DSA 21 | 22 | 23 | /* 24 | * DSA reason codes. 25 | */ 26 | # define DSA_R_BAD_FFC_PARAMETERS 114 27 | # define DSA_R_BAD_Q_VALUE 102 28 | # define DSA_R_BN_DECODE_ERROR 108 29 | # define DSA_R_BN_ERROR 109 30 | # define DSA_R_DECODE_ERROR 104 31 | # define DSA_R_INVALID_DIGEST_TYPE 106 32 | # define DSA_R_INVALID_PARAMETERS 112 33 | # define DSA_R_MISSING_PARAMETERS 101 34 | # define DSA_R_MISSING_PRIVATE_KEY 111 35 | # define DSA_R_MODULUS_TOO_LARGE 103 36 | # define DSA_R_NO_PARAMETERS_SET 107 37 | # define DSA_R_PARAMETER_ENCODING_ERROR 105 38 | # define DSA_R_P_NOT_PRIME 115 39 | # define DSA_R_Q_NOT_PRIME 113 40 | # define DSA_R_SEED_LEN_SMALL 110 41 | # define DSA_R_TOO_MANY_RETRIES 116 42 | 43 | # endif 44 | #endif 45 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/dtls1.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2021 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_DTLS1_H 11 | # define OPENSSL_DTLS1_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_DTLS1_H 17 | # endif 18 | 19 | # include 20 | 21 | #ifdef __cplusplus 22 | extern "C" { 23 | #endif 24 | 25 | #include 26 | 27 | /* DTLS*_VERSION constants are defined in prov_ssl.h */ 28 | # ifndef OPENSSL_NO_DEPRECATED_3_0 29 | # define DTLS_MIN_VERSION DTLS1_VERSION 30 | # define DTLS_MAX_VERSION DTLS1_2_VERSION 31 | # endif 32 | # define DTLS1_VERSION_MAJOR 0xFE 33 | 34 | /* Special value for method supporting multiple versions */ 35 | # define DTLS_ANY_VERSION 0x1FFFF 36 | 37 | /* lengths of messages */ 38 | 39 | # define DTLS1_COOKIE_LENGTH 255 40 | 41 | # define DTLS1_RT_HEADER_LENGTH 13 42 | 43 | # define DTLS1_HM_HEADER_LENGTH 12 44 | 45 | # define DTLS1_HM_BAD_FRAGMENT -2 46 | # define DTLS1_HM_FRAGMENT_RETRY -3 47 | 48 | # define DTLS1_CCS_HEADER_LENGTH 1 49 | 50 | # define DTLS1_AL_HEADER_LENGTH 2 51 | 52 | # define DTLS1_TMO_ALERT_COUNT 12 53 | 54 | #ifdef __cplusplus 55 | } 56 | #endif 57 | #endif 58 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/e_ostime.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_E_OSTIME_H 11 | # define OPENSSL_E_OSTIME_H 12 | # pragma once 13 | 14 | # include 15 | # include 16 | # include 17 | 18 | /* 19 | * This header guarantees that 'struct timeval' will be available. It includes 20 | * the minimum headers needed to facilitate this. This may still be a 21 | * substantial set of headers on some platforms (e.g. on Win32). 22 | */ 23 | 24 | # if defined(OPENSSL_SYS_WINDOWS) 25 | # include 26 | # else 27 | # include 28 | # endif 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/ebcdic.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_EBCDIC_H 11 | # define OPENSSL_EBCDIC_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_EBCDIC_H 17 | # endif 18 | 19 | # include 20 | 21 | #ifdef __cplusplus 22 | extern "C" { 23 | #endif 24 | 25 | /* Avoid name clashes with other applications */ 26 | # define os_toascii _openssl_os_toascii 27 | # define os_toebcdic _openssl_os_toebcdic 28 | # define ebcdic2ascii _openssl_ebcdic2ascii 29 | # define ascii2ebcdic _openssl_ascii2ebcdic 30 | 31 | extern const unsigned char os_toascii[256]; 32 | extern const unsigned char os_toebcdic[256]; 33 | void *ebcdic2ascii(void *dest, const void *srce, size_t count); 34 | void *ascii2ebcdic(void *dest, const void *srce, size_t count); 35 | 36 | #ifdef __cplusplus 37 | } 38 | #endif 39 | #endif 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/ecdh.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #include 11 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/ecdsa.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #include 11 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/encodererr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_ENCODERERR_H 12 | # define OPENSSL_ENCODERERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * OSSL_ENCODER reason codes. 23 | */ 24 | # define OSSL_ENCODER_R_ENCODER_NOT_FOUND 101 25 | # define OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY 100 26 | # define OSSL_ENCODER_R_MISSING_GET_PARAMS 102 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/engineerr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_ENGINEERR_H 12 | # define OPENSSL_ENGINEERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | # ifndef OPENSSL_NO_ENGINE 21 | 22 | 23 | /* 24 | * ENGINE reason codes. 25 | */ 26 | # define ENGINE_R_ALREADY_LOADED 100 27 | # define ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER 133 28 | # define ENGINE_R_CMD_NOT_EXECUTABLE 134 29 | # define ENGINE_R_COMMAND_TAKES_INPUT 135 30 | # define ENGINE_R_COMMAND_TAKES_NO_INPUT 136 31 | # define ENGINE_R_CONFLICTING_ENGINE_ID 103 32 | # define ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED 119 33 | # define ENGINE_R_DSO_FAILURE 104 34 | # define ENGINE_R_DSO_NOT_FOUND 132 35 | # define ENGINE_R_ENGINES_SECTION_ERROR 148 36 | # define ENGINE_R_ENGINE_CONFIGURATION_ERROR 102 37 | # define ENGINE_R_ENGINE_IS_NOT_IN_LIST 105 38 | # define ENGINE_R_ENGINE_SECTION_ERROR 149 39 | # define ENGINE_R_FAILED_LOADING_PRIVATE_KEY 128 40 | # define ENGINE_R_FAILED_LOADING_PUBLIC_KEY 129 41 | # define ENGINE_R_FINISH_FAILED 106 42 | # define ENGINE_R_ID_OR_NAME_MISSING 108 43 | # define ENGINE_R_INIT_FAILED 109 44 | # define ENGINE_R_INTERNAL_LIST_ERROR 110 45 | # define ENGINE_R_INVALID_ARGUMENT 143 46 | # define ENGINE_R_INVALID_CMD_NAME 137 47 | # define ENGINE_R_INVALID_CMD_NUMBER 138 48 | # define ENGINE_R_INVALID_INIT_VALUE 151 49 | # define ENGINE_R_INVALID_STRING 150 50 | # define ENGINE_R_NOT_INITIALISED 117 51 | # define ENGINE_R_NOT_LOADED 112 52 | # define ENGINE_R_NO_CONTROL_FUNCTION 120 53 | # define ENGINE_R_NO_INDEX 144 54 | # define ENGINE_R_NO_LOAD_FUNCTION 125 55 | # define ENGINE_R_NO_REFERENCE 130 56 | # define ENGINE_R_NO_SUCH_ENGINE 116 57 | # define ENGINE_R_UNIMPLEMENTED_CIPHER 146 58 | # define ENGINE_R_UNIMPLEMENTED_DIGEST 147 59 | # define ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD 101 60 | # define ENGINE_R_VERSION_INCOMPATIBILITY 145 61 | 62 | # endif 63 | #endif 64 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/esserr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_ESSERR_H 12 | # define OPENSSL_ESSERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | /* 20 | * ESS reason codes. 21 | */ 22 | # define ESS_R_EMPTY_ESS_CERT_ID_LIST 107 23 | # define ESS_R_ESS_CERT_DIGEST_ERROR 103 24 | # define ESS_R_ESS_CERT_ID_NOT_FOUND 104 25 | # define ESS_R_ESS_CERT_ID_WRONG_ORDER 105 26 | # define ESS_R_ESS_DIGEST_ALG_UNKNOWN 106 27 | # define ESS_R_ESS_SIGNING_CERTIFICATE_ERROR 102 28 | # define ESS_R_ESS_SIGNING_CERT_ADD_ERROR 100 29 | # define ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR 101 30 | # define ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE 108 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/fips_names.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_FIPS_NAMES_H 11 | # define OPENSSL_FIPS_NAMES_H 12 | # pragma once 13 | 14 | # ifdef __cplusplus 15 | extern "C" { 16 | # endif 17 | 18 | /* 19 | * Parameter names that the FIPS Provider defines 20 | */ 21 | 22 | /* 23 | * The calculated MAC of the module file (Used for FIPS Self Testing) 24 | * Type: OSSL_PARAM_UTF8_STRING 25 | */ 26 | # define OSSL_PROV_FIPS_PARAM_MODULE_MAC "module-mac" 27 | /* 28 | * A version number for the fips install process (Used for FIPS Self Testing) 29 | * Type: OSSL_PARAM_UTF8_STRING 30 | */ 31 | # define OSSL_PROV_FIPS_PARAM_INSTALL_VERSION "install-version" 32 | /* 33 | * The calculated MAC of the install status indicator (Used for FIPS Self Testing) 34 | * Type: OSSL_PARAM_UTF8_STRING 35 | */ 36 | # define OSSL_PROV_FIPS_PARAM_INSTALL_MAC "install-mac" 37 | /* 38 | * The install status indicator (Used for FIPS Self Testing) 39 | * Type: OSSL_PARAM_UTF8_STRING 40 | */ 41 | # define OSSL_PROV_FIPS_PARAM_INSTALL_STATUS "install-status" 42 | 43 | /* 44 | * A boolean that determines if the FIPS conditional test errors result in 45 | * the module entering an error state. 46 | * Type: OSSL_PARAM_UTF8_STRING 47 | */ 48 | # define OSSL_PROV_FIPS_PARAM_CONDITIONAL_ERRORS "conditional-errors" 49 | 50 | /* 51 | * A boolean that determines if the runtime FIPS security checks are performed. 52 | * This is enabled by default. 53 | * Type: OSSL_PARAM_UTF8_STRING 54 | */ 55 | # define OSSL_PROV_FIPS_PARAM_SECURITY_CHECKS "security-checks" 56 | 57 | /* 58 | * A boolean that determines if the runtime FIPS check for TLS1_PRF EMS is performed. 59 | * This is disabled by default. 60 | * Type: OSSL_PARAM_UTF8_STRING 61 | */ 62 | # define OSSL_PROV_FIPS_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" 63 | 64 | /* 65 | * A boolean that determines if truncated digests can be used with Hash and HMAC 66 | * DRBGs. FIPS 140-3 IG D.R disallows such use for efficiency rather than 67 | * security reasons. 68 | * This is disabled by default. 69 | * Type: OSSL_PARAM_UTF8_STRING 70 | */ 71 | # define OSSL_PROV_FIPS_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" 72 | 73 | # ifdef __cplusplus 74 | } 75 | # endif 76 | 77 | #endif /* OPENSSL_FIPS_NAMES_H */ 78 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/fipskey.h: -------------------------------------------------------------------------------- 1 | /* 2 | * WARNING: do not edit! 3 | * Generated by Makefile from openssl-3.1.4/include/openssl/fipskey.h.in 4 | * 5 | * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. 6 | * 7 | * Licensed under the Apache License 2.0 (the "License"). You may not use 8 | * this file except in compliance with the License. You can obtain a copy 9 | * in the file LICENSE in the source distribution or at 10 | * https://www.openssl.org/source/license.html 11 | */ 12 | 13 | #ifndef OPENSSL_FIPSKEY_H 14 | # define OPENSSL_FIPSKEY_H 15 | # pragma once 16 | 17 | # ifdef __cplusplus 18 | extern "C" { 19 | # endif 20 | 21 | /* 22 | * The FIPS validation HMAC key, usable as an array initializer. 23 | */ 24 | #define FIPS_KEY_ELEMENTS \ 25 | 0xf4, 0x55, 0x66, 0x50, 0xac, 0x31, 0xd3, 0x54, 0x61, 0x61, 0x0b, 0xac, 0x4e, 0xd8, 0x1b, 0x1a, 0x18, 0x1b, 0x2d, 0x8a, 0x43, 0xea, 0x28, 0x54, 0xcb, 0xae, 0x22, 0xca, 0x74, 0x56, 0x08, 0x13 26 | 27 | /* 28 | * The FIPS validation key, as a string. 29 | */ 30 | #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" 31 | 32 | # ifdef __cplusplus 33 | } 34 | # endif 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/hmac.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_HMAC_H 11 | # define OPENSSL_HMAC_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_HMAC_H 17 | # endif 18 | 19 | # include 20 | 21 | # include 22 | 23 | # ifndef OPENSSL_NO_DEPRECATED_3_0 24 | # define HMAC_MAX_MD_CBLOCK 200 /* Deprecated */ 25 | # endif 26 | 27 | # ifdef __cplusplus 28 | extern "C" { 29 | # endif 30 | 31 | # ifndef OPENSSL_NO_DEPRECATED_3_0 32 | OSSL_DEPRECATEDIN_3_0 size_t HMAC_size(const HMAC_CTX *e); 33 | OSSL_DEPRECATEDIN_3_0 HMAC_CTX *HMAC_CTX_new(void); 34 | OSSL_DEPRECATEDIN_3_0 int HMAC_CTX_reset(HMAC_CTX *ctx); 35 | OSSL_DEPRECATEDIN_3_0 void HMAC_CTX_free(HMAC_CTX *ctx); 36 | # endif 37 | # ifndef OPENSSL_NO_DEPRECATED_1_1_0 38 | OSSL_DEPRECATEDIN_1_1_0 __owur int HMAC_Init(HMAC_CTX *ctx, 39 | const void *key, int len, 40 | const EVP_MD *md); 41 | # endif 42 | # ifndef OPENSSL_NO_DEPRECATED_3_0 43 | OSSL_DEPRECATEDIN_3_0 int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len, 44 | const EVP_MD *md, ENGINE *impl); 45 | OSSL_DEPRECATEDIN_3_0 int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, 46 | size_t len); 47 | OSSL_DEPRECATEDIN_3_0 int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, 48 | unsigned int *len); 49 | OSSL_DEPRECATEDIN_3_0 __owur int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx); 50 | OSSL_DEPRECATEDIN_3_0 void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags); 51 | OSSL_DEPRECATEDIN_3_0 const EVP_MD *HMAC_CTX_get_md(const HMAC_CTX *ctx); 52 | # endif 53 | 54 | unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len, 55 | const unsigned char *data, size_t data_len, 56 | unsigned char *md, unsigned int *md_len); 57 | 58 | # ifdef __cplusplus 59 | } 60 | # endif 61 | 62 | #endif 63 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/httperr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_HTTPERR_H 12 | # define OPENSSL_HTTPERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * HTTP reason codes. 23 | */ 24 | # define HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN 108 25 | # define HTTP_R_CONNECT_FAILURE 100 26 | # define HTTP_R_ERROR_PARSING_ASN1_LENGTH 109 27 | # define HTTP_R_ERROR_PARSING_CONTENT_LENGTH 119 28 | # define HTTP_R_ERROR_PARSING_URL 101 29 | # define HTTP_R_ERROR_RECEIVING 103 30 | # define HTTP_R_ERROR_SENDING 102 31 | # define HTTP_R_FAILED_READING_DATA 128 32 | # define HTTP_R_HEADER_PARSE_ERROR 126 33 | # define HTTP_R_INCONSISTENT_CONTENT_LENGTH 120 34 | # define HTTP_R_INVALID_PORT_NUMBER 123 35 | # define HTTP_R_INVALID_URL_PATH 125 36 | # define HTTP_R_INVALID_URL_SCHEME 124 37 | # define HTTP_R_MAX_RESP_LEN_EXCEEDED 117 38 | # define HTTP_R_MISSING_ASN1_ENCODING 110 39 | # define HTTP_R_MISSING_CONTENT_TYPE 121 40 | # define HTTP_R_MISSING_REDIRECT_LOCATION 111 41 | # define HTTP_R_RECEIVED_ERROR 105 42 | # define HTTP_R_RECEIVED_WRONG_HTTP_VERSION 106 43 | # define HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP 112 44 | # define HTTP_R_REDIRECTION_NOT_ENABLED 116 45 | # define HTTP_R_RESPONSE_LINE_TOO_LONG 113 46 | # define HTTP_R_RESPONSE_PARSE_ERROR 104 47 | # define HTTP_R_RETRY_TIMEOUT 129 48 | # define HTTP_R_SERVER_CANCELED_CONNECTION 127 49 | # define HTTP_R_SOCK_NOT_SUPPORTED 122 50 | # define HTTP_R_STATUS_CODE_UNSUPPORTED 114 51 | # define HTTP_R_TLS_NOT_ENABLED 107 52 | # define HTTP_R_TOO_MANY_REDIRECTIONS 115 53 | # define HTTP_R_UNEXPECTED_CONTENT_TYPE 118 54 | 55 | #endif 56 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/kdferr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_KDFERR_H 11 | # define OPENSSL_KDFERR_H 12 | # pragma once 13 | 14 | #include 15 | 16 | #endif /* !defined(OPENSSL_KDFERR_H) */ 17 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/md2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_MD2_H 11 | # define OPENSSL_MD2_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_MD2_H 17 | # endif 18 | 19 | # include 20 | 21 | # ifndef OPENSSL_NO_MD2 22 | # include 23 | # ifdef __cplusplus 24 | extern "C" { 25 | # endif 26 | 27 | # define MD2_DIGEST_LENGTH 16 28 | 29 | # if !defined(OPENSSL_NO_DEPRECATED_3_0) 30 | 31 | typedef unsigned char MD2_INT; 32 | 33 | # define MD2_BLOCK 16 34 | 35 | typedef struct MD2state_st { 36 | unsigned int num; 37 | unsigned char data[MD2_BLOCK]; 38 | MD2_INT cksm[MD2_BLOCK]; 39 | MD2_INT state[MD2_BLOCK]; 40 | } MD2_CTX; 41 | # endif 42 | # ifndef OPENSSL_NO_DEPRECATED_3_0 43 | OSSL_DEPRECATEDIN_3_0 const char *MD2_options(void); 44 | OSSL_DEPRECATEDIN_3_0 int MD2_Init(MD2_CTX *c); 45 | OSSL_DEPRECATEDIN_3_0 int MD2_Update(MD2_CTX *c, const unsigned char *data, 46 | size_t len); 47 | OSSL_DEPRECATEDIN_3_0 int MD2_Final(unsigned char *md, MD2_CTX *c); 48 | OSSL_DEPRECATEDIN_3_0 unsigned char *MD2(const unsigned char *d, size_t n, 49 | unsigned char *md); 50 | # endif 51 | 52 | # ifdef __cplusplus 53 | } 54 | # endif 55 | # endif 56 | #endif 57 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/md4.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_MD4_H 11 | # define OPENSSL_MD4_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_MD4_H 17 | # endif 18 | 19 | # include 20 | 21 | # ifndef OPENSSL_NO_MD4 22 | # include 23 | # include 24 | # ifdef __cplusplus 25 | extern "C" { 26 | # endif 27 | 28 | # define MD4_DIGEST_LENGTH 16 29 | 30 | # if !defined(OPENSSL_NO_DEPRECATED_3_0) 31 | 32 | /*- 33 | * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 34 | * ! MD4_LONG has to be at least 32 bits wide. ! 35 | * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 36 | */ 37 | # define MD4_LONG unsigned int 38 | 39 | # define MD4_CBLOCK 64 40 | # define MD4_LBLOCK (MD4_CBLOCK/4) 41 | 42 | typedef struct MD4state_st { 43 | MD4_LONG A, B, C, D; 44 | MD4_LONG Nl, Nh; 45 | MD4_LONG data[MD4_LBLOCK]; 46 | unsigned int num; 47 | } MD4_CTX; 48 | # endif 49 | # ifndef OPENSSL_NO_DEPRECATED_3_0 50 | OSSL_DEPRECATEDIN_3_0 int MD4_Init(MD4_CTX *c); 51 | OSSL_DEPRECATEDIN_3_0 int MD4_Update(MD4_CTX *c, const void *data, size_t len); 52 | OSSL_DEPRECATEDIN_3_0 int MD4_Final(unsigned char *md, MD4_CTX *c); 53 | OSSL_DEPRECATEDIN_3_0 unsigned char *MD4(const unsigned char *d, size_t n, 54 | unsigned char *md); 55 | OSSL_DEPRECATEDIN_3_0 void MD4_Transform(MD4_CTX *c, const unsigned char *b); 56 | # endif 57 | 58 | # ifdef __cplusplus 59 | } 60 | # endif 61 | # endif 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/md5.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_MD5_H 11 | # define OPENSSL_MD5_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_MD5_H 17 | # endif 18 | 19 | # include 20 | 21 | # ifndef OPENSSL_NO_MD5 22 | # include 23 | # include 24 | # ifdef __cplusplus 25 | extern "C" { 26 | # endif 27 | 28 | # define MD5_DIGEST_LENGTH 16 29 | 30 | # if !defined(OPENSSL_NO_DEPRECATED_3_0) 31 | /* 32 | * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 33 | * ! MD5_LONG has to be at least 32 bits wide. ! 34 | * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 35 | */ 36 | # define MD5_LONG unsigned int 37 | 38 | # define MD5_CBLOCK 64 39 | # define MD5_LBLOCK (MD5_CBLOCK/4) 40 | 41 | typedef struct MD5state_st { 42 | MD5_LONG A, B, C, D; 43 | MD5_LONG Nl, Nh; 44 | MD5_LONG data[MD5_LBLOCK]; 45 | unsigned int num; 46 | } MD5_CTX; 47 | # endif 48 | # ifndef OPENSSL_NO_DEPRECATED_3_0 49 | OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c); 50 | OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len); 51 | OSSL_DEPRECATEDIN_3_0 int MD5_Final(unsigned char *md, MD5_CTX *c); 52 | OSSL_DEPRECATEDIN_3_0 unsigned char *MD5(const unsigned char *d, size_t n, 53 | unsigned char *md); 54 | OSSL_DEPRECATEDIN_3_0 void MD5_Transform(MD5_CTX *c, const unsigned char *b); 55 | # endif 56 | 57 | # ifdef __cplusplus 58 | } 59 | # endif 60 | # endif 61 | 62 | #endif 63 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/mdc2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_MDC2_H 11 | # define OPENSSL_MDC2_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_MDC2_H 17 | # endif 18 | 19 | # include 20 | 21 | # ifndef OPENSSL_NO_MDC2 22 | # include 23 | # include 24 | # ifdef __cplusplus 25 | extern "C" { 26 | # endif 27 | 28 | # define MDC2_DIGEST_LENGTH 16 29 | 30 | # if !defined(OPENSSL_NO_DEPRECATED_3_0) 31 | 32 | # define MDC2_BLOCK 8 33 | 34 | typedef struct mdc2_ctx_st { 35 | unsigned int num; 36 | unsigned char data[MDC2_BLOCK]; 37 | DES_cblock h, hh; 38 | unsigned int pad_type; /* either 1 or 2, default 1 */ 39 | } MDC2_CTX; 40 | # endif 41 | # ifndef OPENSSL_NO_DEPRECATED_3_0 42 | OSSL_DEPRECATEDIN_3_0 int MDC2_Init(MDC2_CTX *c); 43 | OSSL_DEPRECATEDIN_3_0 int MDC2_Update(MDC2_CTX *c, const unsigned char *data, 44 | size_t len); 45 | OSSL_DEPRECATEDIN_3_0 int MDC2_Final(unsigned char *md, MDC2_CTX *c); 46 | OSSL_DEPRECATEDIN_3_0 unsigned char *MDC2(const unsigned char *d, size_t n, 47 | unsigned char *md); 48 | # endif 49 | 50 | # ifdef __cplusplus 51 | } 52 | # endif 53 | # endif 54 | 55 | #endif 56 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/objectserr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_OBJECTSERR_H 12 | # define OPENSSL_OBJECTSERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * OBJ reason codes. 23 | */ 24 | # define OBJ_R_OID_EXISTS 102 25 | # define OBJ_R_UNKNOWN_NID 101 26 | # define OBJ_R_UNKNOWN_OBJECT_NAME 103 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/ocsperr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_OCSPERR_H 12 | # define OPENSSL_OCSPERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | # ifndef OPENSSL_NO_OCSP 21 | 22 | 23 | /* 24 | * OCSP reason codes. 25 | */ 26 | # define OCSP_R_CERTIFICATE_VERIFY_ERROR 101 27 | # define OCSP_R_DIGEST_ERR 102 28 | # define OCSP_R_DIGEST_NAME_ERR 106 29 | # define OCSP_R_DIGEST_SIZE_ERR 107 30 | # define OCSP_R_ERROR_IN_NEXTUPDATE_FIELD 122 31 | # define OCSP_R_ERROR_IN_THISUPDATE_FIELD 123 32 | # define OCSP_R_MISSING_OCSPSIGNING_USAGE 103 33 | # define OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE 124 34 | # define OCSP_R_NOT_BASIC_RESPONSE 104 35 | # define OCSP_R_NO_CERTIFICATES_IN_CHAIN 105 36 | # define OCSP_R_NO_RESPONSE_DATA 108 37 | # define OCSP_R_NO_REVOKED_TIME 109 38 | # define OCSP_R_NO_SIGNER_KEY 130 39 | # define OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 110 40 | # define OCSP_R_REQUEST_NOT_SIGNED 128 41 | # define OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA 111 42 | # define OCSP_R_ROOT_CA_NOT_TRUSTED 112 43 | # define OCSP_R_SIGNATURE_FAILURE 117 44 | # define OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND 118 45 | # define OCSP_R_STATUS_EXPIRED 125 46 | # define OCSP_R_STATUS_NOT_YET_VALID 126 47 | # define OCSP_R_STATUS_TOO_OLD 127 48 | # define OCSP_R_UNKNOWN_MESSAGE_DIGEST 119 49 | # define OCSP_R_UNKNOWN_NID 120 50 | # define OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE 129 51 | 52 | # endif 53 | #endif 54 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/opensslconf.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_OPENSSLCONF_H 11 | # define OPENSSL_OPENSSLCONF_H 12 | # pragma once 13 | 14 | # include 15 | # include 16 | 17 | #endif /* OPENSSL_OPENSSLCONF_H */ 18 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/ossl_typ.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | /* 11 | * The original was renamed to 12 | * 13 | * This header file only exists for compatibility reasons with older 14 | * applications which #include . 15 | */ 16 | # include 17 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/param_build.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. 3 | * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_PARAM_BUILD_H 12 | # define OPENSSL_PARAM_BUILD_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | 18 | # ifdef __cplusplus 19 | extern "C" { 20 | # endif 21 | 22 | OSSL_PARAM_BLD *OSSL_PARAM_BLD_new(void); 23 | OSSL_PARAM *OSSL_PARAM_BLD_to_param(OSSL_PARAM_BLD *bld); 24 | void OSSL_PARAM_BLD_free(OSSL_PARAM_BLD *bld); 25 | 26 | int OSSL_PARAM_BLD_push_int(OSSL_PARAM_BLD *bld, const char *key, int val); 27 | int OSSL_PARAM_BLD_push_uint(OSSL_PARAM_BLD *bld, const char *key, 28 | unsigned int val); 29 | int OSSL_PARAM_BLD_push_long(OSSL_PARAM_BLD *bld, const char *key, 30 | long int val); 31 | int OSSL_PARAM_BLD_push_ulong(OSSL_PARAM_BLD *bld, const char *key, 32 | unsigned long int val); 33 | int OSSL_PARAM_BLD_push_int32(OSSL_PARAM_BLD *bld, const char *key, 34 | int32_t val); 35 | int OSSL_PARAM_BLD_push_uint32(OSSL_PARAM_BLD *bld, const char *key, 36 | uint32_t val); 37 | int OSSL_PARAM_BLD_push_int64(OSSL_PARAM_BLD *bld, const char *key, 38 | int64_t val); 39 | int OSSL_PARAM_BLD_push_uint64(OSSL_PARAM_BLD *bld, const char *key, 40 | uint64_t val); 41 | int OSSL_PARAM_BLD_push_size_t(OSSL_PARAM_BLD *bld, const char *key, 42 | size_t val); 43 | int OSSL_PARAM_BLD_push_time_t(OSSL_PARAM_BLD *bld, const char *key, 44 | time_t val); 45 | int OSSL_PARAM_BLD_push_double(OSSL_PARAM_BLD *bld, const char *key, 46 | double val); 47 | int OSSL_PARAM_BLD_push_BN(OSSL_PARAM_BLD *bld, const char *key, 48 | const BIGNUM *bn); 49 | int OSSL_PARAM_BLD_push_BN_pad(OSSL_PARAM_BLD *bld, const char *key, 50 | const BIGNUM *bn, size_t sz); 51 | int OSSL_PARAM_BLD_push_utf8_string(OSSL_PARAM_BLD *bld, const char *key, 52 | const char *buf, size_t bsize); 53 | int OSSL_PARAM_BLD_push_utf8_ptr(OSSL_PARAM_BLD *bld, const char *key, 54 | char *buf, size_t bsize); 55 | int OSSL_PARAM_BLD_push_octet_string(OSSL_PARAM_BLD *bld, const char *key, 56 | const void *buf, size_t bsize); 57 | int OSSL_PARAM_BLD_push_octet_ptr(OSSL_PARAM_BLD *bld, const char *key, 58 | void *buf, size_t bsize); 59 | 60 | # ifdef __cplusplus 61 | } 62 | # endif 63 | #endif /* OPENSSL_PARAM_BUILD_H */ 64 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/pem2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_PEM2_H 11 | # define OPENSSL_PEM2_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_PEM2_H 17 | # endif 18 | # include 19 | #endif 20 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/pemerr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_PEMERR_H 12 | # define OPENSSL_PEMERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * PEM reason codes. 23 | */ 24 | # define PEM_R_BAD_BASE64_DECODE 100 25 | # define PEM_R_BAD_DECRYPT 101 26 | # define PEM_R_BAD_END_LINE 102 27 | # define PEM_R_BAD_IV_CHARS 103 28 | # define PEM_R_BAD_MAGIC_NUMBER 116 29 | # define PEM_R_BAD_PASSWORD_READ 104 30 | # define PEM_R_BAD_VERSION_NUMBER 117 31 | # define PEM_R_BIO_WRITE_FAILURE 118 32 | # define PEM_R_CIPHER_IS_NULL 127 33 | # define PEM_R_ERROR_CONVERTING_PRIVATE_KEY 115 34 | # define PEM_R_EXPECTING_DSS_KEY_BLOB 131 35 | # define PEM_R_EXPECTING_PRIVATE_KEY_BLOB 119 36 | # define PEM_R_EXPECTING_PUBLIC_KEY_BLOB 120 37 | # define PEM_R_EXPECTING_RSA_KEY_BLOB 132 38 | # define PEM_R_HEADER_TOO_LONG 128 39 | # define PEM_R_INCONSISTENT_HEADER 121 40 | # define PEM_R_KEYBLOB_HEADER_PARSE_ERROR 122 41 | # define PEM_R_KEYBLOB_TOO_SHORT 123 42 | # define PEM_R_MISSING_DEK_IV 129 43 | # define PEM_R_NOT_DEK_INFO 105 44 | # define PEM_R_NOT_ENCRYPTED 106 45 | # define PEM_R_NOT_PROC_TYPE 107 46 | # define PEM_R_NO_START_LINE 108 47 | # define PEM_R_PROBLEMS_GETTING_PASSWORD 109 48 | # define PEM_R_PVK_DATA_TOO_SHORT 124 49 | # define PEM_R_PVK_TOO_SHORT 125 50 | # define PEM_R_READ_KEY 111 51 | # define PEM_R_SHORT_HEADER 112 52 | # define PEM_R_UNEXPECTED_DEK_IV 130 53 | # define PEM_R_UNSUPPORTED_CIPHER 113 54 | # define PEM_R_UNSUPPORTED_ENCRYPTION 114 55 | # define PEM_R_UNSUPPORTED_KEY_COMPONENTS 126 56 | # define PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE 110 57 | 58 | #endif 59 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/pkcs12err.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_PKCS12ERR_H 12 | # define OPENSSL_PKCS12ERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * PKCS12 reason codes. 23 | */ 24 | # define PKCS12_R_CANT_PACK_STRUCTURE 100 25 | # define PKCS12_R_CONTENT_TYPE_NOT_DATA 121 26 | # define PKCS12_R_DECODE_ERROR 101 27 | # define PKCS12_R_ENCODE_ERROR 102 28 | # define PKCS12_R_ENCRYPT_ERROR 103 29 | # define PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE 120 30 | # define PKCS12_R_INVALID_NULL_ARGUMENT 104 31 | # define PKCS12_R_INVALID_NULL_PKCS12_POINTER 105 32 | # define PKCS12_R_INVALID_TYPE 112 33 | # define PKCS12_R_IV_GEN_ERROR 106 34 | # define PKCS12_R_KEY_GEN_ERROR 107 35 | # define PKCS12_R_MAC_ABSENT 108 36 | # define PKCS12_R_MAC_GENERATION_ERROR 109 37 | # define PKCS12_R_MAC_SETUP_ERROR 110 38 | # define PKCS12_R_MAC_STRING_SET_ERROR 111 39 | # define PKCS12_R_MAC_VERIFY_FAILURE 113 40 | # define PKCS12_R_PARSE_ERROR 114 41 | # define PKCS12_R_PKCS12_CIPHERFINAL_ERROR 116 42 | # define PKCS12_R_UNKNOWN_DIGEST_ALGORITHM 118 43 | # define PKCS12_R_UNSUPPORTED_PKCS12_MODE 119 44 | 45 | #endif 46 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/prov_ssl.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_PROV_SSL_H 11 | # define OPENSSL_PROV_SSL_H 12 | # pragma once 13 | 14 | # ifdef __cplusplus 15 | extern "C" { 16 | # endif 17 | 18 | /* SSL/TLS related defines useful to providers */ 19 | 20 | # define SSL_MAX_MASTER_KEY_LENGTH 48 21 | 22 | # define SSL3_VERSION 0x0300 23 | # define TLS1_VERSION 0x0301 24 | # define TLS1_1_VERSION 0x0302 25 | # define TLS1_2_VERSION 0x0303 26 | # define TLS1_3_VERSION 0x0304 27 | # define DTLS1_VERSION 0xFEFF 28 | # define DTLS1_2_VERSION 0xFEFD 29 | # define DTLS1_BAD_VER 0x0100 30 | 31 | # ifdef __cplusplus 32 | } 33 | # endif 34 | #endif /* OPENSSL_PROV_SSL_H */ 35 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/provider.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_PROVIDER_H 11 | # define OPENSSL_PROVIDER_H 12 | # pragma once 13 | 14 | # include 15 | 16 | # ifdef __cplusplus 17 | extern "C" { 18 | # endif 19 | 20 | /* Set the default provider search path */ 21 | int OSSL_PROVIDER_set_default_search_path(OSSL_LIB_CTX *, const char *path); 22 | 23 | /* Load and unload a provider */ 24 | OSSL_PROVIDER *OSSL_PROVIDER_load(OSSL_LIB_CTX *, const char *name); 25 | OSSL_PROVIDER *OSSL_PROVIDER_try_load(OSSL_LIB_CTX *, const char *name, 26 | int retain_fallbacks); 27 | int OSSL_PROVIDER_unload(OSSL_PROVIDER *prov); 28 | int OSSL_PROVIDER_available(OSSL_LIB_CTX *, const char *name); 29 | int OSSL_PROVIDER_do_all(OSSL_LIB_CTX *ctx, 30 | int (*cb)(OSSL_PROVIDER *provider, void *cbdata), 31 | void *cbdata); 32 | 33 | const OSSL_PARAM *OSSL_PROVIDER_gettable_params(const OSSL_PROVIDER *prov); 34 | int OSSL_PROVIDER_get_params(const OSSL_PROVIDER *prov, OSSL_PARAM params[]); 35 | int OSSL_PROVIDER_self_test(const OSSL_PROVIDER *prov); 36 | int OSSL_PROVIDER_get_capabilities(const OSSL_PROVIDER *prov, 37 | const char *capability, 38 | OSSL_CALLBACK *cb, 39 | void *arg); 40 | 41 | const OSSL_ALGORITHM *OSSL_PROVIDER_query_operation(const OSSL_PROVIDER *prov, 42 | int operation_id, 43 | int *no_cache); 44 | void OSSL_PROVIDER_unquery_operation(const OSSL_PROVIDER *prov, 45 | int operation_id, const OSSL_ALGORITHM *algs); 46 | void *OSSL_PROVIDER_get0_provider_ctx(const OSSL_PROVIDER *prov); 47 | const OSSL_DISPATCH *OSSL_PROVIDER_get0_dispatch(const OSSL_PROVIDER *prov); 48 | 49 | /* Add a built in providers */ 50 | int OSSL_PROVIDER_add_builtin(OSSL_LIB_CTX *, const char *name, 51 | OSSL_provider_init_fn *init_fn); 52 | 53 | /* Information */ 54 | const char *OSSL_PROVIDER_get0_name(const OSSL_PROVIDER *prov); 55 | 56 | # ifdef __cplusplus 57 | } 58 | # endif 59 | 60 | #endif 61 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/quic.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022-2023 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_QUIC_H 11 | # define OPENSSL_QUIC_H 12 | # pragma once 13 | 14 | # include 15 | # include 16 | 17 | # ifndef OPENSSL_NO_QUIC 18 | 19 | # ifdef __cplusplus 20 | extern "C" { 21 | # endif 22 | 23 | /* 24 | * Method used for non-thread-assisted QUIC client operation. 25 | */ 26 | __owur const SSL_METHOD *OSSL_QUIC_client_method(void); 27 | /* 28 | * Method used for thread-assisted QUIC client operation. 29 | */ 30 | __owur const SSL_METHOD *OSSL_QUIC_client_thread_method(void); 31 | 32 | # ifdef __cplusplus 33 | } 34 | # endif 35 | 36 | # endif /* OPENSSL_NO_QUIC */ 37 | #endif 38 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/rc2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_RC2_H 11 | # define OPENSSL_RC2_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_RC2_H 17 | # endif 18 | 19 | # include 20 | 21 | # ifndef OPENSSL_NO_RC2 22 | # ifdef __cplusplus 23 | extern "C" { 24 | # endif 25 | 26 | # define RC2_BLOCK 8 27 | # define RC2_KEY_LENGTH 16 28 | 29 | # ifndef OPENSSL_NO_DEPRECATED_3_0 30 | typedef unsigned int RC2_INT; 31 | 32 | # define RC2_ENCRYPT 1 33 | # define RC2_DECRYPT 0 34 | 35 | typedef struct rc2_key_st { 36 | RC2_INT data[64]; 37 | } RC2_KEY; 38 | # endif 39 | # ifndef OPENSSL_NO_DEPRECATED_3_0 40 | OSSL_DEPRECATEDIN_3_0 void RC2_set_key(RC2_KEY *key, int len, 41 | const unsigned char *data, int bits); 42 | OSSL_DEPRECATEDIN_3_0 void RC2_ecb_encrypt(const unsigned char *in, 43 | unsigned char *out, RC2_KEY *key, 44 | int enc); 45 | OSSL_DEPRECATEDIN_3_0 void RC2_encrypt(unsigned long *data, RC2_KEY *key); 46 | OSSL_DEPRECATEDIN_3_0 void RC2_decrypt(unsigned long *data, RC2_KEY *key); 47 | OSSL_DEPRECATEDIN_3_0 void RC2_cbc_encrypt(const unsigned char *in, 48 | unsigned char *out, long length, 49 | RC2_KEY *ks, unsigned char *iv, 50 | int enc); 51 | OSSL_DEPRECATEDIN_3_0 void RC2_cfb64_encrypt(const unsigned char *in, 52 | unsigned char *out, long length, 53 | RC2_KEY *schedule, 54 | unsigned char *ivec, 55 | int *num, int enc); 56 | OSSL_DEPRECATEDIN_3_0 void RC2_ofb64_encrypt(const unsigned char *in, 57 | unsigned char *out, long length, 58 | RC2_KEY *schedule, 59 | unsigned char *ivec, 60 | int *num); 61 | # endif 62 | 63 | # ifdef __cplusplus 64 | } 65 | # endif 66 | # endif 67 | 68 | #endif 69 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/rc4.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_RC4_H 11 | # define OPENSSL_RC4_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_RC4_H 17 | # endif 18 | 19 | # include 20 | 21 | # ifndef OPENSSL_NO_RC4 22 | # include 23 | # ifdef __cplusplus 24 | extern "C" { 25 | # endif 26 | 27 | # ifndef OPENSSL_NO_DEPRECATED_3_0 28 | typedef struct rc4_key_st { 29 | RC4_INT x, y; 30 | RC4_INT data[256]; 31 | } RC4_KEY; 32 | # endif 33 | # ifndef OPENSSL_NO_DEPRECATED_3_0 34 | OSSL_DEPRECATEDIN_3_0 const char *RC4_options(void); 35 | OSSL_DEPRECATEDIN_3_0 void RC4_set_key(RC4_KEY *key, int len, 36 | const unsigned char *data); 37 | OSSL_DEPRECATEDIN_3_0 void RC4(RC4_KEY *key, size_t len, 38 | const unsigned char *indata, 39 | unsigned char *outdata); 40 | # endif 41 | 42 | # ifdef __cplusplus 43 | } 44 | # endif 45 | # endif 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/rc5.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_RC5_H 11 | # define OPENSSL_RC5_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_RC5_H 17 | # endif 18 | 19 | # include 20 | 21 | # ifndef OPENSSL_NO_RC5 22 | # ifdef __cplusplus 23 | extern "C" { 24 | # endif 25 | 26 | # define RC5_32_BLOCK 8 27 | # define RC5_32_KEY_LENGTH 16/* This is a default, max is 255 */ 28 | 29 | # ifndef OPENSSL_NO_DEPRECATED_3_0 30 | # define RC5_ENCRYPT 1 31 | # define RC5_DECRYPT 0 32 | 33 | # define RC5_32_INT unsigned int 34 | 35 | /* 36 | * This are the only values supported. Tweak the code if you want more The 37 | * most supported modes will be RC5-32/12/16 RC5-32/16/8 38 | */ 39 | # define RC5_8_ROUNDS 8 40 | # define RC5_12_ROUNDS 12 41 | # define RC5_16_ROUNDS 16 42 | 43 | typedef struct rc5_key_st { 44 | /* Number of rounds */ 45 | int rounds; 46 | RC5_32_INT data[2 * (RC5_16_ROUNDS + 1)]; 47 | } RC5_32_KEY; 48 | # endif 49 | # ifndef OPENSSL_NO_DEPRECATED_3_0 50 | OSSL_DEPRECATEDIN_3_0 int RC5_32_set_key(RC5_32_KEY *key, int len, 51 | const unsigned char *data, 52 | int rounds); 53 | OSSL_DEPRECATEDIN_3_0 void RC5_32_ecb_encrypt(const unsigned char *in, 54 | unsigned char *out, 55 | RC5_32_KEY *key, 56 | int enc); 57 | OSSL_DEPRECATEDIN_3_0 void RC5_32_encrypt(unsigned long *data, RC5_32_KEY *key); 58 | OSSL_DEPRECATEDIN_3_0 void RC5_32_decrypt(unsigned long *data, RC5_32_KEY *key); 59 | OSSL_DEPRECATEDIN_3_0 void RC5_32_cbc_encrypt(const unsigned char *in, 60 | unsigned char *out, long length, 61 | RC5_32_KEY *ks, unsigned char *iv, 62 | int enc); 63 | OSSL_DEPRECATEDIN_3_0 void RC5_32_cfb64_encrypt(const unsigned char *in, 64 | unsigned char *out, long length, 65 | RC5_32_KEY *schedule, 66 | unsigned char *ivec, int *num, 67 | int enc); 68 | OSSL_DEPRECATEDIN_3_0 void RC5_32_ofb64_encrypt(const unsigned char *in, 69 | unsigned char *out, long length, 70 | RC5_32_KEY *schedule, 71 | unsigned char *ivec, int *num); 72 | # endif 73 | 74 | # ifdef __cplusplus 75 | } 76 | # endif 77 | # endif 78 | 79 | #endif 80 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/ripemd.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_RIPEMD_H 11 | # define OPENSSL_RIPEMD_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_RIPEMD_H 17 | # endif 18 | 19 | # include 20 | 21 | # ifndef OPENSSL_NO_RMD160 22 | # include 23 | # include 24 | 25 | # define RIPEMD160_DIGEST_LENGTH 20 26 | 27 | # ifdef __cplusplus 28 | extern "C" { 29 | # endif 30 | # if !defined(OPENSSL_NO_DEPRECATED_3_0) 31 | 32 | # define RIPEMD160_LONG unsigned int 33 | 34 | # define RIPEMD160_CBLOCK 64 35 | # define RIPEMD160_LBLOCK (RIPEMD160_CBLOCK/4) 36 | 37 | typedef struct RIPEMD160state_st { 38 | RIPEMD160_LONG A, B, C, D, E; 39 | RIPEMD160_LONG Nl, Nh; 40 | RIPEMD160_LONG data[RIPEMD160_LBLOCK]; 41 | unsigned int num; 42 | } RIPEMD160_CTX; 43 | # endif 44 | # ifndef OPENSSL_NO_DEPRECATED_3_0 45 | OSSL_DEPRECATEDIN_3_0 int RIPEMD160_Init(RIPEMD160_CTX *c); 46 | OSSL_DEPRECATEDIN_3_0 int RIPEMD160_Update(RIPEMD160_CTX *c, const void *data, 47 | size_t len); 48 | OSSL_DEPRECATEDIN_3_0 int RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c); 49 | OSSL_DEPRECATEDIN_3_0 unsigned char *RIPEMD160(const unsigned char *d, size_t n, 50 | unsigned char *md); 51 | OSSL_DEPRECATEDIN_3_0 void RIPEMD160_Transform(RIPEMD160_CTX *c, 52 | const unsigned char *b); 53 | # endif 54 | 55 | # ifdef __cplusplus 56 | } 57 | # endif 58 | # endif 59 | #endif 60 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/srtp.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2011-2016 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | /* 11 | * DTLS code by Eric Rescorla 12 | * 13 | * Copyright (C) 2006, Network Resonance, Inc. Copyright (C) 2011, RTFM, Inc. 14 | */ 15 | 16 | #ifndef OPENSSL_SRTP_H 17 | # define OPENSSL_SRTP_H 18 | # pragma once 19 | 20 | # include 21 | # ifndef OPENSSL_NO_DEPRECATED_3_0 22 | # define HEADER_D1_SRTP_H 23 | # endif 24 | 25 | # include 26 | 27 | #ifdef __cplusplus 28 | extern "C" { 29 | #endif 30 | 31 | # define SRTP_AES128_CM_SHA1_80 0x0001 32 | # define SRTP_AES128_CM_SHA1_32 0x0002 33 | # define SRTP_AES128_F8_SHA1_80 0x0003 34 | # define SRTP_AES128_F8_SHA1_32 0x0004 35 | # define SRTP_NULL_SHA1_80 0x0005 36 | # define SRTP_NULL_SHA1_32 0x0006 37 | 38 | /* AEAD SRTP protection profiles from RFC 7714 */ 39 | # define SRTP_AEAD_AES_128_GCM 0x0007 40 | # define SRTP_AEAD_AES_256_GCM 0x0008 41 | 42 | # ifndef OPENSSL_NO_SRTP 43 | 44 | __owur int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles); 45 | __owur int SSL_set_tlsext_use_srtp(SSL *ssl, const char *profiles); 46 | 47 | __owur STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(SSL *ssl); 48 | __owur SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s); 49 | 50 | # endif 51 | 52 | #ifdef __cplusplus 53 | } 54 | #endif 55 | 56 | #endif 57 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/ssl2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_SSL2_H 11 | # define OPENSSL_SSL2_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_SSL2_H 17 | # endif 18 | 19 | #ifdef __cplusplus 20 | extern "C" { 21 | #endif 22 | 23 | # define SSL2_VERSION 0x0002 24 | 25 | # define SSL2_MT_CLIENT_HELLO 1 26 | 27 | #ifdef __cplusplus 28 | } 29 | #endif 30 | #endif 31 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/storeerr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_STOREERR_H 12 | # define OPENSSL_STOREERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * OSSL_STORE reason codes. 23 | */ 24 | # define OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE 107 25 | # define OSSL_STORE_R_BAD_PASSWORD_READ 115 26 | # define OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC 113 27 | # define OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST 121 28 | # define OSSL_STORE_R_INVALID_SCHEME 106 29 | # define OSSL_STORE_R_IS_NOT_A 112 30 | # define OSSL_STORE_R_LOADER_INCOMPLETE 116 31 | # define OSSL_STORE_R_LOADING_STARTED 117 32 | # define OSSL_STORE_R_NOT_A_CERTIFICATE 100 33 | # define OSSL_STORE_R_NOT_A_CRL 101 34 | # define OSSL_STORE_R_NOT_A_NAME 103 35 | # define OSSL_STORE_R_NOT_A_PRIVATE_KEY 102 36 | # define OSSL_STORE_R_NOT_A_PUBLIC_KEY 122 37 | # define OSSL_STORE_R_NOT_PARAMETERS 104 38 | # define OSSL_STORE_R_NO_LOADERS_FOUND 123 39 | # define OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR 114 40 | # define OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE 108 41 | # define OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES 119 42 | # define OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED 109 43 | # define OSSL_STORE_R_UNREGISTERED_SCHEME 105 44 | # define OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE 110 45 | # define OSSL_STORE_R_UNSUPPORTED_OPERATION 118 46 | # define OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE 120 47 | # define OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED 111 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/symhacks.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_SYMHACKS_H 11 | # define OPENSSL_SYMHACKS_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_SYMHACKS_H 17 | # endif 18 | 19 | # include 20 | 21 | /* Case insensitive linking causes problems.... */ 22 | # if defined(OPENSSL_SYS_VMS) 23 | # undef ERR_load_CRYPTO_strings 24 | # define ERR_load_CRYPTO_strings ERR_load_CRYPTOlib_strings 25 | # undef OCSP_crlID_new 26 | # define OCSP_crlID_new OCSP_crlID2_new 27 | 28 | # undef d2i_ECPARAMETERS 29 | # define d2i_ECPARAMETERS d2i_UC_ECPARAMETERS 30 | # undef i2d_ECPARAMETERS 31 | # define i2d_ECPARAMETERS i2d_UC_ECPARAMETERS 32 | # undef d2i_ECPKPARAMETERS 33 | # define d2i_ECPKPARAMETERS d2i_UC_ECPKPARAMETERS 34 | # undef i2d_ECPKPARAMETERS 35 | # define i2d_ECPKPARAMETERS i2d_UC_ECPKPARAMETERS 36 | 37 | # endif 38 | 39 | #endif /* ! defined HEADER_VMS_IDHACKS_H */ 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/thread.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. 3 | * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_THREAD_H 12 | # define OPENSSL_THREAD_H 13 | 14 | # define OSSL_THREAD_SUPPORT_FLAG_THREAD_POOL (1U<<0) 15 | # define OSSL_THREAD_SUPPORT_FLAG_DEFAULT_SPAWN (1U<<1) 16 | 17 | # include 18 | 19 | # ifdef __cplusplus 20 | extern "C" { 21 | # endif 22 | 23 | uint32_t OSSL_get_thread_support_flags(void); 24 | int OSSL_set_max_threads(OSSL_LIB_CTX *ctx, uint64_t max_threads); 25 | uint64_t OSSL_get_max_threads(OSSL_LIB_CTX *ctx); 26 | 27 | # ifdef __cplusplus 28 | } 29 | # endif 30 | 31 | #endif /* OPENSSL_THREAD_H */ 32 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/txt_db.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_TXT_DB_H 11 | # define OPENSSL_TXT_DB_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_TXT_DB_H 17 | # endif 18 | 19 | # include 20 | # include 21 | # include 22 | # include 23 | 24 | # define DB_ERROR_OK 0 25 | # define DB_ERROR_MALLOC 1 26 | # define DB_ERROR_INDEX_CLASH 2 27 | # define DB_ERROR_INDEX_OUT_OF_RANGE 3 28 | # define DB_ERROR_NO_INDEX 4 29 | # define DB_ERROR_INSERT_INDEX_CLASH 5 30 | # define DB_ERROR_WRONG_NUM_FIELDS 6 31 | 32 | #ifdef __cplusplus 33 | extern "C" { 34 | #endif 35 | 36 | typedef OPENSSL_STRING *OPENSSL_PSTRING; 37 | DEFINE_SPECIAL_STACK_OF(OPENSSL_PSTRING, OPENSSL_STRING) 38 | 39 | typedef struct txt_db_st { 40 | int num_fields; 41 | STACK_OF(OPENSSL_PSTRING) *data; 42 | LHASH_OF(OPENSSL_STRING) **index; 43 | int (**qual) (OPENSSL_STRING *); 44 | long error; 45 | long arg1; 46 | long arg2; 47 | OPENSSL_STRING *arg_row; 48 | } TXT_DB; 49 | 50 | TXT_DB *TXT_DB_read(BIO *in, int num); 51 | long TXT_DB_write(BIO *out, TXT_DB *db); 52 | int TXT_DB_create_index(TXT_DB *db, int field, int (*qual) (OPENSSL_STRING *), 53 | OPENSSL_LH_HASHFUNC hash, OPENSSL_LH_COMPFUNC cmp); 54 | void TXT_DB_free(TXT_DB *db); 55 | OPENSSL_STRING *TXT_DB_get_by_index(TXT_DB *db, int idx, 56 | OPENSSL_STRING *value); 57 | int TXT_DB_insert(TXT_DB *db, OPENSSL_STRING *value); 58 | 59 | #ifdef __cplusplus 60 | } 61 | #endif 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/uierr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_UIERR_H 12 | # define OPENSSL_UIERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * UI reason codes. 23 | */ 24 | # define UI_R_COMMON_OK_AND_CANCEL_CHARACTERS 104 25 | # define UI_R_INDEX_TOO_LARGE 102 26 | # define UI_R_INDEX_TOO_SMALL 103 27 | # define UI_R_NO_RESULT_BUFFER 105 28 | # define UI_R_PROCESSING_ERROR 107 29 | # define UI_R_RESULT_TOO_LARGE 100 30 | # define UI_R_RESULT_TOO_SMALL 101 31 | # define UI_R_SYSASSIGN_ERROR 109 32 | # define UI_R_SYSDASSGN_ERROR 110 33 | # define UI_R_SYSQIOW_ERROR 111 34 | # define UI_R_UNKNOWN_CONTROL_COMMAND 106 35 | # define UI_R_UNKNOWN_TTYGET_ERRNO_VALUE 108 36 | # define UI_R_USER_DATA_DUPLICATION_UNSUPPORTED 112 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/openssl/whrlpool.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2020 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_WHRLPOOL_H 11 | # define OPENSSL_WHRLPOOL_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_WHRLPOOL_H 17 | # endif 18 | 19 | # include 20 | 21 | # ifndef OPENSSL_NO_WHIRLPOOL 22 | # include 23 | # include 24 | # ifdef __cplusplus 25 | extern "C" { 26 | # endif 27 | 28 | # define WHIRLPOOL_DIGEST_LENGTH (512/8) 29 | 30 | # if !defined(OPENSSL_NO_DEPRECATED_3_0) 31 | 32 | # define WHIRLPOOL_BBLOCK 512 33 | # define WHIRLPOOL_COUNTER (256/8) 34 | 35 | typedef struct { 36 | union { 37 | unsigned char c[WHIRLPOOL_DIGEST_LENGTH]; 38 | /* double q is here to ensure 64-bit alignment */ 39 | double q[WHIRLPOOL_DIGEST_LENGTH / sizeof(double)]; 40 | } H; 41 | unsigned char data[WHIRLPOOL_BBLOCK / 8]; 42 | unsigned int bitoff; 43 | size_t bitlen[WHIRLPOOL_COUNTER / sizeof(size_t)]; 44 | } WHIRLPOOL_CTX; 45 | # endif 46 | # ifndef OPENSSL_NO_DEPRECATED_3_0 47 | OSSL_DEPRECATEDIN_3_0 int WHIRLPOOL_Init(WHIRLPOOL_CTX *c); 48 | OSSL_DEPRECATEDIN_3_0 int WHIRLPOOL_Update(WHIRLPOOL_CTX *c, 49 | const void *inp, size_t bytes); 50 | OSSL_DEPRECATEDIN_3_0 void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c, 51 | const void *inp, size_t bits); 52 | OSSL_DEPRECATEDIN_3_0 int WHIRLPOOL_Final(unsigned char *md, WHIRLPOOL_CTX *c); 53 | OSSL_DEPRECATEDIN_3_0 unsigned char *WHIRLPOOL(const void *inp, size_t bytes, 54 | unsigned char *md); 55 | # endif 56 | 57 | # ifdef __cplusplus 58 | } 59 | # endif 60 | # endif 61 | 62 | #endif 63 | -------------------------------------------------------------------------------- /app/src/main/cpp/nothing.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/cpp/nothing.c -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/BootReceiver.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv 2 | 3 | import android.content.BroadcastReceiver 4 | import android.content.Context 5 | import android.content.Intent 6 | 7 | class BootReceiver : BroadcastReceiver() { 8 | 9 | override fun onReceive(context: Context, intent: Intent) { 10 | if (SP.bootStartup) { 11 | context.startActivity( 12 | Intent(context, MainActivity::class.java) 13 | .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) 14 | ) 15 | } 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/CardPresenter.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv 2 | 3 | import android.content.Context 4 | import android.graphics.Color 5 | import android.view.ContextThemeWrapper 6 | import android.view.ViewGroup 7 | import android.widget.ImageView 8 | import androidx.leanback.widget.ImageCardView 9 | import androidx.leanback.widget.Presenter 10 | import com.bumptech.glide.Glide 11 | import com.lizongying.mytv.models.TVViewModel 12 | 13 | class CardPresenter( 14 | private val context: Context, 15 | ) : Presenter() { 16 | 17 | override fun onCreateViewHolder(parent: ViewGroup): ViewHolder { 18 | val cardView = object : 19 | ImageCardView(ContextThemeWrapper(parent.context, R.style.CustomImageCardTheme)) {} 20 | 21 | cardView.isFocusable = true 22 | cardView.isFocusableInTouchMode = true 23 | return ViewHolder(cardView) 24 | } 25 | 26 | override fun onBindViewHolder(viewHolder: ViewHolder, item: Any?) { 27 | val tvViewModel = item as TVViewModel 28 | val cardView = viewHolder.view as ImageCardView 29 | 30 | cardView.titleText = tvViewModel.getTV().title 31 | cardView.setMainImageDimensions(CARD_WIDTH, CARD_HEIGHT) 32 | cardView.tag = tvViewModel.videoUrl.value 33 | 34 | cardView.mainImageView?.let { 35 | Glide.with(viewHolder.view.context) 36 | .load(tvViewModel.getTV().logo) 37 | .centerInside() 38 | .into(it) 39 | } 40 | 41 | cardView.setBackgroundColor(Color.WHITE) 42 | cardView.setMainImageScaleType(ImageView.ScaleType.CENTER_INSIDE) 43 | 44 | // cardView.setOnFocusChangeListener { v, hasFocus -> 45 | // run { 46 | // if (hasFocus) { 47 | // if (v != null) { 48 | // (v as ImageCardView).setInfoAreaBackgroundColor(context.resources.getColor(R.color.focus)) 49 | // } 50 | // } else { 51 | // if (v != null) { 52 | // (v as ImageCardView).setInfoAreaBackgroundColor(context.resources.getColor(R.color.ic_launcher_background)) 53 | // } 54 | // } 55 | // } 56 | // } 57 | 58 | val epg = tvViewModel.epg.value?.filter { it.beginTime < Utils.getDateTimestamp() } 59 | if (!epg.isNullOrEmpty()) { 60 | cardView.contentText = epg.last().title 61 | } else { 62 | cardView.contentText = "" 63 | } 64 | } 65 | 66 | override fun onUnbindViewHolder(viewHolder: ViewHolder) { 67 | val cardView = viewHolder.view as ImageCardView 68 | cardView.mainImage = null 69 | } 70 | 71 | companion object { 72 | private const val TAG = "CardPresenter" 73 | private const val CARD_WIDTH = 300 74 | private const val CARD_HEIGHT = 101 75 | } 76 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/ConfirmationFragment.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv 2 | 3 | import android.app.AlertDialog 4 | import android.app.Dialog 5 | import android.os.Bundle 6 | import androidx.fragment.app.DialogFragment 7 | 8 | class ConfirmationFragment( 9 | private val listener: ConfirmationListener, 10 | private val message: String 11 | ) : DialogFragment() { 12 | 13 | override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { 14 | return activity?.let { 15 | val builder = AlertDialog.Builder(it) 16 | builder.setTitle("确定更新吗?") 17 | .setMessage(message) 18 | .setPositiveButton( 19 | "确定" 20 | ) { _, _ -> 21 | listener.onConfirm() 22 | } 23 | .setNegativeButton( 24 | "取消" 25 | ) { _, _ -> 26 | listener.onCancel() 27 | } 28 | builder.create() 29 | } ?: throw IllegalStateException("Activity cannot be null") 30 | } 31 | 32 | interface ConfirmationListener { 33 | fun onConfirm() 34 | fun onCancel() 35 | } 36 | } 37 | 38 | -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/Encryptor.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv 2 | 3 | import android.content.Context 4 | 5 | class Encryptor { 6 | external fun init(context: Context) 7 | 8 | external fun encrypt(t: String, e: String, r: String, n: String, i: String): String 9 | 10 | external fun hash(data: ByteArray): ByteArray? 11 | 12 | external fun hash2(data: ByteArray): ByteArray? 13 | 14 | companion object { 15 | init { 16 | System.loadLibrary("native") 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/ErrorFragment.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv 2 | 3 | import android.view.View 4 | import androidx.core.content.ContextCompat 5 | import androidx.leanback.app.ErrorSupportFragment 6 | 7 | class ErrorFragment : ErrorSupportFragment() { 8 | 9 | internal fun setErrorContent(message: String) { 10 | imageDrawable = 11 | ContextCompat.getDrawable(context!!, androidx.leanback.R.drawable.lb_ic_sad_cloud) 12 | this.message = message 13 | setDefaultBackground(TRANSLUCENT) 14 | backgroundDrawable = ContextCompat.getDrawable( 15 | context!!, 16 | R.color.black 17 | ) 18 | 19 | buttonText = resources.getString(R.string.dismiss_error) 20 | buttonClickListener = View.OnClickListener { 21 | fragmentManager!!.beginTransaction().remove(this@ErrorFragment).commit() 22 | } 23 | } 24 | 25 | companion object { 26 | private const val TRANSLUCENT = false 27 | } 28 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/InfoFragment.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv 2 | 3 | import android.os.Bundle 4 | import android.os.Handler 5 | import android.util.Log 6 | import android.view.LayoutInflater 7 | import android.view.View 8 | import android.view.ViewGroup 9 | import androidx.fragment.app.Fragment 10 | import com.bumptech.glide.Glide 11 | import com.lizongying.mytv.databinding.InfoBinding 12 | import com.lizongying.mytv.models.TVViewModel 13 | 14 | class InfoFragment : Fragment() { 15 | private var _binding: InfoBinding? = null 16 | private val binding get() = _binding!! 17 | 18 | private val handler = Handler() 19 | private val delay: Long = 3000 20 | 21 | override fun onCreateView( 22 | inflater: LayoutInflater, container: ViewGroup?, 23 | savedInstanceState: Bundle? 24 | ): View { 25 | _binding = InfoBinding.inflate(inflater, container, false) 26 | _binding!!.root.visibility = View.GONE 27 | (activity as MainActivity).fragmentReady("InfoFragment") 28 | return binding.root 29 | } 30 | 31 | fun show(tvViewModel: TVViewModel) { 32 | binding.textView.text = tvViewModel.getTV().title 33 | 34 | Glide.with(this) 35 | .load(tvViewModel.getTV().logo) 36 | .into(binding.infoLogo) 37 | 38 | Log.i(TAG, "${tvViewModel.getTV().title} ${tvViewModel.epg.value}") 39 | val epg = tvViewModel.epg.value?.filter { it.beginTime < Utils.getDateTimestamp() } 40 | if (!epg.isNullOrEmpty()) { 41 | binding.infoDesc.text = epg.last().title 42 | } else { 43 | binding.infoDesc.text = "" 44 | } 45 | 46 | handler.removeCallbacks(removeRunnable) 47 | view?.visibility = View.VISIBLE 48 | handler.postDelayed(removeRunnable, delay) 49 | } 50 | 51 | override fun onResume() { 52 | super.onResume() 53 | handler.postDelayed(removeRunnable, delay) 54 | } 55 | 56 | override fun onPause() { 57 | super.onPause() 58 | handler.removeCallbacks(removeRunnable) 59 | } 60 | 61 | private val removeRunnable = Runnable { 62 | view?.visibility = View.GONE 63 | } 64 | 65 | override fun onDestroyView() { 66 | super.onDestroyView() 67 | _binding = null 68 | } 69 | 70 | companion object { 71 | private const val TAG = "InfoFragment" 72 | } 73 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/InitializerProvider.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv 2 | 3 | import android.content.ContentProvider 4 | import android.content.ContentValues 5 | import android.net.Uri 6 | 7 | internal class InitializerProvider : ContentProvider() { 8 | 9 | // Happens before Application#onCreate.It's fine to init something here 10 | override fun onCreate(): Boolean { 11 | SP.init(context!!) 12 | return true 13 | } 14 | 15 | override fun query( 16 | uri: Uri, 17 | projection: Array?, 18 | selection: String?, 19 | selectionArgs: Array?, 20 | sortOrder: String?, 21 | ) = unsupported() 22 | 23 | override fun getType(uri: Uri) = unsupported() 24 | 25 | override fun insert(uri: Uri, values: ContentValues?) = unsupported() 26 | 27 | override fun delete(uri: Uri, selection: String?, selectionArgs: Array?) = 28 | unsupported() 29 | 30 | override fun update( 31 | uri: Uri, 32 | values: ContentValues?, 33 | selection: String?, 34 | selectionArgs: Array?, 35 | ) = unsupported() 36 | 37 | private fun unsupported(errorMessage: String? = null): Nothing = 38 | throw UnsupportedOperationException(errorMessage) 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/MyApplication.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv 2 | 3 | import android.app.Application 4 | import android.content.Context 5 | import android.util.DisplayMetrics 6 | import android.view.WindowManager 7 | 8 | class MyApplication : Application() { 9 | private lateinit var displayMetrics: DisplayMetrics 10 | 11 | override fun onCreate() { 12 | super.onCreate() 13 | 14 | displayMetrics = DisplayMetrics() 15 | val windowManager = getSystemService(Context.WINDOW_SERVICE) as WindowManager 16 | // windowManager.defaultDisplay.getRealMetrics(displayMetrics) 17 | windowManager.defaultDisplay.getMetrics(displayMetrics) 18 | } 19 | 20 | fun getDisplayMetrics(): DisplayMetrics { 21 | return displayMetrics 22 | } 23 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/NetworkChangeReceiver.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv 2 | 3 | import android.content.BroadcastReceiver 4 | import android.content.Context 5 | import android.content.Intent 6 | import android.net.ConnectivityManager 7 | 8 | class NetworkChangeReceiver : BroadcastReceiver() { 9 | override fun onReceive(context: Context?, intent: Intent?) { 10 | if (intent?.action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) { 11 | val isConnected = context?.isNetworkConnected 12 | if (isConnected == true) { 13 | } 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/SP.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv 2 | 3 | import android.content.Context 4 | import android.content.SharedPreferences 5 | 6 | object SP { 7 | // Name of the sp file TODO Should use a meaningful name and do migrations 8 | private const val SP_FILE_NAME = "MainActivity" 9 | 10 | // If Change channel with up and down in reversed order or not 11 | private const val KEY_CHANNEL_REVERSAL = "channel_reversal" 12 | 13 | // If use channel num to select channel or not 14 | private const val KEY_CHANNEL_NUM = "channel_num" 15 | 16 | private const val KEY_TIME = "time" 17 | 18 | // If start app on device boot or not 19 | private const val KEY_BOOT_STARTUP = "boot_startup" 20 | 21 | private const val KEY_GRID = "grid" 22 | 23 | // Position in list of the selected channel item 24 | private const val KEY_POSITION = "position" 25 | 26 | // guid 27 | private const val KEY_GUID = "guid" 28 | 29 | private lateinit var sp: SharedPreferences 30 | 31 | /** 32 | * The method must be invoked as early as possible(At least before using the keys) 33 | */ 34 | fun init(context: Context) { 35 | sp = context.getSharedPreferences(SP_FILE_NAME, Context.MODE_PRIVATE) 36 | } 37 | 38 | var channelReversal: Boolean 39 | get() = sp.getBoolean(KEY_CHANNEL_REVERSAL, false) 40 | set(value) = sp.edit().putBoolean(KEY_CHANNEL_REVERSAL, value).apply() 41 | 42 | var channelNum: Boolean 43 | get() = sp.getBoolean(KEY_CHANNEL_NUM, true) 44 | set(value) = sp.edit().putBoolean(KEY_CHANNEL_NUM, value).apply() 45 | 46 | var time: Boolean 47 | get() = sp.getBoolean(KEY_TIME, true) 48 | set(value) = sp.edit().putBoolean(KEY_TIME, value).apply() 49 | 50 | var bootStartup: Boolean 51 | get() = sp.getBoolean(KEY_BOOT_STARTUP, false) 52 | set(value) = sp.edit().putBoolean(KEY_BOOT_STARTUP, value).apply() 53 | 54 | var grid: Boolean 55 | get() = sp.getBoolean(KEY_GRID, false) 56 | set(value) = sp.edit().putBoolean(KEY_GRID, value).apply() 57 | 58 | var itemPosition: Int 59 | get() = sp.getInt(KEY_POSITION, 0) 60 | set(value) = sp.edit().putInt(KEY_POSITION, value).apply() 61 | 62 | var guid: String 63 | get() = sp.getString(KEY_GUID, "") ?: "" 64 | set(value) = sp.edit().putString(KEY_GUID, value).apply() 65 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/TV.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv 2 | 3 | import com.lizongying.mytv.models.ProgramType 4 | import java.io.Serializable 5 | 6 | data class TV( 7 | var id: Int = 0, 8 | var title: String, 9 | var alias: String = "", 10 | var videoUrl: List, 11 | var channel: String = "", 12 | var logo: Any = "", 13 | var pid: String = "", 14 | var sid: String = "", 15 | var programType: ProgramType, 16 | var needToken: Boolean = false, 17 | var mustToken: Boolean = false, 18 | 19 | ) : Serializable { 20 | 21 | override fun toString(): String { 22 | return "TV{" + 23 | "id=" + id + 24 | ", title='" + title + '\'' + 25 | ", videoUrl='" + videoUrl + '\'' + 26 | ", logo='" + logo + '\'' + 27 | ", pid='" + pid + '\'' + 28 | ", sid='" + sid + '\'' + 29 | ", programType='" + programType + '\'' + 30 | '}' 31 | } 32 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/api/Auth.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.api 2 | 3 | import android.util.Log 4 | import okhttp3.MediaType 5 | import okhttp3.RequestBody 6 | import okio.BufferedSink 7 | import java.io.IOException 8 | 9 | data class Auth( 10 | val code: Int, 11 | val msg: String, 12 | val data: AuthData, 13 | ) 14 | 15 | data class AuthData( 16 | val token: String, 17 | ) 18 | 19 | data class AuthRequest( 20 | var data: String, 21 | ) : RequestBody() { 22 | override fun contentType(): MediaType? { 23 | return MediaType.parse("application/x-www-form-urlencoded;charset=UTF-8") 24 | } 25 | 26 | override fun writeTo(sink: BufferedSink) { 27 | try { 28 | sink.writeUtf8(data) 29 | } catch (e: IOException) { 30 | Log.e(TAG, "$e") 31 | } 32 | } 33 | 34 | companion object { 35 | private const val TAG = "AuthRequest" 36 | } 37 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/api/DnsCache.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.api 2 | 3 | import okhttp3.Dns 4 | import java.net.InetAddress 5 | import java.util.concurrent.ConcurrentHashMap 6 | 7 | class DnsCache : Dns { 8 | private val dnsCache: MutableMap> = ConcurrentHashMap() 9 | 10 | override fun lookup(hostname: String): List { 11 | dnsCache[hostname]?.let { 12 | return it 13 | } 14 | 15 | val addresses = InetAddress.getAllByName(hostname).toList() 16 | 17 | if (addresses.isNotEmpty()) { 18 | dnsCache[hostname] = addresses 19 | } 20 | 21 | return addresses 22 | } 23 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/api/FAuth.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.api 2 | 3 | 4 | data class FAuth( 5 | val data: Data, 6 | ) { 7 | data class Data( 8 | val live_url: String, 9 | ) 10 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/api/FAuthService.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.api 2 | 3 | import retrofit2.Call 4 | import retrofit2.http.GET 5 | import retrofit2.http.Header 6 | import retrofit2.http.Path 7 | import retrofit2.http.Query 8 | 9 | interface FAuthService { 10 | @GET("api/v3/hub/live/auth-url") 11 | fun getAuth( 12 | @Header("token") token: String, 13 | @Query("live_id") live_id: String = "", 14 | @Query("live_qa") live_qa: String = "", 15 | ): Call 16 | 17 | @GET("api/v3/live/{liveId}/resources") 18 | fun getEPG( 19 | @Path("liveId") liveId: String, 20 | @Query("date") date: String, 21 | @Query("dir") dir: String = "asc" 22 | ): Call> 23 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/api/FEPG.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.api 2 | 3 | 4 | data class FEPG( 5 | val title: String, 6 | val event_time: String, 7 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/api/Info.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.api 2 | 3 | data class Info( 4 | val code: Int?, 5 | val msg: String?, 6 | val data: Data, 7 | ) { 8 | data class Data( 9 | val token: String, 10 | ) 11 | } 12 | 13 | data class Token( 14 | val e: Int?, 15 | val t: String?, 16 | ) 17 | 18 | data class InfoV2( 19 | val o: String?, 20 | val f: String?, 21 | val t: String?, 22 | val e: Int?, 23 | val c: Int?, 24 | ) 25 | 26 | data class ReleaseV2( 27 | val n: String?, 28 | val u: String?, 29 | val d: String?, 30 | val c: Int?, 31 | ) 32 | 33 | data class TimeResponse( 34 | val data: Time 35 | ) { 36 | data class Time( 37 | val t: String 38 | ) 39 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/api/KvcollectRequest.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.api 2 | 3 | data class KvcollectRequest( 4 | val BossId: Int = 2727, 5 | val Pwd: Int = 1424084450, 6 | val cdn: String = "waibao", 7 | val cmd: Int = 263, 8 | val defn: String = "fhd", 9 | val downspeed: Double = 10.0, 10 | val durl: String = "", // 11 | val errcode: String = "", 12 | val fact1: String = "ysp_pc_live_b", 13 | val firstreport: Int = 0, 14 | val fplayerver: String = "100", 15 | val ftime: String = "", // 16 | val geturltime: Int = 0, 17 | val guid: String = "", // 18 | val hc_openid: String = "", 19 | val hh_ua: String = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36", 20 | val live_type: String = "", 21 | val livepid: String = "", // 22 | val login_type: String = "", 23 | val open_id: String = "", 24 | val openid: String = "", 25 | val platform: String = "5910204", 26 | val playno: String = "", // 27 | val prd: Int = 60000, 28 | val prog: String = "", // 29 | val rand_str: String = "", // 30 | val sRef: String = "", 31 | val sUrl: String = "", // 32 | val sdtfrom: String = "ysp_pc_01", 33 | val seq: Int = 9, // 34 | var signature: String = "", 35 | val url: String = "", // 36 | val viewid: String = "", // 37 | val _dc: Double = 0.0, 38 | ) 39 | 40 | 41 | data class KvcollectRequest2( 42 | val BossId: Int = 2727, 43 | val Pwd: Int = 1424084450, 44 | val cdn: String = "waibao", 45 | val cmd: Int = 263, 46 | val defn: String = "fhd", 47 | val downspeed: String = "10", 48 | val durl: String = "", // 49 | val errcode: String = "", 50 | val fact1: String = "ysp_pc_live_b", 51 | val firstreport: Int = 0, 52 | val fplayerver: String = "100", 53 | val ftime: String = "", // 54 | val geturltime: Int = 0, 55 | val guid: String = "", // 56 | val hc_openid: String = "", 57 | val hh_ua: String = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36", 58 | val live_type: String = "", 59 | val livepid: String = "", // 60 | val login_type: String = "", 61 | val open_id: String = "", 62 | val openid: String = "", 63 | val platform: String = "5910204", 64 | val playno: String = "", // 65 | val prd: Int = 60000, 66 | val prog: String = "", // 67 | val rand_str: String = "", // 68 | val sRef: String = "", 69 | val sUrl: String = "", // 70 | val sdtfrom: String = "ysp_pc_01", 71 | val seq: Int = 9, // 72 | var signature: String = "", 73 | val url: String = "", // 74 | val viewid: String = "", // 75 | val _dc: Double = 0.0, 76 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/api/LiveInfo.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.api 2 | 3 | import android.util.Log 4 | import okhttp3.MediaType 5 | import okhttp3.RequestBody 6 | import okio.BufferedSink 7 | import java.io.IOException 8 | 9 | data class LiveInfo( 10 | val code: Int, 11 | val msg: String, 12 | val data: LiveInfoData, 13 | ) 14 | 15 | data class LiveInfoData( 16 | val extended_param: String, 17 | val chanll: String, 18 | val playurl: String, 19 | val errinfo: String, 20 | ) 21 | 22 | data class LiveInfoRequest( 23 | var data: String, 24 | ) : RequestBody() { 25 | override fun contentType(): MediaType? { 26 | return MediaType.parse("application/json;charset=UTF-8") 27 | } 28 | 29 | override fun writeTo(sink: BufferedSink) { 30 | try { 31 | sink.writeUtf8(data) 32 | } catch (e: IOException) { 33 | Log.e(TAG, "$e") 34 | } 35 | } 36 | 37 | companion object { 38 | private const val TAG = "LiveInfoRequest" 39 | } 40 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/api/ReleaseService.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.api 2 | 3 | import retrofit2.Call 4 | import retrofit2.http.GET 5 | import retrofit2.http.Path 6 | 7 | interface ReleaseService { 8 | @GET("my-tv/v2/release/{name}") 9 | fun getRelease( 10 | @Path("name") date: String = "1", 11 | ): Call 12 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/api/Tls12SocketFactory.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.api 2 | 3 | import java.io.IOException 4 | import java.net.InetAddress 5 | import java.net.Socket 6 | import java.net.UnknownHostException 7 | import javax.net.ssl.SSLSocket 8 | import javax.net.ssl.SSLSocketFactory 9 | 10 | 11 | /** 12 | * Enables TLS v1.2 when creating SSLSockets. 13 | * 14 | * 15 | * For some reason, android supports TLS v1.2 from API 16, but enables it by 16 | * default only from API 20. 17 | * @link https://developer.android.com/reference/javax/net/ssl/SSLSocket.html 18 | * @see SSLSocketFactory 19 | */ 20 | class Tls12SocketFactory(val delegate: SSLSocketFactory) : SSLSocketFactory() { 21 | override fun getDefaultCipherSuites(): Array { 22 | return delegate.defaultCipherSuites 23 | } 24 | 25 | override fun getSupportedCipherSuites(): Array { 26 | return delegate.supportedCipherSuites 27 | } 28 | 29 | @Throws(IOException::class) 30 | override fun createSocket(s: Socket, host: String, port: Int, autoClose: Boolean): Socket { 31 | return patch(delegate.createSocket(s, host, port, autoClose)) 32 | } 33 | 34 | @Throws(IOException::class, UnknownHostException::class) 35 | override fun createSocket(host: String, port: Int): Socket { 36 | return patch(delegate.createSocket(host, port)) 37 | } 38 | 39 | @Throws(IOException::class, UnknownHostException::class) 40 | override fun createSocket( 41 | host: String, 42 | port: Int, 43 | localHost: InetAddress, 44 | localPort: Int 45 | ): Socket { 46 | return patch(delegate.createSocket(host, port, localHost, localPort)) 47 | } 48 | 49 | @Throws(IOException::class) 50 | override fun createSocket(host: InetAddress, port: Int): Socket { 51 | return patch(delegate.createSocket(host, port)) 52 | } 53 | 54 | @Throws(IOException::class) 55 | override fun createSocket( 56 | address: InetAddress, 57 | port: Int, 58 | localAddress: InetAddress, 59 | localPort: Int 60 | ): Socket { 61 | return patch(delegate.createSocket(address, port, localAddress, localPort)) 62 | } 63 | 64 | private fun patch(s: Socket): Socket { 65 | if (s is SSLSocket) { 66 | s.enabledProtocols = TLS_V12_ONLY 67 | } 68 | return s 69 | } 70 | 71 | companion object { 72 | private val TLS_V12_ONLY = arrayOf("TLSv1.2") 73 | } 74 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/api/YSPApiService.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.api 2 | 3 | import retrofit2.Call 4 | import retrofit2.http.Body 5 | import retrofit2.http.Header 6 | import retrofit2.http.Headers 7 | import retrofit2.http.POST 8 | 9 | 10 | interface YSPApiService { 11 | @POST("v1/player/get_live_info") 12 | @Headers( 13 | "content-type: application/json;charset=UTF-8", 14 | "referer: https://www.yangshipin.cn/", 15 | "yspappid: 519748109", 16 | "user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" 17 | ) 18 | fun getLiveInfo( 19 | @Header("cookie") cookie: String, 20 | @Header("Yspplayertoken") token: String, 21 | @Body request: LiveInfoRequest, 22 | ): Call 23 | 24 | @POST("v1/player/auth") 25 | @Headers( 26 | "content-type: application/x-www-form-urlencoded;charset=UTF-8", 27 | "referer: https://www.yangshipin.cn/", 28 | "yspappid: 519748109", 29 | "user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" 30 | ) 31 | fun getAuth( 32 | @Header("cookie") cookie: String, 33 | @Body request: AuthRequest, 34 | ): Call 35 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/api/YSPJceService.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.api 2 | 3 | import com.tencent.videolite.android.datamodel.cctvjce.TVTimeShiftProgramRequest 4 | import com.tencent.videolite.android.datamodel.cctvjce.TVTimeShiftProgramResponse 5 | import retrofit2.Call 6 | import retrofit2.http.Body 7 | import retrofit2.http.Headers 8 | import retrofit2.http.POST 9 | 10 | interface YSPJceService { 11 | @POST("/") 12 | @Headers( 13 | "content-type: application/octet-stream", 14 | "user-agent: CCTVVideo/2.9.0 (iPad; iOS 17.2; Scale/2.00)", 15 | ) 16 | fun getProgram( 17 | @Body body: TVTimeShiftProgramRequest 18 | ): Call 19 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/api/YSPProtoService.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.api 2 | 3 | import com.lizongying.mytv.proto.Ysp.cn.yangshipin.oms.common.proto.pageModel 4 | import com.lizongying.mytv.proto.Ysp.cn.yangshipin.omstv.common.proto.epgProgramModel 5 | import retrofit2.Call 6 | import retrofit2.http.GET 7 | import retrofit2.http.Headers 8 | import retrofit2.http.Path 9 | 10 | interface YSPProtoService { 11 | @GET("api/oms/pc/page/PG00000004") 12 | @Headers( 13 | "yspappid: 519748109", 14 | "platform: 109", 15 | ) 16 | fun getPage( 17 | ): Call 18 | 19 | @GET("api/yspepg/program/{livepid}/{date}") 20 | @Headers( 21 | "yspappid: 519748109", 22 | "platform: 109", 23 | ) 24 | fun getProgram( 25 | @Path("livepid") livepid: String, 26 | @Path("date") date: String, 27 | ): Call 28 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/api/YSPTokenService.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.api 2 | 3 | import retrofit2.Call 4 | import retrofit2.http.GET 5 | import retrofit2.http.Query 6 | 7 | 8 | interface YSPTokenService { 9 | @GET("my-tv/v1/info") 10 | fun getInfo( 11 | @Query("token") token: String = "", 12 | ): Call 13 | 14 | @GET("my-tv/v2/token") 15 | fun getToken( 16 | @Query("token") token: String = "", 17 | ): Call 18 | 19 | @GET("my-tv/v2/info") 20 | fun getInfoV2( 21 | ): Call 22 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/jce/JceConverterFactory.java: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.jce; 2 | 3 | import androidx.annotation.NonNull; 4 | 5 | import java.lang.annotation.Annotation; 6 | import java.lang.reflect.Type; 7 | 8 | import okhttp3.RequestBody; 9 | import okhttp3.ResponseBody; 10 | import retrofit2.Converter; 11 | import retrofit2.Retrofit; 12 | 13 | public class JceConverterFactory extends Converter.Factory { 14 | public static JceConverterFactory create() { 15 | return new JceConverterFactory(); 16 | } 17 | 18 | private JceConverterFactory() { 19 | } 20 | 21 | @Override 22 | public Converter responseBodyConverter( 23 | @NonNull Type type, 24 | @NonNull Annotation[] annotations, 25 | @NonNull Retrofit retrofit) { 26 | if (!(type instanceof Class)) { 27 | return null; 28 | } 29 | 30 | return new JceResponseBodyConverter<>(); 31 | } 32 | 33 | @Override 34 | public Converter requestBodyConverter( 35 | @NonNull Type type, 36 | @NonNull Annotation[] parameterAnnotations, 37 | @NonNull Annotation[] methodAnnotations, 38 | @NonNull Retrofit retrofit) { 39 | if (!(type instanceof Class)) { 40 | return null; 41 | } 42 | 43 | return new JceRequestBodyConverter<>(); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/jce/JceRequestBodyConverter.java: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.jce; 2 | 3 | import androidx.annotation.NonNull; 4 | 5 | import com.qq.taf.jce.JceOutputStream; 6 | import com.qq.taf.jce.JceStruct; 7 | import com.tencent.videolite.android.datamodel.cctvjce.BusinessExtent; 8 | import com.tencent.videolite.android.datamodel.cctvjce.BusinessHead; 9 | import com.tencent.videolite.android.datamodel.cctvjce.QUA; 10 | import com.tencent.videolite.android.datamodel.cctvjce.RequestCommand; 11 | import com.tencent.videolite.android.datamodel.cctvjce.RequestHead; 12 | 13 | import okhttp3.MediaType; 14 | import okhttp3.RequestBody; 15 | import retrofit2.Converter; 16 | 17 | public class JceRequestBodyConverter implements Converter { 18 | private static final MediaType MEDIA_TYPE = MediaType.get("application/octet-stream"); 19 | 20 | @Override 21 | public RequestBody convert(@NonNull T value) { 22 | BusinessHead businessHead = new BusinessHead(); 23 | RequestHead requestHead = new RequestHead(); 24 | requestHead.appId = "1200013"; 25 | requestHead.busiExtent = new BusinessExtent(1); 26 | requestHead.cmdId = 24897; 27 | requestHead.contentType = 0; 28 | requestHead.guid = "093e7e5989684fd986c44f07542d8dc8"; 29 | requestHead.isSupportDolby = 0; 30 | requestHead.oemPlatform = 0; 31 | QUA qua = new QUA(); 32 | qua.appSubVersion = ""; 33 | qua.areaMode = 1; 34 | qua.channelId = "50001"; 35 | qua.clientKey = "A41CD6B6-6A56-46DC-9AE0-4ECF2E9118DF"; 36 | qua.countryCode = 0; 37 | qua.densityDpi = 0; 38 | qua.deviceId = "5EE46760-11B1-5FE7-949A-FF232DAE1823"; 39 | qua.deviceModel = "iPad Pro (12.9 inch) 3G"; 40 | qua.deviceType = 1; 41 | qua.extent = ""; 42 | qua.idfa = ""; 43 | qua.imei = ""; 44 | qua.langCode = 0; 45 | qua.mac = ""; 46 | qua.markerId = 1; 47 | qua.mobileISP = 0; 48 | qua.networkMode = 0; 49 | qua.omgId = "78d6ac7572afb5461e9a590f089f893d2abc0010119007"; 50 | qua.platform = 5; 51 | qua.platformVersion = "sysver=ios17.2&device=iPad&modify_time=&lang=zh_CN"; 52 | qua.qimei = "1c0fc6ed8a53584ae722b915200014317601"; 53 | qua.screenHeight = 2360; 54 | qua.screenWidth = 1640; 55 | qua.serverid = ""; 56 | qua.v4ip = ""; 57 | qua.versionCode = "23399"; 58 | qua.versionName = "2.9.0.23399"; 59 | requestHead.qua = qua; 60 | requestHead.requestId = 1; 61 | 62 | JceOutputStream jceOutputStream = new JceOutputStream(); 63 | jceOutputStream.setServerEncoding("utf-8"); 64 | value.writeTo(jceOutputStream); 65 | byte[] bytes = jceOutputStream.toByteArray(); 66 | RequestCommand requestCommand = new RequestCommand(requestHead, bytes, businessHead); 67 | bytes = b.b(requestCommand, requestHead.requestId); 68 | return RequestBody.create(MEDIA_TYPE, bytes); 69 | } 70 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/jce/JceResponseBodyConverter.java: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.jce; 2 | 3 | import androidx.annotation.NonNull; 4 | 5 | import com.qq.taf.jce.JceInputStream; 6 | import com.qq.taf.jce.JceStruct; 7 | import com.tencent.videolite.android.datamodel.cctvjce.QQVideoJCECmd; 8 | import com.tencent.videolite.android.datamodel.cctvjce.ResponseCommand; 9 | 10 | import java.io.IOException; 11 | 12 | import okhttp3.ResponseBody; 13 | import retrofit2.Converter; 14 | 15 | public class JceResponseBodyConverter implements Converter { 16 | 17 | JceResponseBodyConverter() { 18 | } 19 | 20 | @Override 21 | public T convert(@NonNull ResponseBody value) throws IOException { 22 | return parseFrom(value.bytes()); 23 | } 24 | 25 | public T parseFrom(byte[] aa) { 26 | byte[] bArr; 27 | 28 | int[] iArr = new int[1]; 29 | try { 30 | bArr = b.a(aa, iArr); 31 | } catch (Throwable unused) { 32 | bArr = null; 33 | } 34 | 35 | ResponseCommand responseCommand = a.g(bArr, ResponseCommand.class); 36 | if (responseCommand == null) { 37 | return null; 38 | } 39 | 40 | QQVideoJCECmd convert = QQVideoJCECmd.convert(responseCommand.head.cmdId); 41 | assert convert != null; 42 | 43 | JceInputStream jceInputStream = new JceInputStream(responseCommand.body); 44 | jceInputStream.setServerEncoding("UTF-8"); 45 | 46 | JceStruct instance = null; 47 | try { 48 | instance = (JceStruct) Class.forName("com.tencent.videolite.android.datamodel.cctvjce." + convert + "Response").newInstance(); 49 | } catch (InstantiationException e) { 50 | e.printStackTrace(); 51 | } catch (IllegalAccessException e) { 52 | e.printStackTrace(); 53 | } catch (ClassNotFoundException e) { 54 | e.printStackTrace(); 55 | } 56 | 57 | if (instance != null) { 58 | instance.readFrom(jceInputStream); 59 | return (T) instance; 60 | } else { 61 | return null; 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/models/EPG.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.models 2 | 3 | 4 | data class EPG( 5 | val title: String, 6 | val beginTime: Int, 7 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/models/ProgramType.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.models 2 | 3 | enum class ProgramType { 4 | Y_PROTO, 5 | Y_JCE, 6 | F, 7 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/models/TVListViewModel.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.models 2 | 3 | import androidx.lifecycle.LiveData 4 | import androidx.lifecycle.MutableLiveData 5 | import androidx.lifecycle.ViewModel 6 | 7 | class TVListViewModel : ViewModel() { 8 | 9 | var maxNum = mutableListOf() 10 | 11 | private val _tvListViewModel = MutableLiveData>() 12 | val tvListViewModel: LiveData> 13 | get() = _tvListViewModel 14 | 15 | private val _itemPosition = MutableLiveData() 16 | val itemPosition: LiveData 17 | get() = _itemPosition 18 | 19 | private val _itemPositionCurrent = MutableLiveData() 20 | val itemPositionCurrent: LiveData 21 | get() = _itemPositionCurrent 22 | 23 | fun addTVViewModel(tvViewModel: TVViewModel) { 24 | if (_tvListViewModel.value == null) { 25 | _tvListViewModel.value = mutableListOf(tvViewModel) 26 | } else { 27 | _tvListViewModel.value?.add(tvViewModel) 28 | } 29 | } 30 | 31 | fun getTVViewModel(id: Int): TVViewModel? { 32 | return _tvListViewModel.value?.get(id) 33 | } 34 | 35 | fun getTVViewModelCurrent(): TVViewModel? { 36 | return _itemPositionCurrent.value?.let { _tvListViewModel.value?.get(it) } 37 | } 38 | 39 | fun setItemPosition(position: Int) { 40 | _itemPosition.value = position 41 | _itemPositionCurrent.value = position 42 | } 43 | 44 | fun setItemPositionCurrent(position: Int) { 45 | _itemPositionCurrent.value = position 46 | } 47 | 48 | fun size(): Int { 49 | if (_tvListViewModel.value == null) { 50 | return 0 51 | } 52 | return _tvListViewModel.value!!.size 53 | } 54 | } -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/proto/YspKt.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/java/com/lizongying/mytv/proto/YspKt.kt -------------------------------------------------------------------------------- /app/src/main/java/com/lizongying/mytv/requests/MyRequest.kt: -------------------------------------------------------------------------------- 1 | package com.lizongying.mytv.requests 2 | 3 | import com.lizongying.mytv.api.ApiClient 4 | import com.lizongying.mytv.api.ReleaseV2 5 | import kotlinx.coroutines.Dispatchers 6 | import kotlinx.coroutines.withContext 7 | import retrofit2.Call 8 | import retrofit2.Callback 9 | import retrofit2.Response 10 | import kotlin.coroutines.resume 11 | import kotlin.coroutines.suspendCoroutine 12 | 13 | class MyRequest { 14 | private var releaseService = ApiClient().releaseService 15 | 16 | suspend fun getRelease(): ReleaseV2? { 17 | return withContext(Dispatchers.IO) { 18 | fetchRelease() 19 | } 20 | } 21 | 22 | private suspend fun fetchRelease(): ReleaseV2? { 23 | return suspendCoroutine { continuation -> 24 | releaseService.getRelease() 25 | .enqueue(object : Callback { 26 | override fun onResponse(call: Call, response: Response) { 27 | if (response.isSuccessful) { 28 | continuation.resume(response.body()) 29 | } else { 30 | continuation.resume(null) 31 | } 32 | } 33 | 34 | override fun onFailure(call: Call, t: Throwable) { 35 | continuation.resume(null) 36 | } 37 | }) 38 | } 39 | } 40 | 41 | companion object { 42 | private const val TAG = "MyRequest" 43 | } 44 | } -------------------------------------------------------------------------------- /app/src/main/java/com/qq/taf/jce/HexUtil.java: -------------------------------------------------------------------------------- 1 | package com.qq.taf.jce; 2 | 3 | import java.nio.ByteBuffer; 4 | public class HexUtil { 5 | private static final char[] digits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; 6 | public static final byte[] emptybytes = new byte[0]; 7 | 8 | public static String byte2HexStr(byte b2) { 9 | char[] cArr = digits; 10 | return new String(new char[]{cArr[((byte) (b2 >>> 4)) & 15], cArr[b2 & 15]}); 11 | } 12 | 13 | public static String bytes2HexStr(ByteBuffer byteBuffer) { 14 | ByteBuffer duplicate = byteBuffer.duplicate(); 15 | duplicate.flip(); 16 | byte[] bArr = new byte[duplicate.limit()]; 17 | duplicate.get(bArr); 18 | return bytes2HexStr(bArr); 19 | } 20 | 21 | public static byte char2Byte(char c2) { 22 | int i2; 23 | if (c2 < '0' || c2 > '9') { 24 | char c3 = 'a'; 25 | if (c2 < 'a' || c2 > 'f') { 26 | c3 = 'A'; 27 | if (c2 < 'A' || c2 > 'F') { 28 | return (byte) 0; 29 | } 30 | } 31 | i2 = (c2 - c3) + 10; 32 | } else { 33 | i2 = c2 - '0'; 34 | } 35 | return (byte) i2; 36 | } 37 | 38 | public static byte hexStr2Byte(String str) { 39 | if (str == null || str.length() != 1) { 40 | return (byte) 0; 41 | } 42 | return char2Byte(str.charAt(0)); 43 | } 44 | 45 | public static byte[] hexStr2Bytes(String str) { 46 | if (str != null && !str.equals("")) { 47 | int length = str.length() / 2; 48 | byte[] bArr = new byte[length]; 49 | for (int i2 = 0; i2 < length; i2++) { 50 | int i3 = i2 * 2; 51 | bArr[i2] = (byte) ((char2Byte(str.charAt(i3)) * 16) + char2Byte(str.charAt(i3 + 1))); 52 | } 53 | return bArr; 54 | } 55 | return emptybytes; 56 | } 57 | 58 | public static String bytes2HexStr(byte[] bArr) { 59 | if (bArr == null || bArr.length == 0) { 60 | return null; 61 | } 62 | char[] cArr = new char[bArr.length * 2]; 63 | for (int i2 = 0; i2 < bArr.length; i2++) { 64 | byte b2 = bArr[i2]; 65 | int i3 = i2 * 2; 66 | char[] cArr2 = digits; 67 | cArr[i3 + 1] = cArr2[b2 & 15]; 68 | cArr[i3 + 0] = cArr2[((byte) (b2 >>> 4)) & 15]; 69 | } 70 | return new String(cArr); 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /app/src/main/java/com/qq/taf/jce/JceDecodeException.java: -------------------------------------------------------------------------------- 1 | package com.qq.taf.jce; 2 | 3 | public class JceDecodeException extends RuntimeException { 4 | public JceDecodeException(String str) { 5 | super(str); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /app/src/main/java/com/qq/taf/jce/JceEncodeException.java: -------------------------------------------------------------------------------- 1 | package com.qq.taf.jce; 2 | 3 | public class JceEncodeException extends RuntimeException { 4 | public JceEncodeException(String str) { 5 | super(str); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /app/src/main/java/com/qq/taf/jce/JceStruct.java: -------------------------------------------------------------------------------- 1 | package com.qq.taf.jce; 2 | 3 | import java.io.Serializable; 4 | 5 | public abstract class JceStruct implements Serializable { 6 | public static final byte BYTE = 0; 7 | public static final byte DOUBLE = 5; 8 | public static final byte FLOAT = 4; 9 | public static final byte INT = 2; 10 | public static final int JCE_MAX_STRING_LENGTH = 104857600; 11 | public static final byte LIST = 9; 12 | public static final byte LONG = 3; 13 | public static final byte MAP = 8; 14 | public static final byte SHORT = 1; 15 | public static final byte SIMPLE_LIST = 13; 16 | public static final byte STRING1 = 6; 17 | public static final byte STRING4 = 7; 18 | public static final byte STRUCT_BEGIN = 10; 19 | public static final byte STRUCT_END = 11; 20 | public static final byte ZERO_TAG = 12; 21 | private Object tag; 22 | 23 | public static String toDisplaySimpleString(JceStruct jceStruct) { 24 | if (jceStruct == null) { 25 | return null; 26 | } 27 | StringBuilder sb = new StringBuilder(); 28 | jceStruct.displaySimple(sb, 0); 29 | return sb.toString(); 30 | } 31 | 32 | public boolean containField(String str) { 33 | return false; 34 | } 35 | 36 | public void display(StringBuilder sb, int i2) { 37 | } 38 | 39 | public void displaySimple(StringBuilder sb, int i2) { 40 | } 41 | 42 | public Object getFieldByName(String str) { 43 | return null; 44 | } 45 | 46 | public Object getTag() { 47 | return this.tag; 48 | } 49 | 50 | public JceStruct newInit() { 51 | return null; 52 | } 53 | 54 | public abstract void readFrom(JceInputStream jceInputStream); 55 | 56 | public void recyle() { 57 | } 58 | 59 | public void setFieldByName(String str, Object obj) { 60 | } 61 | 62 | public void setTag(Object obj) { 63 | this.tag = obj; 64 | } 65 | 66 | public byte[] toByteArray() { 67 | JceOutputStream jceOutputStream = new JceOutputStream(); 68 | writeTo(jceOutputStream); 69 | return jceOutputStream.toByteArray(); 70 | } 71 | 72 | public String toString() { 73 | StringBuilder sb = new StringBuilder(); 74 | display(sb, 0); 75 | return sb.toString(); 76 | } 77 | 78 | public abstract void writeTo(JceOutputStream jceOutputStream); 79 | 80 | public byte[] toByteArray(String str) { 81 | JceOutputStream jceOutputStream = new JceOutputStream(); 82 | jceOutputStream.setServerEncoding(str); 83 | writeTo(jceOutputStream); 84 | return jceOutputStream.toByteArray(); 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /app/src/main/java/com/qq/taf/jce/OnIllegalArgumentException.java: -------------------------------------------------------------------------------- 1 | package com.qq.taf.jce; 2 | 3 | import java.nio.ByteBuffer; 4 | 5 | public interface OnIllegalArgumentException { 6 | void onException(IllegalArgumentException illegalArgumentException, ByteBuffer byteBuffer, int i2, int i3); 7 | } 8 | -------------------------------------------------------------------------------- /app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/Action.java: -------------------------------------------------------------------------------- 1 | package com.tencent.videolite.android.datamodel.cctvjce; 2 | 3 | import com.qq.taf.jce.JceInputStream; 4 | import com.qq.taf.jce.JceOutputStream; 5 | import com.qq.taf.jce.JceStruct; 6 | 7 | public final class Action extends JceStruct { 8 | public String reportEventId; 9 | public String reportKey; 10 | public String reportParams; 11 | public String url; 12 | 13 | public Action() { 14 | this.url = ""; 15 | this.reportEventId = ""; 16 | this.reportKey = ""; 17 | this.reportParams = ""; 18 | } 19 | 20 | @Override // com.qq.taf.jce.JceStruct 21 | public void readFrom(JceInputStream jceInputStream) { 22 | this.url = jceInputStream.readString(0, true); 23 | this.reportEventId = jceInputStream.readString(1, false); 24 | this.reportKey = jceInputStream.readString(2, false); 25 | this.reportParams = jceInputStream.readString(3, false); 26 | } 27 | 28 | @Override // com.qq.taf.jce.JceStruct 29 | public void writeTo(JceOutputStream jceOutputStream) { 30 | jceOutputStream.write(this.url, 0); 31 | String str = this.reportEventId; 32 | if (str != null) { 33 | jceOutputStream.write(str, 1); 34 | } 35 | String str2 = this.reportKey; 36 | if (str2 != null) { 37 | jceOutputStream.write(str2, 2); 38 | } 39 | String str3 = this.reportParams; 40 | if (str3 != null) { 41 | jceOutputStream.write(str3, 3); 42 | } 43 | } 44 | 45 | public Action(String str, String str2, String str3, String str4) { 46 | this.url = ""; 47 | this.reportEventId = ""; 48 | this.reportKey = ""; 49 | this.reportParams = ""; 50 | this.url = str; 51 | this.reportEventId = str2; 52 | this.reportKey = str3; 53 | this.reportParams = str4; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/BucketConfig.java: -------------------------------------------------------------------------------- 1 | package com.tencent.videolite.android.datamodel.cctvjce; 2 | 3 | import com.qq.taf.jce.JceInputStream; 4 | import com.qq.taf.jce.JceOutputStream; 5 | import com.qq.taf.jce.JceStruct; 6 | public final class BucketConfig extends JceStruct { 7 | public int bucketId; 8 | public String extra; 9 | 10 | public BucketConfig() { 11 | this.bucketId = 0; 12 | this.extra = ""; 13 | } 14 | 15 | @Override // com.qq.taf.jce.JceStruct 16 | public void readFrom(JceInputStream jceInputStream) { 17 | this.bucketId = jceInputStream.read(this.bucketId, 0, true); 18 | this.extra = jceInputStream.readString(1, false); 19 | } 20 | 21 | @Override // com.qq.taf.jce.JceStruct 22 | public void writeTo(JceOutputStream jceOutputStream) { 23 | jceOutputStream.write(this.bucketId, 0); 24 | String str = this.extra; 25 | if (str != null) { 26 | jceOutputStream.write(str, 1); 27 | } 28 | } 29 | 30 | public BucketConfig(int i2, String str) { 31 | this.bucketId = 0; 32 | this.extra = ""; 33 | this.bucketId = i2; 34 | this.extra = str; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/BusinessExtent.java: -------------------------------------------------------------------------------- 1 | package com.tencent.videolite.android.datamodel.cctvjce; 2 | 3 | import com.qq.taf.jce.JceInputStream; 4 | import com.qq.taf.jce.JceOutputStream; 5 | import com.qq.taf.jce.JceStruct; 6 | public final class BusinessExtent extends JceStruct { 7 | public int launchType; 8 | 9 | public BusinessExtent() { 10 | this.launchType = 0; 11 | } 12 | 13 | @Override // com.qq.taf.jce.JceStruct 14 | public void readFrom(JceInputStream jceInputStream) { 15 | this.launchType = jceInputStream.read(this.launchType, 0, false); 16 | } 17 | 18 | @Override // com.qq.taf.jce.JceStruct 19 | public void writeTo(JceOutputStream jceOutputStream) { 20 | jceOutputStream.write(this.launchType, 0); 21 | } 22 | 23 | public BusinessExtent(int i2) { 24 | this.launchType = 0; 25 | this.launchType = i2; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/BusinessHead.java: -------------------------------------------------------------------------------- 1 | package com.tencent.videolite.android.datamodel.cctvjce; 2 | 3 | import com.qq.taf.jce.JceInputStream; 4 | import com.qq.taf.jce.JceOutputStream; 5 | import com.qq.taf.jce.JceStruct; 6 | public final class BusinessHead extends JceStruct { 7 | static byte[] cache_head; 8 | public byte[] head; 9 | public int type; 10 | 11 | static { 12 | cache_head = new byte[0]; 13 | byte[] bArr = {0}; 14 | } 15 | 16 | public BusinessHead() { 17 | this.type = 0; 18 | this.head = null; 19 | } 20 | 21 | @Override // com.qq.taf.jce.JceStruct 22 | public void readFrom(JceInputStream jceInputStream) { 23 | this.type = jceInputStream.read(this.type, 0, true); 24 | this.head = jceInputStream.read(cache_head, 1, false); 25 | } 26 | 27 | @Override // com.qq.taf.jce.JceStruct 28 | public void writeTo(JceOutputStream jceOutputStream) { 29 | jceOutputStream.write(this.type, 0); 30 | byte[] bArr = this.head; 31 | if (bArr != null) { 32 | jceOutputStream.write(bArr, 1); 33 | } 34 | } 35 | 36 | public BusinessHead(int i2, byte[] bArr) { 37 | this.type = 0; 38 | this.head = null; 39 | this.type = i2; 40 | this.head = bArr; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/Coordinates.java: -------------------------------------------------------------------------------- 1 | package com.tencent.videolite.android.datamodel.cctvjce; 2 | 3 | import com.qq.taf.jce.JceInputStream; 4 | import com.qq.taf.jce.JceOutputStream; 5 | import com.qq.taf.jce.JceStruct; 6 | 7 | public final class Coordinates extends JceStruct { 8 | public double accuracy; 9 | public float latitude; 10 | public float longitude; 11 | public int type; 12 | 13 | public Coordinates() { 14 | this.type = 0; 15 | this.latitude = 0.0f; 16 | this.longitude = 0.0f; 17 | this.accuracy = 0.0d; 18 | } 19 | 20 | @Override // com.qq.taf.jce.JceStruct 21 | public void readFrom(JceInputStream jceInputStream) { 22 | this.type = jceInputStream.read(this.type, 0, false); 23 | this.latitude = jceInputStream.read(this.latitude, 1, false); 24 | this.longitude = jceInputStream.read(this.longitude, 2, false); 25 | this.accuracy = jceInputStream.read(this.accuracy, 3, false); 26 | } 27 | 28 | @Override // com.qq.taf.jce.JceStruct 29 | public void writeTo(JceOutputStream jceOutputStream) { 30 | jceOutputStream.write(this.type, 0); 31 | jceOutputStream.write(this.latitude, 1); 32 | jceOutputStream.write(this.longitude, 2); 33 | jceOutputStream.write(this.accuracy, 3); 34 | } 35 | 36 | public Coordinates(int i2, float f2, float f3, double d2) { 37 | this.type = 0; 38 | this.latitude = 0.0f; 39 | this.longitude = 0.0f; 40 | this.accuracy = 0.0d; 41 | this.type = i2; 42 | this.latitude = f2; 43 | this.longitude = f3; 44 | this.accuracy = d2; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/ExtentAccount.java: -------------------------------------------------------------------------------- 1 | package com.tencent.videolite.android.datamodel.cctvjce; 2 | 3 | import com.qq.taf.jce.JceInputStream; 4 | import com.qq.taf.jce.JceOutputStream; 5 | import com.qq.taf.jce.JceStruct; 6 | public final class ExtentAccount extends JceStruct { 7 | public String accountId; 8 | public int type; 9 | 10 | public ExtentAccount() { 11 | this.type = 0; 12 | this.accountId = ""; 13 | } 14 | 15 | @Override // com.qq.taf.jce.JceStruct 16 | public void readFrom(JceInputStream jceInputStream) { 17 | this.type = jceInputStream.read(this.type, 0, true); 18 | this.accountId = jceInputStream.readString(1, true); 19 | } 20 | 21 | @Override // com.qq.taf.jce.JceStruct 22 | public void writeTo(JceOutputStream jceOutputStream) { 23 | jceOutputStream.write(this.type, 0); 24 | jceOutputStream.write(this.accountId, 1); 25 | } 26 | 27 | public ExtentAccount(int i2, String str) { 28 | this.type = 0; 29 | this.accountId = ""; 30 | this.type = i2; 31 | this.accountId = str; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/ExtentData.java: -------------------------------------------------------------------------------- 1 | package com.tencent.videolite.android.datamodel.cctvjce; 2 | 3 | import com.qq.taf.jce.JceInputStream; 4 | import com.qq.taf.jce.JceOutputStream; 5 | import com.qq.taf.jce.JceStruct; 6 | public final class ExtentData extends JceStruct { 7 | static BucketConfig cache_bucketInfo = new BucketConfig(); 8 | public BucketConfig bucketInfo; 9 | public int checkFlag; 10 | public String extra; 11 | public byte flagByte; 12 | 13 | public ExtentData() { 14 | this.checkFlag = 0; 15 | this.flagByte = (byte) 0; 16 | this.extra = ""; 17 | this.bucketInfo = null; 18 | } 19 | 20 | @Override // com.qq.taf.jce.JceStruct 21 | public void readFrom(JceInputStream jceInputStream) { 22 | this.checkFlag = jceInputStream.read(this.checkFlag, 0, false); 23 | this.flagByte = jceInputStream.read(this.flagByte, 1, false); 24 | this.extra = jceInputStream.readString(2, false); 25 | this.bucketInfo = (BucketConfig) jceInputStream.read((JceStruct) cache_bucketInfo, 3, false); 26 | } 27 | 28 | @Override // com.qq.taf.jce.JceStruct 29 | public void writeTo(JceOutputStream jceOutputStream) { 30 | jceOutputStream.write(this.checkFlag, 0); 31 | jceOutputStream.write(this.flagByte, 1); 32 | String str = this.extra; 33 | if (str != null) { 34 | jceOutputStream.write(str, 2); 35 | } 36 | BucketConfig bucketConfig = this.bucketInfo; 37 | if (bucketConfig != null) { 38 | jceOutputStream.write((JceStruct) bucketConfig, 3); 39 | } 40 | } 41 | 42 | public ExtentData(int i2, byte b2, String str, BucketConfig bucketConfig) { 43 | this.checkFlag = 0; 44 | this.flagByte = (byte) 0; 45 | this.extra = ""; 46 | this.bucketInfo = null; 47 | this.checkFlag = i2; 48 | this.flagByte = b2; 49 | this.extra = str; 50 | this.bucketInfo = bucketConfig; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/LoginToken.java: -------------------------------------------------------------------------------- 1 | package com.tencent.videolite.android.datamodel.cctvjce; 2 | 3 | import com.qq.taf.jce.JceInputStream; 4 | import com.qq.taf.jce.JceOutputStream; 5 | import com.qq.taf.jce.JceStruct; 6 | 7 | public final class LoginToken extends JceStruct { 8 | static byte[] cache_TokenValue; 9 | public boolean IsMainLogin; 10 | public String TokenAppID; 11 | public byte TokenKeyType; 12 | public String TokenUin; 13 | public byte[] TokenValue; 14 | 15 | static { 16 | cache_TokenValue = new byte[0]; 17 | byte[] bArr = {0}; 18 | } 19 | 20 | public LoginToken() { 21 | this.TokenAppID = ""; 22 | this.TokenKeyType = (byte) 0; 23 | this.TokenValue = null; 24 | this.TokenUin = ""; 25 | this.IsMainLogin = true; 26 | } 27 | 28 | @Override // com.qq.taf.jce.JceStruct 29 | public void readFrom(JceInputStream jceInputStream) { 30 | this.TokenAppID = jceInputStream.readString(0, true); 31 | this.TokenKeyType = jceInputStream.read(this.TokenKeyType, 1, true); 32 | this.TokenValue = jceInputStream.read(cache_TokenValue, 2, true); 33 | this.TokenUin = jceInputStream.readString(3, false); 34 | this.IsMainLogin = jceInputStream.read(this.IsMainLogin, 4, false); 35 | } 36 | 37 | @Override // com.qq.taf.jce.JceStruct 38 | public void writeTo(JceOutputStream jceOutputStream) { 39 | jceOutputStream.write(this.TokenAppID, 0); 40 | jceOutputStream.write(this.TokenKeyType, 1); 41 | jceOutputStream.write(this.TokenValue, 2); 42 | String str = this.TokenUin; 43 | if (str != null) { 44 | jceOutputStream.write(str, 3); 45 | } 46 | jceOutputStream.write(this.IsMainLogin, 4); 47 | } 48 | 49 | public LoginToken(String str, byte b2, byte[] bArr, String str2, boolean z) { 50 | this.TokenAppID = ""; 51 | this.TokenKeyType = (byte) 0; 52 | this.TokenValue = null; 53 | this.TokenUin = ""; 54 | this.IsMainLogin = true; 55 | this.TokenAppID = str; 56 | this.TokenKeyType = b2; 57 | this.TokenValue = bArr; 58 | this.TokenUin = str2; 59 | this.IsMainLogin = z; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/RequestCommand.java: -------------------------------------------------------------------------------- 1 | package com.tencent.videolite.android.datamodel.cctvjce; 2 | 3 | import com.qq.taf.jce.JceInputStream; 4 | import com.qq.taf.jce.JceOutputStream; 5 | import com.qq.taf.jce.JceStruct; 6 | 7 | public final class RequestCommand extends JceStruct { 8 | static byte[] cache_body; 9 | public byte[] body; 10 | public BusinessHead businessHead; 11 | public RequestHead head; 12 | static RequestHead cache_head = new RequestHead(); 13 | static BusinessHead cache_businessHead = new BusinessHead(); 14 | 15 | static { 16 | cache_body = new byte[0]; 17 | byte[] bArr = {0}; 18 | } 19 | 20 | public RequestCommand() { 21 | this.head = null; 22 | this.body = null; 23 | this.businessHead = null; 24 | } 25 | 26 | @Override // com.qq.taf.jce.JceStruct 27 | public void readFrom(JceInputStream jceInputStream) { 28 | this.head = (RequestHead) jceInputStream.read((JceStruct) cache_head, 0, true); 29 | this.body = jceInputStream.read(cache_body, 1, false); 30 | this.businessHead = (BusinessHead) jceInputStream.read((JceStruct) cache_businessHead, 2, false); 31 | } 32 | 33 | @Override // com.qq.taf.jce.JceStruct 34 | public void writeTo(JceOutputStream jceOutputStream) { 35 | jceOutputStream.write((JceStruct) this.head, 0); 36 | byte[] bArr = this.body; 37 | if (bArr != null) { 38 | jceOutputStream.write(bArr, 1); 39 | } 40 | BusinessHead businessHead = this.businessHead; 41 | if (businessHead != null) { 42 | jceOutputStream.write((JceStruct) businessHead, 2); 43 | } 44 | } 45 | 46 | public RequestCommand(RequestHead requestHead, byte[] bArr, BusinessHead businessHead) { 47 | this.head = null; 48 | this.body = null; 49 | this.businessHead = null; 50 | this.head = requestHead; 51 | this.body = bArr; 52 | this.businessHead = businessHead; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/ResponseCommand.java: -------------------------------------------------------------------------------- 1 | package com.tencent.videolite.android.datamodel.cctvjce; 2 | 3 | import com.qq.taf.jce.JceInputStream; 4 | import com.qq.taf.jce.JceOutputStream; 5 | import com.qq.taf.jce.JceStruct; 6 | 7 | public final class ResponseCommand extends JceStruct { 8 | static byte[] cache_body; 9 | public byte[] body; 10 | public BusinessHead businessHead; 11 | public ResponseHead head; 12 | static ResponseHead cache_head = new ResponseHead(); 13 | static BusinessHead cache_businessHead = new BusinessHead(); 14 | 15 | static { 16 | cache_body = new byte[0]; 17 | byte[] bArr = {0}; 18 | } 19 | 20 | public ResponseCommand() { 21 | this.head = null; 22 | this.body = null; 23 | this.businessHead = null; 24 | } 25 | 26 | @Override // com.qq.taf.jce.JceStruct 27 | public void readFrom(JceInputStream jceInputStream) { 28 | this.head = (ResponseHead) jceInputStream.read((JceStruct) cache_head, 0, true); 29 | this.body = jceInputStream.read(cache_body, 1, false); 30 | this.businessHead = (BusinessHead) jceInputStream.read((JceStruct) cache_businessHead, 2, false); 31 | } 32 | 33 | @Override // com.qq.taf.jce.JceStruct 34 | public void writeTo(JceOutputStream jceOutputStream) { 35 | jceOutputStream.write((JceStruct) this.head, 0); 36 | byte[] bArr = this.body; 37 | if (bArr != null) { 38 | jceOutputStream.write(bArr, 1); 39 | } 40 | BusinessHead businessHead = this.businessHead; 41 | if (businessHead != null) { 42 | jceOutputStream.write((JceStruct) businessHead, 2); 43 | } 44 | } 45 | 46 | public ResponseCommand(ResponseHead responseHead, byte[] bArr, BusinessHead businessHead) { 47 | this.head = null; 48 | this.body = null; 49 | this.businessHead = null; 50 | this.head = responseHead; 51 | this.body = bArr; 52 | this.businessHead = businessHead; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/ResponseHead.java: -------------------------------------------------------------------------------- 1 | package com.tencent.videolite.android.datamodel.cctvjce; 2 | 3 | import com.qq.taf.jce.JceInputStream; 4 | import com.qq.taf.jce.JceOutputStream; 5 | import com.qq.taf.jce.JceStruct; 6 | 7 | public final class ResponseHead extends JceStruct { 8 | public int cmdId; 9 | public int errCode; 10 | public int requestId; 11 | public String sUserid; 12 | 13 | public ResponseHead() { 14 | this.requestId = 0; 15 | this.cmdId = 0; 16 | this.errCode = 0; 17 | this.sUserid = ""; 18 | } 19 | 20 | @Override // com.qq.taf.jce.JceStruct 21 | public void readFrom(JceInputStream jceInputStream) { 22 | this.requestId = jceInputStream.read(this.requestId, 0, true); 23 | this.cmdId = jceInputStream.read(this.cmdId, 1, true); 24 | this.errCode = jceInputStream.read(this.errCode, 2, true); 25 | this.sUserid = jceInputStream.readString(3, true); 26 | } 27 | 28 | @Override // com.qq.taf.jce.JceStruct 29 | public void writeTo(JceOutputStream jceOutputStream) { 30 | jceOutputStream.write(this.requestId, 0); 31 | jceOutputStream.write(this.cmdId, 1); 32 | jceOutputStream.write(this.errCode, 2); 33 | jceOutputStream.write(this.sUserid, 3); 34 | } 35 | 36 | public ResponseHead(int i2, int i3, int i4, String str) { 37 | this.requestId = 0; 38 | this.cmdId = 0; 39 | this.errCode = 0; 40 | this.sUserid = ""; 41 | this.requestId = i2; 42 | this.cmdId = i3; 43 | this.errCode = i4; 44 | this.sUserid = str; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/SafeInfo.java: -------------------------------------------------------------------------------- 1 | package com.tencent.videolite.android.datamodel.cctvjce; 2 | 3 | import com.qq.taf.jce.JceInputStream; 4 | import com.qq.taf.jce.JceOutputStream; 5 | import com.qq.taf.jce.JceStruct; 6 | 7 | public final class SafeInfo extends JceStruct { 8 | static byte[] cache_SafeResult; 9 | public String SafeKey; 10 | public byte[] SafeResult; 11 | public int type; 12 | 13 | static { 14 | cache_SafeResult = new byte[0]; 15 | byte[] bArr = {0}; 16 | } 17 | 18 | public SafeInfo() { 19 | this.type = 0; 20 | this.SafeKey = ""; 21 | this.SafeResult = null; 22 | } 23 | 24 | @Override // com.qq.taf.jce.JceStruct 25 | public void readFrom(JceInputStream jceInputStream) { 26 | this.type = jceInputStream.read(this.type, 0, false); 27 | this.SafeKey = jceInputStream.readString(1, false); 28 | this.SafeResult = jceInputStream.read(cache_SafeResult, 2, false); 29 | } 30 | 31 | @Override // com.qq.taf.jce.JceStruct 32 | public void writeTo(JceOutputStream jceOutputStream) { 33 | jceOutputStream.write(this.type, 0); 34 | String str = this.SafeKey; 35 | if (str != null) { 36 | jceOutputStream.write(str, 1); 37 | } 38 | byte[] bArr = this.SafeResult; 39 | if (bArr != null) { 40 | jceOutputStream.write(bArr, 2); 41 | } 42 | } 43 | 44 | public SafeInfo(int i2, String str, byte[] bArr) { 45 | this.type = 0; 46 | this.SafeKey = ""; 47 | this.SafeResult = null; 48 | this.type = i2; 49 | this.SafeKey = str; 50 | this.SafeResult = bArr; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/TVTimeShiftProgramRequest.java: -------------------------------------------------------------------------------- 1 | package com.tencent.videolite.android.datamodel.cctvjce; 2 | 3 | import com.qq.taf.jce.JceInputStream; 4 | import com.qq.taf.jce.JceOutputStream; 5 | import com.qq.taf.jce.JceStruct; 6 | public final class TVTimeShiftProgramRequest extends JceStruct { 7 | public String pid; 8 | 9 | public TVTimeShiftProgramRequest() { 10 | this.pid = ""; 11 | } 12 | 13 | @Override // com.qq.taf.jce.JceStruct 14 | public void readFrom(JceInputStream jceInputStream) { 15 | this.pid = jceInputStream.readString(0, true); 16 | } 17 | 18 | @Override // com.qq.taf.jce.JceStruct 19 | public void writeTo(JceOutputStream jceOutputStream) { 20 | jceOutputStream.write(this.pid, 0); 21 | } 22 | 23 | public TVTimeShiftProgramRequest(String pid) { 24 | this.pid = pid; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/TVTimeShiftProgramResponse.java: -------------------------------------------------------------------------------- 1 | package com.tencent.videolite.android.datamodel.cctvjce; 2 | 3 | import com.qq.taf.jce.JceInputStream; 4 | import com.qq.taf.jce.JceOutputStream; 5 | import com.qq.taf.jce.JceStruct; 6 | import java.util.ArrayList; 7 | import java.util.Collection; 8 | public final class TVTimeShiftProgramResponse extends JceStruct { 9 | static ArrayList cache_programs = new ArrayList<>(); 10 | public int errcode; 11 | public String errmsg; 12 | public ArrayList programs; 13 | public int timeShiftFlag; 14 | 15 | static { 16 | cache_programs.add(new TVProgram()); 17 | } 18 | 19 | public TVTimeShiftProgramResponse() { 20 | this.errcode = 0; 21 | this.errmsg = ""; 22 | this.programs = null; 23 | this.timeShiftFlag = 0; 24 | } 25 | 26 | @Override // com.qq.taf.jce.JceStruct 27 | public void readFrom(JceInputStream jceInputStream) { 28 | this.errcode = jceInputStream.read(this.errcode, 0, true); 29 | this.errmsg = jceInputStream.readString(1, false); 30 | this.programs = (ArrayList) jceInputStream.read(cache_programs, 2, false); 31 | this.timeShiftFlag = jceInputStream.read(this.timeShiftFlag, 3, false); 32 | } 33 | 34 | @Override // com.qq.taf.jce.JceStruct 35 | public void writeTo(JceOutputStream jceOutputStream) { 36 | jceOutputStream.write(this.errcode, 0); 37 | String str = this.errmsg; 38 | if (str != null) { 39 | jceOutputStream.write(str, 1); 40 | } 41 | ArrayList arrayList = this.programs; 42 | if (arrayList != null) { 43 | jceOutputStream.write((Collection) arrayList, 2); 44 | } 45 | jceOutputStream.write(this.timeShiftFlag, 3); 46 | } 47 | 48 | public TVTimeShiftProgramResponse(int i2, String str, ArrayList arrayList, int i3) { 49 | this.errcode = 0; 50 | this.errmsg = ""; 51 | this.programs = null; 52 | this.timeShiftFlag = 0; 53 | this.errcode = i2; 54 | this.errmsg = str; 55 | this.programs = arrayList; 56 | this.timeShiftFlag = i3; 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/TextInnerLayoutInfo.java: -------------------------------------------------------------------------------- 1 | package com.tencent.videolite.android.datamodel.cctvjce; 2 | 3 | import com.qq.taf.jce.JceInputStream; 4 | import com.qq.taf.jce.JceOutputStream; 5 | import com.qq.taf.jce.JceStruct; 6 | public final class TextInnerLayoutInfo extends JceStruct { 7 | public int bottomPending; 8 | public int leftPending; 9 | public int rightPending; 10 | public int topPending; 11 | 12 | public TextInnerLayoutInfo() { 13 | this.leftPending = 0; 14 | this.topPending = 0; 15 | this.rightPending = 0; 16 | this.bottomPending = 0; 17 | } 18 | 19 | @Override // com.qq.taf.jce.JceStruct 20 | public void readFrom(JceInputStream jceInputStream) { 21 | this.leftPending = jceInputStream.read(this.leftPending, 0, false); 22 | this.topPending = jceInputStream.read(this.topPending, 1, false); 23 | this.rightPending = jceInputStream.read(this.rightPending, 2, false); 24 | this.bottomPending = jceInputStream.read(this.bottomPending, 3, false); 25 | } 26 | 27 | @Override // com.qq.taf.jce.JceStruct 28 | public void writeTo(JceOutputStream jceOutputStream) { 29 | jceOutputStream.write(this.leftPending, 0); 30 | jceOutputStream.write(this.topPending, 1); 31 | jceOutputStream.write(this.rightPending, 2); 32 | jceOutputStream.write(this.bottomPending, 3); 33 | } 34 | 35 | public TextInnerLayoutInfo(int i2, int i3, int i4, int i5) { 36 | this.leftPending = 0; 37 | this.topPending = 0; 38 | this.rightPending = 0; 39 | this.bottomPending = 0; 40 | this.leftPending = i2; 41 | this.topPending = i3; 42 | this.rightPending = i4; 43 | this.bottomPending = i5; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/appreciate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/drawable/appreciate.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/drawable/banner.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/bingtuan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/drawable/bingtuan.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/cctv8k.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/drawable/cctv8k.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/cetv1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/drawable/cetv1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/chongqing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/drawable/chongqing.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/drawable/logo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/rounded_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/rounded_background2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/tianjin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/drawable/tianjin.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/xinjiang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/drawable/xinjiang.png -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/channel.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/layout/info.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 16 | 17 | 25 | 26 | 35 | 36 | 46 | 47 | 48 | 53 | -------------------------------------------------------------------------------- /app/src/main/res/layout/player.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 17 | 18 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/layout/time.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | #0096a6 3 | #30000000 4 | #000 5 | #FFF 6 | #223239 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 我的电视 3 | 换台反转 4 | 换台时显示频道号 5 | 检查更新 6 | 开机自启 7 | 好的 8 | 显示时间 9 | 退出 10 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/xml/network.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | plugins { 3 | id 'com.android.application' version '8.3.0' apply false 4 | id 'com.android.library' version '8.3.0' apply false 5 | id 'org.jetbrains.kotlin.android' version '1.9.22' apply false 6 | } -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | # AndroidX package structure to make it clearer which packages are bundled with the 15 | # Android operating system, and which are packaged with your app's APK 16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 17 | android.useAndroidX=true 18 | # Kotlin code style for this project: "official" or "obsolete": 19 | kotlin.code.style=official 20 | # Enables namespacing of each library's R class so that its R class includes only the 21 | # resources declared in the library itself and none from the library's dependencies, 22 | # thereby reducing the size of the R class for that library 23 | android.nonTransitiveRClass=true 24 | #android.defaults.buildfeatures.buildconfig=true 25 | android.nonFinalResIds=false -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Dec 01 13:53:24 HKT 2023 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-rc-1-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @rem 2 | @rem Copyright 2015 the original author or authors. 3 | @rem 4 | @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | @rem you may not use this file except in compliance with the License. 6 | @rem You may obtain a copy of the License at 7 | @rem 8 | @rem https://www.apache.org/licenses/LICENSE-2.0 9 | @rem 10 | @rem Unless required by applicable law or agreed to in writing, software 11 | @rem distributed under the License is distributed on an "AS IS" BASIS, 12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @rem See the License for the specific language governing permissions and 14 | @rem limitations under the License. 15 | @rem 16 | 17 | @if "%DEBUG%" == "" @echo off 18 | @rem ########################################################################## 19 | @rem 20 | @rem Gradle startup script for Windows 21 | @rem 22 | @rem ########################################################################## 23 | 24 | @rem Set local scope for the variables with windows NT shell 25 | if "%OS%"=="Windows_NT" setlocal 26 | 27 | set DIRNAME=%~dp0 28 | if "%DIRNAME%" == "" set DIRNAME=. 29 | set APP_BASE_NAME=%~n0 30 | set APP_HOME=%DIRNAME% 31 | 32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter. 33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 34 | 35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 37 | 38 | @rem Find java.exe 39 | if defined JAVA_HOME goto findJavaFromJavaHome 40 | 41 | set JAVA_EXE=java.exe 42 | %JAVA_EXE% -version >NUL 2>&1 43 | if "%ERRORLEVEL%" == "0" goto execute 44 | 45 | echo. 46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 47 | echo. 48 | echo Please set the JAVA_HOME variable in your environment to match the 49 | echo location of your Java installation. 50 | 51 | goto fail 52 | 53 | :findJavaFromJavaHome 54 | set JAVA_HOME=%JAVA_HOME:"=% 55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 56 | 57 | if exist "%JAVA_EXE%" goto execute 58 | 59 | echo. 60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 61 | echo. 62 | echo Please set the JAVA_HOME variable in your environment to match the 63 | echo location of your Java installation. 64 | 65 | goto fail 66 | 67 | :execute 68 | @rem Setup the command line 69 | 70 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 71 | 72 | 73 | @rem Execute Gradle 74 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* 75 | 76 | :end 77 | @rem End local scope for the variables with windows NT shell 78 | if "%ERRORLEVEL%"=="0" goto mainEnd 79 | 80 | :fail 81 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 82 | rem the _cmd.exe /c_ return code! 83 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 84 | exit /b 1 85 | 86 | :mainEnd 87 | if "%OS%"=="Windows_NT" endlocal 88 | 89 | :omega 90 | -------------------------------------------------------------------------------- /history.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | in_changelog=false 4 | 5 | while IFS= read -r line; do 6 | if [[ "$line" == "## "* ]]; then 7 | continue 8 | fi 9 | 10 | if [[ $in_changelog == false ]] && [[ "$line" == "### "* ]]; then 11 | in_changelog=true 12 | continue 13 | fi 14 | 15 | if [[ $in_changelog == true ]] && [[ "$line" == "### "* ]]; then 16 | break 17 | fi 18 | 19 | echo "$line" 20 | done < HISTORY.md 21 | -------------------------------------------------------------------------------- /screenshots/appreciate.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/screenshots/appreciate.jpeg -------------------------------------------------------------------------------- /screenshots/control.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/screenshots/control.jpg -------------------------------------------------------------------------------- /screenshots/img_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/screenshots/img_1.png -------------------------------------------------------------------------------- /screenshots/img_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/screenshots/img_2.png -------------------------------------------------------------------------------- /screenshots/img_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/screenshots/img_3.png -------------------------------------------------------------------------------- /screenshots/zfb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizongying/my-tv/d65ac508eb56d454d565d7a53df35fa4d5403720/screenshots/zfb.jpg -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | google() 4 | mavenCentral() 5 | gradlePluginPortal() 6 | } 7 | } 8 | dependencyResolutionManagement { 9 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) 10 | repositories { 11 | google() 12 | mavenCentral() 13 | } 14 | } 15 | rootProject.name = "My TV" 16 | include ':app' 17 | -------------------------------------------------------------------------------- /version.json: -------------------------------------------------------------------------------- 1 | {"version_code": 33619968, "version_name": "v2.1.0"} 2 | --------------------------------------------------------------------------------