115 Commits

Author SHA1 Message Date
Henrik
c98a21b837 v36 2025-04-23 22:08:34 +02:00
Henrik
1a4896bcf6 v36 2025-04-23 22:06:40 +02:00
Henrik
e947eaa3cf v36 2025-04-23 22:05:21 +02:00
GitHub Action
94d43c85f0 Update updaterNR.json for version 35 2025-04-17 06:15:46 +00:00
Henrik
aa83d310c1 v35 2025-04-17 08:15:20 +02:00
Henrik
768dbb2231 v35 2025-04-17 08:14:21 +02:00
Henrik
94fcbb0c94 v35 2025-04-17 08:13:58 +02:00
GitHub Action
127a5a7667 Update updaterNR.json for version 34 2025-04-16 18:56:28 +00:00
Henrik
8be78fb47d v34 2025-04-16 20:55:51 +02:00
Henrik
f0ee58267f v34 2025-04-16 20:53:08 +02:00
Henrik
ead54e8170 v34 2025-04-16 20:52:26 +02:00
GitHub Action
ea11e45ad0 Update updaterNR.json for version 33 2025-04-12 21:14:25 +00:00
Henrik
ad881d17a3 v33 2025-04-12 23:14:03 +02:00
Henrik
08df8f26d3 v33 2025-04-12 23:12:47 +02:00
Henrik
813210fb6b v33 2025-04-12 23:12:23 +02:00
GitHub Action
20390d2e7f Update updaterNR.json for version 32 2025-04-11 14:45:24 +00:00
Henrik
96d04e012d v32 2025-04-11 16:45:01 +02:00
Henrik
c6474804a0 v32 2025-04-11 16:43:16 +02:00
Henrik
735126bfdd v32 2025-04-11 16:42:56 +02:00
GitHub Action
4277b194d0 Update updaterNR.json for version 31 2025-04-11 14:08:29 +00:00
Henrik
85c6b7f6ab v31 2025-04-11 16:08:10 +02:00
Henrik
21b998f21f v31 2025-04-11 16:05:57 +02:00
Henrik
e09af2aeb3 v31 2025-04-11 16:05:34 +02:00
GitHub Action
496001b093 Update updaterNR.json for version 30 2025-04-11 13:22:17 +00:00
Henrik
d3b33aae5a v30 2025-04-11 15:21:43 +02:00
Henrik
07faafb006 v30 2025-04-11 15:18:39 +02:00
Henrik
3027f7acf8 v30 2025-04-11 15:18:09 +02:00
GitHub Action
1a0580ff85 Update updaterNR.json for version 29 2025-03-16 08:20:51 +00:00
Henrik
b4d84a0705 v29 2025-03-16 09:20:24 +01:00
Henrik
3cc34f0272 Update module.prop 2025-03-16 09:18:10 +01:00
Henrik
0b2f2dab0d v29 2025-03-16 09:17:37 +01:00
GitHub Action
99cc6203e0 Update updaterNR.json for version 28 2025-03-15 18:25:34 +00:00
Henrik
37fad0769c v28 2025-03-15 19:25:01 +01:00
Henrik
282fc11d02 v28 2025-03-15 19:24:03 +01:00
Henrik
a5aafb8c53 v28 2025-03-15 19:23:31 +01:00
GitHub Action
5ef99966fd Update updaterLTE.json for version 41 2025-02-23 15:59:00 +00:00
Henrik
7c037792b6 v41 2025-02-23 16:58:42 +01:00
Henrik
a035a44974 v41 2025-02-23 16:57:15 +01:00
Henrik
0b1e0234c0 v41
add interband ULCA for the following combos:
32A + 8A + 7A + 3C
20A + 8A + 7A + 3C
32A + 20A + 7A + 3C
2025-02-23 16:56:55 +01:00
GitHub Action
884406a183 Update updaterLTE.json for version 40 2025-02-22 07:00:41 +00:00
Henrik
0bba25d1b8 v40 2025-02-22 08:00:10 +01:00
Henrik
dfbc3e9151 v40 2025-02-22 07:58:30 +01:00
Henrik
c4e07a0e93 v40
Add
32A+20A+8A+3C with interband UL-CA (3-8, 3-20)
2025-02-22 07:57:50 +01:00
GitHub Action
21da62cbd8 Update updaterLTE.json for version 39 2025-02-20 18:09:46 +00:00
Henrik
3a9f91c6fd v39 2025-02-20 19:09:22 +01:00
Henrik
cd9ea8d704 v39 2025-02-20 19:08:22 +01:00
Henrik
490be7d10b v39
add ULCA for 8A+7A+3A+1A LTE CA combos
2025-02-20 19:07:57 +01:00
GitHub Action
31c993fbce Update updaterNR.json for version 27 2025-02-20 17:54:36 +00:00
Henrik
724570eb40 v27 2025-02-20 18:54:01 +01:00
Henrik
790c3aa063 v27 2025-02-20 18:52:16 +01:00
Henrik
0c7c822585 remove all EN-DC combos with 20_n1 UL and n28 (Radio Link Failure (RLF)) 2025-02-20 18:51:45 +01:00
GitHub Action
f7cce3b498 Update updaterNR.json for version 26 2025-02-20 10:29:23 +00:00
Henrik
6244f58315 Update changelog-NR.md 2025-02-20 11:28:57 +01:00
Henrik
e5a04fe91a Update module.prop 2025-02-20 11:25:35 +01:00
Henrik
abb26a8ba3 Add files via upload
+ 3-20-32_n28-n1 (20_n1 UL)
+ 20-32_n28-n1 (20_n1 UL)
+ 3-20_n28-n1 (20_n1 UL)
+ 20_n28-n1 (20_n1 UL)
2025-02-20 11:25:11 +01:00
GitHub Action
60d326b0d4 Update updaterNR.json for version 25 2025-02-12 14:51:28 +00:00
Henrik
da0bf79948 v25 2025-02-12 15:51:02 +01:00
Henrik
481d2f7995 Update module.prop 2025-02-12 15:49:05 +01:00
Henrik
d05a2a8109 Add files via upload 2025-02-12 15:48:46 +01:00
Henrik
daf7583c79 Update release-nr-mod.yml 2025-02-09 21:36:17 +01:00
Henrik
393aa2dd60 Update release-lte-mod.yml 2025-02-09 21:35:38 +01:00
Henrik
469faa43e8 Update changelog-LTE.md 2025-02-09 21:30:46 +01:00
GitHub Action
94f933751b Update updaterLTE.json for version 38 2025-02-09 20:27:02 +00:00
Henrik
1d10035a50 v38 2025-02-09 21:26:43 +01:00
Henrik
06196b8372 add 32a+20a+8a+3c with 3c UL 2025-02-09 21:26:14 +01:00
Henrik
ff55c22ed4 Update release-nr-mod.yml 2025-02-09 21:14:18 +01:00
Henrik
af7300a815 Update release-lte-mod.yml 2025-02-09 21:13:08 +01:00
Henrik
00b86a99cb Update release-lte-mod.yml 2025-02-09 20:35:14 +01:00
Henrik
1fb39e6c37 Update release-nr-mod.yml 2025-02-09 20:34:55 +01:00
Henrik
06bdc1bba4 Update changelog-NR.md 2025-02-09 10:43:22 +01:00
GitHub Action
615e3f79f7 Update updaterNR.json for version 24 2025-02-09 09:41:35 +00:00
Henrik
c5b795bc7f Update module.prop 2025-02-09 10:41:18 +01:00
Henrik
67edf75b6d Add 32A+20A+8A+3C_n1A EN-DC combo with different bcs 2025-02-09 10:41:03 +01:00
GitHub Action
10be123202 Update updaterLTE.json for version 37 2025-02-08 23:12:02 +00:00
Henrik
30d2da5804 Update release-lte-mod.yml 2025-02-09 00:10:27 +01:00
GitHub Action
6a488256f8 Update updaterLTE.json for version 37 2025-02-08 23:04:00 +00:00
Henrik
67255f13fa Update release-nr-mod.yml 2025-02-09 00:03:15 +01:00
Henrik
864cf358ee Update release-lte-mod.yml 2025-02-09 00:03:03 +01:00
Henrik
4898883a69 Update updaterNR.json 2025-02-09 00:02:36 +01:00
Henrik
bd879507e6 Update changelog-NR.md 2025-02-09 00:02:15 +01:00
Henrik
d9ed0c9980 Update changelog-LTE.md 2025-02-09 00:01:44 +01:00
Henrik
e50d2189be Create changelog-LTE.md 2025-02-09 00:00:24 +01:00
Henrik
c97896ae40 Rename changelog.md to changelog-NR.md 2025-02-09 00:00:04 +01:00
Henrik
f6eeff91f8 Update module.prop 2025-02-08 23:59:33 +01:00
Henrik
a8ce46a3e0 Add files via upload 2025-02-08 23:59:05 +01:00
Henrik
75f8320041 Update release-lte-mod.yml 2025-02-08 23:45:14 +01:00
Henrik
b1e0b00c3d Update release-nr-mod.yml 2025-02-08 23:44:19 +01:00
Henrik
8499321115 Update updaterNR.json 2025-02-08 23:40:15 +01:00
Henrik
86b59a2f99 Update release-lte-mod.yml 2025-02-08 23:40:01 +01:00
Henrik
afe031be8d Update release-nr-mod.yml 2025-02-08 23:39:38 +01:00
GitHub Action
d5e802adaf Update updaterNR.json for version 23 2025-02-08 22:35:57 +00:00
Henrik
dae1b6e665 Update changelog.md
All included combos: https://uecaps.hennes.xyz/view/multi/?id=3277c022-ba8e-4eed-96da-f2c58a6fa91a
2025-02-08 23:35:25 +01:00
Henrik
bdb562c880 Update module.prop 2025-02-08 23:33:47 +01:00
Henrik
857244654d Add files via upload 2025-02-08 23:31:37 +01:00
Henrik
d9eba63177 Update README.md 2025-02-08 23:30:49 +01:00
Henrik
5331ba8ef6 Update README.md 2025-02-08 23:30:19 +01:00
Henrik
ecac6de2d2 Add files via upload 2025-02-08 23:29:16 +01:00
Henrik
1287ccf5c0 Update release-nr-mod.yml 2025-02-08 23:27:36 +01:00
Henrik
b6acf93a90 Update release-lte-mod.yml 2025-02-08 23:27:17 +01:00
Henrik
a2c2084aab Update release-nr-mod.yml 2025-02-08 23:22:51 +01:00
Henrik
f449fce095 Update release-lte-mod.yml 2025-02-08 23:21:46 +01:00
Henrik
fcecd72a19 Update module.prop 2025-02-08 23:16:26 +01:00
Henrik
3634ae7907 Update module.prop 2025-02-08 23:15:56 +01:00
Henrik
507d021583 Create changelog.md 2025-02-08 23:07:09 +01:00
Henrik
49a159ccd9 Create updaterLTE.json 2025-02-08 23:03:32 +01:00
Henrik
83d5230746 Create updaterNR.json 2025-02-08 23:03:12 +01:00
Henrik
bbcaa3b459 Add python script to remove all intraband endc combos...
because they interfere with E/// RAN EN-DC LTE-CA algorithm
2025-02-08 22:46:53 +01:00
Henrik
77681faf38 Update README.md 2025-02-08 13:01:22 +01:00
Henrik
7954017b77 Update module.prop 2025-02-08 12:46:46 +01:00
Henrik
4dafbbbceb fix lte and nr bcs in endc combos 2025-02-08 12:46:26 +01:00
Henrik
dadcb4ea18 Add files via upload 2025-02-01 17:51:03 +01:00
Henrik
a97f79f071 Update module.prop 2025-02-01 17:41:38 +01:00
Henrik
aede50ab5d Add files via upload
Add combos:
DL                     UL
32a-20a-8a-3a 20a-3a
32a-20a-8a-3a 8a-3a
32a-20a-8a-3c 3a
2025-02-01 17:41:14 +01:00
Henrik
64f2a957cd Create README.md 2025-01-31 22:21:25 +01:00
Henrik
b0ff46c049 Update release-nr-mod.yml 2025-01-31 22:12:54 +01:00
14 changed files with 498 additions and 18 deletions

