diff --git a/src/main/java/net/geedge/api/util/AdbUtil.java b/src/main/java/net/geedge/api/util/AdbUtil.java index deeef9e..9a72fa6 100644 --- a/src/main/java/net/geedge/api/util/AdbUtil.java +++ b/src/main/java/net/geedge/api/util/AdbUtil.java @@ -306,7 +306,7 @@ public class AdbUtil { } String statFilePath = isDir ? Paths.get(path).resolve(name).toString() : path; - String statCommand = "shell stat -c \"'%N %a %X %Y'\" " + statFilePath; + String statCommand = "shell stat -c \"'%N %A %g %u %s %a %X %Y'\" " + statFilePath; futureList.add( CompletableFuture.supplyAsync(() -> { String statResult = CommandExec.exec(AdbCommandBuilder.builder() @@ -318,15 +318,24 @@ public class AdbUtil { List list = Arrays.asList(statResult.split("\\s+")); Collections.reverse(list); - String fullName = list.get(3).replaceAll("'|`", ""); + String fullName = list.get(7).replaceAll("'|`", ""); Map relMap = T.MapUtil.newHashMap(); relMap.put("name", name); relMap.put("value", T.MapUtil.builder() .put("id", Base32Codec.Base32Encoder.ENCODER.encode(fullName.getBytes())) .put("fullName", fullName) + .put("gid", Long.parseLong(list.get(5))) + .put("uid", Long.parseLong(list.get(4))) + .put("size", Long.parseLong(list.get(3))) .put("permissions", Long.parseLong(list.get(2))) .put("cts", Long.parseLong(list.get(1))) .put("uts", Long.parseLong(list.get(0))) + .put("isDir", list.get(6).startsWith("d")) + .put("isBlk", list.get(6).startsWith("b")) + .put("isFifo", list.get(6).startsWith("p")) + .put("isLink", list.get(6).startsWith("l")) + .put("isReg", list.get(6).startsWith("-")) + .put("isSock", list.get(6).startsWith("s")) .build()); return relMap; }, getThreadPool())