[flutter_tools] Ensure that global variables are easily identifiable (#47398)

diff --git a/packages/flutter_tools/test/general.shard/android/android_device_test.dart b/packages/flutter_tools/test/general.shard/android/android_device_test.dart
index 110f902..d2d82a7 100644
--- a/packages/flutter_tools/test/general.shard/android/android_device_test.dart
+++ b/packages/flutter_tools/test/general.shard/android/android_device_test.dart
@@ -11,16 +11,16 @@
 import 'package:flutter_tools/src/android/android_device.dart';
 import 'package:flutter_tools/src/android/android_sdk.dart';
 import 'package:flutter_tools/src/application_package.dart';
-import 'package:flutter_tools/src/base/config.dart';
 import 'package:flutter_tools/src/base/file_system.dart';
 import 'package:flutter_tools/src/base/io.dart';
-import 'package:flutter_tools/src/base/platform.dart';
 import 'package:flutter_tools/src/base/process.dart';
 import 'package:flutter_tools/src/build_info.dart';
 import 'package:flutter_tools/src/device.dart';
 import 'package:flutter_tools/src/project.dart';
+import 'package:flutter_tools/src/globals.dart' as globals;
 import 'package:mockito/mockito.dart';
 import 'package:process/process.dart';
+import 'package:platform/platform.dart';
 
 import '../../src/common.dart';
 import '../../src/context.dart';
@@ -111,8 +111,8 @@
         final AndroidDevice device = AndroidDevice(deviceId, modelID: 'TestModel');
 
         final Directory sdkDir = MockAndroidSdk.createSdkDirectory();
-        Config.instance.setValue('android-sdk', sdkDir.path);
-        final File adbExe = fs.file(getAdbPath(androidSdk));
+        globals.config.setValue('android-sdk', sdkDir.path);
+        final File adbExe = globals.fs.file(getAdbPath(androidSdk));
 
         when(mockAndroidSdk.licensesAvailable).thenReturn(true);
         when(mockAndroidSdk.latestVersion).thenReturn(MockAndroidSdkVersion());
@@ -153,8 +153,8 @@
         final AndroidDevice device = AndroidDevice(deviceId, modelID: 'TestModel');
 
         final Directory sdkDir = MockAndroidSdk.createSdkDirectory();
-        Config.instance.setValue('android-sdk', sdkDir.path);
-        final File adbExe = fs.file(getAdbPath(androidSdk));
+        globals.config.setValue('android-sdk', sdkDir.path);
+        final File adbExe = globals.fs.file(getAdbPath(androidSdk));
 
         when(mockAndroidSdk.licensesAvailable).thenReturn(true);
         when(mockAndroidSdk.latestVersion).thenReturn(MockAndroidSdkVersion());
@@ -194,9 +194,9 @@
 
     testUsingContext('throws on missing adb path', () {
       final Directory sdkDir = MockAndroidSdk.createSdkDirectory();
-      Config.instance.setValue('android-sdk', sdkDir.path);
+      globals.config.setValue('android-sdk', sdkDir.path);
 
-      final File adbExe = fs.file(getAdbPath(androidSdk));
+      final File adbExe = globals.fs.file(getAdbPath(androidSdk));
       when(mockProcessManager.runSync(
         <String>[adbExe.path, 'devices', '-l'],
       )).thenThrow(ArgumentError(adbExe.path));
@@ -209,9 +209,9 @@
 
     testUsingContext('throws on failing adb', () {
       final Directory sdkDir = MockAndroidSdk.createSdkDirectory();
-      Config.instance.setValue('android-sdk', sdkDir.path);
+      globals.config.setValue('android-sdk', sdkDir.path);
 
-      final File adbExe = fs.file(getAdbPath(androidSdk));
+      final File adbExe = globals.fs.file(getAdbPath(androidSdk));
       when(mockProcessManager.runSync(
         <String>[adbExe.path, 'devices', '-l'],
       )).thenThrow(ProcessException(adbExe.path, <String>['devices', '-l']));
@@ -497,7 +497,7 @@
   });
 
   testUsingContext('isSupportedForProject is true on module project', () async {
-    fs.file('pubspec.yaml')
+    globals.fs.file('pubspec.yaml')
       ..createSync()
       ..writeAsStringSync(r'''
 name: example
@@ -505,7 +505,7 @@
 flutter:
   module: {}
 ''');
-    fs.file('.packages').createSync();
+    globals.fs.file('.packages').createSync();
     final FlutterProject flutterProject = FlutterProject.current();
 
     expect(AndroidDevice('test').isSupportedForProject(flutterProject), true);
@@ -515,9 +515,9 @@
   });
 
   testUsingContext('isSupportedForProject is true with editable host app', () async {
-    fs.file('pubspec.yaml').createSync();
-    fs.file('.packages').createSync();
-    fs.directory('android').createSync();
+    globals.fs.file('pubspec.yaml').createSync();
+    globals.fs.file('.packages').createSync();
+    globals.fs.directory('android').createSync();
     final FlutterProject flutterProject = FlutterProject.current();
 
     expect(AndroidDevice('test').isSupportedForProject(flutterProject), true);
@@ -527,8 +527,8 @@
   });
 
   testUsingContext('isSupportedForProject is false with no host app and no module', () async {
-    fs.file('pubspec.yaml').createSync();
-    fs.file('.packages').createSync();
+    globals.fs.file('pubspec.yaml').createSync();
+    globals.fs.file('.packages').createSync();
     final FlutterProject flutterProject = FlutterProject.current();
 
     expect(AndroidDevice('test').isSupportedForProject(flutterProject), false);
diff --git a/packages/flutter_tools/test/general.shard/android/android_sdk_test.dart b/packages/flutter_tools/test/general.shard/android/android_sdk_test.dart
index 56baf77..736531b 100644
--- a/packages/flutter_tools/test/general.shard/android/android_sdk_test.dart
+++ b/packages/flutter_tools/test/general.shard/android/android_sdk_test.dart
@@ -6,10 +6,10 @@
 import 'package:flutter_tools/src/android/android_sdk.dart';
 import 'package:flutter_tools/src/base/file_system.dart';
 import 'package:flutter_tools/src/base/io.dart' show ProcessResult;
-import 'package:flutter_tools/src/base/platform.dart';
-import 'package:flutter_tools/src/base/config.dart';
+import 'package:flutter_tools/src/globals.dart' as globals;
 import 'package:mockito/mockito.dart';
 import 'package:process/process.dart';
+import 'package:platform/platform.dart';
 
 import '../../src/common.dart';
 import '../../src/context.dart';
@@ -38,7 +38,7 @@
 
     testUsingContext('parse sdk', () {
       sdkDir = MockAndroidSdk.createSdkDirectory();
-      Config.instance.setValue('android-sdk', sdkDir.path);
+      globals.config.setValue('android-sdk', sdkDir.path);
 
       final AndroidSdk sdk = AndroidSdk.locateAndroidSdk();
       expect(sdk.latestVersion, isNotNull);
@@ -50,7 +50,7 @@
 
     testUsingContext('parse sdk N', () {
       sdkDir = MockAndroidSdk.createSdkDirectory(withAndroidN: true);
-      Config.instance.setValue('android-sdk', sdkDir.path);
+      globals.config.setValue('android-sdk', sdkDir.path);
 
       final AndroidSdk sdk = AndroidSdk.locateAndroidSdk();
       expect(sdk.latestVersion, isNotNull);
@@ -62,10 +62,10 @@
 
     testUsingContext('returns sdkmanager path', () {
       sdkDir = MockAndroidSdk.createSdkDirectory();
-      Config.instance.setValue('android-sdk', sdkDir.path);
+      globals.config.setValue('android-sdk', sdkDir.path);
 
       final AndroidSdk sdk = AndroidSdk.locateAndroidSdk();
-      expect(sdk.sdkManagerPath, fs.path.join(sdk.directory, 'tools', 'bin', 'sdkmanager'));
+      expect(sdk.sdkManagerPath, globals.fs.path.join(sdk.directory, 'tools', 'bin', 'sdkmanager'));
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
       ProcessManager: () => FakeProcessManager.any(),
@@ -73,11 +73,11 @@
 
     testUsingContext('returns sdkmanager version', () {
       sdkDir = MockAndroidSdk.createSdkDirectory();
-      Config.instance.setValue('android-sdk', sdkDir.path);
+      globals.config.setValue('android-sdk', sdkDir.path);
 
       final AndroidSdk sdk = AndroidSdk.locateAndroidSdk();
-      when(processManager.canRun(sdk.sdkManagerPath)).thenReturn(true);
-      when(processManager.runSync(<String>[sdk.sdkManagerPath, '--version'],
+      when(globals.processManager.canRun(sdk.sdkManagerPath)).thenReturn(true);
+      when(globals.processManager.runSync(<String>[sdk.sdkManagerPath, '--version'],
           environment: argThat(isNotNull,  named: 'environment')))
           .thenReturn(ProcessResult(1, 0, '26.1.1\n', ''));
       expect(sdk.sdkManagerVersion, '26.1.1');
@@ -88,10 +88,10 @@
 
     testUsingContext('returns validate sdk is well formed', () {
       sdkDir = MockBrokenAndroidSdk.createSdkDirectory();
-      Config.instance.setValue('android-sdk', sdkDir.path);
+      globals.config.setValue('android-sdk', sdkDir.path);
 
       final AndroidSdk sdk = AndroidSdk.locateAndroidSdk();
-      when(processManager.canRun(sdk.adbPath)).thenReturn(true);
+      when(globals.processManager.canRun(sdk.adbPath)).thenReturn(true);
 
       final List<String> validationIssues = sdk.validateSdkWellFormed();
       expect(validationIssues.first, 'No valid Android SDK platforms found in'
@@ -105,11 +105,11 @@
 
     testUsingContext('does not throw on sdkmanager version check failure', () {
       sdkDir = MockAndroidSdk.createSdkDirectory();
-      Config.instance.setValue('android-sdk', sdkDir.path);
+      globals.config.setValue('android-sdk', sdkDir.path);
 
       final AndroidSdk sdk = AndroidSdk.locateAndroidSdk();
-      when(processManager.canRun(sdk.sdkManagerPath)).thenReturn(true);
-      when(processManager.runSync(<String>[sdk.sdkManagerPath, '--version'],
+      when(globals.processManager.canRun(sdk.sdkManagerPath)).thenReturn(true);
+      when(globals.processManager.runSync(<String>[sdk.sdkManagerPath, '--version'],
           environment: argThat(isNotNull,  named: 'environment')))
           .thenReturn(ProcessResult(1, 1, '26.1.1\n', 'Mystery error'));
       expect(sdk.sdkManagerVersion, isNull);
@@ -120,10 +120,10 @@
 
     testUsingContext('throws on sdkmanager version check if sdkmanager not found', () {
       sdkDir = MockAndroidSdk.createSdkDirectory(withSdkManager: false);
-      Config.instance.setValue('android-sdk', sdkDir.path);
+      globals.config.setValue('android-sdk', sdkDir.path);
 
       final AndroidSdk sdk = AndroidSdk.locateAndroidSdk();
-      when(processManager.canRun(sdk.sdkManagerPath)).thenReturn(false);
+      when(globals.processManager.canRun(sdk.sdkManagerPath)).thenReturn(false);
       expect(() => sdk.sdkManagerVersion, throwsToolExit());
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
@@ -138,11 +138,11 @@
         testUsingContext('detection on $os', () {
           sdkDir = MockAndroidSdk.createSdkDirectory(
               withAndroidN: true, withNdkDir: osDir, withNdkSysroot: true);
-          Config.instance.setValue('android-sdk', sdkDir.path);
+          globals.config.setValue('android-sdk', sdkDir.path);
 
           final String realSdkDir = sdkDir.path;
-          final String realNdkDir = fs.path.join(realSdkDir, 'ndk-bundle');
-          final String realNdkCompiler = fs.path.join(
+          final String realNdkDir = globals.fs.path.join(realSdkDir, 'ndk-bundle');
+          final String realNdkCompiler = globals.fs.path.join(
               realNdkDir,
               'toolchains',
               'arm-linux-androideabi-4.9',
@@ -151,7 +151,7 @@
               'bin',
               'arm-linux-androideabi-gcc');
           final String realNdkSysroot =
-              fs.path.join(realNdkDir, 'platforms', 'android-9', 'arch-arm');
+              globals.fs.path.join(realNdkDir, 'platforms', 'android-9', 'arch-arm');
 
           final AndroidSdk sdk = AndroidSdk.locateAndroidSdk();
           expect(sdk.directory, realSdkDir);
@@ -168,25 +168,25 @@
         testUsingContext('newer NDK require explicit -fuse-ld on $os', () {
           sdkDir = MockAndroidSdk.createSdkDirectory(
               withAndroidN: true, withNdkDir: osDir, withNdkSysroot: true, ndkVersion: 18);
-          Config.instance.setValue('android-sdk', sdkDir.path);
+          globals.config.setValue('android-sdk', sdkDir.path);
 
           final String realSdkDir = sdkDir.path;
-          final String realNdkDir = fs.path.join(realSdkDir, 'ndk-bundle');
-          final String realNdkToolchainBin = fs.path.join(
+          final String realNdkDir = globals.fs.path.join(realSdkDir, 'ndk-bundle');
+          final String realNdkToolchainBin = globals.fs.path.join(
               realNdkDir,
               'toolchains',
               'arm-linux-androideabi-4.9',
               'prebuilt',
               osDir,
               'bin');
-          final String realNdkCompiler = fs.path.join(
+          final String realNdkCompiler = globals.fs.path.join(
               realNdkToolchainBin,
               'arm-linux-androideabi-gcc');
-          final String realNdkLinker = fs.path.join(
+          final String realNdkLinker = globals.fs.path.join(
               realNdkToolchainBin,
               'arm-linux-androideabi-ld');
           final String realNdkSysroot =
-              fs.path.join(realNdkDir, 'platforms', 'android-9', 'arch-arm');
+              globals.fs.path.join(realNdkDir, 'platforms', 'android-9', 'arch-arm');
 
           final AndroidSdk sdk = AndroidSdk.locateAndroidSdk();
           expect(sdk.directory, realSdkDir);
@@ -204,7 +204,7 @@
       for (String os in <String>['linux', 'macos']) {
         testUsingContext('detection on $os (no ndk available)', () {
           sdkDir = MockAndroidSdk.createSdkDirectory(withAndroidN: true);
-          Config.instance.setValue('android-sdk', sdkDir.path);
+          globals.config.setValue('android-sdk', sdkDir.path);
 
           final String realSdkDir = sdkDir.path;
           final AndroidSdk sdk = AndroidSdk.locateAndroidSdk();
@@ -230,8 +230,8 @@
     bool withNdkSysroot = false,
     bool withSdkManager = true,
   }) {
-    final Directory dir = fs.systemTempDirectory.createTempSync('flutter_mock_android_sdk.');
-    final String exe = platform.isWindows ? '.exe' : '';
+    final Directory dir = globals.fs.systemTempDirectory.createTempSync('flutter_mock_android_sdk.');
+    final String exe = globals.platform.isWindows ? '.exe' : '';
     _createSdkFile(dir, 'licenses/dummy');
     _createSdkFile(dir, 'platform-tools/adb$exe');
 
diff --git a/packages/flutter_tools/test/general.shard/android/android_studio_test.dart b/packages/flutter_tools/test/general.shard/android/android_studio_test.dart
index e36dbce..7f39b2e 100644
--- a/packages/flutter_tools/test/general.shard/android/android_studio_test.dart
+++ b/packages/flutter_tools/test/general.shard/android/android_studio_test.dart
@@ -5,9 +5,11 @@
 import 'package:file/memory.dart';
 import 'package:flutter_tools/src/android/android_studio.dart';
 import 'package:flutter_tools/src/base/file_system.dart';
-import 'package:flutter_tools/src/base/platform.dart';
 import 'package:flutter_tools/src/ios/plist_parser.dart';
+import 'package:flutter_tools/src/globals.dart' as globals;
+
 import 'package:mockito/mockito.dart';
+import 'package:platform/platform.dart';
 
 import '../../src/common.dart';
 import '../../src/context.dart';
@@ -55,12 +57,12 @@
       const String installPath = '/opt/android-studio-with-cheese-5.0';
       const String studioHome = '$homeLinux/.AndroidStudioWithCheese5.0';
       const String homeFile = '$studioHome/system/.home';
-      fs.directory(installPath).createSync(recursive: true);
-      fs.file(homeFile).createSync(recursive: true);
-      fs.file(homeFile).writeAsStringSync(installPath);
+      globals.fs.directory(installPath).createSync(recursive: true);
+      globals.fs.file(homeFile).createSync(recursive: true);
+      globals.fs.file(homeFile).writeAsStringSync(installPath);
 
       final AndroidStudio studio =
-      AndroidStudio.fromHomeDot(fs.directory(studioHome));
+      AndroidStudio.fromHomeDot(globals.fs.directory(studioHome));
       expect(studio, isNotNull);
       expect(studio.pluginsPath,
           equals('/home/me/.AndroidStudioWithCheese5.0/config/plugins'));
@@ -75,15 +77,15 @@
 
   group('pluginsPath on Mac', () {
     testUsingContext('extracts custom paths for directly downloaded Android Studio on Mac', () {
-      final String studioInApplicationPlistFolder = fs.path.join('/', 'Application', 'Android Studio.app', 'Contents');
-      fs.directory(studioInApplicationPlistFolder).createSync(recursive: true);
+      final String studioInApplicationPlistFolder = globals.fs.path.join('/', 'Application', 'Android Studio.app', 'Contents');
+      globals.fs.directory(studioInApplicationPlistFolder).createSync(recursive: true);
 
-      final String plistFilePath = fs.path.join(studioInApplicationPlistFolder, 'Info.plist');
+      final String plistFilePath = globals.fs.path.join(studioInApplicationPlistFolder, 'Info.plist');
       when(plistUtils.parseFile(plistFilePath)).thenReturn(macStudioInfoPlist);
-      final AndroidStudio studio = AndroidStudio.fromMacOSBundle(fs.directory(studioInApplicationPlistFolder)?.parent?.path);
+      final AndroidStudio studio = AndroidStudio.fromMacOSBundle(globals.fs.directory(studioInApplicationPlistFolder)?.parent?.path);
       expect(studio, isNotNull);
       expect(studio.pluginsPath,
-          equals(fs.path.join(homeMac, 'Library', 'Application Support', 'AndroidStudio3.3')));
+          equals(globals.fs.path.join(homeMac, 'Library', 'Application Support', 'AndroidStudio3.3')));
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
       ProcessManager: () => FakeProcessManager.any(),
@@ -94,26 +96,26 @@
     });
 
     testUsingContext('extracts custom paths for Android Studio downloaded by JetBrainsToolbox on Mac', () {
-      final String jetbrainsStudioInApplicationPlistFolder = fs.path.join(homeMac, 'Application', 'JetBrains Toolbox', 'Android Studio.app', 'Contents');
-      fs.directory(jetbrainsStudioInApplicationPlistFolder).createSync(recursive: true);
+      final String jetbrainsStudioInApplicationPlistFolder = globals.fs.path.join(homeMac, 'Application', 'JetBrains Toolbox', 'Android Studio.app', 'Contents');
+      globals.fs.directory(jetbrainsStudioInApplicationPlistFolder).createSync(recursive: true);
       const Map<String, dynamic> jetbrainsInfoPlist = <String, dynamic>{
         'CFBundleLongVersionString': '3.3',
         'CFBundleShortVersionString': '3.3',
         'CFBundleVersion': '3.3',
         'JetBrainsToolboxApp': '$homeMac/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/183.5256920/Android Studio 3.3.app',
       };
-      final String jetbrainsPlistFilePath = fs.path.join(jetbrainsStudioInApplicationPlistFolder, 'Info.plist');
+      final String jetbrainsPlistFilePath = globals.fs.path.join(jetbrainsStudioInApplicationPlistFolder, 'Info.plist');
       when(plistUtils.parseFile(jetbrainsPlistFilePath)).thenReturn(jetbrainsInfoPlist);
 
-      final String studioInApplicationPlistFolder = fs.path.join(fs.path.join(homeMac, 'Library', 'Application Support'), 'JetBrains', 'Toolbox', 'apps', 'AndroidStudio', 'ch-0', '183.5256920', fs.path.join('Android Studio 3.3.app', 'Contents'));
-      fs.directory(studioInApplicationPlistFolder).createSync(recursive: true);
-      final String studioPlistFilePath = fs.path.join(studioInApplicationPlistFolder, 'Info.plist');
+      final String studioInApplicationPlistFolder = globals.fs.path.join(globals.fs.path.join(homeMac, 'Library', 'Application Support'), 'JetBrains', 'Toolbox', 'apps', 'AndroidStudio', 'ch-0', '183.5256920', globals.fs.path.join('Android Studio 3.3.app', 'Contents'));
+      globals.fs.directory(studioInApplicationPlistFolder).createSync(recursive: true);
+      final String studioPlistFilePath = globals.fs.path.join(studioInApplicationPlistFolder, 'Info.plist');
       when(plistUtils.parseFile(studioPlistFilePath)).thenReturn(macStudioInfoPlist);
 
-      final AndroidStudio studio = AndroidStudio.fromMacOSBundle(fs.directory(jetbrainsStudioInApplicationPlistFolder)?.parent?.path);
+      final AndroidStudio studio = AndroidStudio.fromMacOSBundle(globals.fs.directory(jetbrainsStudioInApplicationPlistFolder)?.parent?.path);
       expect(studio, isNotNull);
       expect(studio.pluginsPath,
-          equals(fs.path.join(homeMac, 'Library', 'Application Support', 'AndroidStudio3.3')));
+          equals(globals.fs.path.join(homeMac, 'Library', 'Application Support', 'AndroidStudio3.3')));
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
       ProcessManager: () => FakeProcessManager.any(),
diff --git a/packages/flutter_tools/test/general.shard/android/android_studio_validator_test.dart b/packages/flutter_tools/test/general.shard/android/android_studio_validator_test.dart
index 89e4ecb..b56103a 100644
--- a/packages/flutter_tools/test/general.shard/android/android_studio_validator_test.dart
+++ b/packages/flutter_tools/test/general.shard/android/android_studio_validator_test.dart
@@ -4,7 +4,7 @@
 
 import 'package:flutter_tools/src/doctor.dart';
 import 'package:flutter_tools/src/android/android_studio_validator.dart';
-import 'package:flutter_tools/src/base/platform.dart';
+import 'package:platform/platform.dart';
 
 import '../../src/common.dart';
 import '../../src/context.dart';
diff --git a/packages/flutter_tools/test/general.shard/android/android_workflow_test.dart b/packages/flutter_tools/test/general.shard/android/android_workflow_test.dart
index 8945c1b..67db28c 100644
--- a/packages/flutter_tools/test/general.shard/android/android_workflow_test.dart
+++ b/packages/flutter_tools/test/general.shard/android/android_workflow_test.dart
@@ -12,6 +12,8 @@
 import 'package:flutter_tools/src/base/user_messages.dart';
 import 'package:flutter_tools/src/base/version.dart';
 import 'package:flutter_tools/src/doctor.dart';
+import 'package:flutter_tools/src/globals.dart' as globals;
+
 import 'package:mockito/mockito.dart';
 import 'package:platform/platform.dart';
 import 'package:process/process.dart';
@@ -291,7 +293,7 @@
 
     //Test with older version of JDK
     const String javaVersionText = 'openjdk version "1.7.0_212"';
-    when(processManager.run(argThat(contains('-version')))).thenAnswer((_) =>
+    when(globals.processManager.run(argThat(contains('-version')))).thenAnswer((_) =>
       Future<ProcessResult>.value(ProcessResult(0, 0, null, javaVersionText)));
     final String errorMessage = userMessages.androidJavaMinimumVersion(javaVersionText);
 
diff --git a/packages/flutter_tools/test/general.shard/android/gradle_errors_test.dart b/packages/flutter_tools/test/general.shard/android/gradle_errors_test.dart
index 6735fea..0c7a01c 100644
--- a/packages/flutter_tools/test/general.shard/android/gradle_errors_test.dart
+++ b/packages/flutter_tools/test/general.shard/android/gradle_errors_test.dart
@@ -8,9 +8,11 @@
 import 'package:flutter_tools/src/base/context.dart';
 import 'package:flutter_tools/src/base/file_system.dart';
 import 'package:flutter_tools/src/base/io.dart';
-import 'package:flutter_tools/src/base/platform.dart';
+
 import 'package:flutter_tools/src/project.dart';
 import 'package:flutter_tools/src/reporting/reporting.dart';
+import 'package:flutter_tools/src/globals.dart' as globals;
+
 import 'package:mockito/mockito.dart';
 import 'package:platform/platform.dart';
 import 'package:process/process.dart';
@@ -284,7 +286,7 @@
     });
 
     testUsingContext('handler - plugins and no AndroidX', () async {
-      fs.file('.flutter-plugins').createSync(recursive: true);
+      globals.fs.file('.flutter-plugins').createSync(recursive: true);
 
       final GradleBuildStatus status = await androidXFailureHandler
         .handler(
@@ -316,7 +318,7 @@
     });
 
     testUsingContext('handler - plugins, AndroidX, and AAR', () async {
-      fs.file('.flutter-plugins').createSync(recursive: true);
+      globals.fs.file('.flutter-plugins').createSync(recursive: true);
 
       final GradleBuildStatus status = await androidXFailureHandler.handler(
         line: '',
@@ -342,7 +344,7 @@
     });
 
     testUsingContext('handler - plugins, AndroidX, and no AAR', () async {
-      fs.file('.flutter-plugins').createSync(recursive: true);
+      globals.fs.file('.flutter-plugins').createSync(recursive: true);
 
       final GradleBuildStatus status = await androidXFailureHandler.handler(
         line: '',
diff --git a/packages/flutter_tools/test/general.shard/android/gradle_test.dart b/packages/flutter_tools/test/general.shard/android/gradle_test.dart
index 1c026bf..17cb651 100644
--- a/packages/flutter_tools/test/general.shard/android/gradle_test.dart
+++ b/packages/flutter_tools/test/general.shard/android/gradle_test.dart
@@ -16,13 +16,13 @@
 import 'package:flutter_tools/src/base/file_system.dart';
 import 'package:flutter_tools/src/base/io.dart';
 import 'package:flutter_tools/src/base/logger.dart';
-import 'package:flutter_tools/src/base/platform.dart';
 import 'package:flutter_tools/src/base/terminal.dart';
 import 'package:flutter_tools/src/build_info.dart';
 import 'package:flutter_tools/src/cache.dart';
 import 'package:flutter_tools/src/ios/xcodeproj.dart';
 import 'package:flutter_tools/src/project.dart';
 import 'package:flutter_tools/src/reporting/reporting.dart';
+import 'package:flutter_tools/src/globals.dart' as globals;
 import 'package:mockito/mockito.dart';
 import 'package:platform/platform.dart';
 import 'package:process/process.dart';
@@ -41,11 +41,11 @@
       final AndroidProject androidProject = MockAndroidProject();
       when(project.android).thenReturn(androidProject);
       when(project.isModule).thenReturn(false);
-      when(androidProject.buildDirectory).thenReturn(fs.directory('foo'));
+      when(androidProject.buildDirectory).thenReturn(globals.fs.directory('foo'));
 
       expect(
         getApkDirectory(project).path,
-        equals(fs.path.join('foo', 'app', 'outputs', 'apk')),
+        equals(globals.fs.path.join('foo', 'app', 'outputs', 'apk')),
       );
     });
 
@@ -54,11 +54,11 @@
       final AndroidProject androidProject = MockAndroidProject();
       when(project.android).thenReturn(androidProject);
       when(project.isModule).thenReturn(true);
-      when(androidProject.buildDirectory).thenReturn(fs.directory('foo'));
+      when(androidProject.buildDirectory).thenReturn(globals.fs.directory('foo'));
 
       expect(
         getApkDirectory(project).path,
-        equals(fs.path.join('foo', 'host', 'outputs', 'apk')),
+        equals(globals.fs.path.join('foo', 'host', 'outputs', 'apk')),
       );
     });
 
@@ -67,11 +67,11 @@
       final AndroidProject androidProject = MockAndroidProject();
       when(project.android).thenReturn(androidProject);
       when(project.isModule).thenReturn(false);
-      when(androidProject.buildDirectory).thenReturn(fs.directory('foo'));
+      when(androidProject.buildDirectory).thenReturn(globals.fs.directory('foo'));
 
       expect(
         getBundleDirectory(project).path,
-        equals(fs.path.join('foo', 'app', 'outputs', 'bundle')),
+        equals(globals.fs.path.join('foo', 'app', 'outputs', 'bundle')),
       );
     });
 
@@ -80,18 +80,18 @@
       final AndroidProject androidProject = MockAndroidProject();
       when(project.android).thenReturn(androidProject);
       when(project.isModule).thenReturn(true);
-      when(androidProject.buildDirectory).thenReturn(fs.directory('foo'));
+      when(androidProject.buildDirectory).thenReturn(globals.fs.directory('foo'));
 
       expect(
         getBundleDirectory(project).path,
-        equals(fs.path.join('foo', 'host', 'outputs', 'bundle')),
+        equals(globals.fs.path.join('foo', 'host', 'outputs', 'bundle')),
       );
     });
 
     test('getRepoDirectory', () {
       expect(
-        getRepoDirectory(fs.directory('foo')).path,
-        equals(fs.path.join('foo','outputs', 'repo')),
+        getRepoDirectory(globals.fs.directory('foo')).path,
+        equals(globals.fs.path.join('foo','outputs', 'repo')),
       );
     });
   });
@@ -138,7 +138,7 @@
       final FlutterProject project = generateFakeAppBundle('foo_barRelease', 'app.aab');
       final File bundle = findBundleFile(project, const BuildInfo(BuildMode.release, 'foo_bar'));
       expect(bundle, isNotNull);
-      expect(bundle.path, fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'foo_barRelease', 'app.aab'));
+      expect(bundle.path, globals.fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'foo_barRelease', 'app.aab'));
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
       ProcessManager: () => FakeProcessManager.any(),
@@ -148,7 +148,7 @@
       final FlutterProject project = generateFakeAppBundle('fooRelease', 'app.aab');
       final File bundle = findBundleFile(project, const BuildInfo(BuildMode.release, 'foo'));
       expect(bundle, isNotNull);
-      expect(bundle.path, fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'fooRelease', 'app.aab'));
+      expect(bundle.path, globals.fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'fooRelease', 'app.aab'));
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
       ProcessManager: () => FakeProcessManager.any(),
@@ -158,7 +158,7 @@
       final FlutterProject project = generateFakeAppBundle('release', 'app.aab');
       final File bundle = findBundleFile(project, const BuildInfo(BuildMode.release, null));
       expect(bundle, isNotNull);
-      expect(bundle.path, fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'release', 'app.aab'));
+      expect(bundle.path, globals.fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'release', 'app.aab'));
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
       ProcessManager: () => FakeProcessManager.any(),
@@ -168,7 +168,7 @@
       final FlutterProject project = generateFakeAppBundle('foo_barDebug', 'app.aab');
       final File bundle = findBundleFile(project, const BuildInfo(BuildMode.debug, 'foo_bar'));
       expect(bundle, isNotNull);
-      expect(bundle.path, fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'foo_barDebug', 'app.aab'));
+      expect(bundle.path, globals.fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'foo_barDebug', 'app.aab'));
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
       ProcessManager: () => FakeProcessManager.any(),
@@ -178,7 +178,7 @@
       final FlutterProject project = generateFakeAppBundle('fooDebug', 'app.aab');
       final File bundle = findBundleFile(project, const BuildInfo(BuildMode.debug, 'foo'));
       expect(bundle, isNotNull);
-      expect(bundle.path, fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'fooDebug', 'app.aab'));
+      expect(bundle.path, globals.fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'fooDebug', 'app.aab'));
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
       ProcessManager: () => FakeProcessManager.any(),
@@ -188,7 +188,7 @@
       final FlutterProject project = generateFakeAppBundle('debug', 'app.aab');
       final File bundle = findBundleFile(project, const BuildInfo(BuildMode.debug, null));
       expect(bundle, isNotNull);
-      expect(bundle.path, fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'debug', 'app.aab'));
+      expect(bundle.path, globals.fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'debug', 'app.aab'));
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
       ProcessManager: () => FakeProcessManager.any(),
@@ -198,7 +198,7 @@
       final FlutterProject project = generateFakeAppBundle('foo_barProfile', 'app.aab');
       final File bundle = findBundleFile(project, const BuildInfo(BuildMode.profile, 'foo_bar'));
       expect(bundle, isNotNull);
-      expect(bundle.path, fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'foo_barProfile', 'app.aab'));
+      expect(bundle.path, globals.fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'foo_barProfile', 'app.aab'));
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
       ProcessManager: () => FakeProcessManager.any(),
@@ -208,7 +208,7 @@
       final FlutterProject project = generateFakeAppBundle('fooProfile', 'app.aab');
       final File bundle = findBundleFile(project, const BuildInfo(BuildMode.profile, 'foo'));
       expect(bundle, isNotNull);
-      expect(bundle.path, fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'fooProfile', 'app.aab'));
+      expect(bundle.path, globals.fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'fooProfile', 'app.aab'));
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
       ProcessManager: () => FakeProcessManager.any(),
@@ -218,7 +218,7 @@
       final FlutterProject project = generateFakeAppBundle('profile', 'app.aab');
       final File bundle = findBundleFile(project, const BuildInfo(BuildMode.profile, null));
       expect(bundle, isNotNull);
-      expect(bundle.path, fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'profile', 'app.aab'));
+      expect(bundle.path, globals.fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'profile', 'app.aab'));
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
       ProcessManager: () => FakeProcessManager.any(),
@@ -228,7 +228,7 @@
       final FlutterProject project = generateFakeAppBundle('release', 'app-release.aab');
       final File bundle = findBundleFile(project, const BuildInfo(BuildMode.release, null));
       expect(bundle, isNotNull);
-      expect(bundle.path, fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'release', 'app-release.aab'));
+      expect(bundle.path, globals.fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'release', 'app-release.aab'));
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
       ProcessManager: () => FakeProcessManager.any(),
@@ -238,7 +238,7 @@
       final FlutterProject project = generateFakeAppBundle('profile', 'app-profile.aab');
       final File bundle = findBundleFile(project, const BuildInfo(BuildMode.profile, null));
       expect(bundle, isNotNull);
-      expect(bundle.path, fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'profile', 'app-profile.aab'));
+      expect(bundle.path, globals.fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'profile', 'app-profile.aab'));
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
       ProcessManager: () => FakeProcessManager.any(),
@@ -248,7 +248,7 @@
       final FlutterProject project = generateFakeAppBundle('debug', 'app-debug.aab');
       final File bundle = findBundleFile(project, const BuildInfo(BuildMode.debug, null));
       expect(bundle, isNotNull);
-      expect(bundle.path, fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'debug', 'app-debug.aab'));
+      expect(bundle.path, globals.fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'debug', 'app-debug.aab'));
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
       ProcessManager: () => FakeProcessManager.any(),
@@ -258,7 +258,7 @@
       final FlutterProject project = generateFakeAppBundle('foo_barRelease', 'app-foo_bar-release.aab');
       final File bundle = findBundleFile(project, const BuildInfo(BuildMode.release, 'foo_bar'));
       expect(bundle, isNotNull);
-      expect(bundle.path, fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'foo_barRelease', 'app-foo_bar-release.aab'));
+      expect(bundle.path, globals.fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'foo_barRelease', 'app-foo_bar-release.aab'));
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
       ProcessManager: () => FakeProcessManager.any(),
@@ -268,7 +268,7 @@
       final FlutterProject project = generateFakeAppBundle('foo_barProfile', 'app-foo_bar-profile.aab');
       final File bundle = findBundleFile(project, const BuildInfo(BuildMode.profile, 'foo_bar'));
       expect(bundle, isNotNull);
-      expect(bundle.path, fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'foo_barProfile', 'app-foo_bar-profile.aab'));
+      expect(bundle.path, globals.fs.path.join('irrelevant', 'app', 'outputs', 'bundle', 'foo_barProfile', 'app-foo_bar-profile.aab'));
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
       ProcessManager: () => FakeProcessManager.any(),
@@ -278,7 +278,7 @@
       final FlutterProject project = generateFakeAppBundle('foo_barDebug', 'app-foo_bar-debug.aab');
       final File bundle = findBundleFile(project, const BuildInfo(BuildMode.debug, 'foo_bar'));
       expect(bundle, isNotNull);
-      expect(bundle.path, fs.path.join('irrelevant','app', 'outputs', 'bundle', 'foo_barDebug', 'app-foo_bar-debug.aab'));
+      expect(bundle.path, globals.fs.path.join('irrelevant','app', 'outputs', 'bundle', 'foo_barDebug', 'app-foo_bar-debug.aab'));
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
       ProcessManager: () => FakeProcessManager.any(),
@@ -322,9 +322,9 @@
 
       when(project.android).thenReturn(androidProject);
       when(project.isModule).thenReturn(false);
-      when(androidProject.buildDirectory).thenReturn(fs.directory('irrelevant'));
+      when(androidProject.buildDirectory).thenReturn(globals.fs.directory('irrelevant'));
 
-      final Directory apkDirectory = fs.directory(fs.path.join('irrelevant', 'app', 'outputs', 'apk', 'release'));
+      final Directory apkDirectory = globals.fs.directory(globals.fs.path.join('irrelevant', 'app', 'outputs', 'apk', 'release'));
       apkDirectory.createSync(recursive: true);
       apkDirectory.childFile('app-release.apk').createSync();
 
@@ -333,7 +333,7 @@
         const AndroidBuildInfo(BuildInfo(BuildMode.release, '')),
       );
       expect(apks.isNotEmpty, isTrue);
-      expect(apks.first.path, equals(fs.path.join('irrelevant', 'app', 'outputs', 'apk', 'release', 'app-release.apk')));
+      expect(apks.first.path, equals(globals.fs.path.join('irrelevant', 'app', 'outputs', 'apk', 'release', 'app-release.apk')));
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
       ProcessManager: () => FakeProcessManager.any(),
@@ -345,9 +345,9 @@
 
       when(project.android).thenReturn(androidProject);
       when(project.isModule).thenReturn(false);
-      when(androidProject.buildDirectory).thenReturn(fs.directory('irrelevant'));
+      when(androidProject.buildDirectory).thenReturn(globals.fs.directory('irrelevant'));
 
-      final Directory apkDirectory = fs.directory(fs.path.join('irrelevant', 'app', 'outputs', 'apk', 'release'));
+      final Directory apkDirectory = globals.fs.directory(globals.fs.path.join('irrelevant', 'app', 'outputs', 'apk', 'release'));
       apkDirectory.createSync(recursive: true);
       apkDirectory.childFile('app-flavor1-release.apk').createSync();
 
@@ -356,7 +356,7 @@
         const AndroidBuildInfo(BuildInfo(BuildMode.release, 'flavor1')),
       );
       expect(apks.isNotEmpty, isTrue);
-      expect(apks.first.path, equals(fs.path.join('irrelevant', 'app', 'outputs', 'apk', 'release', 'app-flavor1-release.apk')));
+      expect(apks.first.path, equals(globals.fs.path.join('irrelevant', 'app', 'outputs', 'apk', 'release', 'app-flavor1-release.apk')));
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
       ProcessManager: () => FakeProcessManager.any(),
@@ -368,9 +368,9 @@
 
       when(project.android).thenReturn(androidProject);
       when(project.isModule).thenReturn(false);
-      when(androidProject.buildDirectory).thenReturn(fs.directory('irrelevant'));
+      when(androidProject.buildDirectory).thenReturn(globals.fs.directory('irrelevant'));
 
-      final Directory apkDirectory = fs.directory(fs.path.join('irrelevant', 'app', 'outputs', 'apk', 'flavor1', 'release'));
+      final Directory apkDirectory = globals.fs.directory(globals.fs.path.join('irrelevant', 'app', 'outputs', 'apk', 'flavor1', 'release'));
       apkDirectory.createSync(recursive: true);
       apkDirectory.childFile('app-flavor1-release.apk').createSync();
 
@@ -379,7 +379,7 @@
         const AndroidBuildInfo(BuildInfo(BuildMode.release, 'flavor1')),
       );
       expect(apks.isNotEmpty, isTrue);
