diff --git a/packages/camera/camera_platform_interface/CHANGELOG.md b/packages/camera/camera_platform_interface/CHANGELOG.md
index 6ed662b..ef251ea 100644
--- a/packages/camera/camera_platform_interface/CHANGELOG.md
+++ b/packages/camera/camera_platform_interface/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 2.1.6
+
+* Adopts `Object.hash`.
+* Removes obsolete dependency on `pedantic`.
+
 ## 2.1.5
 
 * Fixes asynchronous exceptions handling of the `initializeCamera` method.
diff --git a/packages/camera/camera_platform_interface/lib/src/events/camera_event.dart b/packages/camera/camera_platform_interface/lib/src/events/camera_event.dart
index a91e538..755006c 100644
--- a/packages/camera/camera_platform_interface/lib/src/events/camera_event.dart
+++ b/packages/camera/camera_platform_interface/lib/src/events/camera_event.dart
@@ -117,14 +117,15 @@
           focusPointSupported == other.focusPointSupported;
 
   @override
-  int get hashCode =>
-      super.hashCode ^
-      previewWidth.hashCode ^
-      previewHeight.hashCode ^
-      exposureMode.hashCode ^
-      exposurePointSupported.hashCode ^
-      focusMode.hashCode ^
-      focusPointSupported.hashCode;
+  int get hashCode => Object.hash(
+        super.hashCode,
+        previewWidth,
+        previewHeight,
+        exposureMode,
+        exposurePointSupported,
+        focusMode,
+        focusPointSupported,
+      );
 }
 
 /// An event fired when the resolution preset of the camera has changed.
@@ -171,8 +172,7 @@
           captureHeight == other.captureHeight;
 
   @override
-  int get hashCode =>
-      super.hashCode ^ captureWidth.hashCode ^ captureHeight.hashCode;
+  int get hashCode => Object.hash(super.hashCode, captureWidth, captureHeight);
 }
 
 /// An event fired when the camera is going to close.
@@ -239,7 +239,7 @@
           description == other.description;
 
   @override
-  int get hashCode => super.hashCode ^ description.hashCode;
+  int get hashCode => Object.hash(super.hashCode, description);
 }
 
 /// An event fired when a video has finished recording.
@@ -284,6 +284,5 @@
           maxVideoDuration == other.maxVideoDuration;
 
   @override
-  int get hashCode =>
-      super.hashCode ^ file.hashCode ^ maxVideoDuration.hashCode;
+  int get hashCode => Object.hash(super.hashCode, file, maxVideoDuration);
 }
diff --git a/packages/camera/camera_platform_interface/lib/src/types/camera_description.dart b/packages/camera/camera_platform_interface/lib/src/types/camera_description.dart
index df72636..0167cf9 100644
--- a/packages/camera/camera_platform_interface/lib/src/types/camera_description.dart
+++ b/packages/camera/camera_platform_interface/lib/src/types/camera_description.dart
@@ -50,7 +50,7 @@
           lensDirection == other.lensDirection;
 
   @override
