Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ProGuard support #27

Open
antoche opened this issue Mar 22, 2013 · 4 comments
Open

ProGuard support #27

antoche opened this issue Mar 22, 2013 · 4 comments

Comments

@antoche
Copy link

antoche commented Mar 22, 2013

What's the plan regarding proguard?

Would acra-storage retrace the stacktrace when it receives the report, or would acralyzer retrace them on the fly?

I see the proguard deobfuscator is written in Java. If I understand correctly, CouchApps are Javascript only. Would the deobfuscator have to be rewritten in javascript, or can we run the java code directly through something like Doppio?

Cheers,
A.

@KevinGaudin
Copy link
Member

Using a pure couchdb, there is no way for Acra-storage to deobfuscate
reports on reception. Even if we rewrite proguard in JS, we can't load the
mapping when receiving a report as the update function can't access other
docs.

The way I see it, deobfuscation has to be an external batch process, either
a java that you would run on your own computer / server which would access
a view listing all obfuscated reports, retrace them and save them back in
the db, or a rewritten JS retrace process that would do the same in the
browser, triggered by the user.

@hleinone
Copy link

hleinone commented Nov 9, 2013

Even if it didn't support de-obfuscation, it would be great if I could add a simple Gradle task that would after the obfuscation upload the mapping.txt to Acralyzer. Then I'd always know from where to get the mapping.txt for each release and wouldn't need to manage those manually.

@ozmium
Copy link

ozmium commented Dec 15, 2013

There is a good workaround: Use the following settings in your proguard config file, to maintain most of the de-obfuscated class names (especially at the top of the stack trace) and approximate line numbers:

In your proguard-project.txt file, add this
-keepattributes SourceFile,LineNumberTable

Ensure that you don't add this to the file:
-renamesourcefileattribute SourceFile

Because it will just rename all the de-obfuscated classes to "SourceFile.java"

@molexx
Copy link

molexx commented Oct 9, 2014

I've made a start on this with a script that takes the Acralyzer URL, finds the appropriate mapping.txt file from within Jenkyn's build archives and runs retrace.
Any suggestions as to how it could be launched from within the browser?

https://github.com/molexx/acra_jenkins_retrace

Alternatively it could be a starting point to automatically retracing every report and replacing the value in the db, I assume couchdb allows writing via a HTTP POST but haven't got there yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants