{"id":221,"date":"2011-04-21T11:42:32","date_gmt":"2011-04-21T10:42:32","guid":{"rendered":"http:\/\/blog.ludovicfavre.ch\/?p=221"},"modified":"2011-04-23T20:33:39","modified_gmt":"2011-04-23T19:33:39","slug":"ebuild-dex2jar-convertisseur-dex-android-en-class","status":"publish","type":"post","link":"https:\/\/www.ludovicfavre.ch\/blog\/2011\/04\/ebuild-dex2jar-convertisseur-dex-android-en-class\/","title":{"rendered":"Ebuild dex2jar (Convertisseur .dex Android en .class)"},"content":{"rendered":"<p>Dans le but de montrer la n\u00e9cessiter d&rsquo;encoder les fichiers sources d&rsquo;une application Android, j&rsquo;ai eu besoin d&rsquo;utiliser dex2jar, un outil permettant d&rsquo;extraire les fichiers .class d&rsquo;une paquet .dex (pour la VM Dalvik d&rsquo;Android).<\/p>\n<p>Comme je pr\u00e9f\u00e8re avoir tous mes paquets g\u00e9r\u00e9s par portage (gestionnaire de paquets Gentoo), j&rsquo;ai d\u00e9cid\u00e9 d&rsquo;\u00e9crire un ebuild pour la version courante (la 0.0.7.9-SNAPSHOT).<\/p>\n<p>&nbsp;<\/p>\n<p>Tout d&rsquo;abord, pour tester l&rsquo;ebuild (par exemple la suppression des .bat destin\u00e9s \u00e0 windows), il suffit d&rsquo;utiliser cette commande jusqu&rsquo;\u00e0 avoir le r\u00e9sultat d\u00e9sir\u00e9:<\/p>\n<p><code class=\"codecolorer bash default\"><span class=\"bash\">ebuild dex2jar-0.0.7.9.ebuild digest <span class=\"sy0\">&amp;&amp;<\/span> <span class=\"kw2\">rm<\/span> <span class=\"sy0\">\/<\/span>var<span class=\"sy0\">\/<\/span>tmp<span class=\"sy0\">\/<\/span>portage<span class=\"sy0\">\/<\/span>dev-util<span class=\"sy0\">\/<\/span>dex2jar-0.0.7.9<span class=\"sy0\">\/<\/span> <span class=\"re5\">-rf<\/span> <span class=\"sy0\">&amp;&amp;<\/span> <span class=\"re2\">FEATURES<\/span>=<span class=\"st0\">&quot;test&quot;<\/span> ebuild dex2jar-0.0.7.9.ebuild <span class=\"kw3\">test<\/span><\/span><\/code><\/p>\n<p>Ensuite, dans le r\u00e9pertoire <em>dev-util\/dex2jar\/files<\/em> de l&rsquo;overlay, il faut placer le fichier <strong>dex2jar<\/strong> suivant:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n#!\/bin\/sh\r\n\r\nexec \/opt\/dex2jar\/dex2jar.sh ${1}\r\n<\/pre>\n<p>L&rsquo;ebuild final, <strong>dex2jar-0.0.7.9.ebuild<\/strong> est \u00e0 placer dans l&rsquo;overlay sous <em>dev-util\/dex2jar<\/em><\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n# Copyright 1999-2007 Gentoo Foundation\r\n# Distributed under the terms of the GNU General Public License v2\r\n# $Header: $\r\n\r\ninherit eutils multilib\r\n\r\nDESCRIPTION=&quot;A tool for converting Android's .dex format to Java's .class format&quot;\r\nHOMEPAGE=&quot;http:\/\/code.google.com\/p\/dex2jar\/&quot;\r\nPSUFFIX=&quot;-SNAPSHOT&quot;\r\nSRC_URI=&quot;http:\/\/dex2jar.googlecode.com\/files\/${PF}${PSUFFIX}.zip&quot;\r\nLICENSE=&quot;Apache-2.0&quot;\r\nSLOT=&quot;0&quot;\r\nKEYWORDS=&quot;~x86 ~x86-64&quot;\r\nIUSE=&quot;&quot;\r\nRESTRICT=&quot;strip mirror&quot;\r\n\r\nDEPEND=&quot;&quot;\r\nRDEPEND=&quot;${DEPEND}&quot;\r\n\r\nMY_SUBDIR=&quot;${PF}${PSUFFIX}&quot;\r\nS=&quot;${WORKDIR}\/${MY_SUBDIR}&quot;\r\n\r\nsrc_unpack() {\r\n    unpack ${A}\r\n    # go to the source \r\n    cd &quot;${S}&quot; \r\n    #remove unneded bat files\r\n    rm `find . -type f -iname '*.bat'`\r\n    \r\n    # Fix permissions\r\n    chmod a+x dex2jar-dump.sh  dex2jar.sh\r\n    chmod a-x LICENSE.txt NOTICE.txt\r\n}\r\n\r\n\r\nsrc_install() {\r\n\tcd &quot;${S}&quot;\r\n        for f in $(find .); do\r\n                local t=&quot;$(dirname ${f})&quot;\r\n\r\n                if &#x5B;&#x5B; ! -d &quot;${f}&quot; ]]; then\r\n                        if &#x5B;&#x5B; -x &quot;${f}&quot; ]]; then\r\n                                exeinto &quot;\/opt\/dex2jar\/${t}&quot;\r\n                                doexe &quot;${f}&quot;\r\n                        else\r\n                                insinto &quot;\/opt\/dex2jar\/${t}&quot;\r\n                                doins &quot;${f}&quot;\r\n                        fi\r\n                fi\r\n        done\r\n\r\n\r\n\texeinto &quot;\/usr\/bin&quot;\r\n\tdoexe &quot;${FILESDIR}\/dex2jar&quot;\r\n\r\n        \r\n}\r\n\r\npkg_postinst() {\r\n\t\teinfo &quot;This is an unsupported ebuild.&quot;\r\n}\r\n<\/pre>\n<p>L&rsquo;ebuild est \u00e9galement accessible <a title=\"dex2jar sur mon repo github\" href=\"https:\/\/github.com\/fludo\/bluespear-overlay\/tree\/master\/dev-util\/dex2jar\" target=\"_blank\">sur github<\/a><\/p>\n<p>Plus d&rsquo;informations sur dex2jar sont disponibles sur la <a href=\"http:\/\/code.google.com\/p\/dex2jar\/\">page officielle du projet<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Documentation pour la cr\u00e9ation d&rsquo;ebuild:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.gentoo.org\/proj\/en\/devrel\/handbook\/handbook.xml?part=2&amp;chap=1#doc_chap6\">http:\/\/www.gentoo.org\/proj\/en\/devrel\/handbook\/handbook.xml?part=2&amp;chap=1#doc_chap6<\/a><\/li>\n<li><a title=\"Variable ebuild\" href=\"http:\/\/devmanual.gentoo.org\/ebuild-writing\/variables\/index.html\" target=\"_blank\">les variables<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Dans le but de montrer la n\u00e9cessiter d&rsquo;encoder les fichiers sources d&rsquo;une application Android, j&rsquo;ai eu besoin d&rsquo;utiliser dex2jar, un outil permettant d&rsquo;extraire les fichiers .class d&rsquo;une paquet .dex (pour la VM Dalvik d&rsquo;Android). Comme je pr\u00e9f\u00e8re avoir tous mes &hellip; <a href=\"https:\/\/www.ludovicfavre.ch\/blog\/2011\/04\/ebuild-dex2jar-convertisseur-dex-android-en-class\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[67,34,68],"tags":[25,69,7],"class_list":["post-221","post","type-post","status-publish","format-standard","hentry","category-android","category-ebuild","category-gentoo","tag-android","tag-ebuild","tag-gentoo"],"_links":{"self":[{"href":"https:\/\/www.ludovicfavre.ch\/blog\/wp-json\/wp\/v2\/posts\/221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ludovicfavre.ch\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ludovicfavre.ch\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ludovicfavre.ch\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ludovicfavre.ch\/blog\/wp-json\/wp\/v2\/comments?post=221"}],"version-history":[{"count":20,"href":"https:\/\/www.ludovicfavre.ch\/blog\/wp-json\/wp\/v2\/posts\/221\/revisions"}],"predecessor-version":[{"id":255,"href":"https:\/\/www.ludovicfavre.ch\/blog\/wp-json\/wp\/v2\/posts\/221\/revisions\/255"}],"wp:attachment":[{"href":"https:\/\/www.ludovicfavre.ch\/blog\/wp-json\/wp\/v2\/media?parent=221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ludovicfavre.ch\/blog\/wp-json\/wp\/v2\/categories?post=221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ludovicfavre.ch\/blog\/wp-json\/wp\/v2\/tags?post=221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}