-  int get hashCode => name.hashCode ^ lensDirection.hashCode;
+  int get hashCode => Object.hash(name, lensDirection);
 
   @override
   String toString() {
diff --git a/packages/camera/camera_platform_interface/pubspec.yaml b/packages/camera/camera_platform_interface/pubspec.yaml
index b28008d..ab163b4 100644
--- a/packages/camera/camera_platform_interface/pubspec.yaml
+++ b/packages/camera/camera_platform_interface/pubspec.yaml
@@ -4,11 +4,11 @@
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22
 # NOTE: We strongly prefer non-breaking changes, even at the expense of a
 # less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes
-version: 2.1.5
+version: 2.1.6
 
 environment:
   sdk: '>=2.12.0 <3.0.0'
-  flutter: ">=2.0.0"
+  flutter: ">=2.8.0"
 
 dependencies:
   cross_file: ^0.3.1
@@ -21,4 +21,3 @@
   async: ^2.5.0
   flutter_test:
     sdk: flutter
-  pedantic: ^1.10.0
diff --git a/packages/camera/camera_platform_interface/test/events/camera_event_test.dart b/packages/camera/camera_platform_interface/test/events/camera_event_test.dart
index a46486e..8a428e2 100644
--- a/packages/camera/camera_platform_interface/test/events/camera_event_test.dart
+++ b/packages/camera/camera_platform_interface/test/events/camera_event_test.dart
@@ -137,13 +137,14 @@
     test('hashCode should match hashCode of all properties', () {
       const CameraInitializedEvent event = CameraInitializedEvent(
           1, 1024, 640, ExposureMode.auto, true, FocusMode.auto, true);
-      final int expectedHashCode = event.cameraId.hashCode ^
-          event.previewWidth.hashCode ^
-          event.previewHeight.hashCode ^
-          event.exposureMode.hashCode ^
-          event.exposurePointSupported.hashCode ^
-          event.focusMode.hashCode ^
-          event.focusPointSupported.hashCode;
+      final int expectedHashCode = Object.hash(
+          event.cameraId,
+          event.previewWidth,
+          event.previewHeight,
+          event.exposureMode,
+          event.exposurePointSupported,
+          event.focusMode,
+          event.focusPointSupported);
 
       expect(event.hashCode, expectedHashCode);
     });
@@ -223,9 +224,8 @@
     test('hashCode should match hashCode of all properties', () {
       const CameraResolutionChangedEvent event =
           CameraResolutionChangedEvent(1, 1024, 640);
-      final int expectedHashCode = event.cameraId.hashCode ^
-          event.captureWidth.hashCode ^
-          event.captureHeight.hashCode;
+      final int expectedHashCode =
+          Object.hash(event.cameraId, event.captureWidth, event.captureHeight);
 
       expect(event.hashCode, expectedHashCode);
     });
@@ -328,7 +328,7 @@
     test('hashCode should match hashCode of all properties', () {
       const CameraErrorEvent event = CameraErrorEvent(1, 'Error');
       final int expectedHashCode =
-          event.cameraId.hashCode ^ event.description.hashCode;
+          Object.hash(event.cameraId, event.description);
 
       expect(event.hashCode, expectedHashCode);
     });
diff --git a/packages/camera/camera_platform_interface/test/types/camera_description_test.dart b/packages/camera/camera_platform_interface/test/types/camera_description_test.dart
index 3d3aaae..a86df03 100644
--- a/packages/camera/camera_platform_interface/test/types/camera_description_test.dart
+++ b/packages/camera/camera_platform_interface/test/types/camera_description_test.dart
@@ -97,15 +97,15 @@
       expect(firstDescription == secondDescription, true);
     });
 
