Exemple #1
0
        internal Firmware
        (
            [NotNull] byte[] body,
            [NotNull] FirmwareImageBlocks imageBlocks,
            [NotNull] FirmwareStringBlocks stringBlocks,
            [NotNull] FirmwareDefinition definition,
            EncryptionType encryptionType
        )
        {
            if (body == null)
            {
                throw new ArgumentNullException("body");
            }
            if (imageBlocks == null)
            {
                throw new ArgumentNullException("imageBlocks");
            }
            if (stringBlocks == null)
            {
                throw new ArgumentNullException("stringBlocks");
            }
            if (definition == null)
            {
                throw new ArgumentNullException("definition");
            }

            Definition     = definition;
            EncryptionType = encryptionType;
            m_bodyStream   = new FirmwareStream(body);
            m_imageBlocks  = imageBlocks;
            m_stringBlocks = stringBlocks;
        }
        public PatchUpdatesAvailableWindow([NotNull] FirmwareDefinition definition, [NotNull] IEnumerable<GitHubApi.GitHubFileInfo> newPatches)
        {
            if (definition == null) throw new ArgumentNullException("definition");
            if (newPatches == null) throw new ArgumentNullException("newPatches");

            m_definition = definition;
            m_newPatches = newPatches;

            InitializeComponent();
            InitializeControls();
        }
        public Firmware TryLoadUsingDefinition([NotNull] string filePath, [NotNull] FirmwareDefinition definition)
        {
            var bytes = LoadFile(filePath);

            try
            {
                return(Load(bytes, definition));
            }
            catch
            {
                return(null);
            }
        }
Exemple #4
0
        private Firmware Load([NotNull] byte[] data, [NotNull] FirmwareDefinition definition, bool isEncrypted)
        {
            if (data == null)
            {
                throw new ArgumentNullException("data");
            }
            if (definition == null)
            {
                throw new ArgumentNullException("definition");
            }

            var imageBlocks  = LoadImageBlocks(data, definition);
            var stringBlocks = LoadStringBlocks(data, definition);

            return(new Firmware(data, imageBlocks, stringBlocks, definition, isEncrypted));
        }
Exemple #5
0
        internal FirmwareStringBlocks LoadStringBlocks([NotNull] byte[] firmware, [NotNull] FirmwareDefinition definition)
        {
            if (firmware == null)
            {
                throw new ArgumentNullException("firmware");
            }
            if (definition == null)
            {
                throw new ArgumentNullException("definition");
            }

            using (var ms = new MemoryStream(firmware))
            {
                using (var reader = new BinaryReader(ms))
                {
                    var block1String  = ReadStringTable(definition.StringTable1, reader);
                    var block2Strings = ReadStringTable(definition.StringTable2, reader, 1024);
                    return(new FirmwareStringBlocks(block1String, block2Strings));
                }
            }
        }
Exemple #6
0
        internal FirmwareImageBlocks LoadImageBlocks([NotNull] byte[] firmware, [NotNull] FirmwareDefinition definition)
        {
            if (firmware == null)
            {
                throw new ArgumentNullException("firmware");
            }
            if (definition == null)
            {
                throw new ArgumentNullException("definition");
            }

            using (var ms = new MemoryStream(firmware))
            {
                using (var reader = new BinaryReader(ms))
                {
                    var block1Images = ReadImageTable <FirmwareImage1Metadata>(definition.ImageTable1, reader).ToDictionary(x => x.Index, x => x);
                    var block2Images = ReadImageTable <FirmwareImage2Metadata>(definition.ImageTable2, reader).ToDictionary(x => x.Index, x => x);
                    return(new FirmwareImageBlocks(block1Images, block2Images));
                }
            }
        }
Exemple #7
0
 public Firmware TryLoadUsingDefinition([NotNull] string filePath, [NotNull] FirmwareDefinition definition)
 {
     return(TryLoad(filePath, new[] { definition }));
 }
 public static string GetPatchDirectoryPath(FirmwareDefinition definition)
 {
     if (definition == null) throw new ArgumentNullException("definition");
     return Path.Combine(Paths.PatchDirectory, definition.Name);
 }