Comments (9)
Comment #1 originally posted by JesusFreke on 2010-06-21T00:29:15.000Z:
Forgot to say that I did this on a Windows 7 64-bit machine.
from smali.
Comment #2 originally posted by JesusFreke on 2010-06-21T00:54:53.000Z:
Hmmmm. That looks really odd. Are the cases of the class names themselves (in the .class directive at the top of the file) affected as well? I would assume so, but can you doublecheck?
I'll take a look at it, thanks for the bug report :)
from smali.
Comment #3 originally posted by JesusFreke on 2010-06-21T01:22:02.000Z:
It seems that class names are also affected.
"h.smali" and "H.smali" start both like this:
.class public final Lcom/google/android/apps/uploader/h;
"ManagerActivity.smali" like this:
.class public Lcom/google/android/apps/uploader/ManagerActivity;
I know from logcat that a class "H" (among others that could not be found) was searched and could not be found:
E/dalvikvm( 289): Could not find class 'com.google.android.apps.uploader.H' ...
I also noticed when I open MediaUploader.odex in an text editor that I can find both Strings:
$Lcom/google/android/apps/uploader/H;
and
$Lcom/google/android/apps/uploader/h;
So, probably smali/baksmali is correct, but windows can not distinguish lower & uppercase files with the same name... smali/baksmali should print out a warning or error message in this case.
I´ll try tomorrow in a linux environment.
from smali.
Comment #4 originally posted by JesusFreke on 2010-06-21T08:03:52.000Z:
Yeah, I've got several issue reports about that problem, e.g.:
http://code.google.com/p/android-apktool/issues/detail?id=28
Code obfuscators produce classes like "a" and "A", but Windows can't store both of these files. Really annoying thing, but I think this is a problem of Windows and baksmali shouldn't do some dirty hacking to fix this. If you would have jar file with that obfuscated app, then even just unpacking it would be too much for a crappy Windows :-/
from smali.
Comment #5 originally posted by JesusFreke on 2010-06-21T12:51:42.000Z:
Hmm. Well, smali doesn't really care what the actual name of the file is. It takes the class name from the .class directive. Maybe I can have baksmali use some sort of naming scheme to resolve these conflicts on case insensitive file systems.
from smali.
Comment #6 originally posted by JesusFreke on 2010-06-21T13:25:13.000Z:
Maybe smali/baksmali can just stop with an error message if a file is overwritten with a file that is called the same but with different capitalization. And "-I" (or a new flag) ignores these errors.
Or more simple: Just a warning if a file is overwritten.
A naming scheme sounds good, but the results under windows & linux should be the same, else it could be too confusing.
from smali.
Comment #7 originally posted by JesusFreke on 2010-06-22T04:12:39.000Z:
I agree. The results under linux are "it works". I think we need the same result under windows :)
from smali.
Comment #8 originally posted by JesusFreke on 2010-08-02T01:17:29.000Z:
This has been fixed in r784. if baksmali detects a case insensitive file system, it will append a .2, .3, .4 etc. to the end of files and directories as needed, to prevent collisions.
So if there was a Lblah; and an LBLAH;, you would have a blah.smali and a BLAH.2.smali
from smali.
Comment #9 originally posted by JesusFreke on 2010-08-02T01:17:42.000Z:
<empty>
from smali.
Related Issues (20)
- New official version published? HOT 4
- added support for 4rcc in MutableMethodImplementation
- Ive been Hacked please help me HOT 6
- Parsing smali methode HOT 1
- The Fields do not keep their initial values if they're default value
- odex error
- Error while writing instruction at code offset 0x8
- How to calculate the contribution of each class to the dex HOT 2
- Dex file size increases by ~50% without making changes (DexFileFactory.loadDexFile then DexFileFactory.writeDexFile) HOT 7
- missing EOF at '.class'
- any method to replace one String with modifiedString in StringIds section of dex file using dexlib2? HOT 3
- How to create a new method using dexlib2 HOT 2
- Try to run examples/BracketedMemberNames HOT 1
- how to copy class to new dex using dexlib2 HOT 4
- Smali patcher does not support Dex version 039 HOT 1
- java.lang.NoSuchMethodError when calling DexPool.internClass
- smali report error
- how to move the useless classes to a new dex using dexlib2? HOT 1
- [Feature Request] Could we support dex v41? HOT 3
- Won't build under Debian WSL
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from smali.