-    test('hashCode should match hashCode of all properties', () {
+    test('hashCode should match hashCode of all equality-tested properties',
+        () {
       const CameraDescription description = CameraDescription(
         name: 'Test',
         lensDirection: CameraLensDirection.front,
         sensorOrientation: 0,
       );
-      final int expectedHashCode = description.name.hashCode ^
-          description.lensDirection.hashCode ^
-          description.sensorOrientation.hashCode;
+      final int expectedHashCode =
+          Object.hash(description.name, description.lensDirection);
 
       expect(description.hashCode, expectedHashCode);
     });
diff --git a/packages/local_auth/local_auth_android/CHANGELOG.md b/packages/local_auth/local_auth_android/CHANGELOG.md
index 7f198f2..121daf9 100644
--- a/packages/local_auth/local_auth_android/CHANGELOG.md
+++ b/packages/local_auth/local_auth_android/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.0.1
+
+* Adopts `Object.hash`.
+
 ## 1.0.0
 
-* Initial release from migration to federated architecture. 
+* Initial release from migration to federated architecture.
diff --git a/packages/local_auth/local_auth_android/lib/types/auth_messages_android.dart b/packages/local_auth/local_auth_android/lib/types/auth_messages_android.dart
index ea61a4b..ad90124 100644
--- a/packages/local_auth/local_auth_android/lib/types/auth_messages_android.dart
+++ b/packages/local_auth/local_auth_android/lib/types/auth_messages_android.dart
@@ -110,17 +110,18 @@
           signInTitle == other.signInTitle;
 
   @override
-  int get hashCode =>
-      biometricHint.hashCode ^
-      biometricNotRecognized.hashCode ^
-      biometricRequiredTitle.hashCode ^
-      biometricSuccess.hashCode ^
-      cancelButton.hashCode ^
-      deviceCredentialsRequiredTitle.hashCode ^
-      deviceCredentialsSetupDescription.hashCode ^
-      goToSettingsButton.hashCode ^
-      goToSettingsDescription.hashCode ^
-      signInTitle.hashCode;
+  int get hashCode => Object.hash(
+      super.hashCode,
+      biometricHint,
+      biometricNotRecognized,
+      biometricRequiredTitle,
+      biometricSuccess,
+      cancelButton,
+      deviceCredentialsRequiredTitle,
+      deviceCredentialsSetupDescription,
+      goToSettingsButton,
+      goToSettingsDescription,
+      signInTitle);
 }
 
 // Default strings for AndroidAuthMessages. Currently supports English.
diff --git a/packages/local_auth/local_auth_android/pubspec.yaml b/packages/local_auth/local_auth_android/pubspec.yaml
index ec2991d..5734843 100644
--- a/packages/local_auth/local_auth_android/pubspec.yaml
+++ b/packages/local_auth/local_auth_android/pubspec.yaml
@@ -2,7 +2,7 @@
 description: Android implementation of the local_auth plugin.
 repository: https://github.com/flutter/plugins/tree/master/packages/local_auth/local_auth_android
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+local_auth%22
-version: 1.0.0
+version: 1.0.1
 
 environment:
   sdk: ">=2.14.0 <3.0.0"
@@ -26,4 +26,4 @@
 
 dev_dependencies:
   flutter_test:
-    sdk: flutter
\ No newline at end of file
+    sdk: flutter
diff --git a/packages/local_auth/local_auth_ios/CHANGELOG.md b/packages/local_auth/local_auth_ios/CHANGELOG.md
index ccacae9..466aeb5 100644
--- a/packages/local_auth/local_auth_ios/CHANGELOG.md
+++ b/packages/local_auth/local_auth_ios/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.0.3
+
+* Adopts `Object.hash`.
+
 ## 1.0.2
 
 * Adds support `localizedFallbackTitle` in authenticateWithBiometrics on iOS.
@@ -8,4 +12,4 @@
 
 ## 1.0.0
 
-* Initial release from migration to federated architecture. 
+* Initial release from migration to federated architecture.
diff --git a/packages/local_auth/local_auth_ios/lib/types/auth_messages_ios.dart b/packages/local_auth/local_auth_ios/lib/types/auth_messages_ios.dart
index b3236a7..e5173fc 100644
--- a/packages/local_auth/local_auth_ios/lib/types/auth_messages_ios.dart
+++ b/packages/local_auth/local_auth_ios/lib/types/auth_messages_ios.dart
@@ -65,12 +65,14 @@
           localizedFallbackTitle == other.localizedFallbackTitle;
 
   @override
-  int get hashCode =>
-      lockOut.hashCode ^
-      goToSettingsButton.hashCode ^
-      goToSettingsDescription.hashCode ^
-      cancelButton.hashCode ^
-      localizedFallbackTitle.hashCode;
+  int get hashCode => Object.hash(
+        super.hashCode,
+        lockOut,
+        goToSettingsButton,
+        goToSettingsDescription,
+        cancelButton,
+        localizedFallbackTitle,
+      );
 }
 
 // Default Strings for IOSAuthMessages plugin. Currently supports English.
diff --git a/packages/local_auth/local_auth_ios/pubspec.yaml b/packages/local_auth/local_auth_ios/pubspec.yaml
index 9e69dc7..06d972a 100644
--- a/packages/local_auth/local_auth_ios/pubspec.yaml
+++ b/packages/local_auth/local_auth_ios/pubspec.yaml
@@ -2,7 +2,7 @@
 description: iOS implementation of the local_auth plugin.
 repository: https://github.com/flutter/plugins/tree/master/packages/local_auth/local_auth_ios
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+local_auth%22
-version: 1.0.2
+version: 1.0.3
 
 environment:
   sdk: ">=2.14.0 <3.0.0"
@@ -24,4 +24,4 @@
 
 dev_dependencies:
   flutter_test:
-    sdk: flutter
\ No newline at end of file
+    sdk: flutter
diff --git a/packages/local_auth/local_auth_platform_interface/CHANGELOG.md b/packages/local_auth/local_auth_platform_interface/CHANGELOG.md
index d16a91e..0ff4d16 100644
--- a/packages/local_auth/local_auth_platform_interface/CHANGELOG.md
+++ b/packages/local_auth/local_auth_platform_interface/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.0.2
+
+* Adopts `Object.hash`.
+
 ## 1.0.1
 
 * Export externally used types from local_auth_platform_interface.dart directly.
diff --git a/packages/local_auth/local_auth_platform_interface/lib/types/auth_options.dart b/packages/local_auth/local_auth_platform_interface/lib/types/auth_options.dart
index c4b646c..a5af8e7 100644
--- a/packages/local_auth/local_auth_platform_interface/lib/types/auth_options.dart
+++ b/packages/local_auth/local_auth_platform_interface/lib/types/auth_options.dart
@@ -52,9 +52,10 @@
           biometricOnly == other.biometricOnly;
 
   @override