-      expect(apks.first.path, equals(fs.path.join('irrelevant', 'app', 'outputs', 'apk', 'flavor1', 'release', 'app-flavor1-release.apk')));
+      expect(apks.first.path, equals(globals.fs.path.join('irrelevant', 'app', 'outputs', 'apk', 'flavor1', 'release', 'app-flavor1-release.apk')));
     }, overrides: <Type, Generator>{
       FileSystem: () => MemoryFileSystem(),
       ProcessManager: () => FakeProcessManager.any(),
@@ -456,7 +456,7 @@
 
     setUp(() {
       mockLogger = BufferLogger();
-      tempDir = fs.systemTempDirectory.createTempSync('flutter_settings_aar_test.');
+      tempDir = globals.fs.systemTempDirectory.createTempSync('flutter_settings_aar_test.');
     });
 
     testUsingContext('create settings_aar.gradle when current settings.gradle loads plugins', () {
@@ -484,16 +484,16 @@
 
       tempDir.childFile('settings.gradle').writeAsStringSync(currentSettingsGradle);
 
-      final String toolGradlePath = fs.path.join(
-          fs.path.absolute(Cache.flutterRoot),
+      final String toolGradlePath = globals.fs.path.join(
+          globals.fs.path.absolute(Cache.flutterRoot),
           'packages',
           'flutter_tools',
           'gradle');
-      fs.directory(toolGradlePath).createSync(recursive: true);
-      fs.file(fs.path.join(toolGradlePath, 'deprecated_settings.gradle'))
+      globals.fs.directory(toolGradlePath).createSync(recursive: true);
+      globals.fs.file(globals.fs.path.join(toolGradlePath, 'deprecated_settings.gradle'))
           .writeAsStringSync(currentSettingsGradle);
 
-      fs.file(fs.path.join(toolGradlePath, 'settings_aar.gradle.tmpl'))
+      globals.fs.file(globals.fs.path.join(toolGradlePath, 'settings_aar.gradle.tmpl'))
           .writeAsStringSync(settingsAarFile);
 
       createSettingsAarGradle(tempDir);
@@ -518,16 +518,16 @@
 
       tempDir.childFile('settings.gradle').writeAsStringSync(currentSettingsGradle);
 
-      final String toolGradlePath = fs.path.join(
-          fs.path.absolute(Cache.flutterRoot),
+      final String toolGradlePath = globals.fs.path.join(
+          globals.fs.path.absolute(Cache.flutterRoot),
           'packages',
           'flutter_tools',
           'gradle');
-      fs.directory(toolGradlePath).createSync(recursive: true);
-      fs.file(fs.path.join(toolGradlePath, 'deprecated_settings.gradle'))
+      globals.fs.directory(toolGradlePath).createSync(recursive: true);
+      globals.fs.file(globals.fs.path.join(toolGradlePath, 'deprecated_settings.gradle'))
           .writeAsStringSync(currentSettingsGradle);
 
-      fs.file(fs.path.join(toolGradlePath, 'settings_aar.gradle.tmpl'))
+      globals.fs.file(globals.fs.path.join(toolGradlePath, 'settings_aar.gradle.tmpl'))
           .writeAsStringSync(settingsAarFile);
 
       createSettingsAarGradle(tempDir);
@@ -579,9 +579,9 @@
     }) async {
       when(mockArtifacts.getArtifactPath(Artifact.flutterFramework,
           platform: TargetPlatform.android_arm, mode: anyNamed('mode'))).thenReturn('engine');
-      when(mockArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'android_arm'));
+      when(mockArtifacts.engineOutPath).thenReturn(globals.fs.path.join('out', 'android_arm'));
 
-      final File manifestFile = fs.file('path/to/project/pubspec.yaml');
+      final File manifestFile = globals.fs.file('path/to/project/pubspec.yaml');
       manifestFile.createSync(recursive: true);
       manifestFile.writeAsStringSync(manifest);
 
@@ -594,7 +594,7 @@
         requireAndroidSdk: false,
       );
 
-      final File localPropertiesFile = fs.file('path/to/project/android/local.properties');
+      final File localPropertiesFile = globals.fs.file('path/to/project/android/local.properties');
       expect(propertyFor('flutter.versionName', localPropertiesFile), expectedBuildName);
       expect(propertyFor('flutter.versionCode', localPropertiesFile), expectedBuildNumber);
     }
@@ -822,7 +822,7 @@
     });
 
     testUsingContext('returns true when the project is using AndroidX', () async {
-      final Directory androidDirectory = fs.systemTempDirectory.createTempSync('flutter_android.');
+      final Directory androidDirectory = globals.fs.systemTempDirectory.createTempSync('flutter_android.');
 
       androidDirectory
         .childFile('gradle.properties')
@@ -836,7 +836,7 @@
     });
 
     testUsingContext('returns false when the project is not using AndroidX', () async {
-      final Directory androidDirectory = fs.systemTempDirectory.createTempSync('flutter_android.');
+      final Directory androidDirectory = globals.fs.systemTempDirectory.createTempSync('flutter_android.');
 
       androidDirectory
         .childFile('gradle.properties')
@@ -850,7 +850,7 @@
     });
 
     testUsingContext('returns false when gradle.properties does not exist', () async {
-      final Directory androidDirectory = fs.systemTempDirectory.createTempSync('flutter_android.');
+      final Directory androidDirectory = globals.fs.systemTempDirectory.createTempSync('flutter_android.');
 
       expect(isAppUsingAndroidX(androidDirectory), isFalse);
 
@@ -880,13 +880,13 @@
     });
 
     testUsingContext('calls gradle', () async {
-      final Directory androidDirectory = fs.directory('android.');
+      final Directory androidDirectory = globals.fs.directory('android.');
       androidDirectory.createSync();
       androidDirectory
         .childFile('pubspec.yaml')
         .writeAsStringSync('name: irrelevant');
 
-      final Directory plugin1 = fs.directory('plugin1.');
+      final Directory plugin1 = globals.fs.directory('plugin1.');
       plugin1
         ..createSync()
         ..childFile('pubspec.yaml')
@@ -902,7 +902,7 @@
         .childFile('build.gradle')
         .createSync(recursive: true);
 
-      final Directory plugin2 = fs.directory('plugin2.');
+      final Directory plugin2 = globals.fs.directory('plugin2.');
       plugin2
         ..createSync()
         ..childFile('pubspec.yaml')
@@ -937,8 +937,8 @@
         buildDirectory: buildDirectory,
       );
 
-      final String flutterRoot = fs.path.absolute(Cache.flutterRoot);
-      final String initScript = fs.path.join(
+      final String flutterRoot = globals.fs.path.absolute(Cache.flutterRoot);
+      final String initScript = globals.fs.path.join(
         flutterRoot,
         'packages',
         'flutter_tools',
@@ -983,13 +983,13 @@
     });
 
     testUsingContext('skips plugin without a android/build.gradle file', () async {
-      final Directory androidDirectory = fs.directory('android.');
+      final Directory androidDirectory = globals.fs.directory('android.');
       androidDirectory.createSync();
       androidDirectory
         .childFile('pubspec.yaml')
         .writeAsStringSync('name: irrelevant');
 
-      final Directory plugin1 = fs.directory('plugin1.');
+      final Directory plugin1 = globals.fs.directory('plugin1.');
       plugin1
         ..createSync()
         ..childFile('pubspec.yaml')
@@ -1022,8 +1022,8 @@
         buildDirectory: buildDirectory,
       );
 
-      final String flutterRoot = fs.path.absolute(Cache.flutterRoot);
-      final String initScript = fs.path.join(
+      final String flutterRoot = globals.fs.path.absolute(Cache.flutterRoot);
+      final String initScript = globals.fs.path.join(
         flutterRoot,
         'packages',
         'flutter_tools',
@@ -1103,15 +1103,15 @@
         environment: anyNamed('environment')))
       .thenAnswer((_) => Future<Process>.value(process));
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childFile('build.gradle')
         .createSync(recursive: true);
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childFile('gradle.properties')
         .createSync(recursive: true);
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childDirectory('app')
         .childFile('build.gradle')
         ..createSync(recursive: true)
@@ -1182,15 +1182,15 @@
         return Future<Process>.value(process);
       });
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childFile('build.gradle')
         .createSync(recursive: true);
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childFile('gradle.properties')
         .createSync(recursive: true);
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childDirectory('app')
         .childFile('build.gradle')
         ..createSync(recursive: true)
