action.yml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. name: 'Setup Networking Options'
  2. description: 'Set up kernel configuration fragment with required options'
  3. inputs:
  4. version:
  5. description: 'Kernel config version (e.g., android15-6.6)'
  6. required: true
  7. kernel_version:
  8. description: 'Kernel version (e.g., 6.1)'
  9. required: true
  10. android_version:
  11. description: 'Android version (e.g., android14)'
  12. required: true
  13. runs:
  14. using: "composite"
  15. steps:
  16. - name: Patch with BBRv3
  17. if: ${{ inputs.kernel_version == '6.1' && false }}
  18. shell: bash
  19. working-directory: ${{ github.workspace }}/kernel/common
  20. run: |
  21. set -euo pipefail
  22. curl -L https://raw.githubusercontent.com/ahmed-alnassif/GKI-Duchamp/dev/kernel-patches/bbrv3/bbrv3.patch | patch -p1
  23. - name: Add IP SET & IPv6_NAT Support
  24. shell: bash
  25. run: |
  26. cat >> "${{ github.workspace }}/kernel/common/arch/arm64/configs/gki_defconfig" << 'EOF'
  27. CONFIG_IP_SET=y
  28. CONFIG_IP_SET_MAX=65534
  29. CONFIG_IP_SET_BITMAP_IP=y
  30. CONFIG_IP_SET_BITMAP_IPMAC=y
  31. CONFIG_IP_SET_BITMAP_PORT=y
  32. CONFIG_IP_SET_HASH_IP=y
  33. CONFIG_IP_SET_HASH_IPMARK=y
  34. CONFIG_IP_SET_HASH_IPPORT=y
  35. CONFIG_IP_SET_HASH_IPPORTIP=y
  36. CONFIG_IP_SET_HASH_IPPORTNET=y
  37. CONFIG_IP_SET_HASH_IPMAC=y
  38. CONFIG_IP_SET_HASH_MAC=y
  39. CONFIG_IP_SET_HASH_NETPORTNET=y
  40. CONFIG_IP_SET_HASH_NET=y
  41. CONFIG_IP_SET_HASH_NETNET=y
  42. CONFIG_IP_SET_HASH_NETPORT=y
  43. CONFIG_IP_SET_HASH_NETIFACE=y
  44. CONFIG_IP_SET_LIST_SET=y
  45. CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y
  46. CONFIG_NETFILTER_XT_SET=y
  47. CONFIG_NETFILTER_XT_TARGET_LOG=y
  48. CONFIG_NETFILTER_XT_MATCH_RECENT=y
  49. CONFIG_IP6_NF_NAT=y
  50. CONFIG_IP6_NF_TARGET_MASQUERADE=y
  51. EOF
  52. - name: Apply TCP Congestion Control
  53. shell: bash
  54. run: |
  55. cat >> "${{ github.workspace }}/kernel/common/arch/arm64/configs/gki_defconfig" << 'EOF'
  56. CONFIG_TCP_CONG_ADVANCED=y
  57. CONFIG_TCP_CONG_BBR=y
  58. CONFIG_TCP_CONG_CUBIC=y
  59. CONFIG_TCP_CONG_BIC=y
  60. CONFIG_TCP_CONG_WESTWOOD=y
  61. CONFIG_TCP_CONG_HTCP=y
  62. CONFIG_DEFAULT_BBR=y
  63. CONFIG_DEFAULT_TCP_CONG="bbr"
  64. CONFIG_NET_SCH_FQ=y
  65. CONFIG_NET_SCH_FQ_CODEL=y
  66. EOF
  67. - name: Apply Kernel Config for 5.10
  68. shell: bash
  69. working-directory: ${{ github.workspace }}/kernel/common
  70. if: inputs.kernel_version == '5.10'
  71. run: |
  72. sed -i 's/CONFIG_IP_SET_MAX/65534/g' net/netfilter/ipset/ip_set_core.c
  73. - name: 'Apply BBRv3'
  74. if: false
  75. shell: bash
  76. working-directory: ${{ github.workspace }}/kernel/common
  77. run: |
  78. set -euo pipefail
  79. cp ${{ github.action_path }}/patches/bbrv3-android14-6.1.patch "${{ github.workspace }}/kernel/common/bbrv3-android14-6.1.patch"
  80. patch -p1 < bbrv3-android14-6.1.patch
  81. - name: Apply NTSync Patch
  82. if: false
  83. shell: bash
  84. working-directory: ${{ github.workspace }}/kernel/common
  85. run: |
  86. set -euo pipefail
  87. echo "Using patch: $(basename $NTSYNC_PATCH)"
  88. if [[ ${{ inputs.versi0n }} = "android16-6.12" ]}; then
  89. echo "Removing pre-existing ntsync files for android16-6.12"
  90. rm -f include/uapi/linux/ntsync.h
  91. rm -f drivers/misc/ntsync.c
  92. fi
  93. cp ${{ github.workspace }}/kernel_patches/common/ntsync/ntsync_compat_${{ inputs.versi0n }}.patch ${{ github.workspace }}/kernel/common
  94. patch -p1 ntsync_compat_${{ inputs.versi0n }}.patch
  95. cp ${{ github.workspace }}/kernel_patches/common/ntsync/ntsync_base.patch ${{ github.workspace }}/kernel/common
  96. patch -p1 < ntsync_base.patch
  97. cat >> "${{ github.workspace }}/kernel/common/arch/arm64/configs/gki_defconfig" << 'EOF'
  98. CONFIG_NTSYNC=y
  99. EOF