action.yml 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  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. sublevel:
  14. description: 'Kernel sublevel'
  15. required: true
  16. runs:
  17. using: "composite"
  18. steps:
  19. - name: Enable IP Set & Firewall Configs
  20. uses: ./.github/actions/set-kernel-config
  21. with:
  22. config_list: |
  23. CONFIG_IP_SET=y
  24. CONFIG_IP_SET_MAX=65534
  25. CONFIG_IP_SET_BITMAP_IP=y
  26. CONFIG_IP_SET_BITMAP_IPMAC=y
  27. CONFIG_IP_SET_BITMAP_PORT=y
  28. CONFIG_IP_SET_HASH_IP=y
  29. CONFIG_IP_SET_HASH_IPMARK=y
  30. CONFIG_IP_SET_HASH_IPPORT=y
  31. CONFIG_IP_SET_HASH_IPPORTIP=y
  32. CONFIG_IP_SET_HASH_IPPORTNET=y
  33. CONFIG_IP_SET_HASH_IPMAC=y
  34. CONFIG_IP_SET_HASH_MAC=y
  35. CONFIG_IP_SET_HASH_NETPORTNET=y
  36. CONFIG_IP_SET_HASH_NET=y
  37. CONFIG_IP_SET_HASH_NETNET=y
  38. CONFIG_IP_SET_HASH_NETPORT=y
  39. CONFIG_IP_SET_HASH_NETIFACE=y
  40. CONFIG_IP_SET_LIST_SET=y
  41. CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y
  42. CONFIG_NETFILTER_XT_SET=y
  43. CONFIG_NETFILTER_XT_TARGET_LOG=y
  44. CONFIG_NETFILTER_XT_MATCH_RECENT=y
  45. CONFIG_IP6_NF_NAT=y
  46. CONFIG_IP6_NF_TARGET_MASQUERADE=y
  47. - name: Enable TCP Congestion Control Configs
  48. uses: ./.github/actions/set-kernel-config
  49. with:
  50. config_list: |
  51. CONFIG_TCP_CONG_ADVANCED=y
  52. CONFIG_TCP_CONG_BBR=y
  53. CONFIG_TCP_CONG_CUBIC=y
  54. CONFIG_TCP_CONG_BIC=y
  55. CONFIG_TCP_CONG_WESTWOOD=y
  56. CONFIG_TCP_CONG_HTCP=y
  57. CONFIG_DEFAULT_BBR=y
  58. CONFIG_DEFAULT_TCP_CONG="bbr"
  59. - name: Enable Traffic Shaping (Qdisc) Configs
  60. uses: ./.github/actions/set-kernel-config
  61. with:
  62. config_list: |
  63. CONFIG_NET_SCH_FQ=y
  64. CONFIG_NET_SCH_FQ_CODEL=y
  65. CONFIG_NET_SCH_CAKE=y
  66. - name: Enable Connection Marking Configs
  67. uses: ./.github/actions/set-kernel-config
  68. with:
  69. config_list: |
  70. CONFIG_NET_ACT_CONNMARK=y
  71. - name: Enable TTL/Hop Limit Target Configs
  72. uses: ./.github/actions/set-kernel-config
  73. with:
  74. config_list: |
  75. CONFIG_IP_NF_TARGET_TTL=y
  76. CONFIG_IP6_NF_TARGET_HL=y
  77. CONFIG_IP6_NF_MATCH_HL=y
  78. - name: Enable Wireguard VPN Configs
  79. uses: ./.github/actions/set-kernel-config
  80. with:
  81. config_list: |
  82. CONFIG_WIREGUARD=y
  83. - name: Apply Kernel Config for 5.10
  84. shell: bash
  85. working-directory: ${{ github.workspace }}/kernel/common
  86. if: inputs.kernel_version == '5.10'
  87. run: |
  88. sed -i 's/CONFIG_IP_SET_MAX/65534/g' net/netfilter/ipset/ip_set_core.c
  89. - name: Apply BBRv3 Patch
  90. shell: bash
  91. working-directory: ${{ github.workspace }}/kernel/common
  92. run: |
  93. set -euo pipefail
  94. if [[ ${{ inputs.version }} == "android16-6.12" ]]; then
  95. #patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android15-6.6.patch"
  96. echo "skipped"
  97. elif [[ ${{ inputs.version }} == "android15-6.6" ]]; then
  98. patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android15-6.6.patch"
  99. elif [[ ${{ inputs.version }} == "android14-6.1" ]]; then
  100. patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android14-6.1.patch"
  101. elif [[ ${{ inputs.version }} == "android14-5.15" ]]; then
  102. patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android13-5.15.patch"
  103. elif [[ ${{ inputs.version }} == "android13-5.15" ]]; then
  104. patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android13-5.15.patch"
  105. elif [[ ${{ inputs.version }} == "android13-5.10" ]]; then
  106. patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android12-5.10.patch"
  107. elif [[ ${{ inputs.version }} == "android12-5.10" ]]; then
  108. patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android12-5.10.patch"
  109. fi
  110. if [[ ${{ inputs.version }} == "android12-5.10" || ${{ inputs.version }} == "android13-5.10" ]]; then
  111. if ! grep -qF 'int proc_dou8vec_minmax(' ./include/linux/sysctl.h; then
  112. patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/sysctl_add_proc_dou8vec_minmax.patch"
  113. patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/sysctl_fix_data-races_in_proc_dou8vec_minmax.patch"
  114. fi
  115. fi
  116. echo "✅ BBRv3 patches applied"
  117. - name: Enable BBRv3 Kernel Config
  118. uses: ./.github/actions/set-kernel-config
  119. with:
  120. config_list: |
  121. CONFIG_TCP_CONG_BBR3=y
  122. - name: Enable CIFS Configs
  123. uses: ./.github/actions/set-kernel-config
  124. with:
  125. config_list: |
  126. CONFIG_CIFS=y
  127. CONFIG_NETWORK_FILESYSTEMS=y
  128. CONFIG_NETFS_SUPPORT=y
  129. CONFIG_KEYS=y
  130. CONFIG_CIFS_XATTR=ys
  131. CONFIG_CIFS_POSIX=y
  132. - name: Fix CIFS on android16-6.12
  133. shell: bash
  134. working-directory: ${{ github.workspace }}/kernel/common
  135. run: |
  136. if [[ ${{ inputs.version }} == "android16-6.12" ]]; then
  137. sed -i '/"fs\/netfs\/netfs\.ko",/d' modules.bzl
  138. fi