Repository: tauri
Issue: [bug] `tauri_plugin::Builder` directly modifies the source directory for the plugin that's being built
Labels: type: bug,status: needs triage

### Describe the bug

`tauri_plugin::Builder` [directly modifies the source code of the plugin that's being built to add the permissions autogenerated files](https://github.com/tauri-apps/tauri/blob/60a5aea53db02ae6af325812ab97555f2c013d70/crates/tauri-plugin/src/build/mod.rs#L107). This is actually a bad practice as per https://doc.rust-lang.org/cargo/reference/build-script-examples.html#code-generation: 

```
In general, build scripts should not modify any files outside of OUT_DIR. It may seem fine on the first blush, but it does cause problems when you use such crate as a dependency, because there’s an implicit invariant that sources in .cargo/registry should be immutable. cargo won’t allow such scripts when packaging.
```

As a result, building a tauri plugin crate in special environments that protect the source code of crates against writes like nix becomes quite challenging. The build fails with errors of the type:

```
       >     Checking holochain_metrics v0.3.2
       > error: failed to run custom build command for `tauri-plugin-log v2.0.0-rc.2`
       >
       > Caused by:
       >   process didn't exit successfully: `/private/tmp/nix-build-hc-pilot-deps-0.1.0.drv-0/tauri-workspace/target/release/build/tauri-plugin-log-4a5a88853b912538/build-script-build` (exit status: 1)
       >   --- stdout
       >   cargo:rerun-if-changed=permissions
       >   cargo:PERMISSION_FILES_PATH=/private/tmp/nix-build-hc-pilot-deps-0.1.0.drv-0/tauri-workspace/target/release/build/tauri-plugin-log-6053c8040f31d660/out/tauri-plugin-log-permission-files
       >   tauri-plugin: failed to write file: Permission denied (os error 13)
       > warning: build failed, waiting for other jobs to finish...
```

Maybe it is enough to just check in all those files in git? Not sure...

### Reproduction

_No response_

### Expected behavior

Plugin crates can be built on a source code protected environment.

### Full `tauri info` output

```text
guillemcordoba@Guillems-Mini end-user-happ % npm run tauri info

> tauri-app@0.0.0 tauri
> tauri info


[✔] Environment
    - OS: Mac OS 14.6.1 arm64 (X64)
    ✔ Xcode Command Line Tools: installed
    ✔ rustc: 1.81.0 (eeb90cda1 2024-09-04)
    ✔ cargo: 1.81.0 (2dbb1af80 2024-08-20)
    ✔ rustup: 1.27.1 (54dd3d00f 2024-04-24)
    ✔ Rust toolchain: 1.81-aarch64-apple-darwin (default)
    - node: 20.9.0
    - pnpm: 9.5.0
    - yarn: 1.22.21
    - npm: 10.1.0

[-] Packages
    - tauri 🦀: 2.0.0-rc.11
    - tauri-build 🦀: 2.0.0-rc.10
    - wry 🦀: 0.43.1
    - tao 🦀: 0.30.0
    - tauri-cli 🦀: 2.0.0-rc.16
    - @tauri-apps/api : 2.0.0-rc.4
    - @tauri-apps/cli : 2.0.0-rc.15

[-] Plugins
    - tauri-plugin-log 🦀: 2.0.0-rc.2
    - @tauri-apps/plugin-log : not installed!

[-] App
    - build-type: bundle
    - CSP: unset
    - frontendDist: ../ui/dist
    - devUrl: http://localhost:1420/
    - framework: Svelte
    - bundler: Vite

[-] iOS
    - Developer Teams: Guillem Cordoba (ID: 4XN3VLHC68)
```


### Stack trace

_No response_

### Additional context

_No response_