From a1d72e772a8abb1ab7924aa358a409a072d812b4 Mon Sep 17 00:00:00 2001 From: Mrs4s Date: Fri, 19 Mar 2021 04:59:37 +0800 Subject: [PATCH] update tlv. --- protocol/tlv/t1b.go | 19 +++++++++++++++++++ protocol/tlv/t1d.go | 16 ++++++++++++++++ protocol/tlv/t1f.go | 24 ++++++++++++++++++++++++ protocol/tlv/t33.go | 10 ++++++++++ protocol/tlv/t35.go | 12 ++++++++++++ 5 files changed, 81 insertions(+) create mode 100644 protocol/tlv/t1b.go create mode 100644 protocol/tlv/t1d.go create mode 100644 protocol/tlv/t1f.go create mode 100644 protocol/tlv/t33.go create mode 100644 protocol/tlv/t35.go diff --git a/protocol/tlv/t1b.go b/protocol/tlv/t1b.go new file mode 100644 index 00000000..1c43a8de --- /dev/null +++ b/protocol/tlv/t1b.go @@ -0,0 +1,19 @@ +package tlv + +import "github.com/Mrs4s/MiraiGo/binary" + +func T1B(micro, version, size, margin, dpi, ecLevel, hint uint32) []byte { + return binary.NewWriterF(func(w *binary.Writer) { + w.WriteUInt16(0x1B) + w.WriteTlv(binary.NewWriterF(func(w *binary.Writer) { + w.WriteUInt32(micro) + w.WriteUInt32(version) + w.WriteUInt32(size) + w.WriteUInt32(margin) + w.WriteUInt32(dpi) + w.WriteUInt32(ecLevel) + w.WriteUInt32(hint) + w.WriteUInt16(0) + })) + }) +} diff --git a/protocol/tlv/t1d.go b/protocol/tlv/t1d.go new file mode 100644 index 00000000..55577a35 --- /dev/null +++ b/protocol/tlv/t1d.go @@ -0,0 +1,16 @@ +package tlv + +import "github.com/Mrs4s/MiraiGo/binary" + +func T1D(miscBitmap uint32) []byte { + return binary.NewWriterF(func(w *binary.Writer) { + w.WriteUInt16(0x1D) + w.WriteTlv(binary.NewWriterF(func(w *binary.Writer) { + w.WriteByte(1) + w.WriteUInt32(miscBitmap) + w.WriteUInt32(0) + w.WriteByte(0) + w.WriteUInt32(0) + })) + }) +} diff --git a/protocol/tlv/t1f.go b/protocol/tlv/t1f.go new file mode 100644 index 00000000..279c41d0 --- /dev/null +++ b/protocol/tlv/t1f.go @@ -0,0 +1,24 @@ +package tlv + +import "github.com/Mrs4s/MiraiGo/binary" + +func T1F(isRoot bool, osName, osVersion, simOperatorName, apn []byte, networkType uint16) []byte { + return binary.NewWriterF(func(w *binary.Writer) { + w.WriteUInt16(0x1F) + w.WriteTlv(binary.NewWriterF(func(w *binary.Writer) { + w.WriteByte(func() byte { + if isRoot { + return 1 + } else { + return 0 + } + }()) + w.WriteTlv(osName) + w.WriteTlv(osVersion) + w.WriteUInt16(networkType) + w.WriteTlv(simOperatorName) + w.WriteTlv([]byte{}) + w.WriteTlv(apn) + })) + }) +} diff --git a/protocol/tlv/t33.go b/protocol/tlv/t33.go new file mode 100644 index 00000000..d208d30e --- /dev/null +++ b/protocol/tlv/t33.go @@ -0,0 +1,10 @@ +package tlv + +import "github.com/Mrs4s/MiraiGo/binary" + +func T33(guid []byte) []byte { + return binary.NewWriterF(func(w *binary.Writer) { + w.WriteUInt16(0x33) + w.WriteTlv(guid) + }) +} diff --git a/protocol/tlv/t35.go b/protocol/tlv/t35.go new file mode 100644 index 00000000..48a9c62d --- /dev/null +++ b/protocol/tlv/t35.go @@ -0,0 +1,12 @@ +package tlv + +import "github.com/Mrs4s/MiraiGo/binary" + +func T35(productType uint32) []byte { + return binary.NewWriterF(func(w *binary.Writer) { + w.WriteUInt16(0x35) + w.WriteTlv(binary.NewWriterF(func(w *binary.Writer) { + w.WriteUInt32(productType) + })) + }) +}