@@ -1257,15 +1257,15 @@
         environment: anyNamed('environment')))
       .thenThrow(const ProcessException('', <String>[], 'Some gradle message'));
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childFile('build.gradle')
         .createSync(recursive: true);
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childFile('gradle.properties')
         .createSync(recursive: true);
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childDirectory('app')
         .childFile('build.gradle')
         ..createSync(recursive: true)
@@ -1330,15 +1330,15 @@
         environment: anyNamed('environment')))
       .thenThrow(const ProcessException('', <String>[], 'Unrecognized'));
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childFile('build.gradle')
         .createSync(recursive: true);
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childFile('gradle.properties')
         .createSync(recursive: true);
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childDirectory('app')
         .childFile('build.gradle')
         ..createSync(recursive: true)
@@ -1390,21 +1390,21 @@
         return Future<Process>.value(process);
       });
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childFile('build.gradle')
         .createSync(recursive: true);
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childFile('gradle.properties')
         .createSync(recursive: true);
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childDirectory('app')
         .childFile('build.gradle')
         ..createSync(recursive: true)
         ..writeAsStringSync('apply from: irrelevant/flutter.gradle');
 
-      fs.directory('build')
+      globals.fs.directory('build')
         .childDirectory('app')
         .childDirectory('outputs')
         .childDirectory('apk')
