Compare commits
103 Commits
v2025-02-0
...
NR-v34
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8be78fb47d | ||
|
|
f0ee58267f | ||
|
|
ead54e8170 | ||
|
|
ea11e45ad0 | ||
|
|
ad881d17a3 | ||
|
|
08df8f26d3 | ||
|
|
813210fb6b | ||
|
|
20390d2e7f | ||
|
|
96d04e012d | ||
|
|
c6474804a0 | ||
|
|
735126bfdd | ||
|
|
4277b194d0 | ||
|
|
85c6b7f6ab | ||
|
|
21b998f21f | ||
|
|
e09af2aeb3 | ||
|
|
496001b093 | ||
|
|
d3b33aae5a | ||
|
|
07faafb006 | ||
|
|
3027f7acf8 | ||
|
|
1a0580ff85 | ||
|
|
b4d84a0705 | ||
|
|
3cc34f0272 | ||
|
|
0b2f2dab0d | ||
|
|
99cc6203e0 | ||
|
|
37fad0769c | ||
|
|
282fc11d02 | ||
|
|
a5aafb8c53 | ||
|
|
5ef99966fd | ||
|
|
7c037792b6 | ||
|
|
a035a44974 | ||
|
|
0b1e0234c0 | ||
|
|
884406a183 | ||
|
|
0bba25d1b8 | ||
|
|
dfbc3e9151 | ||
|
|
c4e07a0e93 | ||
|
|
21da62cbd8 | ||
|
|
3a9f91c6fd | ||
|
|
cd9ea8d704 | ||
|
|
490be7d10b | ||
|
|
31c993fbce | ||
|
|
724570eb40 | ||
|
|
790c3aa063 | ||
|
|
0c7c822585 | ||
|
|
f7cce3b498 | ||
|
|
6244f58315 | ||
|
|
e5a04fe91a | ||
|
|
abb26a8ba3 | ||
|
|
60d326b0d4 | ||
|
|
da0bf79948 | ||
|
|
481d2f7995 | ||
|
|
d05a2a8109 | ||
|
|
daf7583c79 | ||
|
|
393aa2dd60 | ||
|
|
469faa43e8 | ||
|
|
94f933751b | ||
|
|
1d10035a50 | ||
|
|
06196b8372 | ||
|
|
ff55c22ed4 | ||
|
|
af7300a815 | ||
|
|
00b86a99cb | ||
|
|
1fb39e6c37 | ||
|
|
06bdc1bba4 | ||
|
|
615e3f79f7 | ||
|
|
c5b795bc7f | ||
|
|
67edf75b6d | ||
|
|
10be123202 | ||
|
|
30d2da5804 | ||
|
|
6a488256f8 | ||
|
|
67255f13fa | ||
|
|
864cf358ee | ||
|
|
4898883a69 | ||
|
|
bd879507e6 | ||
|
|
d9ed0c9980 | ||
|
|
e50d2189be | ||
|
|
c97896ae40 | ||
|
|
f6eeff91f8 | ||
|
|
a8ce46a3e0 | ||
|
|
75f8320041 | ||
|
|
b1e0b00c3d | ||
|
|
8499321115 | ||
|
|
86b59a2f99 | ||
|
|
afe031be8d | ||
|
|
d5e802adaf | ||
|
|
dae1b6e665 | ||
|
|
bdb562c880 | ||
|
|
857244654d | ||
|
|
d9eba63177 | ||
|
|
5331ba8ef6 | ||
|
|
ecac6de2d2 | ||
|
|
1287ccf5c0 | ||
|
|
b6acf93a90 | ||
|
|
a2c2084aab | ||
|
|
f449fce095 | ||
|
|
fcecd72a19 | ||
|
|
3634ae7907 | ||
|
|
507d021583 | ||
|
|
49a159ccd9 | ||
|
|
83d5230746 | ||
|
|
bbcaa3b459 | ||
|
|
77681faf38 | ||
|
|
7954017b77 | ||
|
|
4dafbbbceb | ||
|
|
dadcb4ea18 |
60
.github/workflows/release-lte-mod.yml
vendored
60
.github/workflows/release-lte-mod.yml
vendored
@@ -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
|
||||
|
||||
61
.github/workflows/release-nr-mod.yml
vendored
61
.github/workflows/release-nr-mod.yml
vendored
@@ -1,4 +1,5 @@
|
||||
name: Release Magisk module NR
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
@@ -13,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
|
||||
@@ -30,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
|
||||
|
||||
26
README.md
26
README.md
@@ -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
44
ShannonLteUeCap.proto
Normal 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
174
ShannonNrUeCap.proto
Normal 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
16
changelog-LTE.md
Normal 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)
|
||||
37
changelog-NR.md
Normal file
37
changelog-NR.md
Normal file
@@ -0,0 +1,37 @@
|
||||
|
||||
## 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)
|
||||
@@ -1,6 +1,7 @@
|
||||
id=custom_lte_p9_tokay
|
||||
name=Pixel 9 custom LTE uecap
|
||||
version=35
|
||||
versionCode=35
|
||||
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
|
||||
|
||||
Binary file not shown.
@@ -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=34
|
||||
versionCode=34
|
||||
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
|
||||
|
||||
Binary file not shown.
68
remove_intraband-endc-combos.py
Normal file
68
remove_intraband-endc-combos.py
Normal 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
6
updaterLTE.json
Normal 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
6
updaterNR.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"version": "33",
|
||||
"versionCode": 33,
|
||||
"zipUrl": "https://github.com/high3eam/pixel9-EU-combos/releases/download/NR-v33/p9_nr_platform_mod_v33.zip",
|
||||
"changelog": "https://raw.githubusercontent.com/high3eam/pixel9-EU-combos/main/changelog-NR.md"
|
||||
}
|
||||
Reference in New Issue
Block a user