As a simpler workaround, you can also use the about:debugging trick (inspect the main process / "Browser Toolbox") to copy the data directory and then chmod it to make it accessible to the adb `shell` user, by running the following JS:
```
function runCommand(cmd) {
const shFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
shFile.initWithPath("/bin/sh");
const shProcess = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
shProcess.init(shFile);
shProcess.run(true, ["-c", cmd], 2);
return shProcess.exitValue;
}
runCommand("cp -r /data/data/org.mozilla.fenix /storage/emulated/0/Android/data/org.mozilla.fenix/files/");
runCommand("chmod -R a+rX /storage/emulated/0/Android/data/org.mozilla.fenix/files/org.mozilla.fenix");
```
And then pull the directory using `adb pull /storage/emulated/0/Android/data/org.mozilla.fenix/files/org.mozilla.fenix`
Bug 1808763 Comment 5 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
If all you want is to exfiltrate your profile data, and you don't care about restoring the data to the phone with their original file permissions, and you have enough space for a full copy on your phone, here's a slightly simpler alternative: Use the about:debugging trick (inspect the main process / "Browser Toolbox") to copy the data directory and then chmod it to make it accessible to the adb `shell` user, by running the following JS:
```
function runCommand(cmd) {
const shFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
shFile.initWithPath("/bin/sh");
const shProcess = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
shProcess.init(shFile);
shProcess.run(true, ["-c", cmd], 2);
return shProcess.exitValue;
}
runCommand("cp -r /data/data/org.mozilla.fenix /storage/emulated/0/Android/data/org.mozilla.fenix/files/");
runCommand("chmod -R a+rX /storage/emulated/0/Android/data/org.mozilla.fenix/files/org.mozilla.fenix");
```
And then pull the directory using `adb pull /storage/emulated/0/Android/data/org.mozilla.fenix/files/org.mozilla.fenix`
If all you want is to exfiltrate your profile data, and you don't care about restoring the data to the phone with the original file permissions, and you have enough space for a full copy on your phone, here's a slightly simpler alternative: Use the about:debugging trick (inspect the main process / "Browser Toolbox") to copy the data directory and then chmod it to make it accessible to the adb `shell` user, by running the following JS:
```
function runCommand(cmd) {
const shFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
shFile.initWithPath("/bin/sh");
const shProcess = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
shProcess.init(shFile);
shProcess.run(true, ["-c", cmd], 2);
return shProcess.exitValue;
}
runCommand("cp -r /data/data/org.mozilla.fenix /storage/emulated/0/Android/data/org.mozilla.fenix/files/");
runCommand("chmod -R a+rX /storage/emulated/0/Android/data/org.mozilla.fenix/files/org.mozilla.fenix");
```
And then pull the directory using `adb pull /storage/emulated/0/Android/data/org.mozilla.fenix/files/org.mozilla.fenix`
If all you want is to exfiltrate your profile data, and you don't care about restoring the data to the phone with the original file permissions, and you have enough space for a full copy on your phone, here's a slightly simpler alternative: Run the following JS on about:debugging trick (inspect the main process / "Browser Toolbox") to copy the data directory and then chmod it to make it accessible to the adb `shell` user:
```
function runCommand(cmd) {
const shFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
shFile.initWithPath("/bin/sh");
const shProcess = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
shProcess.init(shFile);
shProcess.run(true, ["-c", cmd], 2);
return shProcess.exitValue;
}
runCommand("cp -r /data/data/org.mozilla.fenix /storage/emulated/0/Android/data/org.mozilla.fenix/files/");
runCommand("chmod -R a+rX /storage/emulated/0/Android/data/org.mozilla.fenix/files/org.mozilla.fenix");
```
And then pull the directory using `adb pull /storage/emulated/0/Android/data/org.mozilla.fenix/files/org.mozilla.fenix`
If all you want is to exfiltrate your profile data, and you don't care about restoring the data to the phone with the original file permissions, and you have enough space for a full copy on your phone, here's a slightly simpler alternative: Run the following JS on about:debugging (inspect the main process / "Browser Toolbox") to copy the data directory and then chmod it to make it accessible to the adb `shell` user:
```
function runCommand(cmd) {
const shFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
shFile.initWithPath("/bin/sh");
const shProcess = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
shProcess.init(shFile);
shProcess.run(true, ["-c", cmd], 2);
return shProcess.exitValue;
}
runCommand("cp -r /data/data/org.mozilla.fenix /storage/emulated/0/Android/data/org.mozilla.fenix/files/");
runCommand("chmod -R a+rX /storage/emulated/0/Android/data/org.mozilla.fenix/files/org.mozilla.fenix");
```
And then pull the directory using `adb pull /storage/emulated/0/Android/data/org.mozilla.fenix/files/org.mozilla.fenix`
If all you want to do is to exfiltrate your profile data, and you don't care about restoring the data to the phone with the original file permissions, and you have enough space for a full copy on your phone, here's a slightly simpler alternative: Run the following JS on about:debugging (inspect the main process / "Browser Toolbox") to copy the data directory and then chmod it to make it accessible to the adb `shell` user:
```
function runCommand(cmd) {
const shFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
shFile.initWithPath("/bin/sh");
const shProcess = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
shProcess.init(shFile);
shProcess.run(true, ["-c", cmd], 2);
return shProcess.exitValue;
}
runCommand("cp -r /data/data/org.mozilla.fenix /storage/emulated/0/Android/data/org.mozilla.fenix/files/");
runCommand("chmod -R a+rX /storage/emulated/0/Android/data/org.mozilla.fenix/files/org.mozilla.fenix");
```
And then pull the directory using `adb pull /storage/emulated/0/Android/data/org.mozilla.fenix/files/org.mozilla.fenix`
If all you want to do is to exfiltrate your profile data, and you don't care about restoring the data to the phone with the original file permissions, and you have enough space for a full copy on your phone, here's a slightly simpler alternative: On about:debugging, connect to the device, and scroll all the way to the bottom to the Multiprocess Toolbox, then Inspect. Then paste the following code into the console. It will copy the data directory and then chmod it to make it accessible to the adb `shell` user.
```
function runCommand(cmd) {
const shFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
shFile.initWithPath("/bin/sh");
const shProcess = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
shProcess.init(shFile);
shProcess.run(true, ["-c", cmd], 2);
return shProcess.exitValue;
}
runCommand("cp -r /data/data/org.mozilla.fenix /storage/emulated/0/Android/data/org.mozilla.fenix/files/");
runCommand("chmod -R a+rX /storage/emulated/0/Android/data/org.mozilla.fenix/files/org.mozilla.fenix");
```
And then pull the directory using `adb pull /storage/emulated/0/Android/data/org.mozilla.fenix/files/org.mozilla.fenix`