############################################################################ # 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 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