View File

@@ -14,15 +14,20 @@ jobs:
- name: Checkout repo
uses: actions/checkout@v4
- name: Get date
id: date
run: echo "VERSION=v$(date +'%Y-%m-%d')" >> $GITHUB_ENV
- name: Read module.prop
id: module_prop
run: |
VERSION=$(grep "version=" p9_lte_combos_mod/module.prop | cut -d= -f2)
VERSIONCODE=$(grep "versionCode=" p9_lte_combos_mod/module.prop | cut -d= -f2)
echo "MOD_VERSION=$VERSION" >> $GITHUB_ENV
echo "MOD_VERSIONCODE=$VERSIONCODE" >> $GITHUB_ENV
echo "RELEASE_TAG=LTE-v$VERSIONCODE" >> $GITHUB_ENV
- name: Zip folder
working-directory: ./
run: |
cd p9_lte_combos_mod
zip -r ../p9_lte_combos_mod.zip ./*
zip -r ../p9_lte_combos_mod_v${{ env.MOD_VERSION }}.zip ./*
cd ..
- name: Create Release
@@ -31,9 +36,50 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.VERSION }}
name: Release ${{ env.VERSION }}
tag_name: ${{ env.RELEASE_TAG }}
name: Release ${{ env.RELEASE_TAG }}
draft: false
prerelease: false
files: |
p9_lte_combos_mod.zip
p9_lte_combos_mod_v${{ env.MOD_VERSION }}.zip
- name: Update updater JSON
run: |
cat > updaterLTE.json << EOF
{
"version": "${{ env.MOD_VERSION }}",
"versionCode": ${{ env.MOD_VERSIONCODE }},
"zipUrl": "https://github.com/${{ github.repository }}/releases/download/${{ env.RELEASE_TAG }}/p9_lte_combos_mod_v${{ env.MOD_VERSION }}.zip",
"changelog": "https://raw.githubusercontent.com/${{ github.repository }}/main/changelog-LTE.md"
}
EOF
- name: Commit and push updater JSON
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add updaterLTE.json
git commit -m "Update updaterLTE.json for version ${{ env.MOD_VERSION }}"
git push
- name: Send to Telegram
env:
BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
CHAT_ID_1: ${{ secrets.TELEGRAM_CHAT_ID_1_GROUP }}
CHAT_ID_2: ${{ secrets.TELEGRAM_CHAT_ID_2 }}
run: |
# Send to first chat (with error checking)
if ! curl -s -f -o /dev/null -F document=@"p9_lte_combos_mod_v${{ env.MOD_VERSION }}.zip" \
-F caption="New LTE Module Release ${{ env.RELEASE_TAG }}" \
"https://api.telegram.org/bot${BOT_TOKEN}/sendDocument?chat_id=${CHAT_ID_1}"; then
echo "Failed to send to first chat"
exit 1
fi
# Send to second chat (with error checking)
if ! curl -s -f -o /dev/null -F document=@"p9_lte_combos_mod_v${{ env.MOD_VERSION }}.zip" \
-F caption="New LTE Module Release ${{ env.RELEASE_TAG }}" \
"https://api.telegram.org/bot${BOT_TOKEN}/sendDocument?chat_id=${CHAT_ID_2}"; then
echo "Failed to send to second chat"
exit 1
fi

View File

@@ -1,7 +1,11 @@
name: Release Magisk module NR
on:
workflow_dispatch:
permissions:
contents: write
jobs:
create-release:
runs-on: ubuntu-latest
@@ -10,15 +14,20 @@ jobs:
- name: Checkout repo
uses: actions/checkout@v4
- name: Get date
id: date
run: echo "VERSION=v$(date +'%Y-%m-%d')" >> $GITHUB_ENV
- name: Read module.prop
id: module_prop
run: |
VERSION=$(grep "version=" p9_nr_platform_mod/module.prop | cut -d= -f2)
VERSIONCODE=$(grep "versionCode=" p9_nr_platform_mod/module.prop | cut -d= -f2)
echo "MOD_VERSION=$VERSION" >> $GITHUB_ENV
echo "MOD_VERSIONCODE=$VERSIONCODE" >> $GITHUB_ENV
echo "RELEASE_TAG=NR-v$VERSIONCODE" >> $GITHUB_ENV
- name: Zip folder
working-directory: ./
run: |
cd p9_nr_platform_mod
zip -r ../p9_nr_platform_mod.zip ./*
zip -r ../p9_nr_platform_mod_v${{ env.MOD_VERSION }}.zip ./*
cd ..
- name: Create Release
@@ -27,9 +36,50 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.VERSION }}
name: Release ${{ env.VERSION }}
tag_name: ${{ env.RELEASE_TAG }}
name: Release ${{ env.RELEASE_TAG }}
draft: false
prerelease: false
files: |
p9_nr_platform_mod.zip
p9_nr_platform_mod_v${{ env.MOD_VERSION }}.zip
- name: Update updater JSON
run: |
cat > updaterNR.json << EOF
{
"version": "${{ env.MOD_VERSION }}",
"versionCode": ${{ env.MOD_VERSIONCODE }},
"zipUrl": "https://github.com/${{ github.repository }}/releases/download/${{ env.RELEASE_TAG }}/p9_nr_platform_mod_v${{ env.MOD_VERSION }}.zip",
"changelog": "https://raw.githubusercontent.com/${{ github.repository }}/main/changelog-NR.md"
}
EOF
- name: Commit and push updater JSON
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add updaterNR.json
git commit -m "Update updaterNR.json for version ${{ env.MOD_VERSION }}"
git push
- name: Send to Telegram
env:
BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
CHAT_ID_1: ${{ secrets.TELEGRAM_CHAT_ID_1_GROUP }}
CHAT_ID_2: ${{ secrets.TELEGRAM_CHAT_ID_2 }}
run: |
# Send to first chat (with error checking)
if ! curl -s -f -o /dev/null -F document=@"p9_nr_platform_mod_v${{ env.MOD_VERSION }}.zip" \
-F caption="New NR Module Release ${{ env.RELEASE_TAG }}" \
"https://api.telegram.org/bot${BOT_TOKEN}/sendDocument?chat_id=${CHAT_ID_1}"; then
echo "Failed to send to first chat"
exit 1
fi
# Send to second chat (with error checking)
if ! curl -s -f -o /dev/null -F document=@"p9_nr_platform_mod_v${{ env.MOD_VERSION }}.zip" \
-F caption="New NR Module Release ${{ env.RELEASE_TAG }}" \
"https://api.telegram.org/bot${BOT_TOKEN}/sendDocument?chat_id=${CHAT_ID_2}"; then
echo "Failed to send to second chat"
exit 1
fi

25
README.md Normal file
View File

@@ -0,0 +1,25 @@
## [Check Releases for Magisk modules](https://github.com/high3eam/pixel9-EU-combos/releases)
### Module includes a built-in updater
## Edit combos yourself
- Download [`protoc`](https://github.com/protocolbuffers/protobuf/releases) as well as the ShannonUeCap `.proto template` files from this repo.
- Then use protoc to decode the protobuf binary file.
For NR combos, use:
```sh
protoc --decode=ShannonNrUECap ShannonNrUeCap.proto < PLATFORM_11376227466629817631.binarypb > decoded.txt
```
For LTE combos, use:
```sh
protoc --decode=ShannonLteUECap ShannonLteUeCap.proto < lte_2160127815.binarypb > decoded.txt
```
Then, edit, add or delete combos as you like.
After that, recompile to protobuf binary.
For NR combos, use:
```sh
protoc --encode=ShannonNrUECap ShannonNrUeCap.proto < decoded.txt > PLATFORM_11376227466629817631.binarypb
```
For LTE combos, use:
```sh
protoc --encode=ShannonLteUECap ShannonLteUeCap.proto < decoded.txt > lte_2160127815.binarypb
```

44
ShannonLteUeCap.proto Normal file
View File

@@ -0,0 +1,44 @@
syntax = "proto2";
message ShannonLteUECap {
// ShannonUECapLte version.
required uint32 version = 1;
// List of combos.
repeated Combo combos = 2;
// Unknown bitmask.
required uint32 bitmask = 3;
}
message Combo {
// List of Components.
repeated Component components = 1;
/*
The supportedBandwidthCombinationSet of this combo.
It's stored as a 32bit unsigned int, each of its bits has the same value of the corresponding
bit in the BitString. 0 means default i.e. only BCS 0 supported (if applicable).
*/
optional uint32 bcs = 2;
// Unknown bitmask.
required uint32 unknown1 = 3;
// Unknown bitmask.
required uint32 unknown2 = 4;
}
message Component {
// LTE Bands are stored as int
required int32 band = 1;
/*
First 8 bits encode mimo, second 8 bits encode bw class. Bw class is encoded setting to 1 the
bit representing the bw class index.
Ex. 1000 0000 = class A (index 0), 0100 0000 = class B (index 1), 00100 0000 = class C (index 2)
Mimo is encoded as enum, 0 -> 2, 1 -> 4
*/
required int32 bwClassMimoDl = 2;
/*
First 8 bits encode mimo, second 8 bits encode bw class. Bw class is encoded setting to 1 the
bit representing the bw class index.
Ex. 1000 0000 = class A (index 0), 0100 0000 = class B (index 1), 00100 0000 = class C (index 2)
Mimo is encoded as enum, 0 -> 1, 1 -> 2
*/
required int32 bwClassMimoUl = 3;
}

