1diff --git a/packages/flutter_tools/lib/src/build_system/targets/assets.dart b/packages/flutter_tools/lib/src/build_system/targets/assets.dart
2index 5f458bd53e..7a6c59f98d 100644
3--- a/packages/flutter_tools/lib/src/build_system/targets/assets.dart
4+++ b/packages/flutter_tools/lib/src/build_system/targets/assets.dart
5@@ -128,7 +128,11 @@ Future<Depfile> copyAssets(
6 break;
7 }
8 if (doCopy) {
9- await (content.file as File).copy(file.path);
10+ // Not using File.copy because it preserves permissions.
11+ final sourceFile = content.file as File;
12+ final destinationFile = file;
13+
14+ await destinationFile.writeAsBytes(await sourceFile.readAsBytes(), flush: true);
15 }
16 } else {
17 await file.writeAsBytes(await entry.value.contentsAsBytes());