64 Commits

Author SHA1 Message Date
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
14 changed files with 462 additions and 19 deletions

View File

@@ -14,15 +14,20 @@ jobs:
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Get date - name: Read module.prop
id: date id: module_prop
run: echo "VERSION=v$(date +'%Y-%m-%d')" >> $GITHUB_ENV 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 - name: Zip folder
working-directory: ./ working-directory: ./
run: | run: |
cd p9_lte_combos_mod cd p9_lte_combos_mod
zip -r ../p9_lte_combos_mod.zip ./* zip -r ../p9_lte_combos_mod_v${{ env.MOD_VERSION }}.zip ./*
cd .. cd ..
- name: Create Release - name: Create Release
@@ -31,9 +36,50 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:
tag_name: ${{ env.VERSION }} tag_name: ${{ env.RELEASE_TAG }}
name: Release ${{ env.VERSION }} name: Release ${{ env.RELEASE_TAG }}
draft: false draft: false
prerelease: false prerelease: false
files: | 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,4 +1,5 @@
name: Release Magisk module NR name: Release Magisk module NR
on: on:
workflow_dispatch: workflow_dispatch:
@@ -13,15 +14,20 @@ jobs:
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Get date - name: Read module.prop
id: date id: module_prop
run: echo "VERSION=v$(date +'%Y-%m-%d')" >> $GITHUB_ENV 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 - name: Zip folder
working-directory: ./ working-directory: ./
run: | run: |
cd p9_nr_platform_mod cd p9_nr_platform_mod
zip -r ../p9_nr_platform_mod.zip ./* zip -r ../p9_nr_platform_mod_v${{ env.MOD_VERSION }}.zip ./*
cd .. cd ..
- name: Create Release - name: Create Release
@@ -30,9 +36,50 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:
tag_name: ${{ env.VERSION }} tag_name: ${{ env.RELEASE_TAG }}
name: Release ${{ env.VERSION }} name: Release ${{ env.RELEASE_TAG }}
draft: false draft: false
prerelease: false prerelease: false
files: | 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

View File

@@ -1 +1,25 @@
## Check Releases for Magisk modules ## [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;
}

10
changelog-LTE.md Normal file
View File

@@ -0,0 +1,10 @@
## 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)

16
changelog-NR.md Normal file
View File

@@ -0,0 +1,16 @@
## 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 id=custom_lte_p9_tokay
name=Pixel 9 custom LTE uecap name=Pixel 9 custom LTE uecap
version=35 version=39
versionCode=35 versionCode=39
author=high3eam author=high3eam
description=replaces lte uecaps binarypb with custom one for added lowband ca 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 id=custom_platform_p9_tokay
name=Pixel 9 custom uecap platform 2CC 3CC FDD NRULCA NR UL MIMO name=Pixel 9 custom uecap platform 2CC 3CC FDD NRULCA NR UL MIMO
version=22 version=27
versionCode=22 versionCode=27
author=high3eam author=high3eam
description=replaces default platform binarypb with custom one, 2CC 3CC FDD NRULCA and FDD NR UL MIMO 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": "38",
"versionCode": 38,
"zipUrl": "https://github.com/high3eam/pixel9-EU-combos/releases/download/LTE-v38/p9_lte_combos_mod_v38.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": "27",
"versionCode": 27,
"zipUrl": "https://github.com/high3eam/pixel9-EU-combos/releases/download/NR-v27/p9_nr_platform_mod_v27.zip",
"changelog": "https://raw.githubusercontent.com/high3eam/pixel9-EU-combos/main/changelog-NR.md"
}