174
ShannonNrUeCap.proto Normal file
View File

@@ -0,0 +1,174 @@
syntax = "proto2";
message ShannonNrUECap {
// ShannonNrUECap version.
optional uint32 version = 1;
// ID assigned to this ShannonNrUECap.
optional int32 id = 2;
// List of combo groups.
repeated ComboGroup comboGroups = 3;
// List of FeatureSetDownlink.
repeated FeatureNr dlFeatureList = 4;
// List of FeatureSetUplink.
repeated FeatureNr ulFeatureList = 5;
// List of FeatureSetDownlinkPerCC.
repeated FeatureDlPerCCNr dlFeaturePerCCList = 6;
// List of FeatureSetUplinkPerCC.
repeated FeatureUlPerCCNr ulFeaturePerCCList = 7;
// Extra features
optional ExtraFeatures extraFeatures = 8;
// Integrity protection
optional uint32 integrity = 9;
}
message ComboGroup {
// Some features that applies to the whole combo group.
required ComboFeatures comboFeatures = 1;
// List of combos that share the same ComboFeatures.
repeated Combo combos = 2;
}
message FeatureNr {
// Intraband Freq Separation is stored as unsigned int
optional uint32 intrabandFreqSeparation = 1;
}
message FeatureDlPerCCNr {
// Max SCS is stored as numerology + 1, i.e. 1 = 15kHz, 2 = 30kHz, 3 = 60kHz, 4 = 120kHz.
required int32 maxScs = 1;
// Max Mimo is stored as an enum. 0 -> not supported, 1 -> 2, 2 -> 4.
required int32 maxMimo = 2;
// Max Bandwidth is stored as it's.
required uint32 maxBw = 3;
/*
Max Modulation Order is stored as an enum. 0 -> not supported, 1 -> QAM64, 2 -> QAM256.
Note that as TS 38 306 4.2.7.8 and 4.2.7.6, this doesn't specify the maximum (nor the minimum)
modulation supported.
*/
required int32 maxModOrder = 4;
// BW 90MHz supported is stored as boolean.
required bool bw90MHzSupported = 5;
}
message FeatureUlPerCCNr {
// Max SCS is stored as numerology + 1, i.e. 1 = 15kHz, 2 = 30kHz, 3 = 60kHz, 4 = 120kHz.
required int32 maxScs = 1;
// Max Mimo is stored as an enum. Max Mimo UL: 0 -> not supported, 1 -> 1, 2 -> 2.
required int32 maxMimo = 2;
// Max Bandwidth is stored as it's.
required int32 maxBw = 3;
/*
Max Modulation Order is stored as an enum. 0 -> not supported, 1 -> QAM64, 2 -> QAM256.
Note that as TS 38 306 4.2.7.8 and 4.2.7.6, this doesn't specify the maximum (nor the minimum)
modulation supported.
*/
required int32 maxModOrder = 4;
// BW 90MHz supported is stored as boolean.
required bool bw90MHzSupported = 5;
// MaxNumberSRS-ResourcePerSet is stored as unsigned int
required uint32 maxNumSRSResPerSet = 6;
}
message ExtraFeatures {
optional uint32 caParamEutraBitmap = 1;
optional uint32 caParamEutraSupportedNaics2CrSAp = 2;
optional uint32 caParamNrBitmap = 3;
optional uint32 caParamNrSimultaneousSrsAssocCsiRsAllCc = 4;
optional uint32 caParamNrMaxNumberSimultaneousNzpCsiRsActBwpAllCc = 5;
optional uint32 caParamNrTotalNumberPortsSimultaneousNzpCsiRsActBwpAllCc = 6;
optional uint32 caParamNrSimultaneousCsiReportsAllCc = 7;
optional uint32 caParamMrdcBitmap = 8;
optional uint32 caParamMrdcUlSharingEutraNr = 9;
optional uint32 caParamMrdcUlSwitchingTimeEutraNr = 10;
}
message ComboFeatures {
/*
The supportedBandwidthCombinationSet that applies to the Nr Components.
It's stored as a 32bit unsigned int, each of its bits has the same value of
the corresponding bit in the BitString.
0 means default i.e. only BCS 0 supported (if applicable).
*/
optional uint32 bcsNr = 1;
/*
The supportedBandwidthCombinationSet that applies to the IntraEnDc
Components (supportedBandwidthCombinationSetIntraENDC).
It's stored as a 32bit unsigned int, each of its bits has the same value of
the corresponding bit in the BitString.
0 means default i.e. only BCS 0 supported (if applicable).
*/
optional uint32 bcsIntraEndc = 2;
/*
The supported Bandwidth Combination Set that applies to the Eutra
Components (supportedBandwidthCombinationSetEUTRA-v1530).
It's stored as a 32bit unsigned int, each of its bits has the same value of
the corresponding bit in the BitString.
0 means default i.e. only BCS 0 supported (if applicable).
*/
optional uint32 bcsEutra = 3;
/*
Power Class of the whole combination, it's stored as an enum.
Note that this doesn't override the powerclass of the uplink bands.
For FR1 0 -> Default, 1 -> PC2, 2 -> PC1.5
For FR2 0 -> Default
*/
optional int32 powerClass = 4;
// IntraBandENDC-Support is stored as an enum. 0 -> contiguous, 1 -> non-contiguous, 2 -> both.
optional int32 intraBandEnDcSupport = 5;
// SupportedNumberTAG is stored as unsigned int.
optional uint32 supportedNumTag = 6;
}
message Combo {
// List of Components.
repeated Component components = 1;
// A bit mask stored as unsigned int that enables or disables this combo for specific SKUs.
required uint32 skuBitMask = 2;
}
message Component {
// LTE Bands are stored as they are, NR Bands are stored as band number + 10000.
required uint32 band = 1;
// BwClass DL is stored as ASCII value - 0x40. 0 means DL not supported.
required uint32 bwClassDl = 2;
// BwClass UL is stored as ASCII value - 0x40. 0 means UL not supported.
required uint32 bwClassUl = 3;
/*
For LTE this is FeatureSetEUTRA-DownlinkId, the corresponding FeatureSetDL-r15
seems to be hardcoded elsewhere (see ShannonFeatureSetEutra).
Note that the index starts from 1 as per 3GPP spec, 0 means DL not supported.
For NR this sets some features that applies to the whole component (not PerCC).
Empirically 1 -> FR1, 2 -> FR2.
*/
required uint32 dlFeatureIndex = 4;
/*
For LTE this is FeatureSetEUTRA-UplinkId, the corresponding FeatureSetUL-r15
seems to be hardcoded elsewhere (see ShannonFeatureSetEutra).
Note that the index starts from 1 as per 3GPP spec, 0 means UL not supported.
For NR this sets some features that applies to the whole component (not PerCC).
Empirically 1 -> 1 SRS port per resource, 2 -> 2 SRS ports per resource.
*/
required uint32 ulFeatureIndex = 5;
/*
This is a list of FeatureSetDownlinkPerCC-Id per each CC. This only applies to NR.
The corresponding FeatureSetDownlinkPerCC are stored in dlFeaturePerCCList.
Note that the index starts from 1 as per 3GPP spec, 0 means DL not supported.
*/
repeated uint32 dlFeaturePerCCIds = 6 [packed = true];
/*
This is a list of FeatureSetUplinkPerCC-Id per each CC. This only applies to NR.
The corresponding FeatureSetUplinkPerCC are stored in ulFeaturePerCCList.
Note that the index starts from 1 as per 3GPP spec, 0 means UL not supported.
*/
repeated uint32 ulFeaturePerCCIds = 7 [packed = true];
/*
SupportedSRS-TxPortSwitch is stored as enum.
1 -> t1r1, 2 -> t1r2, 3 -> t1r4, 4 -> t2r2, 5 -> t2r4, 6 -> t1r4-t2r4
*/
optional int32 srsTxSwitch = 8;
}

