2021-09-04 14:24:41 +02:00
############################################################################
# Repair\CM_*_LA_CK.BIN file (or similar) with a hidden .xml - stable
[Repair_xml]
2021-09-15 10:59:05 +02:00
; nothing to configure
2021-09-04 14:24:41 +02:00
############################################################################
2021-09-15 10:59:05 +02:00
# 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.
2021-09-06 20:42:45 +02:00
# When both numbers are updated and also the value of RecordIndex is set to PrNr-1, the TV doesn't show any changes.
2021-09-04 14:24:41 +02:00
2021-09-15 10:59:05 +02:00
; ---------------------------------------------
; mappings that are the same for all format variants
2021-09-19 20:28:57 +02:00
[flash_db]
reorderRecordsByChannelNumber = true
2021-09-22 23:46:03 +02:00
allowEdit = true
2021-09-19 20:28:57 +02:00
2021-09-04 14:24:41 +02:00
[mgr_chan_s_fta.db]
lenHeader = 64
lenFooter = 12
offFooterChecksum = 8
2021-09-15 10:59:05 +02:00
; field mappings needed to calculate variable channel record length: blockSize / (tvChannels + radioChannels)
numTvChannels = 0x2C
numRadioChannels = 0x30
channelBlockSize = 0x3C
2021-09-04 14:24:41 +02:00
2021-09-06 20:42:45 +02:00
[mgr_chan_s_pkg.db]
lenHeader = 64
lenFooter = 12
offFooterChecksum = 8
2021-09-15 10:59:05 +02:00
; field mappings needed to calculate variable channel record length: blockSize / (tvChannels+radioChannels)
numTvChannels = 0x2C
numRadioChannels = 0x30
channelBlockSize = 0x3C
2021-09-06 20:42:45 +02:00
[mgr_chan_dvbt.db]
lenHeader = 64
lenEntry = 472
lenFooter = 12
offFooterChecksum = 8
2021-09-15 10:59:05 +02:00
; field mappings needed to calculate variable channel record length: blockSize / (tvChannels + radioChannels)
numTvChannels = 0x2C
numRadioChannels = 0x30
channelBlockSize = 0x3C
2021-09-06 20:42:45 +02:00
[mgr_chan_dvbc.db]
lenHeader = 64
lenEntry = 472
lenFooter = 12
offFooterChecksum = 8
2021-09-15 10:59:05 +02:00
; field mappings needed to calculate variable channel record length: blockSize / (tvChannels + radioChannels)
numTvChannels = 0x2C
numRadioChannels = 0x30
channelBlockSize = 0x3C
2021-09-06 20:42:45 +02:00
2021-09-19 20:28:57 +02:00
[mgr.db_entry:472]
2021-09-06 20:42:45 +02:00
offProgNr = 0
2021-09-23 14:58:42 +02:00
offFav = 16,436
2021-09-06 20:42:45 +02:00
offName = 20
lenName = 200
offProvider = 224
lenProvider = 200
2021-09-23 14:58:42 +02:00
offFavFlags1 = 428
maskFavFlags1 = 0x01
offFavFlags2 = 430
maskFavFlags2 = 0x08
2021-09-06 20:42:45 +02:00
offFreq = 440
offOldProgNr = 448
offRecordIndex = 456
offTsid = 460
offSymbolRate = 462
offSid = 464
offOnid = 466
2021-09-19 20:28:57 +02:00
[mgr.db_entry:476]
offProgNr = 0
2021-09-23 14:58:42 +02:00
offFav = 16,436
2021-09-19 20:28:57 +02:00
offName = 20
lenName = 200
2021-09-23 14:58:42 +02:00
offFavFlags1 = 428
maskFavFlags1 = 0x01
offFavFlags2 = 430
maskFavFlags2 = 0x08
2021-09-19 20:28:57 +02:00
offFreq = 444,468
offSymbolRate = 450
offOldProgNr = 452
offRecordIndex = 456
offTsid = 460
offSid = 464
offOnid = 466
[mgr.db_entry:480]
offProgNr = 0
2021-09-23 14:58:42 +02:00
offFav = 16,436
2021-09-19 20:28:57 +02:00
offName = 20
lenName = 200
2021-09-23 14:58:42 +02:00
offFavFlags1 = 428
maskFavFlags1 = 0x01
offFavFlags2 = 430
maskFavFlags2 = 0x08
2021-09-19 20:28:57 +02:00
offFreq = 444,468
offSymbolRate = 450
offOldProgNr = 452
offRecordIndex = 456
offTsid = 460
offSid = 464
offOnid = 466
2021-09-15 10:59:05 +02:00
; ---------------------------------------------
; 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
2021-09-06 20:42:45 +02:00
2021-09-15 10:59:05 +02:00
[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
2021-09-06 20:42:45 +02:00
2021-09-04 14:24:41 +02:00
############################################################################
# Repair\ChannelList\chanLst.bin version 1.x with AntennaDigSrvTable, CableDigSrvTable and service.dat (for DVB-S) - should be stable
2021-01-09 12:06:32 +01:00
[service.dat_entry]
2020-08-08 13:58:53 +02:00
offPcrPid = 0
maskPcrPid = 0x1FFF
offLocked = 3
maskLocked = 0x10
2022-01-07 22:02:35 +01:00
offEncrypted = 3
maskEncrypted = 0x20
2020-08-08 13:58:53 +02:00
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
2023-09-17 20:07:55 +02:00
[tuneinfo.dat]
offSymRate = 0
offFreq = 2
maskFreq = 0x3FFF
offPolarity = 2
maskPolarity = 0x4000
offSatIndex = 6
maskSatIndex = 0xFFF0
offOnid = 16
offTsid = 18
2020-08-10 11:27:05 +02:00
[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
2021-01-09 12:06:32 +01:00
offFreq = 18
2021-09-04 14:24:41 +02:00
############################################################################
# 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
############################################################################
2021-09-05 18:20:39 +02:00
# ChannelMap_45 with list.db, tv.db, HsvDvbCSettings, CableDb.bin, HsvDvbTSettings.bin, TerrestrialDb.bin, SatelliteDb.bin - stable
2021-09-04 14:24:41 +02:00
[Map45]
incrementFavListVersion = false
reorderRecordsByChannelNumber = false
2021-01-09 12:06:32 +01:00
2021-01-17 15:44:45 +01:00
[Map45_CableDb.bin_entry]
2021-01-09 12:06:32 +01:00
offId = 0
offFreq = 4
offProgNr = 8
2021-02-08 16:57:43 +01:00
offIsDigital = 12
2021-01-09 12:06:32 +01:00
offOnid = 16
offTsid = 20
offSid = 24
offSymbolRate = 28
offLogoNr = 32
2021-02-08 16:57:43 +01:00
offEncrypted = 36
2021-01-09 12:06:32 +01:00
offLocked = 40
offModulateion = 44
offServiceType = 52
2021-01-17 15:44:45 +01:00
offServiceEdit = 58
offName = 88
lenName = 64
[Map45_SatelliteDb.bin_entry]
offId = 0
offFreq = 4
offProgNr = 8
2021-02-08 16:57:43 +01:00
offIsDigital = 12
2021-01-17 15:44:45 +01:00
offOnid = 16
offTsid = 20
offSid = 24
offSymbolRate = 28
offLogoNr = 32
2021-02-08 16:57:43 +01:00
offEncrypted = 36
2021-01-17 15:44:45 +01:00
offLocked = 40
offModulateion = 44
offServiceType = 52
2021-01-31 14:37:58 +01:00
offWrongServiceEdit = 58
offServiceEdit = 64
2021-01-09 12:06:32 +01:00
offName = 80
lenName = 64
offSatName = 146
2021-01-17 15:44:45 +01:00
lenSatName = 64
2021-02-08 16:57:43 +01:00
offUnk1 = 48
offUnk2 = 68
offPolarity = 72
2021-02-24 11:05:47 +01:00
2021-04-11 13:17:53 +02:00
2021-09-04 14:24:41 +02:00
############################################################################
# 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
2021-02-24 11:05:47 +01:00
[Map100]
2021-09-05 22:11:56 +02:00
# padChannelName: true|false; if true, fill the hex-encoded channel name with 0x00 0x00 to maintain a fixed length; default: true
padChannelName = true
2021-09-04 14:24:41 +02:00
# 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]
2021-09-05 22:11:56 +02:00
padChannelName = true
2021-02-24 11:05:47 +01:00
setFavoriteNumber = true
2021-09-04 14:24:41 +02:00
setReorderedFavNumber = true
2021-09-05 22:11:56 +02:00
reorderRecordsByChannelNumber = true
2021-09-04 14:24:41 +02:00
allowDelete = false
2021-02-24 11:05:47 +01:00
2021-09-04 14:24:41 +02:00
# settings for the ChannelMap_100 variant that includes an atv_cmdb.bin file
[Map100_cmdb.bin]
2021-09-05 22:11:56 +02:00
padChannelName = false
2021-09-04 14:24:41 +02:00
setFavoriteNumber = true
setReorderedFavNumber = true
reorderRecordsByChannelNumber = false
allowDelete = false
2021-09-02 11:10:14 +02:00
2021-02-24 11:05:47 +01:00
2021-09-04 14:24:41 +02:00
############################################################################
# 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]
2021-09-05 22:11:56 +02:00
padChannelName = true
2021-02-24 11:05:47 +01:00
setFavoriteNumber = false
2021-09-04 14:24:41 +02:00
setReorderedFavNumber = false
2021-09-05 22:11:56 +02:00
reorderRecordsByChannelNumber = true
2021-09-02 11:10:14 +02:00
# incrementFavListVersion: true|false; when true the Version attribute in the Favorite.xml file gets incremented every time the file is saved; default: false
2021-09-05 22:11:56 +02:00
incrementFavListVersion = true
2021-09-23 21:50:35 +02:00
allowDelete = false
2021-09-02 11:10:14 +02:00
2021-09-04 14:24:41 +02:00
############################################################################
# ChannelMap_110: same as 105 with an additional "UserReorderChannel" attribute (which should probably left unchanged, even after reordering)
2021-09-02 11:10:14 +02:00
2021-09-04 14:24:41 +02:00
[Map110]
2021-09-05 22:11:56 +02:00
padChannelName = true
2021-09-04 14:24:41 +02:00
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
2021-09-05 22:11:56 +02:00
reorderRecordsByChannelNumber = true
incrementFavListVersion = true
2021-09-23 21:50:35 +02:00
allowDelete = false
############################################################################
2023-11-03 17:40:43 +01:00
# ChannelMap_115: same as 110
2021-09-23 21:50:35 +02:00
[Map115]
padChannelName = true
setFavoriteNumber = false
setReorderedFavNumber = false
userReorderChannel = 0
reorderRecordsByChannelNumber = true
incrementFavListVersion = true
allowDelete = false
2023-11-03 17:40:43 +01:00
############################################################################
# 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
2023-12-12 19:07:57 +01:00
dvbXmlLowercaseHexDigits = true
2024-10-01 10:05:48 +02:00
############################################################################
# ChannelMap_125: same as 120
[Map125]
padChannelName = true
setFavoriteNumber = false
setReorderedFavNumber = false
userReorderChannel = 0
reorderRecordsByChannelNumber = true
incrementFavListVersion = false
allowDelete = false
userHiddenDefaultValue = 3
dvbXmlLowercaseHexDigits = true