mirror of
https://github.com/topjohnwu/libsu.git
synced 2024-10-07 01:03:22 +00:00
Use stock File implementation
This commit is contained in:
parent
d793ba9fff
commit
c33b59e3a0
@ -18,8 +18,10 @@ interface IFileSystemService {
|
||||
boolean mkdirs(String path);
|
||||
boolean renameTo(String path, String dest);
|
||||
boolean setLastModified(String path, long time);
|
||||
boolean setPermission(String path, int access, boolean enable, boolean ownerOnly);
|
||||
boolean setReadOnly(String path);
|
||||
boolean setWritable(String path, boolean writable, boolean ownerOnly);
|
||||
boolean setReadable(String path, boolean readable, boolean ownerOnly);
|
||||
boolean setExecutable(String path, boolean executable, boolean ownerOnly);
|
||||
boolean checkAccess(String path, int access);
|
||||
long getTotalSpace(String path);
|
||||
long getFreeSpace(String path);
|
||||
|
@ -143,26 +143,26 @@ class FileSystemService extends IFileSystemService.Stub {
|
||||
return mCache.get(path).setLastModified(time);
|
||||
}
|
||||
|
||||
@SuppressWarnings("OctalInteger")
|
||||
@Override
|
||||
public boolean setPermission(String path, int access, boolean enable, boolean ownerOnly) {
|
||||
try {
|
||||
access = access & 07;
|
||||
int mask = ownerOnly ? (access << 6) : (access | (access << 3) | (access << 6));
|
||||
StructStat st = Os.stat(path);
|
||||
int mode = st.st_mode & 07777;
|
||||
Os.chmod(path, enable ? (mode | mask) : (mode & ~mask));
|
||||
return true;
|
||||
} catch (ErrnoException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setReadOnly(String path) {
|
||||
return mCache.get(path).setReadOnly();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setWritable(String path, boolean writable, boolean ownerOnly) {
|
||||
return mCache.get(path).setWritable(writable, ownerOnly);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setReadable(String path, boolean readable, boolean ownerOnly) {
|
||||
return mCache.get(path).setReadable(readable, ownerOnly);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setExecutable(String path, boolean executable, boolean ownerOnly) {
|
||||
return mCache.get(path).setExecutable(executable, ownerOnly);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkAccess(String path, int access) {
|
||||
try {
|
||||
|
@ -286,42 +286,31 @@ class RemoteFile extends FileImpl<RemoteFile> {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean setPermission(int access, boolean enable, boolean ownerOnly) {
|
||||
@Override
|
||||
public boolean setWritable(boolean writable, boolean ownerOnly) {
|
||||
try {
|
||||
return fs.setPermission(getPath(), access, enable, ownerOnly);
|
||||
return fs.setWritable(getPath(), writable, ownerOnly);
|
||||
} catch (RemoteException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setWritable(boolean writable, boolean ownerOnly) {
|
||||
return setPermission(0x2, writable, ownerOnly);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setWritable(boolean writable) {
|
||||
return setPermission(0x2, writable, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setReadable(boolean readable, boolean ownerOnly) {
|
||||
return setPermission(0x4, readable, ownerOnly);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setReadable(boolean readable) {
|
||||
return setPermission(0x4, readable, true);
|
||||
try {
|
||||
return fs.setReadable(getPath(), readable, ownerOnly);
|
||||
} catch (RemoteException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setExecutable(boolean executable, boolean ownerOnly) {
|
||||
return setPermission(0x1, executable, ownerOnly);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setExecutable(boolean executable) {
|
||||
return setPermission(0x1, executable, true);
|
||||
try {
|
||||
return fs.setExecutable(getPath(), executable, ownerOnly);
|
||||
} catch (RemoteException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
Reference in New Issue
Block a user