mirror of
https://github.com/PredatH0r/ChanSort.git
synced 2026-01-12 10:22:04 +01:00
- experimental support for MtkChannelList.xml (which is part of several MediaTek based Google TVs, e.g. Philips formats 120 and 125) - Philips formats 100-125: improved decoding of non-latin characters (turkish, cyrillic, ...)
471 lines
11 KiB
INI
471 lines
11 KiB
INI
############################################################################
|
|
# Repair\CM_*_LA_CK.BIN file (or similar) with a hidden .xml - stable
|
|
|
|
[Repair_xml]
|
|
; nothing to configure
|
|
|
|
|
|
############################################################################
|
|
# Repair\channel_db_ver.db, mgr_chan_s_fta.db, FLASH_DTVINFO_S_FTA, _pkg, ... - experimental
|
|
# There are different version of this format using different offsets/lengths/sizes.
|
|
# The calculated length of a channel record in the .db file is used to select specific config sections.
|
|
#
|
|
# There is a program number at offset 0 and another one around 450 in the .db file.
|
|
# My guess is that the 1st is the "new" number and the 2nd the "old" number - or it is the other way around.
|
|
# When both numbers are updated and also the value of RecordIndex is set to PrNr-1, the TV doesn't show any changes.
|
|
|
|
; ---------------------------------------------
|
|
; mappings that are the same for all format variants
|
|
|
|
[flash_db]
|
|
reorderRecordsByChannelNumber=true
|
|
allowEdit=true
|
|
|
|
[mgr_chan_s_fta.db]
|
|
lenHeader=64
|
|
lenFooter=12
|
|
offFooterChecksum=8
|
|
; field mappings needed to calculate variable channel record length: blockSize / (tvChannels + radioChannels)
|
|
numTvChannels=0x2C
|
|
numRadioChannels=0x30
|
|
channelBlockSize=0x3C
|
|
|
|
[mgr_chan_s_pkg.db]
|
|
lenHeader=64
|
|
lenFooter=12
|
|
offFooterChecksum=8
|
|
; field mappings needed to calculate variable channel record length: blockSize / (tvChannels+radioChannels)
|
|
numTvChannels=0x2C
|
|
numRadioChannels=0x30
|
|
channelBlockSize=0x3C
|
|
|
|
[mgr_chan_dvbt.db]
|
|
lenHeader=64
|
|
lenEntry=472
|
|
lenFooter=12
|
|
offFooterChecksum=8
|
|
; field mappings needed to calculate variable channel record length: blockSize / (tvChannels + radioChannels)
|
|
numTvChannels=0x2C
|
|
numRadioChannels=0x30
|
|
channelBlockSize=0x3C
|
|
|
|
[mgr_chan_dvbc.db]
|
|
lenHeader=64
|
|
lenEntry=472
|
|
lenFooter=12
|
|
offFooterChecksum=8
|
|
; field mappings needed to calculate variable channel record length: blockSize / (tvChannels + radioChannels)
|
|
numTvChannels=0x2C
|
|
numRadioChannels=0x30
|
|
channelBlockSize=0x3C
|
|
|
|
[mgr.db_entry:472]
|
|
offProgNr=0
|
|
offFav=16,436
|
|
offName=20
|
|
lenName=200
|
|
offProvider=224
|
|
lenProvider=200
|
|
offFavFlags1=428
|
|
maskFavFlags1=0x01
|
|
offFavFlags2=430
|
|
maskFavFlags2=0x08
|
|
offFreq=440
|
|
offOldProgNr=448
|
|
offRecordIndex=456
|
|
offTsid=460
|
|
offSymbolRate=462
|
|
offSid=464
|
|
offOnid=466
|
|
|
|
[mgr.db_entry:476]
|
|
offProgNr=0
|
|
offFav=16,436
|
|
offName=20
|
|
lenName=200
|
|
offFavFlags1=428
|
|
maskFavFlags1=0x01
|
|
offFavFlags2=430
|
|
maskFavFlags2=0x08
|
|
offFreq=444,468
|
|
offSymbolRate=450
|
|
offOldProgNr=452
|
|
offRecordIndex=456
|
|
offTsid=460
|
|
offSid=464
|
|
offOnid=466
|
|
|
|
[mgr.db_entry:480]
|
|
offProgNr=0
|
|
offFav=16,436
|
|
offName=20
|
|
lenName=200
|
|
offFavFlags1=428
|
|
maskFavFlags1=0x01
|
|
offFavFlags2=430
|
|
maskFavFlags2=0x08
|
|
offFreq=444,468
|
|
offSymbolRate=450
|
|
offOldProgNr=452
|
|
offRecordIndex=456
|
|
offTsid=460
|
|
offSid=464
|
|
offOnid=466
|
|
|
|
|
|
; ---------------------------------------------
|
|
; variant with 476 bytes per entry in mgr_chan_s_fta.db
|
|
|
|
[flash_dtvinfo_s_fta:476]
|
|
offChannelTransponderTable=4
|
|
numChannelTransponderTable=4000
|
|
lenChannelTransponder=4
|
|
offTransponderTable=0x5f2c
|
|
numTransponderTable=1100
|
|
lenTransponder=31
|
|
offSatellites=0xe460
|
|
offChannelBlock=0x10000
|
|
lenChannelBlock=0x10000
|
|
; struct Transponder
|
|
transponderId=0
|
|
freq=4,21
|
|
symbolRate=6
|
|
onid=10
|
|
tsid=12
|
|
nid=14
|
|
; struct ChannelBlock
|
|
offChannel=4
|
|
numChannel=734
|
|
lenChannel=89
|
|
; struct Channel
|
|
channelId=0
|
|
flags=3
|
|
sid=8
|
|
pcrPid=10
|
|
vpid=12
|
|
progNr=22
|
|
apid=31
|
|
|
|
[flash_dtvinfo_s_pkg:476]
|
|
offChannelTransponderTable=4
|
|
numChannelTransponderTable=2000
|
|
lenChannelTransponder=4
|
|
offTransponderTable=0x287C
|
|
numTransponderTable=550
|
|
lenTransponder=31
|
|
offSatellites=0x6B16
|
|
offChannelBlock=0x10000
|
|
lenChannelBlock=0x10000
|
|
numChannel=734
|
|
; struct transponder
|
|
transponderId=0
|
|
freq=4,21
|
|
symbolRate=6
|
|
onid=10
|
|
tsid=12
|
|
; relative to ChannelBlock
|
|
offChannel=4
|
|
lenChannel=89
|
|
; channels within the ChannelBlock
|
|
channelId=0
|
|
flags=3
|
|
sid=8
|
|
pcrPid=10
|
|
vpid=12
|
|
progNr=22
|
|
apid=31
|
|
|
|
;-------------------------------------------------------------------------
|
|
; variant with 480 bytes per entry in mgr_chan_s_fta.db
|
|
|
|
[flash_dtvinfo_s_fta:480]
|
|
offChannelTransponderTable=4
|
|
numChannelTransponderTable=4000
|
|
lenChannelTransponder=4
|
|
offTransponderTable=0x4f14
|
|
numTransponderTable=1100
|
|
lenTransponder=36
|
|
offSatellites=0xe9c4
|
|
offChannelBlock=0x10000
|
|
lenChannelBlock=0x10000
|
|
reorderRecordsByChannelNumber=false
|
|
; struct Transponder
|
|
transponderId=0
|
|
freq=4,21
|
|
symbolRate=6
|
|
onid=10
|
|
tsid=12
|
|
nid=14
|
|
; struct ChannelBlock
|
|
offChannel=4
|
|
numChannel=703
|
|
lenChannel=93
|
|
; struct Channel
|
|
channelId=0
|
|
flags=3
|
|
sid=8
|
|
pcrPid=10
|
|
vpid=12
|
|
progNr=24
|
|
apid=34
|
|
|
|
[flash_dtvinfo_s_pkg:480]
|
|
offChannelTransponderTable=4
|
|
numChannelTransponderTable=2000
|
|
lenChannelTransponder=4
|
|
offTransponderTable=0x2804
|
|
numTransponderTable=550
|
|
lenTransponder=36
|
|
offSatellites=0x755C
|
|
offChannelBlock=0x10000
|
|
lenChannelBlock=0x10000
|
|
; struct transponder
|
|
transponderId=0
|
|
freq=4,21
|
|
symbolRate=6
|
|
onid=10
|
|
tsid=12
|
|
; struct ChannelBlock
|
|
offChannel=4
|
|
numChannel=703
|
|
lenChannel=93
|
|
; struct Channel
|
|
channelId=0
|
|
flags=3
|
|
sid=8
|
|
pcrPid=10
|
|
vpid=12
|
|
progNr=24
|
|
apid=34
|
|
|
|
############################################################################
|
|
# Repair\ChannelList\chanLst.bin version 1.x with AntennaDigSrvTable, CableDigSrvTable and service.dat (for DVB-S) - should be stable
|
|
|
|
[service.dat_entry]
|
|
offPcrPid=0
|
|
maskPcrPid=0x1FFF
|
|
offLocked=3
|
|
maskLocked=0x10
|
|
offEncrypted=3
|
|
maskEncrypted=0x20
|
|
offOnid=4
|
|
offTsid=6
|
|
offSid=8
|
|
offTransponderIndex=10
|
|
offVpid=16
|
|
maskVpid=0x1FFF
|
|
offIsFav=17
|
|
maskIsFav=0x80
|
|
offProgNr=20
|
|
offName=28
|
|
lenName=32
|
|
offProvider=60
|
|
lenProvider=32
|
|
|
|
[tuneinfo.dat]
|
|
offSymRate=0
|
|
offFreq=2
|
|
maskFreq=0x3FFF
|
|
offPolarity=2
|
|
maskPolarity=0x4000
|
|
offSatIndex=6
|
|
maskSatIndex=0xFFF0
|
|
offOnid=16
|
|
offTsid=18
|
|
|
|
[CableDigSrvTable_entry]
|
|
offChecksum=0
|
|
offSymbolRate=24
|
|
offFreqTimes16=48
|
|
offOnid=50
|
|
offSid=52
|
|
offTsid=54
|
|
offProgNr=122
|
|
offLocked=146
|
|
offIsFav=147
|
|
offName=216
|
|
lenName=64
|
|
|
|
[CablePresetTable_entry]
|
|
offChecksum=0
|
|
offFreqTimes16=4
|
|
offProgNr=8
|
|
offOnid=14
|
|
offTsid=16
|
|
offSid=18
|
|
|
|
[CableFrqMapTable_entry]
|
|
offChecksum=0
|
|
offSymbolRate=8
|
|
offFreq=18
|
|
|
|
|
|
############################################################################
|
|
# PhilipsChannelMaps\ChannelMap_11 with AntennaDigSrvTable, CableDigSrvTable, SatelliteDigSrvTable and service.dat - not supported
|
|
|
|
|
|
############################################################################
|
|
# ChannelMap_30 with list.db, tv.db, CableChannelMaps.db, CableDb.bin, TerrestrialChannelMaps.db, TerrestrialDb.bin, SatelliteChannelMaps.db, SatelliteDb.bin - experimental
|
|
# uses the [Map45_...] mappings for the *Db.bin files
|
|
|
|
[Map30]
|
|
incrementFavListVersion=false
|
|
reorderRecordsByChannelNumber=false
|
|
|
|
|
|
############################################################################
|
|
# ChannelMap_45 with list.db, tv.db, HsvDvbCSettings, CableDb.bin, HsvDvbTSettings.bin, TerrestrialDb.bin, SatelliteDb.bin - stable
|
|
|
|
[Map45]
|
|
incrementFavListVersion=false
|
|
reorderRecordsByChannelNumber=false
|
|
|
|
[Map45_CableDb.bin_entry]
|
|
offId=0
|
|
offFreq=4
|
|
offProgNr=8
|
|
offIsDigital=12
|
|
offOnid=16
|
|
offTsid=20
|
|
offSid=24
|
|
offSymbolRate=28
|
|
offLogoNr=32
|
|
offEncrypted=36
|
|
offLocked=40
|
|
offModulateion=44
|
|
offServiceType=52
|
|
offServiceEdit=58
|
|
offName=88
|
|
lenName=64
|
|
|
|
[Map45_SatelliteDb.bin_entry]
|
|
offId=0
|
|
offFreq=4
|
|
offProgNr=8
|
|
offIsDigital=12
|
|
offOnid=16
|
|
offTsid=20
|
|
offSid=24
|
|
offSymbolRate=28
|
|
offLogoNr=32
|
|
offEncrypted=36
|
|
offLocked=40
|
|
offModulateion=44
|
|
offServiceType=52
|
|
offWrongServiceEdit=58
|
|
offServiceEdit=64
|
|
offName=80
|
|
lenName=64
|
|
offSatName=146
|
|
lenSatName=64
|
|
offUnk1=48
|
|
offUnk2=68
|
|
offPolarity=72
|
|
|
|
|
|
############################################################################
|
|
# ChannelMap_100 with DVBC.xml, DVBT.xml, DVBS.xml, DVBSall.xml
|
|
# This format has different variants without a unique sub-version number:
|
|
# 1) with a channelFile.bin, no indentation, uppercase hex digits, padded names, no "Scramble" attribute
|
|
# 2) without .bin files, no indentation, uppercase hex digits, padded names, a "Scramble" attribute
|
|
# 3) with additional *tv_cmdb*.bin files, indentation in XML, lowercase hex digits, unpadded names, a "Scramble" attribute and requirement to keep record order between .xml and .bin in-sync. Often with a "Clone" folder. - stable
|
|
|
|
[Map100]
|
|
# padChannelName: true|false; if true, fill the hex-encoded channel name with 0x00 0x00 to maintain a fixed length; default: true
|
|
padChannelName=true
|
|
# setFavoriteNumber: true|false; if false, the FavoriteNumber attribute won't be changed
|
|
setFavoriteNumber=true
|
|
#setReorderedFavNumber: true|false; if true, favorites can be in a different order than the main program numbers; default: false
|
|
setReorderedFavNumber=true
|
|
# reorderRecordsByChannelNumber: true|false; defines whether the element lines in the XML file are reordered by their ChannelNumber or kept at their location; default: false
|
|
reorderRecordsByChannelNumber=true
|
|
# allowDelete: true|false; if true, channels can be removed from the .xml. This breaks channel lists that contain .bin files that must be kept in-sync; default: false
|
|
allowDelete=true
|
|
|
|
# settings for the ChannelMap_100 variant that includes a channelFile.bin file
|
|
[Map100_channelFile.bin]
|
|
padChannelName=true
|
|
setFavoriteNumber=true
|
|
setReorderedFavNumber=true
|
|
reorderRecordsByChannelNumber=true
|
|
allowDelete=false
|
|
|
|
# settings for the ChannelMap_100 variant that includes an atv_cmdb.bin file
|
|
[Map100_cmdb.bin]
|
|
padChannelName=false
|
|
setFavoriteNumber=true
|
|
setReorderedFavNumber=true
|
|
reorderRecordsByChannelNumber=false
|
|
allowDelete=false
|
|
|
|
|
|
############################################################################
|
|
# ChannelMap_105: channelFile.bin, Favorite.xml, *.txt, *.xml.
|
|
# No XML indentation, added <SatelliteListcopy> element, uppercase hex, padded names, "Scrambled" attribute (with a "d" at the end)
|
|
|
|
[Map105]
|
|
padChannelName=true
|
|
setFavoriteNumber=false
|
|
setReorderedFavNumber=false
|
|
reorderRecordsByChannelNumber=true
|
|
# incrementFavListVersion: true|false; when true the Version attribute in the Favorite.xml file gets incremented every time the file is saved; default: false
|
|
incrementFavListVersion=true
|
|
allowDelete=false
|
|
|
|
|
|
############################################################################
|
|
# ChannelMap_110: same as 105 with an additional "UserReorderChannel" attribute (which should probably left unchanged, even after reordering)
|
|
|
|
[Map110]
|
|
padChannelName=true
|
|
setFavoriteNumber=false
|
|
setReorderedFavNumber=false
|
|
# userReorderChannel: 0|1|remove|(blank); when blank the original value is kept as-is, "remove" removes the attribute, 0 and 1 are written as literals; default: 0
|
|
userReorderChannel=0
|
|
reorderRecordsByChannelNumber=true
|
|
incrementFavListVersion=true
|
|
allowDelete=false
|
|
|
|
############################################################################
|
|
# ChannelMap_115: same as 110
|
|
|
|
[Map115]
|
|
padChannelName=true
|
|
setFavoriteNumber=false
|
|
setReorderedFavNumber=false
|
|
userReorderChannel=0
|
|
reorderRecordsByChannelNumber=true
|
|
incrementFavListVersion=true
|
|
allowDelete=false
|
|
|
|
############################################################################
|
|
# ChannelMap_120: mostly same as 115
|
|
# - Umlauts are encoded with high byte 0xFF instead of 0x00
|
|
# - Scrambled is always 0 without any real indication for encryption
|
|
# - UserHidden has value "3" instead of "0" for most channels, "1" still exists for some
|
|
|
|
[Map120]
|
|
padChannelName=true
|
|
setFavoriteNumber=false
|
|
setReorderedFavNumber=false
|
|
userReorderChannel=0
|
|
reorderRecordsByChannelNumber=true
|
|
incrementFavListVersion=false
|
|
allowDelete=false
|
|
userHiddenDefaultValue=3
|
|
dvbXmlLowercaseHexDigits=true
|
|
|
|
############################################################################
|
|
# ChannelMap_125: same as 120
|
|
|
|
[Map125]
|
|
padChannelName=true
|
|
setFavoriteNumber=false
|
|
setReorderedFavNumber=false
|
|
userReorderChannel=0
|
|
reorderRecordsByChannelNumber=true
|
|
incrementFavListVersion=false
|
|
allowDelete=false
|
|
userHiddenDefaultValue=3
|
|
dvbXmlLowercaseHexDigits=true
|