@@ -1468,15 +1468,15 @@
         return Future<Process>.value(process);
       });
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childFile('build.gradle')
         .createSync(recursive: true);
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childFile('gradle.properties')
         .createSync(recursive: true);
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childDirectory('app')
         .childFile('build.gradle')
         ..createSync(recursive: true)
@@ -1554,21 +1554,21 @@
           ));
       });
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childFile('build.gradle')
         .createSync(recursive: true);
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childFile('gradle.properties')
         .createSync(recursive: true);
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childDirectory('app')
         .childFile('build.gradle')
         ..createSync(recursive: true)
         ..writeAsStringSync('apply from: irrelevant/flutter.gradle');
 
-      fs.directory('build')
+      globals.fs.directory('build')
         .childDirectory('app')
         .childDirectory('outputs')
         .childDirectory('apk')
@@ -1603,7 +1603,7 @@
     });
 
     testUsingContext('doesn\'t indicate how to consume an AAR when printHowToConsumeAaar is false', () async {
-      final File manifestFile = fs.file('pubspec.yaml');
+      final File manifestFile = globals.fs.file('pubspec.yaml');
       manifestFile.createSync(recursive: true);
       manifestFile.writeAsStringSync('''
         flutter:
@@ -1612,12 +1612,12 @@
         '''
       );
 
-      fs.file('.android/gradlew').createSync(recursive: true);
+      globals.fs.file('.android/gradlew').createSync(recursive: true);
 
-      fs.file('.android/gradle.properties')
+      globals.fs.file('.android/gradle.properties')
         .writeAsStringSync('irrelevant');
 
-      fs.file('.android/build.gradle')
+      globals.fs.file('.android/build.gradle')
         .createSync(recursive: true);
 
       // Let any process start. Assert after.
@@ -1627,12 +1627,12 @@
         workingDirectory: anyNamed('workingDirectory'),
       )).thenAnswer((_) async => ProcessResult(1, 0, '', ''));
 