16
changelog-LTE.md Normal file
View File

@@ -0,0 +1,16 @@
## v41
- Added interband ULCA for combos 32A+8A+7A+3C, 20A+8A+7A+3C and 32A+20A+7A+3C
- All included combos: [https://uecaps.hennes.xyz/view/multi/?id=24d0b9ab-70e6-4ab5-8b7e-6627e007c73e](https://uecaps.hennes.xyz/view/multi/?id=24d0b9ab-70e6-4ab5-8b7e-6627e007c73e)
## v40
- Added interband UL-CA combos for 32A+20A+8A+3C
- All included combos: [https://uecaps.hennes.xyz/view/multi/?id=30b0294d-a7e2-41b8-84ce-0aacdeb28c53](https://uecaps.hennes.xyz/view/multi/?id=30b0294d-a7e2-41b8-84ce-0aacdeb28c53)
## v39
- Added UL-CA for 8A+7A+3A+1A combos
- All included combos: [https://uecaps.hennes.xyz/view/multi/?id=14d44ecb-915f-4c07-98a1-44e8bf23648e](https://uecaps.hennes.xyz/view/multi/?id=14d44ecb-915f-4c07-98a1-44e8bf23648e)
## v38
- Added 32A+20A+8A+3C LTE-CA combo with 3C UL
- All included combos: [https://uecaps.hennes.xyz/view/multi/?id=abceef22-1a1b-4fe6-9e26-29c6687a9ed4](https://uecaps.hennes.xyz/view/multi/?id=abceef22-1a1b-4fe6-9e26-29c6687a9ed4)
## v37
- Added 32A+20A+7A+3C LTE-CA combos
- All included combos: [https://uecaps.hennes.xyz/view/multi/?id=3277c022-ba8e-4eed-96da-f2c58a6fa91a](https://uecaps.hennes.xyz/view/multi/?id=02a0527b-48f7-4859-9e39-3c035ba2c350)

43
changelog-NR.md Normal file
View File

@@ -0,0 +1,43 @@
## v36
- Added n78-n78-n28 3CC NR-CA combos in EN-DC
- All included combos: [https://uecaps.hennes.xyz/view/multi/?id=96a0568b-500b-4225-8874-1ca9e1bc393d](https://uecaps.hennes.xyz/view/multi/?id=96a0568b-500b-4225-8874-1ca9e1bc393d)
## v35
- Added n78C-n28 3CC NR-CA combos in EN-DC
- All included combos: [https://uecaps.hennes.xyz/view/multi/?id=86b2b418-5452-402f-9f29-a33007dc7e4d](https://uecaps.hennes.xyz/view/multi/?id=86b2b418-5452-402f-9f29-a33007dc7e4d)
## v34
- Added 32A-8A combos with n78-n1 EN-DC NR-CA
- All included combos: [https://uecaps.hennes.xyz/view/multi/?id=c5f61dd3-0a03-4470-b795-226c74b20900](https://uecaps.hennes.xyz/view/multi/?id=c5f61dd3-0a03-4470-b795-226c74b20900)
## v33
- Added 32A-7A-3C_n78A-n1A combos for DTAG
- All included combos: [https://uecaps.hennes.xyz/view/multi/?id=059cb8b3-cae3-46ec-a80f-1b8de1fc6d7c](https://uecaps.hennes.xyz/view/multi/?id=059cb8b3-cae3-46ec-a80f-1b8de1fc6d7c)
## v32
- Removed incompatible combos with 20_n1 and 20_n78 EN-DC UL (to prevent RLF)
- All included combos: [https://uecaps.hennes.xyz/view/multi/?id=5d69e423-612c-4b33-b542-4c01d46af65c](https://uecaps.hennes.xyz/view/multi/?id=5d69e423-612c-4b33-b542-4c01d46af65c)
## v31
- Adding some EN-DC test combos with n78-n28-n1
- All included combos: [https://uecaps.hennes.xyz/view/multi/?id=1cfacf14-34c0-46d7-b8e0-53cdbc397514](https://uecaps.hennes.xyz/view/multi/?id=1cfacf14-34c0-46d7-b8e0-53cdbc397514)
## v30
- Testing EN-DC with 3CC NR (n78-n28-n3)
- All included combos: [https://uecaps.hennes.xyz/view/multi/?id=9ff1e2cb-bafe-4679-b3ac-405f39b1600b](https://uecaps.hennes.xyz/view/multi/?id=9ff1e2cb-bafe-4679-b3ac-405f39b1600b)
## v29
- Add NR FDD UL MIMO to 2x and 3xCA combos used in Germany: n28-n3, n78-n3, n78-n28-n3, n28-n1, n78-n1, n78-n28-n1
- All included combos: [https://uecaps.hennes.xyz/view/multi/?id=d22ba6f9-f23b-4a98-820b-e6969a6784c8](https://uecaps.hennes.xyz/view/multi/?id=d22ba6f9-f23b-4a98-820b-e6969a6784c8)
## v28
- Attempt to fix NR-SA FDD UL MIMO (n1, n3)
- All included combos: [https://uecaps.hennes.xyz/view/multi/?id=2f4c5473-c26e-47a2-9ff2-cacd9ec87532](https://uecaps.hennes.xyz/view/multi/?id=2f4c5473-c26e-47a2-9ff2-cacd9ec87532)
## v27
- Remove all EN-DC combos with 20_n1 EN-DC UL and n28 (these result in RLF)
- All included combos: [https://uecaps.hennes.xyz/view/multi/?id=99c8d9de-3544-44c3-aa1c-bf4e26a35382](https://uecaps.hennes.xyz/view/multi/?id=99c8d9de-3544-44c3-aa1c-bf4e26a35382)
## v26
- Add EN-DC combos: + 32A+20A+3A_n28A+n1A (20_n1 UL) + 32A+20A_n28A+n1A (20_n1 UL) + 20A+3A_n28A+n1A (20_n1 UL) + 20A_n28A+n1A (20_n1 UL)
- All included combos: [https://uecaps.hennes.xyz/view/multi/?id=c7386325-79d8-4949-8dc2-a4c198f73cb0](https://uecaps.hennes.xyz/view/multi/?id=c7386325-79d8-4949-8dc2-a4c198f73cb0)
## v25
- Add EN-DC combos: 20A+8A+7A+3A+1A_n78A & 28A+20A+7A+3A+1A_n78A
- All included combos: [https://uecaps.hennes.xyz/view/multi/?id=29ee1dc7-b1a8-4ba5-acc9-ca76efd71116](https://uecaps.hennes.xyz/view/multi/?id=29ee1dc7-b1a8-4ba5-acc9-ca76efd71116)
## v24
- Add new EN-DC combo 32A+20A+8A+3C_n1A with different bcs
- All included combos: [https://uecaps.hennes.xyz/view/multi/?id=87ffbc9c-2da9-4f65-8849-0bd06735d94a](https://uecaps.hennes.xyz/view/multi/?id=87ffbc9c-2da9-4f65-8849-0bd06735d94a)
## v23
- Removed intraband EN-DC combos, because these interfere with legitimate EN-DC combos including NR-CA (E/// RAN bug?)
- All included combos: [https://uecaps.hennes.xyz/view/multi/?id=3277c022-ba8e-4eed-96da-f2c58a6fa91a](https://uecaps.hennes.xyz/view/multi/?id=3277c022-ba8e-4eed-96da-f2c58a6fa91a)

View File

@@ -1,6 +1,7 @@
id=custom_lte_p9_tokay
name=Pixel 9 custom LTE uecap
version=34
versionCode=34
version=41
versionCode=41
author=high3eam
description=replaces lte uecaps binarypb with custom one for added lowband ca
updateJson=https://raw.githubusercontent.com/high3eam/pixel9-EU-combos/main/updaterLTE.json

View File

@@ -1,6 +1,7 @@
id=custom_platform_p9_tokay
name=Pixel 9 custom uecap platform 2CC 3CC FDD NRULCA NR UL MIMO
version=21
versionCode=21
version=36
versionCode=36
author=high3eam
description=replaces default platform binarypb with custom one, 2CC 3CC FDD NRULCA and FDD NR UL MIMO
updateJson=https://raw.githubusercontent.com/high3eam/pixel9-EU-combos/main/updaterNR.json

View File

@@ -0,0 +1,68 @@
import sys
import re
def process_file(input_path, output_path):
try:
with open(input_path, 'r') as file:
lines = file.readlines()
output_lines = []
current_block = []
in_combogroups = False
brace_count = 0
removed_count = 0
for line in lines:
if line.strip() == 'comboGroups {':
in_combogroups = True
current_block = [line]
brace_count = 1
continue
if in_combogroups:
current_block.append(line)
brace_count += line.count('{')
brace_count -= line.count('}')
if brace_count == 0:
block_text = ''.join(current_block)
bands = [int(band) for band in re.findall(r'band:\s*(\d+)', block_text)]
# Check for all forbidden band combinations
should_remove = (
(3 in bands and 10003 in bands) or
(1 in bands and 10001 in bands) or
(7 in bands and 10007 in bands)
)
if not should_remove:
output_lines.extend(current_block)
else:
removed_count += 1
in_combogroups = False
current_block = []
else:
output_lines.append(line)
with open(output_path, 'w') as file:
file.writelines(output_lines)
print(f"Removed {removed_count} combo groups.")
except Exception as e:
print(f"Error: {str(e)}")
def main():
if len(sys.argv) != 3:
print("Usage: python script.py <input_file_path> <output_file_path>")
sys.exit(1)
if sys.argv[1] == sys.argv[2]:
print("Error: Input and output paths must be different")
sys.exit(1)
process_file(sys.argv[1], sys.argv[2])
if __name__ == "__main__":
main()

6
updaterLTE.json Normal file
View File

@@ -0,0 +1,6 @@
{
"version": "41",
"versionCode": 41,
"zipUrl": "https://github.com/high3eam/pixel9-EU-combos/releases/download/LTE-v41/p9_lte_combos_mod_v41.zip",
"changelog": "https://raw.githubusercontent.com/high3eam/pixel9-EU-combos/main/changelog-LTE.md"
}

6
updaterNR.json Normal file
View File

@@ -0,0 +1,6 @@
{
"version": "35",
"versionCode": 35,
"zipUrl": "https://github.com/high3eam/pixel9-EU-combos/releases/download/NR-v35/p9_nr_platform_mod_v35.zip",
"changelog": "https://raw.githubusercontent.com/high3eam/pixel9-EU-combos/main/changelog-NR.md"
}