diff --git a/AUTHORS b/AUTHORS
index 31402c7..3112c3b 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -68,3 +68,4 @@
 TheOneWithTheBraid <the-one@with-the-braid.cf>
 Rulong Chen（陈汝龙） <rulong.crl@alibaba-inc.com>
 Hwanseok Kang <tttkhs96@gmail.com>
+Twin Sun, LLC <google-contrib@twinsunsolutions.com>
diff --git a/packages/google_sign_in/google_sign_in/AUTHORS b/packages/google_sign_in/google_sign_in/AUTHORS
index 493a0b4..35d24a5 100644
--- a/packages/google_sign_in/google_sign_in/AUTHORS
+++ b/packages/google_sign_in/google_sign_in/AUTHORS
@@ -64,3 +64,4 @@
 Anton Borries <mail@antonborri.es>
 Alex Li <google@alexv525.com>
 Rahul Raj <64.rahulraj@gmail.com>
+Twin Sun, LLC <google-contrib@twinsunsolutions.com>
diff --git a/packages/google_sign_in/google_sign_in/CHANGELOG.md b/packages/google_sign_in/google_sign_in/CHANGELOG.md
index 286365e..9349784 100644
--- a/packages/google_sign_in/google_sign_in/CHANGELOG.md
+++ b/packages/google_sign_in/google_sign_in/CHANGELOG.md
@@ -1,6 +1,8 @@
-## NEXT
+## 5.4.2
 
 * Updates minimum Flutter version to 2.10.
+* Adds override for `GoogleSignInPlatform.initWithParams`.
+* Fixes tests to recognize new default `forceCodeForRefreshToken` request attribute.
 
 ## 5.4.1
 
diff --git a/packages/google_sign_in/google_sign_in/lib/google_sign_in.dart b/packages/google_sign_in/google_sign_in/lib/google_sign_in.dart
index 135c422..3ae0223 100644
--- a/packages/google_sign_in/google_sign_in/lib/google_sign_in.dart
+++ b/packages/google_sign_in/google_sign_in/lib/google_sign_in.dart
@@ -179,12 +179,16 @@
   /// The [hostedDomain] argument specifies a hosted domain restriction. By
   /// setting this, sign in will be restricted to accounts of the user in the
   /// specified domain. By default, the list of accounts will not be restricted.
+  ///
+  /// The [forceCodeForRefreshToken] is used on Android to ensure the authentication
+  /// code can be exchanged for a refresh token after the first request.
   GoogleSignIn({
     this.signInOption = SignInOption.standard,
     this.scopes = const <String>[],
     this.hostedDomain,
     this.clientId,
     this.serverClientId,
+    this.forceCodeForRefreshToken = false,
   });
 
   /// Factory for creating default sign in user experience.
@@ -250,6 +254,9 @@
   /// server.
   final String? serverClientId;
 
+  /// Force the authorization code to be valid for a refresh token every time. Only needed on Android.
+  final bool forceCodeForRefreshToken;
+
   final StreamController<GoogleSignInAccount?> _currentUserController =
       StreamController<GoogleSignInAccount?>.broadcast();
 
@@ -286,6 +293,7 @@
       hostedDomain: hostedDomain,
       clientId: clientId,
       serverClientId: serverClientId,
+      forceCodeForRefreshToken: forceCodeForRefreshToken,
     ))
           ..catchError((dynamic _) {
             // Invalidate initialization if it errors out.
diff --git a/packages/google_sign_in/google_sign_in/pubspec.yaml b/packages/google_sign_in/google_sign_in/pubspec.yaml
index 5033990..c32dee7 100644
--- a/packages/google_sign_in/google_sign_in/pubspec.yaml
+++ b/packages/google_sign_in/google_sign_in/pubspec.yaml
@@ -3,7 +3,7 @@
   for signing in with a Google account on Android and iOS.
 repository: https://github.com/flutter/plugins/tree/main/packages/google_sign_in/google_sign_in
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+google_sign_in%22
-version: 5.4.1
+version: 5.4.2
 
 
 environment:
@@ -23,8 +23,8 @@
 dependencies:
   flutter:
     sdk: flutter
-  google_sign_in_android: ^6.0.0
-  google_sign_in_ios: ^5.4.0
+  google_sign_in_android: ^6.1.0
+  google_sign_in_ios: ^5.5.0
   google_sign_in_platform_interface: ^2.2.0
   google_sign_in_web: ^0.10.0
 
diff --git a/packages/google_sign_in/google_sign_in/test/google_sign_in_test.dart b/packages/google_sign_in/google_sign_in/test/google_sign_in_test.dart
index b8676bd..b8a596b 100644
--- a/packages/google_sign_in/google_sign_in/test/google_sign_in_test.dart
+++ b/packages/google_sign_in/google_sign_in/test/google_sign_in_test.dart
@@ -80,6 +80,16 @@
       verify(mockPlatform.signIn());
     });
 
+    test('forceCodeForRefreshToken sent with init method call', () async {
+      final GoogleSignIn googleSignIn =
+          GoogleSignIn(forceCodeForRefreshToken: true);
+
+      await googleSignIn.signIn();
+
+      _verifyInit(mockPlatform, forceCodeForRefreshToken: true);
+      verify(mockPlatform.signIn());
+    });
+
     test('signOut', () async {
       final GoogleSignIn googleSignIn = GoogleSignIn();
 
