mirror of
https://github.com/revanced/smali.git
synced 2025-05-04 16:44:25 +02:00
Allow '!' as a separator char in embedded dex file names
Newer versions of art seem to use ! instead of : to separate the inner dex filename from the name of the container containing it. e.g. /system/framework/framework.jar!classes2.dex instead of /system/framework/framework.jar:classes2.dex
This commit is contained in:
parent
732fe07403
commit
6c110c1d96
@ -344,7 +344,8 @@ public final class DexFileFactory {
|
|||||||
* Performs a partial match against entry and targetEntry.
|
* Performs a partial match against entry and targetEntry.
|
||||||
*
|
*
|
||||||
* This is considered a partial match if targetEntry is a suffix of entry, and if the suffix starts
|
* This is considered a partial match if targetEntry is a suffix of entry, and if the suffix starts
|
||||||
* on a path "part" (ignoring the initial separator, if any). Both '/' and ':' are considered separators for this.
|
* on a path "part" (ignoring the initial separator, if any). '/' and ':' and '!' are considered separators for
|
||||||
|
* this.
|
||||||
*
|
*
|
||||||
* So entry="/blah/blah/something.dex" and targetEntry="lah/something.dex" shouldn't match, but
|
* So entry="/blah/blah/something.dex" and targetEntry="lah/something.dex" shouldn't match, but
|
||||||
* both targetEntry="blah/something.dex" and "/blah/something.dex" should match.
|
* both targetEntry="blah/something.dex" and "/blah/something.dex" should match.
|
||||||
@ -364,7 +365,8 @@ public final class DexFileFactory {
|
|||||||
char firstTargetChar = targetEntry.charAt(0);
|
char firstTargetChar = targetEntry.charAt(0);
|
||||||
// This is a device path, so we should always use the linux separator '/', rather than the current platform's
|
// This is a device path, so we should always use the linux separator '/', rather than the current platform's
|
||||||
// separator
|
// separator
|
||||||
return firstTargetChar == ':' || firstTargetChar == '/' || precedingChar == ':' || precedingChar == '/';
|
return firstTargetChar == ':' || firstTargetChar == '/' || firstTargetChar == '!' ||
|
||||||
|
precedingChar == ':' || precedingChar == '/' || precedingChar == '!';
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static class DexEntryFinder {
|
protected static class DexEntryFinder {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user