-  int get hashCode =>
-      useErrorDialogs.hashCode ^
-      stickyAuth.hashCode ^
-      sensitiveTransaction.hashCode ^
-      biometricOnly.hashCode;
+  int get hashCode => Object.hash(
+        useErrorDialogs,
+        stickyAuth,
+        sensitiveTransaction,
+        biometricOnly,
+      );
 }
diff --git a/packages/local_auth/local_auth_platform_interface/pubspec.yaml b/packages/local_auth/local_auth_platform_interface/pubspec.yaml
index cd12a8a..b5d476d 100644
--- a/packages/local_auth/local_auth_platform_interface/pubspec.yaml
+++ b/packages/local_auth/local_auth_platform_interface/pubspec.yaml
@@ -4,7 +4,7 @@
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+local_auth%22
 # NOTE: We strongly prefer non-breaking changes, even at the expense of a
 # less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes
-version: 1.0.1
+version: 1.0.2
 
 environment:
   sdk: ">=2.14.0 <3.0.0"
@@ -19,4 +19,4 @@
 dev_dependencies:
   flutter_test:
     sdk: flutter
-  mockito: ^5.0.0
\ No newline at end of file
+  mockito: ^5.0.0
diff --git a/packages/video_player/video_player_platform_interface/CHANGELOG.md b/packages/video_player/video_player_platform_interface/CHANGELOG.md
index 6595a5c..9843fd8 100644
--- a/packages/video_player/video_player_platform_interface/CHANGELOG.md
+++ b/packages/video_player/video_player_platform_interface/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 5.1.2
+
+* Adopts `Object.hash`.
+* Removes obsolete dependency on `pedantic`.
+
 ## 5.1.1
 
 * Adds `rotationCorrection` (for Android playing videos recorded in landscapeRight [#60327](https://github.com/flutter/flutter/issues/60327)).
diff --git a/packages/video_player/video_player_platform_interface/lib/video_player_platform_interface.dart b/packages/video_player/video_player_platform_interface/lib/video_player_platform_interface.dart
index 706ec61..78173f1 100644
--- a/packages/video_player/video_player_platform_interface/lib/video_player_platform_interface.dart
+++ b/packages/video_player/video_player_platform_interface/lib/video_player_platform_interface.dart
@@ -249,12 +249,13 @@
   }
 
   @override
-  int get hashCode =>
-      eventType.hashCode ^
-      duration.hashCode ^
-      size.hashCode ^
-      rotationCorrection.hashCode ^
-      buffered.hashCode;
+  int get hashCode => Object.hash(
+        eventType,
+        duration,
+        size,
+        rotationCorrection,
+        buffered,
+      );
 }
 
 /// Type of the event.
@@ -343,7 +344,7 @@
           end == other.end;
 
   @override
-  int get hashCode => start.hashCode ^ end.hashCode;
+  int get hashCode => Object.hash(start, end);
 }
 
 /// [VideoPlayerOptions] can be optionally used to set additional player settings
diff --git a/packages/video_player/video_player_platform_interface/pubspec.yaml b/packages/video_player/video_player_platform_interface/pubspec.yaml
index ea3b17b..7a18568 100644
--- a/packages/video_player/video_player_platform_interface/pubspec.yaml
+++ b/packages/video_player/video_player_platform_interface/pubspec.yaml
@@ -4,11 +4,11 @@
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+video_player%22
 # NOTE: We strongly prefer non-breaking changes, even at the expense of a
 # less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes
-version: 5.1.1
+version: 5.1.2
 
 environment:
   sdk: ">=2.12.0 <3.0.0"
-  flutter: ">=2.0.0"
+  flutter: ">=2.8.0"
 
 dependencies:
   flutter:
@@ -18,5 +18,4 @@
 dev_dependencies:
   flutter_test:
     sdk: flutter
-  pedantic: ^1.10.0
   pigeon: 0.1.21
diff --git a/script/tool/test/util.dart b/script/tool/test/util.dart
index 6f7d86e..fab4f39 100644
--- a/script/tool/test/util.dart
+++ b/script/tool/test/util.dart
@@ -434,8 +434,7 @@
   }
 
   @override
-  int get hashCode =>
-      (executable.hashCode) ^ (args.hashCode) ^ (workingDir?.hashCode ?? 0);
+  int get hashCode => Object.hash(executable, args, workingDir);
 
   @override
   String toString() {