-      fs.directory('build/outputs/repo').createSync(recursive: true);
+      globals.fs.directory('build/outputs/repo').createSync(recursive: true);
 
       await buildGradleAar(
         androidBuildInfo: const AndroidBuildInfo(BuildInfo(BuildMode.release, null)),
         project: FlutterProject.current(),
-        outputDirectory: fs.directory('build/'),
+        outputDirectory: globals.fs.directory('build/'),
         target: '',
         buildNumber: '1.0',
       );
@@ -1658,9 +1658,9 @@
     testUsingContext('build apk uses selected local engine', () async {
       when(mockArtifacts.getArtifactPath(Artifact.flutterFramework,
           platform: TargetPlatform.android_arm, mode: anyNamed('mode'))).thenReturn('engine');
-      when(mockArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'android_arm'));
+      when(mockArtifacts.engineOutPath).thenReturn(globals.fs.path.join('out', 'android_arm'));
 
-      fs.file('out/android_arm/flutter_embedding_release.pom')
+      globals.fs.file('out/android_arm/flutter_embedding_release.pom')
         ..createSync(recursive: true)
         ..writeAsStringSync(
 '''<?xml version="1.0" encoding="UTF-8"?>
@@ -1670,21 +1670,21 @@
   </dependencies>
 </project>
 ''');
-      fs.file('out/android_arm/armeabi_v7a_release.pom').createSync(recursive: true);
-      fs.file('out/android_arm/armeabi_v7a_release.jar').createSync(recursive: true);
-      fs.file('out/android_arm/flutter_embedding_release.jar').createSync(recursive: true);
-      fs.file('out/android_arm/flutter_embedding_release.pom').createSync(recursive: true);
+      globals.fs.file('out/android_arm/armeabi_v7a_release.pom').createSync(recursive: true);
+      globals.fs.file('out/android_arm/armeabi_v7a_release.jar').createSync(recursive: true);
+      globals.fs.file('out/android_arm/flutter_embedding_release.jar').createSync(recursive: true);
+      globals.fs.file('out/android_arm/flutter_embedding_release.pom').createSync(recursive: true);
 
-      fs.file('android/gradlew').createSync(recursive: true);
+      globals.fs.file('android/gradlew').createSync(recursive: true);
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childFile('gradle.properties')
         .createSync(recursive: true);
 
-      fs.file('android/build.gradle')
+      globals.fs.file('android/build.gradle')
         .createSync(recursive: true);
 
-      fs.directory('android')
+      globals.fs.directory('android')
         .childDirectory('app')
         .childFile('build.gradle')
         ..createSync(recursive: true)
@@ -1749,9 +1749,9 @@
     testUsingContext('build aar uses selected local engine', () async {
       when(mockArtifacts.getArtifactPath(Artifact.flutterFramework,
           platform: TargetPlatform.android_arm, mode: anyNamed('mode'))).thenReturn('engine');
-      when(mockArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'android_arm'));
+      when(mockArtifacts.engineOutPath).thenReturn(globals.fs.path.join('out', 'android_arm'));
 
-      fs.file('out/android_arm/flutter_embedding_release.pom')
+      globals.fs.file('out/android_arm/flutter_embedding_release.pom')
         ..createSync(recursive: true)
         ..writeAsStringSync(
 '''<?xml version="1.0" encoding="UTF-8"?>
@@ -1761,12 +1761,12 @@
   </dependencies>
 </project>
 ''');
-      fs.file('out/android_arm/armeabi_v7a_release.pom').createSync(recursive: true);
-      fs.file('out/android_arm/armeabi_v7a_release.jar').createSync(recursive: true);
-      fs.file('out/android_arm/flutter_embedding_release.jar').createSync(recursive: true);
-      fs.file('out/android_arm/flutter_embedding_release.pom').createSync(recursive: true);
+      globals.fs.file('out/android_arm/armeabi_v7a_release.pom').createSync(recursive: true);
+      globals.fs.file('out/android_arm/armeabi_v7a_release.jar').createSync(recursive: true);
+      globals.fs.file('out/android_arm/flutter_embedding_release.jar').createSync(recursive: true);
+      globals.fs.file('out/android_arm/flutter_embedding_release.pom').createSync(recursive: true);
 
-      final File manifestFile = fs.file('pubspec.yaml');
+      final File manifestFile = globals.fs.file('pubspec.yaml');
       manifestFile.createSync(recursive: true);
       manifestFile.writeAsStringSync('''
         flutter:
@@ -1775,12 +1775,12 @@
         '''
       );
 
-      fs.file('.android/gradlew').createSync(recursive: true);
+      globals.fs.file('.android/gradlew').createSync(recursive: true);
 
-      fs.file('.android/gradle.properties')
+      globals.fs.file('.android/gradle.properties')
         .writeAsStringSync('irrelevant');
 
-      fs.file('.android/build.gradle')
+      globals.fs.file('.android/build.gradle')
         .createSync(recursive: true);
 
       // Let any process start. Assert after.
@@ -1790,12 +1790,12 @@
         workingDirectory: anyNamed('workingDirectory'),
       )).thenAnswer((_) async => ProcessResult(1, 0, '', ''));
 
