From af02d8fdb68f7ff62b31bbcef409ac2a54cbcac1 Mon Sep 17 00:00:00 2001 From: Radon Rosborough Date: Mon, 26 Jan 2026 09:26:12 -0800 Subject: [PATCH] messagix: Bloks login parity improvements --- pkg/messagix/bloks/bloks.go | 4 ++-- pkg/messagix/bloks/interp.go | 2 +- pkg/messagix/bloks/selenium.go | 2 +- pkg/messagix/graphql.go | 6 ++++++ pkg/messagix/useragent/useragent.go | 2 +- 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/pkg/messagix/bloks/bloks.go b/pkg/messagix/bloks/bloks.go index 5bd2fb3..7a27053 100644 --- a/pkg/messagix/bloks/bloks.go +++ b/pkg/messagix/bloks/bloks.go @@ -5,8 +5,8 @@ import ( "reflect" ) -// Messenger iOS 535.0.0.0.0 of 1763582309 -const BloksVersion = "330b36fe786d9b82dd834eb55748d52712a0d09cf6fb7c60931d40204d086306" +// Messenger iOS 544.0.0.20.406 of 1768247148 +const BloksVersion = "7f577336851f32ef4842b8eb2394aaf9d036c1dda7c1064b3f3090b6212b63e5" type ExtraStringification[T any] struct { Body T diff --git a/pkg/messagix/bloks/interp.go b/pkg/messagix/bloks/interp.go index ec85618..cf65912 100644 --- a/pkg/messagix/bloks/interp.go +++ b/pkg/messagix/bloks/interp.go @@ -92,7 +92,7 @@ func NewInterpreter(ctx context.Context, b *BloksBundle, br *InterpBridge, old * br.FamilyDeviceID = strings.ToUpper(uuid.New().String()) } if br.MachineID == "" { - br.MachineID = string(random.StringBytes(25)) + br.MachineID = string(random.StringBytes(24)) } if br.EncryptPassword == nil { br.EncryptPassword = func(pw string) (string, error) { diff --git a/pkg/messagix/bloks/selenium.go b/pkg/messagix/bloks/selenium.go index 512c8c9..2e48149 100644 --- a/pkg/messagix/bloks/selenium.go +++ b/pkg/messagix/bloks/selenium.go @@ -240,7 +240,7 @@ func NewBrowser(ctx context.Context, cfg *BrowserConfig) *Browser { b.Bridge = &InterpBridge{ DeviceID: strings.ToUpper(uuid.New().String()), FamilyDeviceID: strings.ToUpper(uuid.New().String()), - MachineID: string(random.StringBytes(25)), + MachineID: string(random.StringBytes(24)), EncryptPassword: cfg.EncryptPassword, DoRPC: func(name string, params map[string]string, isPage bool, callback func(result *BloksScriptLiteral) error) error { log.Debug().Str("state", string(b.State)).Str("rpc", name).Msg("Invoking RPC from Bloks") diff --git a/pkg/messagix/graphql.go b/pkg/messagix/graphql.go index 16d4a80..f90c427 100644 --- a/pkg/messagix/graphql.go +++ b/pkg/messagix/graphql.go @@ -11,6 +11,7 @@ import ( "strings" "github.com/google/go-querystring/query" + "github.com/google/uuid" "go.mau.fi/util/exslices" "go.mau.fi/mautrix-meta/pkg/messagix/bloks" @@ -65,6 +66,11 @@ func (c *Client) makeBloksRequest(ctx context.Context, doc *bloks.BloksDoc, vari headers.Set("x-root-field-name", doc.RootField) headers.Set("x-graphql-request-purpose", "fetch") headers.Set("x-graphql-client-library", "pando") + headers.Set("x-fb-client-ip", "True") + headers.Set("x-fb-server-cluster", "True") + headers.Set("x-fb-conn-uuid-client", strings.Replace(uuid.New().String(), "-", "", -1)) + headers.Set("x-fb-http-engine", "Tigon/MNS/TCP") + headers.Set("x-fb-rmd", "fail=Server:INVALID_MAP,Default:INVALID_MAP;v=;ip=;tkn=;reqTime=0;recvTime=0") headers.Set("Authorization", "OAuth "+useragent.MessengerLiteAccessToken) diff --git a/pkg/messagix/useragent/useragent.go b/pkg/messagix/useragent/useragent.go index aa97712..c453645 100644 --- a/pkg/messagix/useragent/useragent.go +++ b/pkg/messagix/useragent/useragent.go @@ -19,4 +19,4 @@ const AndroidUserAgent = "Instagram 404.0.0.48.76 Android (35/15; 420dpi; 1080x2 const MessengerLiteAppId = "437626316973788" const MessengerLiteAccessToken = MessengerLiteAppId + "|3e1a7033ae7883bfb31f35375bad9c7a" -const MessengerLiteUserAgent = "LightSpeed [FBAN/MessengerLiteForiOS;FBAV/515.0.0.33.107;FBBV/759681175;FBDV/iPhone13,2;FBMD/iPhone;FBSN/iOS;FBSV/16.1.2;FBSS/3;FBCR/;FBID/phone;FBLC/en_US;FBOP/0]" +const MessengerLiteUserAgent = "LightSpeed [FBAN/MessengerLiteForiOS;FBAV/545.0.0.12.108;FBBV/865730320;FBDV/iPhone10,3;FBMD/iPhone;FBSN/iOS;FBSV/16.7.2;FBSS/3;FBCR/;FBID/phone;FBLC/en_US;FBOP/0]"