Skip to content
Snippets Groups Projects
  1. Oct 16, 2020
    • bors's avatar
      Auto merge of #1878 - rupansh:master, r=JohnTitor · 2d044d98
      bors authored
      process_vm_readv, process_vm_writev should be available on android
      
      process_vm_readv and process_vm_writev generally return -EPERM(-1) when used in android, however the syscalls work fine when running under privileged shell.
      The following was tested(with modified nix) on Android 9/10 running Linux Kernel 4.9 on a SDM 845 phone:
      
      ```
      fn read_mem_real(pid: i32, addr: usize, vsize: usize) -> Result<Vec<u8>, String> {
          let mut res = vec![0; vsize];
          let riovec: [RemoteIoVec; 1] = [RemoteIoVec {base: addr, len: vsize}];
      
          match process_vm_readv(Pid::from_raw(pid), &[IoVec::from_mut_slice(&mut res)], &riovec) {
              Err(e) => {
                  log::info!("ERR {}", e);
                  return Err(e.to_string());
              },
              Ok(_) => {
                  return Ok(res);
              }
          }
      }
      ```
      
      This will work fine when run under su shell.
      2d044d98
  2. Oct 15, 2020
  3. Oct 14, 2020
  4. Oct 13, 2020
  5. Oct 12, 2020
  6. Oct 10, 2020
  7. Oct 09, 2020
  8. Oct 07, 2020
Loading