-      fs.directory('build/outputs/repo').createSync(recursive: true);
+      globals.fs.directory('build/outputs/repo').createSync(recursive: true);
 
       await buildGradleAar(
         androidBuildInfo: const AndroidBuildInfo(BuildInfo(BuildMode.release, null)),
         project: FlutterProject.current(),
-        outputDirectory: fs.directory('build/'),
+        outputDirectory: globals.fs.directory('build/'),
         target: '',
         buildNumber: '2.0',
       );
@@ -1830,7 +1830,7 @@
       printHowToConsumeAar(
         buildModes: const <String>{'release', 'debug', 'profile'},
         androidPackage: 'com.mycompany',
-        repoDirectory: fs.directory('build/'),
+        repoDirectory: globals.fs.directory('build/'),
         buildNumber: '2.2',
       );
 
@@ -1883,7 +1883,7 @@
       printHowToConsumeAar(
         buildModes: const <String>{'release'},
         androidPackage: 'com.mycompany',
-        repoDirectory: fs.directory('build/'),
+        repoDirectory: globals.fs.directory('build/'),
       );
 
       expect(
@@ -1922,7 +1922,7 @@
       printHowToConsumeAar(
         buildModes: const <String>{'debug'},
         androidPackage: 'com.mycompany',
-        repoDirectory: fs.directory('build/'),
+        repoDirectory: globals.fs.directory('build/'),
       );
 
       expect(
@@ -1961,7 +1961,7 @@
       printHowToConsumeAar(
         buildModes: const <String>{'profile'},
         androidPackage: 'com.mycompany',
-        repoDirectory: fs.directory('build/'),
+        repoDirectory: globals.fs.directory('build/'),
         buildNumber: '1.0',
       );
 
@@ -2017,7 +2017,7 @@
 
   when(project.isModule).thenReturn(false);
   when(project.android).thenReturn(androidProject);
-  when(androidProject.buildDirectory).thenReturn(fs.directory('irrelevant'));
+  when(androidProject.buildDirectory).thenReturn(globals.fs.directory('irrelevant'));
 
   final Directory bundleDirectory = getBundleDirectory(project);
   bundleDirectory
diff --git a/packages/flutter_tools/test/general.shard/android/gradle_utils_test.dart b/packages/flutter_tools/test/general.shard/android/gradle_utils_test.dart
index d0cca2a..f405124 100644
--- a/packages/flutter_tools/test/general.shard/android/gradle_utils_test.dart
+++ b/packages/flutter_tools/test/general.shard/android/gradle_utils_test.dart
@@ -6,9 +6,9 @@
 import 'package:flutter_tools/src/android/gradle_utils.dart';
 import 'package:flutter_tools/src/base/file_system.dart';
 import 'package:flutter_tools/src/base/os.dart';
-import 'package:flutter_tools/src/base/platform.dart';
 import 'package:flutter_tools/src/cache.dart';
 import 'package:flutter_tools/src/project.dart';
+import 'package:flutter_tools/src/globals.dart' as globals;
 import 'package:mockito/mockito.dart';
 import 'package:process/process.dart';
 
@@ -42,7 +42,7 @@
     });
 
     testUsingContext('injects the wrapper when all files are missing', () {
-      final Directory sampleAppAndroid = fs.directory('/sample-app/android');
+      final Directory sampleAppAndroid = globals.fs.directory('/sample-app/android');
       sampleAppAndroid.createSync(recursive: true);
 
       gradleUtils.injectGradleWrapperIfNeeded(sampleAppAndroid);
@@ -78,7 +78,7 @@
     });
 
     testUsingContext('injects the wrapper when some files are missing', () {
-      final Directory sampleAppAndroid = fs.directory('/sample-app/android');
+      final Directory sampleAppAndroid = globals.fs.directory('/sample-app/android');
       sampleAppAndroid.createSync(recursive: true);
 
       // There's an existing gradlew
@@ -128,7 +128,7 @@
     });
 
     testUsingContext('throws ToolExit if gradle.properties doesn\'t exist', () {
-      final Directory sampleAppAndroid = fs.directory('/sample-app/android');
+      final Directory sampleAppAndroid = globals.fs.directory('/sample-app/android');
       sampleAppAndroid.createSync(recursive: true);
 
       expect(() {
@@ -162,7 +162,7 @@
     });
 
     testUsingContext('does not update gradle.properties if it already uses R8', () {
-      final Directory sampleAppAndroid = fs.directory('/sample-app/android');
+      final Directory sampleAppAndroid = globals.fs.directory('/sample-app/android');
       sampleAppAndroid.createSync(recursive: true);
       sampleAppAndroid.childFile('gradle.properties')
         .writeAsStringSync('android.enableR8=true');
@@ -179,7 +179,7 @@
     });
 
     testUsingContext('sets android.enableR8=true', () {
-      final Directory sampleAppAndroid = fs.directory('/sample-app/android');
+      final Directory sampleAppAndroid = globals.fs.directory('/sample-app/android');
       sampleAppAndroid.createSync(recursive: true);
       sampleAppAndroid.childFile('gradle.properties')
         .writeAsStringSync('org.gradle.jvmargs=-Xmx1536M\n');
@@ -200,7 +200,7 @@
     });
 
     testUsingContext('appends android.enableR8=true to the new line', () {
-      final Directory sampleAppAndroid = fs.directory('/sample-app/android');
+      final Directory sampleAppAndroid = globals.fs.directory('/sample-app/android');
       sampleAppAndroid.createSync(recursive: true);
       sampleAppAndroid.childFile('gradle.properties')
         .writeAsStringSync('org.gradle.jvmargs=-Xmx1536M');
@@ -222,7 +222,7 @@
   });
 
   group('GradleUtils.getExecutable', () {
-    final String gradlewFilename = platform.isWindows ? 'gradlew.bat' : 'gradlew';
+    final String gradlewFilename = globals.platform.isWindows ? 'gradlew.bat' : 'gradlew';
 
     MemoryFileSystem memoryFileSystem;
     OperatingSystemUtils operatingSystemUtils;
@@ -235,7 +235,7 @@
     });
 
     testUsingContext('returns the gradlew path', () {
-      final Directory androidDirectory = fs.directory('/android')..createSync();
+      final Directory androidDirectory = globals.fs.directory('/android')..createSync();
       androidDirectory.childFile('gradlew')..createSync();
       androidDirectory.childFile('gradlew.bat')..createSync();
       androidDirectory.childFile('gradle.properties').createSync();