diff --git a/.gitignore b/.gitignore
index a2754ce1..630933b0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,20 +12,9 @@ tests/gen
tests/local.properties
NUL
gen_*
-libs/armeabi/ip6tables
-libs/armeabi/iptables
-libs/armeabi/obfsproxy
-libs/armeabi/pdnsd
-libs/armeabi/polipo
-libs/armeabi/redsocks
-libs/armeabi/shadowsocks
-libs/x86/ip6tables
-libs/x86/iptables
-libs/x86/obfsproxy
-libs/x86/pdnsd
-libs/x86/polipo
-libs/x86/redsocks
-libs/x86/shadowsocks
+*.class
+*.o
+local.sbt
#Intellij IDEA
*.iml
@@ -33,3 +22,19 @@ libs/x86/shadowsocks
*.iws
.idea/
out/
+
+#NDK
+src/main/libs/armeabi/ip6tables
+src/main/libs/armeabi/iptables
+src/main/libs/armeabi/obfsproxy
+src/main/libs/armeabi/pdnsd
+src/main/libs/armeabi/polipo
+src/main/libs/armeabi/redsocks
+src/main/libs/armeabi/shadowsocks
+src/main/libs/x86/ip6tables
+src/main/libs/x86/iptables
+src/main/libs/x86/obfsproxy
+src/main/libs/x86/pdnsd
+src/main/libs/x86/polipo
+src/main/libs/x86/redsocks
+src/main/libs/x86/shadowsocks
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index 7c3be65b..00000000
--- a/.gitmodules
+++ /dev/null
@@ -1,3 +0,0 @@
-[submodule "jni/shadowsocks"]
- path = jni/shadowsocks
- url = https://github.com/madeye/shadowsocks-libev.git
diff --git a/.travis.yml b/.travis.yml
index 94ded5df..51856574 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,4 +1,4 @@
-language: java
+language: scala
before_install:
- sudo apt-get update
- sudo apt-get install libc6-dev-i386
@@ -14,4 +14,8 @@ before_install:
install:
- sudo pip install python-swiftclient
script:
- - mvn clean install -DTRAVIS=true
+ - wget https://raw.github.com/paulp/sbt-extras/master/sbt
+ - chmod u+x ./sbt
+ - cp local.sbt.example local.sbt
+ - ./sbt android:package-release
+ - ./sbt deploy
diff --git a/COPYING.txt b/COPYING.txt
deleted file mode 100644
index 94a9ed02..00000000
--- a/COPYING.txt
+++ /dev/null
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C)
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-.
diff --git a/README.md b/README.md
index 47101cd3..82164cdc 100644
--- a/README.md
+++ b/README.md
@@ -11,53 +11,21 @@ A [shadowsocks](http://shadowsocks.org) client for Android, powered by amazing n
## PREREQUISITES
* JDK 1.6+
-* Maven 3.0.3+
+* SBT 0.12.3+
* Android SDK r17+
-* Android NDK r8+
-* Local maven dependencies
-
- ```bash
- git clone https://github.com/mosabua/maven-android-sdk-deployer.git
- pushd maven-android-sdk-deployer
- export ANDROID_HOME=/path/to/android/sdk
- mvn install -P 4.1
- popd
- ```
-
-* Build native dependecies
-
- ```bash
- ndk-build
- cp libs/armeabi/pdnsd assets/
- ```
+* Android NDK r8d+
## BUILD
-* Create your key following the instructions at
-http://developer.android.com/guide/publishing/app-signing.html#cert
-
-* Create a profile in your settings.xml file in ~/.m2 like this
-
-```xml
-
-
-
-
- true
-
-
- /absolute/path/to/your.keystore
- youralias
- keypass
- storepass
-
-
-
-
-```
-
+* Create your key following the instructions at http://developer.android.com/guide/publishing/app-signing.html#cert
+* Put your key in ~/.keystore
+* Create local.sbt from local.sbt.example with your own key alias
* Invoke the building like this
```bash
- mvn clean install
+ # Optional
+ ./build-ndk.sh
+
+ # Build
+ sbt android:prepare-market
```
diff --git a/assets/arm/iptables b/assets/arm/iptables
deleted file mode 100755
index 0eb23ffc..00000000
Binary files a/assets/arm/iptables and /dev/null differ
diff --git a/assets/x86/ip6tables b/assets/x86/ip6tables
deleted file mode 100755
index 2eace5dd..00000000
Binary files a/assets/x86/ip6tables and /dev/null differ
diff --git a/assets/x86/iptables b/assets/x86/iptables
deleted file mode 100755
index 90343f0a..00000000
Binary files a/assets/x86/iptables and /dev/null differ
diff --git a/build-ndk.sh b/build-ndk.sh
index cbf2dbad..f8c87cc1 100755
--- a/build-ndk.sh
+++ b/build-ndk.sh
@@ -1,7 +1,8 @@
#!/bin/bash
+cd src/main
ndk-build
for app in ip6tables iptables obfsproxy pdnsd polipo redsocks shadowsocks
do
- cp libs/armeabi/$app assets/arm/
- cp libs/x86/$app assets/x86/
+ mv libs/armeabi/$app assets/arm/
+ mv libs/x86/$app assets/x86/
done
diff --git a/build.sbt b/build.sbt
new file mode 100644
index 00000000..4d5f8d01
--- /dev/null
+++ b/build.sbt
@@ -0,0 +1,16 @@
+javacOptions in Compile ++= Seq("-source", "1.6", "-target", "1.6")
+
+javacOptions in doc ++= Seq("-source", "1.6")
+
+libraryDependencies ++= Seq(
+ "com.google.android" % "support-v4" % "r12",
+ "com.google.android.analytics" % "analytics" % "2.0beta4"
+)
+
+libraryDependencies ++= Seq(
+ "com.actionbarsherlock" % "actionbarsherlock" % "4.2.0" artifacts(Artifact("actionbarsherlock", "apklib", "apklib")),
+ "net.saik0.android.unifiedpreference" % "unifiedpreference" % "0.0.2" artifacts(Artifact("unifiedpreference", "apklib", "apklib")),
+ "org.jraf" % "android-switch-backport" % "1.0" artifacts(Artifact("android-switch-backport", "apklib", "apklib")),
+ "de.keyboardsurfer.android.widget" % "crouton" % "1.7"
+)
+
diff --git a/jni/shadowsocks b/jni/shadowsocks
deleted file mode 160000
index 3ed7551c..00000000
--- a/jni/shadowsocks
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 3ed7551ce18147740ad1e1113d9d4ca2c01e4248
diff --git a/local.sbt.example b/local.sbt.example
new file mode 100644
index 00000000..f9dde565
--- /dev/null
+++ b/local.sbt.example
@@ -0,0 +1,3 @@
+import org.scalasbt.androidplugin.AndroidKeys._
+
+keyalias in Android := "travis"
diff --git a/pom.xml b/pom.xml
deleted file mode 100755
index e8c05414..00000000
--- a/pom.xml
+++ /dev/null
@@ -1,261 +0,0 @@
-
-
- 4.0.0
- com.github.shadowsocks
- shadowsocks
- 1.3.9
- apk
- Shadowsocks
-
-
-
- madeye-maven-repository
- http://madeye-maven-repository.googlecode.com/git
-
- true
-
-
- false
-
-
-
-
-
- UTF-8
-
-
-
-
- com.google.android
- android
- 4.1.1.4
- provided
-
-
- com.google.android
- support-v4
- r12
-
-
- crouton
- 1.7
- de.keyboardsurfer.android.widget
-
-
- com.google.android
- support-v4
-
-
-
-
- com.actionbarsherlock
- actionbarsherlock
- 4.2.0
- apklib
-
-
- com.google.android.analytics
- analytics
- 2.0beta4
-
-
- net.saik0.android.unifiedpreference
- unifiedpreference
- 0.0.2
- apklib
-
-
- com.actionbarsherlock
- actionbarsherlock
-
-
-
-
- org.jraf
- android-switch-backport
- 1.0
- apklib
-
-
- com.actionbarsherlock
- actionbarsherlock
-
-
-
-
-
-
- ${project.artifactId}
- src
-
-
-
- maven-jarsigner-plugin
- 1.2
-
-
- com.jayway.maven.plugins.android.generation2
- android-maven-plugin
- 3.4.1
- true
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- 2.12.4
-
- true
-
-
-
- org.codehaus.mojo
- build-helper-maven-plugin
- 1.5
-
-
- org.apache.maven.plugins
- maven-jarsigner-plugin
-
-
- signing
-
- sign
-
- package
- true
-
-
-
- ${project.build.directory}/${project.artifactId}.apk
-
- ${sign.keystore}
- ${sign.alias}
- ${sign.storepass}
- ${sign.keypass}
- true
-
- -sigalg
- MD5withRSA
- -digestalg
- SHA1
-
-
-
-
-
-
- com.jayway.maven.plugins.android.generation2
- android-maven-plugin
-
-
- alignApk
- install
-
- zipalign
-
-
-
- true
-
- true
-
- false
-
-
- true
- false
- ${project.build.directory}/${project.artifactId}.apk
- ${project.build.directory}/${project.artifactId}-${project.version}.apk
-
-
-
- 16
-
-
-
-
-
-
-
- debug-sign
-
-
- ${basedir}/local.properties
-
-
-
- ${basedir}/travis.keystore
- travis
- travis
- travis
-
-
-
- release-sign
-
-
- ${basedir}/local.properties
-
-
-
-
-
- org.codehaus.mojo
- properties-maven-plugin
- 1.0-alpha-2
-
-
- initialize
-
- read-project-properties
-
-
-
- ${basedir}/local.properties
-
-
-
-
-
-
-
-
-
- travis
-
-
- TRAVIS
- true
-
-
-
-
-
- org.codehaus.mojo
- exec-maven-plugin
-
-
- deploy-to-sae
- install
-
- exec
-
-
-
-
- ${basedir}/deploy
-
- ${project.build.directory}
- ${project.artifactId}-${project.version}.apk
-
-
-
-
-
-
-
-
diff --git a/project/Build.scala b/project/Build.scala
new file mode 100644
index 00000000..dad4c31a
--- /dev/null
+++ b/project/Build.scala
@@ -0,0 +1,63 @@
+import sbt._
+import sbt.Keys._
+
+import org.scalasbt.androidplugin._
+import org.scalasbt.androidplugin.AndroidKeys._
+
+object App {
+ val version = "1.4.0"
+}
+
+object General {
+
+ val settings = Defaults.defaultSettings ++ Seq (
+ name := "shadowsocks",
+ version := App.version,
+ versionCode := 22,
+ scalaVersion := "2.9.2",
+ compileOrder := CompileOrder.JavaThenScala,
+ platformName in Android := "android-16",
+ resolvers += "madeye-maven" at "http://madeye-maven-repository.googlecode.com/git",
+ resolvers += "central-maven" at "http://repo.maven.apache.org/maven2"
+ )
+
+ val pgOptions = Seq("-keep class android.support.v4.app.** { *; }",
+ "-keep interface android.support.v4.app.** { *; }",
+ "-keep class com.actionbarsherlock.** { *; }",
+ "-keep interface com.actionbarsherlock.** { *; }",
+ "-keep class org.jraf.android.backport.** { *; }",
+ "-keep class com.github.shadowsocks.** { *; }",
+ "-keepattributes *Annotation*").mkString(" ")
+
+ val proguardSettings = Seq (
+ useProguard in Android := true,
+ proguardOption in Android := pgOptions
+ )
+
+ lazy val fullAndroidSettings =
+ General.settings ++
+ AndroidProject.androidSettings ++
+ TypedResources.settings ++
+ proguardSettings ++
+ AndroidManifestGenerator.settings ++
+ AndroidMarketPublish.settings ++ Seq (
+ cachePasswords in Android := true,
+ libraryDependencies += "org.scalatest" %% "scalatest" % "1.8" % "test"
+ )
+}
+
+object AndroidBuild extends Build {
+
+ val deploy = TaskKey[Unit]("deploy", "deploy to the build server")
+
+ val deployTask = deploy := {
+ "./deploy target shadowsocks-" + App.version + ".apk" !;
+ println("Deploy successfully")
+ }
+
+ lazy val main = Project (
+ "shadowsocks",
+ file("."),
+ settings = General.fullAndroidSettings ++ Seq(deployTask)
+ )
+}
diff --git a/project/plugins.sbt b/project/plugins.sbt
new file mode 100644
index 00000000..8c5491b2
--- /dev/null
+++ b/project/plugins.sbt
@@ -0,0 +1,7 @@
+// resolvers += Resolver.url("scalasbt releases", new URL("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns)
+
+resolvers += Resolver.url("scalasbt releases", new URL("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-snapshots"))(Resolver.ivyStylePatterns)
+
+addSbtPlugin("org.scala-sbt" % "sbt-android-plugin" % "0.6.3-20130429-SNAPSHOT")
+
+addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.4.0")
diff --git a/src/com/github/shadowsocks/AppManager.java b/src/com/github/shadowsocks/AppManager.java
deleted file mode 100755
index c0ada974..00000000
--- a/src/com/github/shadowsocks/AppManager.java
+++ /dev/null
@@ -1,382 +0,0 @@
-/* Copyright (c) 2009, Nathan Freitas, Orbot / The Guardian Project - http://openideals.com/guardian */
-/* See LICENSE for licensing information */
-
-package com.github.shadowsocks;
-
-import android.app.Activity;
-import android.app.ProgressDialog;
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.content.SharedPreferences.Editor;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.graphics.PixelFormat;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.preference.PreferenceManager;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.view.ViewGroup.LayoutParams;
-import android.view.WindowManager;
-import android.widget.AbsListView;
-import android.widget.AbsListView.OnScrollListener;
-import android.widget.ArrayAdapter;
-import android.widget.CheckBox;
-import android.widget.CompoundButton;
-import android.widget.CompoundButton.OnCheckedChangeListener;
-import android.widget.ImageView;
-import android.widget.ListAdapter;
-import android.widget.ListView;
-import android.widget.TextView;
-import com.actionbarsherlock.app.SherlockActivity;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-import java.util.StringTokenizer;
-import java.util.Vector;
-
-public class AppManager extends SherlockActivity
- implements OnCheckedChangeListener, OnClickListener {
-
- public final static String PREFS_KEY_PROXYED = "Proxyed";
- private static final int MSG_LOAD_START = 1;
- private static final int MSG_LOAD_FINISH = 2;
- final Handler handler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case MSG_LOAD_START:
- pd = ProgressDialog.show(AppManager.this, "", getString(R.string.loading), true, true);
- break;
- case MSG_LOAD_FINISH:
-
- listApps.setAdapter(adapter);
-
- listApps.setOnScrollListener(new OnScrollListener() {
-
- boolean visible;
-
- @Override
- public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
- int totalItemCount) {
- if (visible) {
- String name = apps[firstVisibleItem].getName();
- if (name != null && name.length() > 1) {
- overlay.setText(apps[firstVisibleItem].getName().substring(0, 1));
- } else {
- overlay.setText("*");
- }
- overlay.setVisibility(View.VISIBLE);
- }
- }
-
- @Override
- public void onScrollStateChanged(AbsListView view, int scrollState) {
- visible = true;
- if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
- overlay.setVisibility(View.INVISIBLE);
- }
- }
- });
-
- if (pd != null) {
- pd.dismiss();
- pd = null;
- }
- break;
- }
- super.handleMessage(msg);
- }
- };
- private ProxyedApp[] apps = null;
- private ListView listApps;
- private AppManager mAppManager;
- private TextView overlay;
- private ProgressDialog pd = null;
- private ListAdapter adapter;
- private ImageLoader dm;
- private boolean appsLoaded = false;
-
- public static ProxyedApp[] getProxyedApps(Context context) {
-
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
-
- String tordAppString = prefs.getString(PREFS_KEY_PROXYED, "");
- String[] tordApps;
-
- StringTokenizer st = new StringTokenizer(tordAppString, "|");
- tordApps = new String[st.countTokens()];
- int tordIdx = 0;
- while (st.hasMoreTokens()) {
- tordApps[tordIdx++] = st.nextToken();
- }
-
- Arrays.sort(tordApps);
-
- // else load the apps up
- PackageManager pMgr = context.getPackageManager();
-
- List lAppInfo = pMgr.getInstalledApplications(0);
-
- Iterator itAppInfo = lAppInfo.iterator();
-
- Vector vectorApps = new Vector();
-
- ApplicationInfo aInfo = null;
-
- while (itAppInfo.hasNext()) {
- aInfo = itAppInfo.next();
-
- // ignore system apps
- if (aInfo.uid < 10000) continue;
-
- ProxyedApp app = new ProxyedApp();
-
- app.setUid(aInfo.uid);
-
- app.setUsername(pMgr.getNameForUid(app.getUid()));
-
- // check if this application is allowed
- if (aInfo.packageName != null && aInfo.packageName.equals("com.github.shadowsocks")) {
- app.setProxyed(true);
- } else if (Arrays.binarySearch(tordApps, app.getUsername()) >= 0) {
- app.setProxyed(true);
- } else {
- app.setProxyed(false);
- }
-
- vectorApps.add(app);
- }
-
- ProxyedApp[] apps = new ProxyedApp[vectorApps.size()];
- vectorApps.toArray(apps);
- return apps;
- }
-
- public void getApps(Context context) {
-
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
-
- String tordAppString = prefs.getString(PREFS_KEY_PROXYED, "");
- String[] tordApps;
-
- StringTokenizer st = new StringTokenizer(tordAppString, "|");
- tordApps = new String[st.countTokens()];
- int tordIdx = 0;
- while (st.hasMoreTokens()) {
- tordApps[tordIdx++] = st.nextToken();
- }
-
- Arrays.sort(tordApps);
-
- Vector vectorApps = new Vector();
-
- // else load the apps up
- PackageManager pMgr = context.getPackageManager();
-
- List lAppInfo = pMgr.getInstalledApplications(0);
-
- Iterator itAppInfo = lAppInfo.iterator();
-
- ApplicationInfo aInfo = null;
-
- while (itAppInfo.hasNext()) {
- aInfo = itAppInfo.next();
-
- // ignore system apps
- if (aInfo.uid < 10000) continue;
-
- if (aInfo.processName == null) continue;
- if (pMgr.getApplicationLabel(aInfo) == null || pMgr.getApplicationLabel(aInfo)
- .toString()
- .equals("")) {
- continue;
- }
- if (pMgr.getApplicationIcon(aInfo) == null) continue;
-
- ProxyedApp tApp = new ProxyedApp();
-
- tApp.setEnabled(aInfo.enabled);
- tApp.setUid(aInfo.uid);
- tApp.setUsername(pMgr.getNameForUid(tApp.getUid()));
- tApp.setProcname(aInfo.processName);
- tApp.setName(pMgr.getApplicationLabel(aInfo).toString());
-
- // check if this application is allowed
- if (Arrays.binarySearch(tordApps, tApp.getUsername()) >= 0) {
- tApp.setProxyed(true);
- } else {
- tApp.setProxyed(false);
- }
-
- vectorApps.add(tApp);
- }
-
- apps = new ProxyedApp[vectorApps.size()];
- vectorApps.toArray(apps);
- }
-
- private void loadApps() {
- getApps(this);
-
- Arrays.sort(apps, new Comparator() {
- @Override
- public int compare(ProxyedApp o1, ProxyedApp o2) {
- if (o1 == null || o2 == null || o1.getName() == null || o2.getName() == null) return 1;
- if (o1.isProxyed() == o2.isProxyed()) return o1.getName().compareTo(o2.getName());
- if (o1.isProxyed()) return -1;
- return 1;
- }
- });
-
- final LayoutInflater inflater = getLayoutInflater();
-
- adapter = new ArrayAdapter(this, R.layout.layout_apps_item, R.id.itemtext, apps) {
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- ListEntry entry;
- if (convertView == null) {
- // Inflate a new view
- convertView = inflater.inflate(R.layout.layout_apps_item, parent, false);
- entry = new ListEntry();
- entry.icon = (ImageView) convertView.findViewById(R.id.itemicon);
- entry.box = (CheckBox) convertView.findViewById(R.id.itemcheck);
- entry.text = (TextView) convertView.findViewById(R.id.itemtext);
-
- entry.text.setOnClickListener(mAppManager);
- entry.text.setOnClickListener(mAppManager);
-
- convertView.setTag(entry);
-
- entry.box.setOnCheckedChangeListener(mAppManager);
- } else {
- // Convert an existing view
- entry = (ListEntry) convertView.getTag();
- }
-
- final ProxyedApp app = apps[position];
-
- entry.icon.setTag(app.getUid());
-
- dm.DisplayImage(app.getUid(), (Activity) convertView.getContext(), entry.icon);
-
- entry.text.setText(app.getName());
-
- final CheckBox box = entry.box;
- box.setTag(app);
- box.setChecked(app.isProxyed());
-
- entry.text.setTag(box);
-
- return convertView;
- }
- };
-
- appsLoaded = true;
- }
-
- /** Called an application is check/unchecked */
- @Override
- public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
- final ProxyedApp app = (ProxyedApp) buttonView.getTag();
- if (app != null) {
- app.setProxyed(isChecked);
- }
-
- saveAppSettings(this);
- }
-
- @Override
- public void onClick(View v) {
-
- CheckBox cbox = (CheckBox) v.getTag();
-
- final ProxyedApp app = (ProxyedApp) cbox.getTag();
- if (app != null) {
- app.setProxyed(!app.isProxyed());
- cbox.setChecked(app.isProxyed());
- }
-
- saveAppSettings(this);
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- this.setContentView(R.layout.layout_apps);
-
- this.dm = ImageLoaderFactory.getImageLoader(this);
-
- this.overlay = (TextView) View.inflate(this, R.layout.overlay, null);
- getWindowManager().addView(overlay,
- new WindowManager.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT,
- WindowManager.LayoutParams.TYPE_APPLICATION,
- WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
- | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, PixelFormat.TRANSLUCENT));
-
- mAppManager = this;
- }
-
- @Override
- protected void onResume() {
- super.onResume();
-
- new Thread() {
-
- @Override
- public void run() {
- handler.sendEmptyMessage(MSG_LOAD_START);
-
- listApps = (ListView) findViewById(R.id.applistview);
-
- if (!appsLoaded) loadApps();
- handler.sendEmptyMessage(MSG_LOAD_FINISH);
- }
- }.start();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see android.app.Activity#onStop()
- */
- @Override
- protected void onStop() {
- super.onStop();
-
- // Log.d(getClass().getName(),"Exiting Preferences");
- }
-
- public void saveAppSettings(Context context) {
- if (apps == null) return;
-
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
-
- // final SharedPreferences prefs =
- // context.getSharedPreferences(PREFS_KEY, 0);
-
- StringBuilder tordApps = new StringBuilder();
-
- for (int i = 0; i < apps.length; i++) {
- if (apps[i].isProxyed()) {
- tordApps.append(apps[i].getUsername());
- tordApps.append("|");
- }
- }
-
- Editor edit = prefs.edit();
- edit.putString(PREFS_KEY_PROXYED, tordApps.toString());
- edit.commit();
- }
-
- private static class ListEntry {
- private CheckBox box;
- private TextView text;
- private ImageView icon;
- }
-}
diff --git a/src/com/github/shadowsocks/ImageLoader.java b/src/com/github/shadowsocks/ImageLoader.java
deleted file mode 100755
index d57feefa..00000000
--- a/src/com/github/shadowsocks/ImageLoader.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/* Shadowsocks - A shadowsocks client for Android
- * Copyright (C) 2012
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- *
- *
- * ___====-_ _-====___
- * _--^^^#####// \\#####^^^--_
- * _-^##########// ( ) \\##########^-_
- * -############// |\^^/| \\############-
- * _/############// (@::@) \\############\_
- * /#############(( \\// ))#############\
- * -###############\\ (oo) //###############-
- * -#################\\ / VV \ //#################-
- * -###################\\/ \//###################-
- * _#/|##########/\######( /\ )######/\##########|\#_
- * |/ |#/\#/\#/\/ \#/\##\ | | /##/\#/ \/\#/\#/\#| \|
- * ` |/ V V ` V \#\| | | |/#/ V ' V V \| '
- * ` ` ` ` / | | | | \ ' ' ' '
- * ( | | | | )
- * __\ | | | | /__
- * (vvv(VVV)(VVV)vvv)
- *
- * HERE BE DRAGONS
- *
- */
-
-package com.github.shadowsocks;
-
-import android.R;
-import android.app.Activity;
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.graphics.drawable.BitmapDrawable;
-import android.widget.ImageView;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.util.HashMap;
-import java.util.Stack;
-
-public class ImageLoader {
-
- final int stub_id = R.drawable.sym_def_app_icon;
- PhotosQueue photosQueue = new PhotosQueue();
- PhotosLoader photoLoaderThread = new PhotosLoader();
- // the simplest in-memory cache implementation. This should be replaced with
- // something like SoftReference or BitmapOptions.inPurgeable(since 1.6)
- private HashMap cache = new HashMap();
- private File cacheDir;
- private Context context;
-
- public ImageLoader(Context c) {
- // Make the background thead low priority. This way it will not affect
- // the UI performance
- photoLoaderThread.setPriority(Thread.NORM_PRIORITY - 1);
-
- context = c;
-
- // Find the dir to save cached images
- cacheDir = context.getCacheDir();
- }
-
- public void clearCache() {
- // clear memory cache
- cache.clear();
-
- // clear SD cache
- File[] files = cacheDir.listFiles();
- for (File f : files)
- f.delete();
- }
-
- // decodes image and scales it to reduce memory consumption
- private Bitmap decodeFile(File f) {
- try {
- // decode image size
- BitmapFactory.Options o = new BitmapFactory.Options();
- o.inJustDecodeBounds = true;
- BitmapFactory.decodeStream(new FileInputStream(f), null, o);
-
- // Find the correct scale value. It should be the power of 2.
- final int REQUIRED_SIZE = 70;
- int width_tmp = o.outWidth, height_tmp = o.outHeight;
- int scale = 1;
- while (true) {
- if (width_tmp / 2 < REQUIRED_SIZE || height_tmp / 2 < REQUIRED_SIZE) break;
- width_tmp /= 2;
- height_tmp /= 2;
- scale *= 2;
- }
-
- // decode with inSampleSize
- BitmapFactory.Options o2 = new BitmapFactory.Options();
- o2.inSampleSize = scale;
- return BitmapFactory.decodeStream(new FileInputStream(f), null, o2);
- } catch (FileNotFoundException ignored) {
- }
- return null;
- }
-
- public void DisplayImage(int uid, Activity activity, ImageView imageView) {
- if (cache.containsKey(uid)) {
- imageView.setImageBitmap(cache.get(uid));
- } else {
- queuePhoto(uid, activity, imageView);
- imageView.setImageResource(stub_id);
- }
- }
-
- private Bitmap getBitmap(int uid) {
- // I identify images by hashcode. Not a perfect solution, good for the
- // demo.
- String filename = String.valueOf(uid);
- File f = new File(cacheDir, filename);
-
- // from SD cache
- Bitmap b = decodeFile(f);
- if (b != null) return b;
-
- // from web
- try {
- BitmapDrawable icon = (BitmapDrawable) Utils.getAppIcon(context, uid);
- return icon.getBitmap();
- } catch (Exception ex) {
- return null;
- }
- }
-
- private void queuePhoto(int uid, Activity activity, ImageView imageView) {
- // This ImageView may be used for other images before. So there may be
- // some old tasks in the queue. We need to discard them.
- photosQueue.Clean(imageView);
- PhotoToLoad p = new PhotoToLoad(uid, imageView);
- synchronized (photosQueue.photosToLoad) {
- photosQueue.photosToLoad.push(p);
- photosQueue.photosToLoad.notifyAll();
- }
-
- // start thread if it's not started yet
- if (photoLoaderThread.getState() == Thread.State.NEW) photoLoaderThread.start();
- }
-
- public void stopThread() {
- photoLoaderThread.interrupt();
- }
-
- // Used to display bitmap in the UI thread
- class BitmapDisplayer implements Runnable {
- Bitmap bitmap;
- ImageView imageView;
-
- public BitmapDisplayer(Bitmap b, ImageView i) {
- bitmap = b;
- imageView = i;
- }
-
- @Override
- public void run() {
- if (bitmap != null) {
- imageView.setImageBitmap(bitmap);
- } else {
- imageView.setImageResource(stub_id);
- }
- }
- }
-
- class PhotosLoader extends Thread {
- @Override
- public void run() {
- try {
- while (true) {
- // thread waits until there are any images to load in the
- // queue
- if (photosQueue.photosToLoad.size() == 0) {
- synchronized (photosQueue.photosToLoad) {
- photosQueue.photosToLoad.wait();
- }
- }
- if (photosQueue.photosToLoad.size() != 0) {
- PhotoToLoad photoToLoad;
- synchronized (photosQueue.photosToLoad) {
- photoToLoad = photosQueue.photosToLoad.pop();
- }
- Bitmap bmp = getBitmap(photoToLoad.uid);
- cache.put(photoToLoad.uid, bmp);
- Object tag = photoToLoad.imageView.getTag();
- if (tag != null && ((Integer) tag) == photoToLoad.uid) {
- BitmapDisplayer bd = new BitmapDisplayer(bmp, photoToLoad.imageView);
- Activity a = (Activity) photoToLoad.imageView.getContext();
- a.runOnUiThread(bd);
- }
- }
- if (Thread.interrupted()) break;
- }
- } catch (InterruptedException e) {
- // allow thread to exit
- }
- }
- }
-
- // stores list of photos to download
- class PhotosQueue {
- private final Stack photosToLoad = new Stack();
-
- // removes all instances of this ImageView
- public void Clean(ImageView image) {
- synchronized (photosToLoad) {
- for (int j = 0; j < photosToLoad.size(); ) {
- if (photosToLoad.get(j).imageView == image) {
- photosToLoad.remove(j);
- } else {
- ++j;
- }
- }
- }
- }
- }
-
- // Task for the queue
- private class PhotoToLoad {
- public int uid;
- public ImageView imageView;
-
- public PhotoToLoad(int u, ImageView i) {
- uid = u;
- imageView = i;
- }
- }
-}
diff --git a/src/com/github/shadowsocks/Shadowsocks.java b/src/com/github/shadowsocks/Shadowsocks.java
deleted file mode 100755
index 08b283c9..00000000
--- a/src/com/github/shadowsocks/Shadowsocks.java
+++ /dev/null
@@ -1,618 +0,0 @@
-/* Shadowsocks - A shadowsocks client for Android
- * Copyright (C) 2012
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- *
- *
- * ___====-_ _-====___
- * _--^^^#####// \\#####^^^--_
- * _-^##########// ( ) \\##########^-_
- * -############// |\^^/| \\############-
- * _/############// (@::@) \\############\_
- * /#############(( \\// ))#############\
- * -###############\\ (oo) //###############-
- * -#################\\ / VV \ //#################-
- * -###################\\/ \//###################-
- * _#/|##########/\######( /\ )######/\##########|\#_
- * |/ |#/\#/\#/\/ \#/\##\ | | /##/\#/ \/\#/\#/\#| \|
- * ` |/ V V ` V \#\| | | |/#/ V ' V V \| '
- * ` ` ` ` / | | | | \ ' ' ' '
- * ( | | | | )
- * __\ | | | | /__
- * (vvv(VVV)(VVV)vvv)
- *
- * HERE BE DRAGONS
- *
- */
-
-package com.github.shadowsocks;
-
-import android.app.AlertDialog;
-import android.app.ProgressDialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.content.SharedPreferences.Editor;
-import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.res.AssetManager;
-import android.graphics.Typeface;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.preference.Preference;
-import android.preference.PreferenceManager;
-import android.util.Log;
-import android.view.KeyEvent;
-import android.widget.CompoundButton;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-import com.actionbarsherlock.view.Menu;
-import com.actionbarsherlock.view.MenuItem;
-import com.google.analytics.tracking.android.EasyTracker;
-import de.keyboardsurfer.android.widget.crouton.Crouton;
-import de.keyboardsurfer.android.widget.crouton.Style;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Hashtable;
-import net.saik0.android.unifiedpreference.UnifiedPreferenceFragment;
-import net.saik0.android.unifiedpreference.UnifiedSherlockPreferenceActivity;
-import org.jraf.android.backport.switchwidget.Switch;
-
-public class Shadowsocks extends UnifiedSherlockPreferenceActivity
- implements CompoundButton.OnCheckedChangeListener, OnSharedPreferenceChangeListener {
-
- public static final String PREFS_NAME = "Shadowsocks";
- public static final String[] PROXY_PREFS = {
- "proxy", "remotePort", "port", "sitekey", "encMethod"
- };
- public static final String[] FEATRUE_PREFS = {
- "isHTTPProxy", "isDNSProxy", "isGFWList", "isGlobalProxy", "isBypassApps", "proxyedApps",
- "isAutoConnect"
- };
- private static final String TAG = "Shadowsocks";
- private static final int MSG_CRASH_RECOVER = 1;
- private static final int MSG_INITIAL_FINISH = 2;
- private static ProgressDialog mProgressDialog = null;
- final Handler handler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(Shadowsocks.this);
- Editor ed = settings.edit();
- switch (msg.what) {
- case MSG_CRASH_RECOVER:
- Crouton.makeText(Shadowsocks.this, R.string.crash_alert, Style.ALERT).show();
- ed.putBoolean("isRunning", false);
- break;
- case MSG_INITIAL_FINISH:
- if (mProgressDialog != null) {
- mProgressDialog.dismiss();
- mProgressDialog = null;
- }
- break;
- }
- ed.commit();
- super.handleMessage(msg);
- }
- };
- private Switch switchButton;
-
- private void copyAssets(String path) {
-
- AssetManager assetManager = getAssets();
- String[] files = null;
- try {
- files = assetManager.list(path);
- } catch (IOException e) {
- Log.e(TAG, e.getMessage());
- }
- if (files != null) {
- for (String file : files) {
- InputStream in = null;
- OutputStream out = null;
- try {
- if (path.length() > 0) {
- in = assetManager.open(path + "/" + file);
- } else {
- in = assetManager.open(file);
- }
- out = new FileOutputStream("/data/data/com.github.shadowsocks/" + file);
- copyFile(in, out);
- in.close();
- in = null;
- out.flush();
- out.close();
- out = null;
- } catch (Exception e) {
- Log.e(TAG, e.getMessage());
- }
- }
- }
- }
-
- private void copyFile(InputStream in, OutputStream out) throws IOException {
- byte[] buffer = new byte[1024];
- int read;
- while ((read = in.read(buffer)) != -1) {
- out.write(buffer, 0, read);
- }
- }
-
- private void crash_recovery() {
-
- StringBuilder sb = new StringBuilder();
- sb.append(Utils.getIptables()).append(" -t nat -F OUTPUT").append("\n");
- sb.append("kill -9 `cat /data/data/com.github.shadowsocks/pdnsd.pid`").append("\n");
- sb.append("kill -9 `cat /data/data/com.github.shadowsocks/redsocks.pid`").append("\n");
- sb.append("kill -9 `cat /data/data/com.github.shadowsocks/shadowsocks.pid`").append("\n");
- sb.append("kill -9 `cat /data/data/com.github.shadowsocks/polipo.pid`").append("\n");
- sb.append("killall -9 pdnsd").append("\n");
- sb.append("killall -9 redsocks").append("\n");
- sb.append("killall -9 shadowsocks").append("\n");
- sb.append("killall -9 polipo").append("\n");
- Utils.runRootCommand(sb.toString());
- }
-
- private boolean isTextEmpty(String s, String msg) {
- if (s == null || s.length() <= 0) {
- showAToast(msg);
- return true;
- }
- return false;
- }
-
- @Override
- public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
- if (compoundButton == switchButton) {
- final SharedPreferences settings =
- PreferenceManager.getDefaultSharedPreferences(Shadowsocks.this);
- settings.edit().putBoolean("isRunning", true).commit();
- if (!serviceStart()) {
- settings.edit().putBoolean("isRunning", false).commit();
- }
- }
- }
-
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- setHeaderRes(R.xml.shadowsocks_headers);
- super.onCreate(savedInstanceState);
-
- RelativeLayout switchLayout =
- (RelativeLayout) getLayoutInflater().inflate(R.layout.layout_switch, null);
-
- getSupportActionBar().setCustomView(switchLayout);
- getSupportActionBar().setDisplayShowTitleEnabled(false);
- getSupportActionBar().setDisplayShowCustomEnabled(true);
- getSupportActionBar().setDisplayShowHomeEnabled(false);
-
- switchButton = (Switch) switchLayout.findViewById(R.id.switchButton);
-
- TextView title = (TextView) switchLayout.findViewById(R.id.title);
- Typeface tf = Typefaces.get(this, "fonts/Iceland.ttf");
- if (tf != null) title.setTypeface(tf);
- title.setText(R.string.app_name);
-
- final SharedPreferences settings =
- PreferenceManager.getDefaultSharedPreferences(Shadowsocks.this);
-
- boolean init =
- !settings.getBoolean("isRunning", false) && !settings.getBoolean("isConnecting", false);
-
- if (init) {
- if (mProgressDialog == null) {
- mProgressDialog =
- ProgressDialog.show(this, "", getString(R.string.initializing), true, true);
- }
-
- new Thread() {
- @Override
- public void run() {
-
- Utils.isRoot();
-
- String versionName;
- try {
- versionName = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
- } catch (NameNotFoundException e) {
- versionName = "NONE";
- }
-
- if (!settings.getBoolean(versionName, false)) {
- Editor edit = settings.edit();
- edit.putBoolean(versionName, true);
- edit.commit();
- reset();
- }
-
- handler.sendEmptyMessage(MSG_INITIAL_FINISH);
- }
- }.start();
- }
- }
-
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- menu.add(0, 0, 0, R.string.recovery)
- .setIcon(android.R.drawable.ic_menu_revert)
- .setShowAsAction(MenuItem.SHOW_AS_ACTION_WITH_TEXT);
- menu.add(0, 1, 1, R.string.about)
- .setIcon(android.R.drawable.ic_menu_info_details)
- .setShowAsAction(MenuItem.SHOW_AS_ACTION_WITH_TEXT);
- return true;
- }
-
- /** Called when the activity is closed. */
- @Override
- public void onDestroy() {
- SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
-
- SharedPreferences.Editor editor = settings.edit();
- editor.putBoolean("isConnected", ShadowsocksService.isServiceStarted());
- editor.commit();
-
- super.onDestroy();
- }
-
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
- try {
- finish();
- } catch (Exception ignore) {
- // Nothing
- }
- return true;
- }
- return super.onKeyDown(keyCode, event);
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case 0:
- recovery();
- break;
- case 1:
- String versionName = "";
- try {
- versionName = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
- } catch (NameNotFoundException e) {
- versionName = "";
- }
- showAToast(getString(R.string.about) + " (" + versionName + ")\n\n" + getString(
- R.string.copy_rights));
- break;
- }
-
- return super.onOptionsItemSelected(item);
- }
-
- @Override
- protected void onPause() {
- super.onPause();
- PreferenceManager.getDefaultSharedPreferences(this)
- .unregisterOnSharedPreferenceChangeListener(this);
- }
-
- @Override
- protected void onResume() {
- super.onResume();
- SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
-
- Editor edit = settings.edit();
-
- if (ShadowsocksService.isServiceStarted()) {
- edit.putBoolean("isRunning", true);
- switchButton.setChecked(true);
- } else {
- if (settings.getBoolean("isRunning", false)) {
- new Thread() {
- @Override
- public void run() {
- crash_recovery();
- handler.sendEmptyMessage(MSG_CRASH_RECOVER);
- }
- }.start();
- }
- edit.putBoolean("isRunning", false);
- switchButton.setChecked(false);
- }
-
- edit.commit();
-
- setPreferenceEnabled();
-
- switchButton.setOnCheckedChangeListener(this);
- PreferenceManager.getDefaultSharedPreferences(this)
- .registerOnSharedPreferenceChangeListener(this);
- }
-
- private void setPreferenceEnabled() {
- SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(Shadowsocks.this);
-
- boolean enabled =
- !settings.getBoolean("isRunning", false) && !settings.getBoolean("isConnecting", false);
-
- for (String name : PROXY_PREFS) {
- Preference pref = findPreference(name);
- if (pref != null) {
- pref.setEnabled(enabled);
- }
- }
- for (String name : FEATRUE_PREFS) {
- Preference pref = findPreference(name);
- if (pref != null) {
- if (name.equals("isBypassApps") || name.equals("proxyedApps")) {
- boolean isGlobalProxy = settings.getBoolean("isGlobalProxy", false);
- pref.setEnabled(enabled && !isGlobalProxy);
- } else {
- pref.setEnabled(enabled);
- }
- }
- }
- }
-
- @Override
- public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
- // Let's do something a preference value changes
- SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
-
- if (key.equals("isRunning")) {
- if (settings.getBoolean("isRunning", false)) {
- switchButton.setChecked(true);
- } else {
- switchButton.setChecked(false);
- }
- }
-
- if (key.equals("isConnecting")) {
- if (settings.getBoolean("isConnecting", false)) {
- Log.d(TAG, "Connecting start");
- if (mProgressDialog == null) {
- mProgressDialog =
- ProgressDialog.show(this, "", getString(R.string.connecting), true, true);
- }
- } else {
- Log.d(TAG, "Connecting finish");
- if (mProgressDialog != null) {
- mProgressDialog.dismiss();
- mProgressDialog = null;
- }
- }
- }
-
- if (key.equals("isRunning") || key.equals("isGlobalProxy")) {
- setPreferenceEnabled();
- }
- }
-
- @Override
- public void onStart() {
- super.onStart();
- EasyTracker.getInstance().activityStart(this);
- }
-
- @Override
- public void onStop() {
- super.onStop();
- EasyTracker.getInstance().activityStop(this);
-
- if (mProgressDialog != null) {
- mProgressDialog.dismiss();
- mProgressDialog = null;
- }
- }
-
- public void reset() {
-
- crash_recovery();
-
- copyAssets("");
- copyAssets(Utils.getABI());
-
- Utils.runCommand("chmod 755 /data/data/com.github.shadowsocks/iptables\n"
- + "chmod 755 /data/data/com.github.shadowsocks/redsocks\n"
- + "chmod 755 /data/data/com.github.shadowsocks/pdnsd\n"
- + "chmod 755 /data/data/com.github.shadowsocks/shadowsocks\n"
- + "chmod 755 /data/data/com.github.shadowsocks/polipo\n");
- }
-
- private void recovery() {
-
- if (mProgressDialog == null) {
- mProgressDialog = ProgressDialog.show(this, "", getString(R.string.recovering), true, true);
- }
-
- final Handler h = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- if (mProgressDialog != null) {
- mProgressDialog.dismiss();
- mProgressDialog = null;
- }
- }
- };
-
- stopService(new Intent(this, ShadowsocksService.class));
-
- new Thread() {
- @Override
- public void run() {
-
- reset();
-
- h.sendEmptyMessage(0);
- }
- }.start();
- }
-
- /** Called when connect button is clicked. */
- public boolean serviceStart() {
-
- if (ShadowsocksService.isServiceStarted()) {
- stopService(new Intent(this, ShadowsocksService.class));
- return false;
- }
-
- SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
-
- final String proxy = settings.getString("proxy", "");
- if (isTextEmpty(proxy, getString(R.string.proxy_empty))) return false;
-
- String portText = settings.getString("port", "");
- if (isTextEmpty(portText, getString(R.string.port_empty))) return false;
- try {
- int port = Integer.valueOf(portText);
- if (port <= 1024) {
- this.showAToast(getString(R.string.port_alert));
- return false;
- }
- } catch (Exception e) {
- this.showAToast(getString(R.string.port_alert));
- return false;
- }
-
- Intent it = new Intent(this, ShadowsocksService.class);
- startService(it);
-
- return true;
- }
-
- private void showAToast(String msg) {
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setMessage(msg)
- .setCancelable(false)
- .setNegativeButton(getString(R.string.ok_iknow), new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int id) {
- dialog.cancel();
- }
- });
- AlertDialog alert = builder.create();
- alert.show();
- }
-
- public static class ProxyFragment extends UnifiedPreferenceFragment
- implements OnSharedPreferenceChangeListener {
-
- private void setPreferenceEnabled() {
- SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getActivity());
-
- boolean enabled =
- !settings.getBoolean("isRunning", false) && !settings.getBoolean("isConnecting", false);
-
- for (String name : PROXY_PREFS) {
- Preference pref = findPreference(name);
- if (pref != null) {
- pref.setEnabled(enabled);
- }
- }
- }
-
- @Override
- public void onResume() {
- super.onResume();
- setPreferenceEnabled();
-
- // Set up a listener whenever a key changes
- getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
- }
-
- @Override
- public void onPause() {
- super.onPause();
- // Unregister the listener whenever a key changes
- getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
- }
-
- @Override
- public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
- if (key.equals("isRunning") || key.equals("isGlobalProxy")) {
- setPreferenceEnabled();
- }
- }
- }
-
- public static class FeatureFragment extends UnifiedPreferenceFragment
- implements OnSharedPreferenceChangeListener {
-
- private void setPreferenceEnabled() {
- SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getActivity());
-
- boolean enabled =
- !settings.getBoolean("isRunning", false) && !settings.getBoolean("isConnecting", false);
-
- for (String name : FEATRUE_PREFS) {
- Preference pref = findPreference(name);
- if (pref != null) {
- if (name.equals("isBypassApps") || name.equals("proxyedApps")) {
- boolean isGlobalProxy = settings.getBoolean("isGlobalProxy", false);
- pref.setEnabled(enabled && !isGlobalProxy);
- } else {
- pref.setEnabled(enabled);
- }
- }
- }
- }
-
- @Override
- public void onResume() {
- super.onResume();
- setPreferenceEnabled();
-
- // Set up a listener whenever a key changes
- getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
- }
-
- @Override
- public void onPause() {
- super.onPause();
- // Unregister the listener whenever a key changes
- getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
- }
-
- @Override
- public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
- if (key.equals("isRunning") || key.equals("isGlobalProxy")) {
- setPreferenceEnabled();
- }
- }
- }
-
- public static class Typefaces {
- private static final String TAG = "Typefaces";
-
- private static final Hashtable cache = new Hashtable();
-
- public static Typeface get(Context c, String assetPath) {
- synchronized (cache) {
- if (!cache.containsKey(assetPath)) {
- try {
- Typeface t = Typeface.createFromAsset(c.getAssets(), assetPath);
- cache.put(assetPath, t);
- } catch (Exception e) {
- Log.e(TAG, "Could not get typeface '" + assetPath + "' because " + e.getMessage());
- return null;
- }
- }
- return cache.get(assetPath);
- }
- }
- }
-}
diff --git a/src/com/github/shadowsocks/ShadowsocksApplication.java b/src/com/github/shadowsocks/ShadowsocksApplication.java
deleted file mode 100755
index 4a004043..00000000
--- a/src/com/github/shadowsocks/ShadowsocksApplication.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Shadowsocks - A shadowsocks client for Android
- * Copyright (C) 2012
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- *
- *
- * ___====-_ _-====___
- * _--^^^#####// \\#####^^^--_
- * _-^##########// ( ) \\##########^-_
- * -############// |\^^/| \\############-
- * _/############// (@::@) \\############\_
- * /#############(( \\// ))#############\
- * -###############\\ (oo) //###############-
- * -#################\\ / VV \ //#################-
- * -###################\\/ \//###################-
- * _#/|##########/\######( /\ )######/\##########|\#_
- * |/ |#/\#/\#/\/ \#/\##\ | | /##/\#/ \/\#/\#/\#| \|
- * ` |/ V V ` V \#\| | | |/#/ V ' V V \| '
- * ` ` ` ` / | | | | \ ' ' ' '
- * ( | | | | )
- * __\ | | | | /__
- * (vvv(VVV)(VVV)vvv)
- *
- * HERE BE DRAGONS
- *
- */
-
-package com.github.shadowsocks;
-
-import android.app.Application;
-import com.google.analytics.tracking.android.EasyTracker;
-
-public class ShadowsocksApplication extends Application {
-
- private static String sTmpDir;
-
- public static String getTmpDir() {
- return sTmpDir;
- }
-
- @Override
- public void onCreate() {
- EasyTracker.getInstance().setContext(this);
- sTmpDir = getCacheDir().getAbsolutePath();
- }
-}
diff --git a/src/com/github/shadowsocks/ShadowsocksService.java b/src/com/github/shadowsocks/ShadowsocksService.java
deleted file mode 100755
index 50d9675d..00000000
--- a/src/com/github/shadowsocks/ShadowsocksService.java
+++ /dev/null
@@ -1,648 +0,0 @@
-/* Shadowsocks - A shadowsocks client for Android
- * Copyright (C) 2012
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- *
- *
- * ___====-_ _-====___
- * _--^^^#####// \\#####^^^--_
- * _-^##########// ( ) \\##########^-_
- * -############// |\^^/| \\############-
- * _/############// (@::@) \\############\_
- * /#############(( \\// ))#############\
- * -###############\\ (oo) //###############-
- * -#################\\ / VV \ //#################-
- * -###################\\/ \//###################-
- * _#/|##########/\######( /\ )######/\##########|\#_
- * |/ |#/\#/\#/\/ \#/\##\ | | /##/\#/ \/\#/\#/\#| \|
- * ` |/ V V ` V \#\| | | |/#/ V ' V V \| '
- * ` ` ` ` / | | | | \ ' ' ' '
- * ( | | | | )
- * __\ | | | | /__
- * (vvv(VVV)(VVV)vvv)
- *
- * HERE BE DRAGONS
- *
- */
-
-package com.github.shadowsocks;
-
-import android.app.Notification;
-import android.app.NotificationManager;
-import android.app.PendingIntent;
-import android.app.Service;
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.content.SharedPreferences.Editor;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Message;
-import android.os.PowerManager;
-import android.preference.PreferenceManager;
-import android.support.v4.app.NotificationCompat;
-import android.util.Log;
-import com.google.analytics.tracking.android.EasyTracker;
-import java.io.BufferedReader;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-import java.lang.ref.WeakReference;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.net.Inet6Address;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.util.HashSet;
-import org.apache.http.conn.util.InetAddressUtils;
-
-public class ShadowsocksService extends Service {
-
- public static final String BASE = "/data/data/com.github.shadowsocks/";
- final static String REDSOCKS_CONF = "base {" +
- " log_debug = off;" +
- " log_info = off;" +
- " log = stderr;" +
- " daemon = on;" +
- " redirector = iptables;" +
- "}" +
- "redsocks {" +
- " local_ip = 127.0.0.1;" +
- " local_port = 8123;" +
- " ip = 127.0.0.1;" +
- " port = %d;" +
- " type = socks5;" +
- "}";
- final static String SHADOWSOCKS_CONF =
- "{\"server\": [%s], \"server_port\": %d, \"local_port\": %d, \"password\": %s, \"timeout\": %d}";
- final static String CMD_IPTABLES_RETURN = " -t nat -A OUTPUT -p tcp -d 0.0.0.0 -j RETURN\n";
- final static String CMD_IPTABLES_REDIRECT_ADD_SOCKS =
- " -t nat -A OUTPUT -p tcp " + "-j REDIRECT --to 8123\n";
- final static String CMD_IPTABLES_DNAT_ADD_SOCKS =
- " -t nat -A OUTPUT -p tcp " + "-j DNAT --to-destination 127.0.0.1:8123\n";
- private static final int MSG_CONNECT_START = 0;
- private static final int MSG_CONNECT_FINISH = 1;
- private static final int MSG_CONNECT_SUCCESS = 2;
- private static final int MSG_CONNECT_FAIL = 3;
- private static final int MSG_HOST_CHANGE = 4;
- private static final int MSG_STOP_SELF = 5;
- private static final String TAG = "ShadowsocksService";
- private final static int DNS_PORT = 8153;
- private static final Class>[] mStartForegroundSignature = new Class[] {
- int.class, Notification.class
- };
- private static final Class>[] mStopForegroundSignature = new Class[] { boolean.class };
- private static final Class>[] mSetForegroundSignature = new Class[] { boolean.class };
- /*
- * This is a hack see
- * http://www.mail-archive.com/android-developers@googlegroups
- * .com/msg18298.html we are not really able to decide if the service was
- * started. So we remember a week reference to it. We set it if we are
- * running and clear it if we are stopped. If anything goes wrong, the
- * reference will hopefully vanish
- */
- private static WeakReference sRunningInstance = null;
- final Handler handler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- Editor ed = settings.edit();
- switch (msg.what) {
- case MSG_CONNECT_START:
- ed.putBoolean("isConnecting", true);
-
- PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
- mWakeLock =
- pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE,
- "GAEProxy");
-
- mWakeLock.acquire();
-
- break;
- case MSG_CONNECT_FINISH:
- ed.putBoolean("isConnecting", false);
-
- if (mWakeLock != null && mWakeLock.isHeld()) mWakeLock.release();
-
- break;
- case MSG_CONNECT_SUCCESS:
- ed.putBoolean("isRunning", true);
- break;
- case MSG_CONNECT_FAIL:
- ed.putBoolean("isRunning", false);
- break;
- case MSG_HOST_CHANGE:
- ed.putString("appHost", appHost);
- break;
- case MSG_STOP_SELF:
- stopSelf();
- break;
- }
- ed.commit();
- super.handleMessage(msg);
- }
- };
- private NotificationManager notificationManager;
- private PowerManager.WakeLock mWakeLock;
- private String appHost;
- private int remotePort;
- private int localPort;
- private String sitekey;
- private SharedPreferences settings = null;
- private boolean hasRedirectSupport = true;
- private boolean isGlobalProxy = false;
- private boolean isGFWList = false;
- private boolean isBypassApps = false;
- private boolean isDNSProxy = false;
- private boolean isHTTPProxy = false;
- private String encMethod;
- private ProxyedApp apps[];
- private Method mSetForeground;
- private Method mStartForeground;
- private Method mStopForeground;
- private Object[] mSetForegroundArgs = new Object[1];
- private Object[] mStartForegroundArgs = new Object[2];
- private Object[] mStopForegroundArgs = new Object[1];
-
- public static boolean isServiceStarted() {
- final boolean isServiceStarted;
- if (sRunningInstance == null) {
- isServiceStarted = false;
- } else if (sRunningInstance.get() == null) {
- isServiceStarted = false;
- sRunningInstance = null;
- } else {
- isServiceStarted = true;
- }
- return isServiceStarted;
- }
-
- private int getPid(String name) {
- try {
- BufferedReader reader = new BufferedReader(new FileReader(BASE + name + ".pid"));
- final String line = reader.readLine();
- return Integer.valueOf(line);
- } catch (FileNotFoundException e) {
- Log.e(TAG, "Cannot open pid file: " + name);
- } catch (IOException e) {
- Log.e(TAG, "Cannot read pid file: " + name);
- } catch (NumberFormatException e) {
- Log.e(TAG, "Invalid pid", e);
- }
- return -1;
- }
-
- private void startShadowsocksDaemon() {
- new Thread() {
- @Override
- public void run() {
- final String cmd = String.format(BASE
- +
- "shadowsocks -s \"%s\" -p \"%d\" -l \"%d\" -k \"%s\" -m \"%s\" -f "
- + BASE
- + "shadowsocks.pid", appHost, remotePort, localPort, sitekey, encMethod);
- System.exec(cmd);
- }
- }.start();
- }
-
- private void startPolipoDaemon() {
- new Thread() {
- @Override
- public void run() {
- final String cmd = String.format(BASE
- + "polipo proxyPort=%d socksParentProxy=127.0.0.1:%d daemonise=true pidFile=\"%s\" logLevel=1 logFile=\"%s\"",
- localPort + 1, localPort, BASE + "polipo.pid", BASE + "polipo.log");
- System.exec(cmd);
- }
- }.start();
- }
-
- private void startDnsDaemon() {
- final String cmd = BASE + "pdnsd -c " + BASE + "pdnsd.conf";
- Utils.runCommand(cmd);
- }
-
- private String getVersionName() {
- String version;
- try {
- PackageInfo pi = getPackageManager().getPackageInfo(getPackageName(), 0);
- version = pi.versionName;
- } catch (PackageManager.NameNotFoundException e) {
- version = "Package name not found";
- }
- return version;
- }
-
- public void handleCommand(Intent intent) {
-
- if (intent == null) {
- stopSelf();
- return;
- }
-
- appHost = settings.getString("proxy", "127.0.0.1");
- sitekey = settings.getString("sitekey", "default");
- encMethod = settings.getString("encMethod", "table");
- try {
- remotePort = Integer.valueOf(settings.getString("remotePort", "1984"));
- } catch (NumberFormatException ex) {
- remotePort = 1984;
- }
- try {
- localPort = Integer.valueOf(settings.getString("port", "1984"));
- } catch (NumberFormatException ex) {
- localPort = 1984;
- }
-
- isGlobalProxy = settings.getBoolean("isGlobalProxy", false);
- isGFWList = settings.getBoolean("isGFWList", false);
- isBypassApps = settings.getBoolean("isBypassApps", false);
- isDNSProxy = settings.getBoolean("isDNSProxy", false);
- isHTTPProxy = settings.getBoolean("isHTTPProxy", false);
-
- if (isHTTPProxy) {
- localPort--;
- }
-
- new Thread(new Runnable() {
- @Override
- public void run() {
-
- handler.sendEmptyMessage(MSG_CONNECT_START);
-
- boolean resolved = false;
-
- if (appHost != null) {
-
- boolean isIPv6Support = Utils.isIPv6Support();
- InetAddress addr = null;
-
- if (isIPv6Support) {
- try {
- addr = Inet6Address.getByName(appHost);
- } catch (UnknownHostException ignored) {
- addr = null;
- }
- }
-
- if (addr == null) {
- try {
- addr = InetAddress.getByName(appHost);
- } catch (UnknownHostException ignored) {
- addr = null;
- }
- }
-
- if (addr != null) {
- appHost = addr.getHostAddress();
- resolved = true;
- }
- }
-
- Log.d(TAG, "IPTABLES: " + Utils.getIptables());
-
- // Test for Redirect Support
- hasRedirectSupport = Utils.getHasRedirectSupport();
-
- if (resolved && handleConnection()) {
- // Connection and forward successful
- notifyAlert(getString(R.string.forward_success), getString(R.string.service_running));
-
- handler.sendEmptyMessageDelayed(MSG_CONNECT_SUCCESS, 500);
- } else {
- // Connection or forward unsuccessful
- notifyAlert(getString(R.string.forward_fail), getString(R.string.service_failed));
-
- stopSelf();
- handler.sendEmptyMessageDelayed(MSG_CONNECT_FAIL, 500);
- }
-
- handler.sendEmptyMessageDelayed(MSG_CONNECT_FINISH, 500);
- }
- }).start();
- markServiceStarted();
- }
-
- private void startRedsocksDaemon() {
- String conf = String.format(REDSOCKS_CONF, localPort);
- String cmd = String.format("%sredsocks -p %sredsocks.pid -c %sredsocks.conf", BASE, BASE, BASE);
- Utils.runRootCommand("echo \"" + conf + "\" > " + BASE + "redsocks.conf\n" + cmd);
- }
-
- private boolean waitForProcess(final String name) {
- final int pid = getPid(name);
- if (pid == -1) return false;
-
- Exec.hangupProcessGroup(-pid);
- Thread t = new Thread() {
- @Override
- public void run() {
- Exec.waitFor(-pid);
- Log.d(TAG, "Successfully exit pid: " + pid);
- }
- };
- t.start();
- try {
- t.join(300);
- } catch (InterruptedException ignored) {
- }
- return !t.isAlive();
- }
-
- /** Called when the activity is first created. */
- public boolean handleConnection() {
-
- if (isHTTPProxy) {
- startPolipoDaemon();
- }
- startShadowsocksDaemon();
- startDnsDaemon();
- startRedsocksDaemon();
- setupIptables();
-
- return true;
- }
-
- private void initSoundVibrateLights(Notification notification) {
- notification.sound = null;
- notification.defaults |= Notification.DEFAULT_LIGHTS;
- }
-
- void invokeMethod(Method method, Object[] args) {
- try {
- method.invoke(this, mStartForegroundArgs);
- } catch (InvocationTargetException e) {
- // Should not happen.
- Log.w(TAG, "Unable to invoke method", e);
- } catch (IllegalAccessException e) {
- // Should not happen.
- Log.w(TAG, "Unable to invoke method", e);
- }
- }
-
- private void markServiceStarted() {
- sRunningInstance = new WeakReference(this);
- }
-
- private void markServiceStopped() {
- sRunningInstance = null;
- }
-
- private void notifyAlert(String title, String info) {
-
- // ContentIntent
- Intent openIntent = new Intent(this, Shadowsocks.class);
- openIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- PendingIntent contentIntent = PendingIntent.getActivity(this, 0, openIntent, 0);
-
- // ActionIntent
- Intent closeIntent = new Intent(ShadowsocksReceiver.CLOSE_ACTION);
- PendingIntent actionIntent = PendingIntent.getBroadcast(this, 0, closeIntent, 0);
-
- //large icon for notification,normally use App icon
- final Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_stat_large);
-
- NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
- builder.setSmallIcon(R.drawable.ic_stat_shadowsocks)
- .setWhen(0)
- .setTicker(title)
- .setContentTitle(getString(R.string.app_name))
- .setContentText(info)
- .setContentIntent(contentIntent)
- .addAction(android.R.drawable.ic_menu_close_clear_cancel, getString(R.string.stop), actionIntent);
-
- startForegroundCompat(1, builder.build());
- }
-
- @Override
- public IBinder onBind(Intent intent) {
- return null;
- }
-
- @Override
- public void onCreate() {
- super.onCreate();
-
- EasyTracker.getTracker().trackEvent("service", "start", getVersionName(), 0L);
-
- settings = PreferenceManager.getDefaultSharedPreferences(this);
- notificationManager = (NotificationManager) this.getSystemService(NOTIFICATION_SERVICE);
-
- try {
- mStartForeground = getClass().getMethod("startForeground", mStartForegroundSignature);
- mStopForeground = getClass().getMethod("stopForeground", mStopForegroundSignature);
- } catch (NoSuchMethodException e) {
- // Running on an older platform.
- mStartForeground = mStopForeground = null;
- }
-
- try {
- mSetForeground = getClass().getMethod("setForeground", mSetForegroundSignature);
- } catch (NoSuchMethodException e) {
- throw new IllegalStateException(
- "OS doesn't have Service.startForeground OR Service.setForeground!");
- }
- }
-
- /** Called when the activity is closed. */
- @Override
- public void onDestroy() {
-
- EasyTracker.getTracker().trackEvent("service", "stop", getVersionName(), 0L);
-
- stopForegroundCompat(1);
-
- new Thread() {
- @Override
- public void run() {
- // Make sure the connection is closed, important here
- onDisconnect();
- }
- }.start();
-
- Editor ed = settings.edit();
- ed.putBoolean("isRunning", false);
- ed.putBoolean("isConnecting", false);
- ed.commit();
-
- try {
- notificationManager.cancel(0);
- } catch (Exception ignore) {
- // Nothing
- }
-
- super.onDestroy();
-
- markServiceStopped();
- }
-
- private void onDisconnect() {
- Utils.runRootCommand(Utils.getIptables() + " -t nat -F OUTPUT");
- StringBuilder sb = new StringBuilder();
- sb.append("kill -9 `cat /data/data/com.github.shadowsocks/redsocks.pid`").append("\n");
- if (!waitForProcess("pdnsd")) {
- sb.append("kill -9 `cat /data/data/com.github.shadowsocks/pdnsd.pid`").append("\n");
- }
- if (!waitForProcess("shadowsocks")) {
- sb.append("kill -9 `cat /data/data/com.github.shadowsocks/shadowsocks.pid`").append("\n");
- }
- if (isHTTPProxy) {
- if (!waitForProcess("polipo")) {
- sb.append("kill -9 `cat /data/data/com.github.shadowsocks/polipo.pid`").append("\n");
- }
- }
- Utils.runRootCommand(sb.toString());
- }
-
- // This is the old onStart method that will be called on the pre-2.0
- // platform. On 2.0 or later we override onStartCommand() so this
- // method will not be called.
- @Override
- public void onStart(Intent intent, int startId) {
-
- handleCommand(intent);
- }
-
- @Override
- public int onStartCommand(Intent intent, int flags, int startId) {
- handleCommand(intent);
- // We want this service to continue running until it is explicitly
- // stopped, so return sticky.
- return START_STICKY;
- }
-
- private boolean setupIptables() {
-
- StringBuilder init_sb = new StringBuilder();
-
- StringBuilder http_sb = new StringBuilder();
-
- init_sb.append(Utils.getIptables()).append(" -t nat -F OUTPUT\n");
-
- String cmd_bypass = Utils.getIptables() + CMD_IPTABLES_RETURN;
-
- if (!InetAddressUtils.isIPv6Address(appHost.toUpperCase())) {
- init_sb.append(cmd_bypass.replace("-d 0.0.0.0", "-d " + appHost));
- }
- init_sb.append(cmd_bypass.replace("0.0.0.0", "127.0.0.1"));
- if (!isDNSProxy) {
- init_sb.append(cmd_bypass.replace("-d 0.0.0.0", "--dport " + 53));
- init_sb.append(
- cmd_bypass.replace("-d 0.0.0.0", "-m owner --uid-owner " + getApplicationInfo().uid));
- }
-
- if (hasRedirectSupport) {
- init_sb.append(Utils.getIptables())
- .append(" -t nat -A OUTPUT -p udp --dport 53 -j REDIRECT --to ")
- .append(DNS_PORT)
- .append("\n");
- } else {
- init_sb.append(Utils.getIptables())
- .append(" -t nat -A OUTPUT -p udp --dport 53 -j DNAT --to-destination 127.0.0.1:")
- .append(DNS_PORT)
- .append("\n");
- }
-
- if (isGFWList) {
- String[] chn_list = getResources().getStringArray(R.array.chn_list);
-
- for (String item : chn_list) {
- init_sb.append(cmd_bypass.replace("0.0.0.0", item));
- }
- }
- if (isGlobalProxy || isBypassApps) {
- http_sb.append(hasRedirectSupport ? Utils.getIptables() + CMD_IPTABLES_REDIRECT_ADD_SOCKS
- : Utils.getIptables() + CMD_IPTABLES_DNAT_ADD_SOCKS);
- }
- if (!isGlobalProxy) {
- // for proxy specified apps
- if (apps == null || apps.length <= 0) apps = AppManager.getProxyedApps(this);
-
- HashSet uidSet = new HashSet();
- for (ProxyedApp app : apps) {
- if (app.isProxyed()) {
- uidSet.add(app.getUid());
- }
- }
- for (int uid : uidSet) {
- if (!isBypassApps) {
- http_sb.append((hasRedirectSupport ? Utils.getIptables() + CMD_IPTABLES_REDIRECT_ADD_SOCKS
- : Utils.getIptables() + CMD_IPTABLES_DNAT_ADD_SOCKS).replace("-t nat",
- "-t nat -m owner --uid-owner " + uid));
- } else {
- init_sb.append(cmd_bypass.replace("-d 0.0.0.0", "-m owner --uid-owner " + uid));
- }
- }
- }
-
- String init_rules = init_sb.toString();
- Utils.runRootCommand(init_rules, 30 * 1000);
-
- String redt_rules = http_sb.toString();
-
- Utils.runRootCommand(redt_rules);
-
- return true;
- }
-
- /**
- * This is a wrapper around the new startForeground method, using the older
- * APIs if it is not available.
- */
- void startForegroundCompat(int id, Notification notification) {
- // If we have the new startForeground API, then use it.
- if (mStartForeground != null) {
- mStartForegroundArgs[0] = id;
- mStartForegroundArgs[1] = notification;
- invokeMethod(mStartForeground, mStartForegroundArgs);
- return;
- }
-
- // Fall back on the old API.
- mSetForegroundArgs[0] = Boolean.TRUE;
- invokeMethod(mSetForeground, mSetForegroundArgs);
- notificationManager.notify(id, notification);
- }
-
- /**
- * This is a wrapper around the new stopForeground method, using the older
- * APIs if it is not available.
- */
- void stopForegroundCompat(int id) {
- // If we have the new stopForeground API, then use it.
- if (mStopForeground != null) {
- mStopForegroundArgs[0] = Boolean.TRUE;
- try {
- mStopForeground.invoke(this, mStopForegroundArgs);
- } catch (InvocationTargetException e) {
- // Should not happen.
- Log.w(TAG, "Unable to invoke stopForeground", e);
- } catch (IllegalAccessException e) {
- // Should not happen.
- Log.w(TAG, "Unable to invoke stopForeground", e);
- }
- return;
- }
-
- // Fall back on the old API. Note to cancel BEFORE changing the
- // foreground state, since we could be killed at that point.
- notificationManager.cancel(id);
- mSetForegroundArgs[0] = Boolean.FALSE;
- invokeMethod(mSetForeground, mSetForegroundArgs);
- }
-}
diff --git a/src/com/github/shadowsocks/Utils.java b/src/com/github/shadowsocks/Utils.java
deleted file mode 100755
index 0582be69..00000000
--- a/src/com/github/shadowsocks/Utils.java
+++ /dev/null
@@ -1,495 +0,0 @@
-/* Shadowsocks - A shadowsocks client for Android
- * Copyright (C) 2012
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- *
- *
- * ___====-_ _-====___
- * _--^^^#####// \\#####^^^--_
- * _-^##########// ( ) \\##########^-_
- * -############// |\^^/| \\############-
- * _/############// (@::@) \\############\_
- * /#############(( \\// ))#############\
- * -###############\\ (oo) //###############-
- * -#################\\ / VV \ //#################-
- * -###################\\/ \//###################-
- * _#/|##########/\######( /\ )######/\##########|\#_
- * |/ |#/\#/\#/\/ \#/\##\ | | /##/\#/ \/\#/\#/\#| \|
- * ` |/ V V ` V \#\| | | |/#/ V ' V V \| '
- * ` ` ` ` / | | | | \ ' ' ' '
- * ( | | | | )
- * __\ | | | | /__
- * (vvv(VVV)(VVV)vvv)
- *
- * HERE BE DRAGONS
- *
- */
-
-package com.github.shadowsocks;
-
-import android.content.Context;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.graphics.drawable.Drawable;
-import android.os.Environment;
-import android.util.Log;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileDescriptor;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.InetAddress;
-import java.net.NetworkInterface;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import org.apache.http.conn.util.InetAddressUtils;
-
-public class Utils {
-
- public final static String TAG = "Shadowsocks";
- public final static String ABI_PROP = "ro.product.cpu.abi";
- public final static String ABI2_PROP = "ro.product.cpu.abi2";
- public final static String ARM_ABI = "arm";
- public final static String X86_ABI = "x86";
- public final static String MIPS_ABI = "mips";
- public final static String DEFAULT_SHELL = "/system/bin/sh";
- public final static String DEFAULT_ROOT = "/system/bin/su";
- public final static String ALTERNATIVE_ROOT = "/system/xbin/su";
- public final static String DEFAULT_IPTABLES = "/data/data/com.github.shadowsocks/iptables";
- public final static String ALTERNATIVE_IPTABLES = "/system/bin/iptables";
- public final static int TIME_OUT = -99;
- private static boolean initialized = false;
- private static int hasRedirectSupport = -1;
- private static int isRoot = -1;
- private static String shell = null;
- private static String root_shell = null;
- private static String iptables = null;
- private static String data_path = null;
-
- /** Get IP address from first non-localhost interface */
- public static boolean isIPv6Support() {
- try {
- List interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
- for (NetworkInterface intf : interfaces) {
- List addrs = Collections.list(intf.getInetAddresses());
- for (InetAddress addr : addrs) {
- if (!addr.isLoopbackAddress() && !addr.isLinkLocalAddress()) {
- String sAddr = addr.getHostAddress().toUpperCase();
- boolean isIPv6 = InetAddressUtils.isIPv6Address(sAddr);
- if (isIPv6) {
- Log.d(TAG, "IPv6 address detected");
- return true;
- }
- }
- }
- }
- } catch (Exception ex) {
- // Ignore
- } // for now eat exceptions
- return false;
- }
-
- public static String getABI() {
- String abi = getSystemProperty(ABI_PROP);
- if (abi != null) {
- if (abi.toLowerCase().contains(ARM_ABI)) {
- return ARM_ABI;
- } else if (abi.toLowerCase().contains(X86_ABI)) {
- return X86_ABI;
- }
- }
- return ARM_ABI;
- }
-
- /**
- * Returns a SystemProperty
- *
- * @param propName The Property to retrieve
- * @return The Property, or NULL if not found
- */
- private static String getSystemProperty(String propName) {
- String line;
- BufferedReader input = null;
- try {
- Process p = Runtime.getRuntime().exec("getprop " + propName);
- input = new BufferedReader(new InputStreamReader(p.getInputStream()), 1024);
- line = input.readLine();
- input.close();
- } catch (IOException ex) {
- Log.e(TAG, "Unable to read sysprop " + propName, ex);
- return null;
- } finally {
- if (input != null) {
- try {
- input.close();
- } catch (IOException e) {
- Log.e(TAG, "Exception while closing InputStream", e);
- }
- }
- }
- return line;
- }
-
- private static void checkIptables() {
-
- if (!isRoot()) {
- iptables = DEFAULT_IPTABLES;
- return;
- }
-
- // Check iptables binary
- iptables = DEFAULT_IPTABLES;
-
- String lines = null;
-
- boolean compatible = false;
- boolean version = false;
-
- StringBuilder sb = new StringBuilder();
- String command = iptables + " --version\n" + iptables + " -L -t nat -n\n" + "exit\n";
-
- int exitcode = runScript(command, sb, 10 * 1000, true);
-
- if (exitcode == TIME_OUT) return;
-
- lines = sb.toString();
-
- if (lines.contains("OUTPUT")) {
- compatible = true;
- }
- if (lines.contains("v1.4.")) {
- version = true;
- }
-
- if (!compatible || !version) {
- iptables = ALTERNATIVE_IPTABLES;
- if (!new File(iptables).exists()) iptables = "iptables";
- }
- }
-
- public static Drawable getAppIcon(Context c, int uid) {
- PackageManager pm = c.getPackageManager();
- Drawable appIcon = c.getResources().getDrawable(android.R.drawable.sym_def_app_icon);
- String[] packages = pm.getPackagesForUid(uid);
-
- if (packages != null) {
- if (packages.length == 1) {
- try {
- ApplicationInfo appInfo = pm.getApplicationInfo(packages[0], 0);
- appIcon = pm.getApplicationIcon(appInfo);
- } catch (NameNotFoundException e) {
- Log.e(c.getPackageName(), "No package found matching with the uid " + uid);
- }
- }
- } else {
- Log.e(c.getPackageName(), "Package not found for uid " + uid);
- }
-
- return appIcon;
- }
-
- public static String getDataPath(Context ctx) {
-
- if (data_path == null) {
-
- if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
- data_path = Environment.getExternalStorageDirectory().getAbsolutePath();
- } else {
- data_path = ctx.getFilesDir().getAbsolutePath();
- }
-
- Log.d(TAG, "Python Data Path: " + data_path);
- }
-
- return data_path;
- }
-
- public static boolean getHasRedirectSupport() {
- if (hasRedirectSupport == -1) initHasRedirectSupported();
- return hasRedirectSupport == 1;
- }
-
- public static String getIptables() {
- if (iptables == null) checkIptables();
- return iptables;
- }
-
- private static String getShell() {
- if (shell == null) {
- shell = DEFAULT_SHELL;
- if (!new File(shell).exists()) shell = "sh";
- }
- return shell;
- }
-
- public static void initHasRedirectSupported() {
-
- if (!Utils.isRoot()) return;
-
- StringBuilder sb = new StringBuilder();
- String command =
- Utils.getIptables() + " -t nat -A OUTPUT -p udp --dport 54 -j REDIRECT --to 8154";
-
- int exitcode = runScript(command, sb, 10 * 1000, true);
-
- String lines = sb.toString();
-
- hasRedirectSupport = 1;
-
- // flush the check command
- Utils.runRootCommand(command.replace("-A", "-D"));
-
- if (exitcode == TIME_OUT) return;
-
- if (lines.contains("No chain/target/match")) {
- hasRedirectSupport = 0;
- }
- }
-
- public static boolean isInitialized() {
- if (initialized) {
- return true;
- } else {
- initialized = true;
- return false;
- }
- }
-
- public static boolean isRoot() {
-
- if (isRoot != -1) return isRoot == 1;
-
- // switch between binaries
- if (new File(DEFAULT_ROOT).exists()) {
- root_shell = DEFAULT_ROOT;
- } else if (new File(ALTERNATIVE_ROOT).exists()) {
- root_shell = ALTERNATIVE_ROOT;
- } else {
- root_shell = "su";
- }
-
- String lines = null;
-
- StringBuilder sb = new StringBuilder();
- String command = "ls /\n exit\n";
-
- int exitcode = runScript(command, sb, 10 * 1000, true);
-
- if (exitcode == TIME_OUT) {
- return false;
- }
-
- lines = sb.toString();
-
- if (lines.contains("system")) {
- isRoot = 1;
- }
-
- return isRoot == 1;
- }
-
- public static boolean runCommand(String command) {
-
- return runCommand(command, 10 * 1000);
- }
-
- public static boolean runCommand(String command, int timeout) {
-
- Log.d(TAG, command);
-
- runScript(command, null, timeout, false);
-
- return true;
- }
-
- public static boolean runRootCommand(String command) {
-
- return runRootCommand(command, 10 * 1000);
- }
-
- public static boolean runRootCommand(String command, int timeout) {
-
- if (!isRoot()) {
- Log.e(TAG, "Cannot get ROOT permission: " + root_shell);
- return false;
- }
-
- Log.d(TAG, command);
-
- runScript(command, null, timeout, true);
-
- return true;
- }
-
- private synchronized static int runScript(String script, StringBuilder result, long timeout,
- boolean asroot) {
- final ScriptRunner runner = new ScriptRunner(script, result, asroot);
- runner.start();
- try {
- if (timeout > 0) {
- runner.join(timeout);
- } else {
- runner.join();
- }
- if (runner.isAlive()) {
- // Timed-out
- runner.destroy();
- runner.join(1000);
- return TIME_OUT;
- }
- } catch (InterruptedException ex) {
- return TIME_OUT;
- }
- return runner.exitcode;
- }
-
- /** Internal thread used to execute scripts (as root or not). */
- private static final class ScriptRunner extends Thread {
- private final String scripts;
- private final StringBuilder result;
- private final boolean asroot;
- public int exitcode = -1;
-
- private int[] pid = new int[1];
- private FileDescriptor pipe;
-
- @Override
- public void destroy() {
- if (pid[0] != -1) {
- Exec.hangupProcessGroup(pid[0]);
- pid[0] = -1;
- }
- if (pipe != null) {
- Exec.close(pipe);
- pipe = null;
- }
- }
-
- /**
- * Creates a new script runner.
- *
- * @param script script to run
- * @param result result output
- * @param asroot if true, executes the script as root
- */
- public ScriptRunner(String script, StringBuilder result, boolean asroot) {
- this.scripts = script;
- this.result = result;
- this.asroot = asroot;
- }
-
- private FileDescriptor createSubprocess(int[] processId, String cmd) {
- ArrayList argList = parse(cmd);
- String arg0 = argList.get(0);
- String[] args = argList.toArray(new String[1]);
-
- return Exec.createSubprocess(result != null ? 1 : 0, arg0, args, null, scripts + "\nexit\n",
- processId);
- }
-
- private ArrayList parse(String cmd) {
- final int PLAIN = 0;
- final int WHITESPACE = 1;
- final int INQUOTE = 2;
- int state = WHITESPACE;
- ArrayList result = new ArrayList();
- int cmdLen = cmd.length();
- StringBuilder builder = new StringBuilder();
- for (int i = 0; i < cmdLen; i++) {
- char c = cmd.charAt(i);
- if (state == PLAIN) {
- if (Character.isWhitespace(c)) {
- result.add(builder.toString());
- builder.delete(0, builder.length());
- state = WHITESPACE;
- } else if (c == '"') {
- state = INQUOTE;
- } else {
- builder.append(c);
- }
- } else if (state == WHITESPACE) {
- if (Character.isWhitespace(c)) {
- // do nothing
- } else if (c == '"') {
- state = INQUOTE;
- } else {
- state = PLAIN;
- builder.append(c);
- }
- } else if (state == INQUOTE) {
- if (c == '\\') {
- if (i + 1 < cmdLen) {
- i += 1;
- builder.append(cmd.charAt(i));
- }
- } else if (c == '"') {
- state = PLAIN;
- } else {
- builder.append(c);
- }
- }
- }
- if (builder.length() > 0) {
- result.add(builder.toString());
- }
- return result;
- }
-
- @Override
- public void run() {
- pid[0] = -1;
-
- try {
-
- if (this.asroot) {
- // Create the "su" request to run the script
- pipe = createSubprocess(pid, root_shell);
- } else {
- // Create the "sh" request to run the script
- pipe = createSubprocess(pid, getShell());
- }
-
- if (pid[0] != -1) {
- exitcode = Exec.waitFor(pid[0]);
- }
-
- if (result == null || pipe == null) return;
-
- final InputStream stdout = new FileInputStream(pipe);
- final byte buf[] = new byte[8192];
- int read = 0;
-
- // Read stdout
- while (stdout.available() > 0) {
- read = stdout.read(buf);
- result.append(new String(buf, 0, read));
- }
- } catch (Exception ex) {
- Log.e(TAG, "Cannot execute command", ex);
- if (result != null) result.append("\n").append(ex);
- } finally {
- if (pipe != null) {
- Exec.close(pipe);
- }
- if (pid[0] != -1) {
- Exec.hangupProcessGroup(pid[0]);
- }
- }
- }
- }
-}
diff --git a/src/com/github/shadowsocks/preferences/SummaryEditTextPreference.java b/src/com/github/shadowsocks/preferences/SummaryEditTextPreference.java
deleted file mode 100644
index a108c6e7..00000000
--- a/src/com/github/shadowsocks/preferences/SummaryEditTextPreference.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.github.shadowsocks.preferences;
-
-import android.content.Context;
-import android.preference.EditTextPreference;
-import android.util.AttributeSet;
-
-public class SummaryEditTextPreference extends EditTextPreference {
-
- private CharSequence mDefaultSummary;
-
- public SummaryEditTextPreference(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- mDefaultSummary = getSummary();
- }
-
- public SummaryEditTextPreference(Context context, AttributeSet attrs) {
- super(context, attrs);
- mDefaultSummary = getSummary();
- }
-
- public SummaryEditTextPreference(Context context) {
- super(context);
- }
-
- @Override
- public void setSummary(CharSequence summary) {
- if (summary.toString().isEmpty()) {
- super.setSummary(mDefaultSummary);
- } else {
- super.setSummary(summary);
- }
- }
-}
diff --git a/AndroidManifest.xml b/src/main/AndroidManifest.xml
old mode 100755
new mode 100644
similarity index 81%
rename from AndroidManifest.xml
rename to src/main/AndroidManifest.xml
index 4ad427d5..e67cc9e1
--- a/AndroidManifest.xml
+++ b/src/main/AndroidManifest.xml
@@ -1,9 +1,5 @@
-
+ package="com.github.shadowsocks">
@@ -20,12 +16,13 @@
android:targetSdkVersion="16"/>
+
@@ -34,8 +31,9 @@
+
@@ -45,10 +43,10 @@
-
+
diff --git a/assets/arm/ip6tables b/src/main/assets/arm/ip6tables
similarity index 53%
rename from assets/arm/ip6tables
rename to src/main/assets/arm/ip6tables
index 82121387..03a83b23 100755
Binary files a/assets/arm/ip6tables and b/src/main/assets/arm/ip6tables differ
diff --git a/src/main/assets/arm/iptables b/src/main/assets/arm/iptables
new file mode 100755
index 00000000..c777e1e5
Binary files /dev/null and b/src/main/assets/arm/iptables differ
diff --git a/assets/arm/obfsproxy b/src/main/assets/arm/obfsproxy
similarity index 100%
rename from assets/arm/obfsproxy
rename to src/main/assets/arm/obfsproxy
diff --git a/assets/arm/pdnsd b/src/main/assets/arm/pdnsd
similarity index 62%
rename from assets/arm/pdnsd
rename to src/main/assets/arm/pdnsd
index fa425213..9b72ea9e 100755
Binary files a/assets/arm/pdnsd and b/src/main/assets/arm/pdnsd differ
diff --git a/assets/arm/polipo b/src/main/assets/arm/polipo
similarity index 100%
rename from assets/arm/polipo
rename to src/main/assets/arm/polipo
diff --git a/assets/arm/redsocks b/src/main/assets/arm/redsocks
similarity index 100%
rename from assets/arm/redsocks
rename to src/main/assets/arm/redsocks
diff --git a/assets/arm/shadowsocks b/src/main/assets/arm/shadowsocks
similarity index 100%
rename from assets/arm/shadowsocks
rename to src/main/assets/arm/shadowsocks
diff --git a/assets/fonts/Iceland.ttf b/src/main/assets/fonts/Iceland.ttf
similarity index 100%
rename from assets/fonts/Iceland.ttf
rename to src/main/assets/fonts/Iceland.ttf
diff --git a/assets/pdnsd.conf b/src/main/assets/pdnsd.conf
similarity index 100%
rename from assets/pdnsd.conf
rename to src/main/assets/pdnsd.conf
diff --git a/src/main/assets/x86/ip6tables b/src/main/assets/x86/ip6tables
new file mode 100755
index 00000000..16a0802b
Binary files /dev/null and b/src/main/assets/x86/ip6tables differ
diff --git a/src/main/assets/x86/iptables b/src/main/assets/x86/iptables
new file mode 100755
index 00000000..a146f450
Binary files /dev/null and b/src/main/assets/x86/iptables differ
diff --git a/assets/x86/obfsproxy b/src/main/assets/x86/obfsproxy
similarity index 100%
rename from assets/x86/obfsproxy
rename to src/main/assets/x86/obfsproxy
diff --git a/assets/x86/pdnsd b/src/main/assets/x86/pdnsd
similarity index 68%
rename from assets/x86/pdnsd
rename to src/main/assets/x86/pdnsd
index d5c33456..53cb2501 100755
Binary files a/assets/x86/pdnsd and b/src/main/assets/x86/pdnsd differ
diff --git a/assets/x86/polipo b/src/main/assets/x86/polipo
similarity index 100%
rename from assets/x86/polipo
rename to src/main/assets/x86/polipo
diff --git a/assets/x86/redsocks b/src/main/assets/x86/redsocks
similarity index 100%
rename from assets/x86/redsocks
rename to src/main/assets/x86/redsocks
diff --git a/assets/x86/shadowsocks b/src/main/assets/x86/shadowsocks
similarity index 100%
rename from assets/x86/shadowsocks
rename to src/main/assets/x86/shadowsocks
diff --git a/src/com/github/shadowsocks/Exec.java b/src/main/java/com/github/shadowsocks/Exec.java
similarity index 100%
rename from src/com/github/shadowsocks/Exec.java
rename to src/main/java/com/github/shadowsocks/Exec.java
diff --git a/src/com/github/shadowsocks/System.java b/src/main/java/com/github/shadowsocks/System.java
similarity index 100%
rename from src/com/github/shadowsocks/System.java
rename to src/main/java/com/github/shadowsocks/System.java
diff --git a/jni/Android.mk b/src/main/jni/Android.mk
similarity index 100%
rename from jni/Android.mk
rename to src/main/jni/Android.mk
diff --git a/jni/Application.mk b/src/main/jni/Application.mk
similarity index 100%
rename from jni/Application.mk
rename to src/main/jni/Application.mk
diff --git a/jni/iptables/Android.mk b/src/main/jni/iptables/Android.mk
similarity index 100%
rename from jni/iptables/Android.mk
rename to src/main/jni/iptables/Android.mk
diff --git a/jni/iptables/COMMIT_NOTES b/src/main/jni/iptables/COMMIT_NOTES
similarity index 100%
rename from jni/iptables/COMMIT_NOTES
rename to src/main/jni/iptables/COMMIT_NOTES
diff --git a/jni/iptables/COPYING b/src/main/jni/iptables/COPYING
similarity index 100%
rename from jni/iptables/COPYING
rename to src/main/jni/iptables/COPYING
diff --git a/jni/iptables/INCOMPATIBILITIES b/src/main/jni/iptables/INCOMPATIBILITIES
similarity index 100%
rename from jni/iptables/INCOMPATIBILITIES
rename to src/main/jni/iptables/INCOMPATIBILITIES
diff --git a/jni/iptables/INSTALL b/src/main/jni/iptables/INSTALL
similarity index 100%
rename from jni/iptables/INSTALL
rename to src/main/jni/iptables/INSTALL
diff --git a/jni/iptables/Makefile.am b/src/main/jni/iptables/Makefile.am
similarity index 100%
rename from jni/iptables/Makefile.am
rename to src/main/jni/iptables/Makefile.am
diff --git a/jni/iptables/autogen.sh b/src/main/jni/iptables/autogen.sh
similarity index 100%
rename from jni/iptables/autogen.sh
rename to src/main/jni/iptables/autogen.sh
diff --git a/jni/iptables/configure.ac b/src/main/jni/iptables/configure.ac
similarity index 100%
rename from jni/iptables/configure.ac
rename to src/main/jni/iptables/configure.ac
diff --git a/jni/iptables/extensions/Android.mk b/src/main/jni/iptables/extensions/Android.mk
similarity index 100%
rename from jni/iptables/extensions/Android.mk
rename to src/main/jni/iptables/extensions/Android.mk
diff --git a/jni/iptables/extensions/GNUmakefile.in b/src/main/jni/iptables/extensions/GNUmakefile.in
similarity index 100%
rename from jni/iptables/extensions/GNUmakefile.in
rename to src/main/jni/iptables/extensions/GNUmakefile.in
diff --git a/jni/iptables/extensions/dscp_helper.c b/src/main/jni/iptables/extensions/dscp_helper.c
similarity index 100%
rename from jni/iptables/extensions/dscp_helper.c
rename to src/main/jni/iptables/extensions/dscp_helper.c
diff --git a/jni/iptables/extensions/filter_init b/src/main/jni/iptables/extensions/filter_init
similarity index 100%
rename from jni/iptables/extensions/filter_init
rename to src/main/jni/iptables/extensions/filter_init
diff --git a/jni/iptables/extensions/libip6t_LOG.c b/src/main/jni/iptables/extensions/libip6t_LOG.c
similarity index 100%
rename from jni/iptables/extensions/libip6t_LOG.c
rename to src/main/jni/iptables/extensions/libip6t_LOG.c
diff --git a/jni/iptables/extensions/libip6t_LOG.man b/src/main/jni/iptables/extensions/libip6t_LOG.man
similarity index 100%
rename from jni/iptables/extensions/libip6t_LOG.man
rename to src/main/jni/iptables/extensions/libip6t_LOG.man
diff --git a/jni/iptables/extensions/libip6t_REJECT.c b/src/main/jni/iptables/extensions/libip6t_REJECT.c
similarity index 100%
rename from jni/iptables/extensions/libip6t_REJECT.c
rename to src/main/jni/iptables/extensions/libip6t_REJECT.c
diff --git a/jni/iptables/extensions/libip6t_REJECT.man b/src/main/jni/iptables/extensions/libip6t_REJECT.man
similarity index 100%
rename from jni/iptables/extensions/libip6t_REJECT.man
rename to src/main/jni/iptables/extensions/libip6t_REJECT.man
diff --git a/jni/iptables/extensions/libip6t_ah.c b/src/main/jni/iptables/extensions/libip6t_ah.c
similarity index 100%
rename from jni/iptables/extensions/libip6t_ah.c
rename to src/main/jni/iptables/extensions/libip6t_ah.c
diff --git a/jni/iptables/extensions/libip6t_ah.man b/src/main/jni/iptables/extensions/libip6t_ah.man
similarity index 100%
rename from jni/iptables/extensions/libip6t_ah.man
rename to src/main/jni/iptables/extensions/libip6t_ah.man
diff --git a/jni/iptables/extensions/libip6t_dst.c b/src/main/jni/iptables/extensions/libip6t_dst.c
similarity index 100%
rename from jni/iptables/extensions/libip6t_dst.c
rename to src/main/jni/iptables/extensions/libip6t_dst.c
diff --git a/jni/iptables/extensions/libip6t_dst.man b/src/main/jni/iptables/extensions/libip6t_dst.man
similarity index 100%
rename from jni/iptables/extensions/libip6t_dst.man
rename to src/main/jni/iptables/extensions/libip6t_dst.man
diff --git a/jni/iptables/extensions/libip6t_eui64.c b/src/main/jni/iptables/extensions/libip6t_eui64.c
similarity index 100%
rename from jni/iptables/extensions/libip6t_eui64.c
rename to src/main/jni/iptables/extensions/libip6t_eui64.c
diff --git a/jni/iptables/extensions/libip6t_eui64.man b/src/main/jni/iptables/extensions/libip6t_eui64.man
similarity index 100%
rename from jni/iptables/extensions/libip6t_eui64.man
rename to src/main/jni/iptables/extensions/libip6t_eui64.man
diff --git a/jni/iptables/extensions/libip6t_frag.c b/src/main/jni/iptables/extensions/libip6t_frag.c
similarity index 100%
rename from jni/iptables/extensions/libip6t_frag.c
rename to src/main/jni/iptables/extensions/libip6t_frag.c
diff --git a/jni/iptables/extensions/libip6t_frag.man b/src/main/jni/iptables/extensions/libip6t_frag.man
similarity index 100%
rename from jni/iptables/extensions/libip6t_frag.man
rename to src/main/jni/iptables/extensions/libip6t_frag.man
diff --git a/jni/iptables/extensions/libip6t_hbh.c b/src/main/jni/iptables/extensions/libip6t_hbh.c
similarity index 100%
rename from jni/iptables/extensions/libip6t_hbh.c
rename to src/main/jni/iptables/extensions/libip6t_hbh.c
diff --git a/jni/iptables/extensions/libip6t_hbh.man b/src/main/jni/iptables/extensions/libip6t_hbh.man
similarity index 100%
rename from jni/iptables/extensions/libip6t_hbh.man
rename to src/main/jni/iptables/extensions/libip6t_hbh.man
diff --git a/jni/iptables/extensions/libip6t_hl.c b/src/main/jni/iptables/extensions/libip6t_hl.c
similarity index 100%
rename from jni/iptables/extensions/libip6t_hl.c
rename to src/main/jni/iptables/extensions/libip6t_hl.c
diff --git a/jni/iptables/extensions/libip6t_hl.man b/src/main/jni/iptables/extensions/libip6t_hl.man
similarity index 100%
rename from jni/iptables/extensions/libip6t_hl.man
rename to src/main/jni/iptables/extensions/libip6t_hl.man
diff --git a/jni/iptables/extensions/libip6t_icmp6.c b/src/main/jni/iptables/extensions/libip6t_icmp6.c
similarity index 100%
rename from jni/iptables/extensions/libip6t_icmp6.c
rename to src/main/jni/iptables/extensions/libip6t_icmp6.c
diff --git a/jni/iptables/extensions/libip6t_icmp6.man b/src/main/jni/iptables/extensions/libip6t_icmp6.man
similarity index 100%
rename from jni/iptables/extensions/libip6t_icmp6.man
rename to src/main/jni/iptables/extensions/libip6t_icmp6.man
diff --git a/jni/iptables/extensions/libip6t_ipv6header.c b/src/main/jni/iptables/extensions/libip6t_ipv6header.c
similarity index 100%
rename from jni/iptables/extensions/libip6t_ipv6header.c
rename to src/main/jni/iptables/extensions/libip6t_ipv6header.c
diff --git a/jni/iptables/extensions/libip6t_ipv6header.man b/src/main/jni/iptables/extensions/libip6t_ipv6header.man
similarity index 100%
rename from jni/iptables/extensions/libip6t_ipv6header.man
rename to src/main/jni/iptables/extensions/libip6t_ipv6header.man
diff --git a/jni/iptables/extensions/libip6t_mh.c b/src/main/jni/iptables/extensions/libip6t_mh.c
similarity index 100%
rename from jni/iptables/extensions/libip6t_mh.c
rename to src/main/jni/iptables/extensions/libip6t_mh.c
diff --git a/jni/iptables/extensions/libip6t_mh.man b/src/main/jni/iptables/extensions/libip6t_mh.man
similarity index 100%
rename from jni/iptables/extensions/libip6t_mh.man
rename to src/main/jni/iptables/extensions/libip6t_mh.man
diff --git a/jni/iptables/extensions/libip6t_rt.c b/src/main/jni/iptables/extensions/libip6t_rt.c
similarity index 100%
rename from jni/iptables/extensions/libip6t_rt.c
rename to src/main/jni/iptables/extensions/libip6t_rt.c
diff --git a/jni/iptables/extensions/libip6t_rt.man b/src/main/jni/iptables/extensions/libip6t_rt.man
similarity index 100%
rename from jni/iptables/extensions/libip6t_rt.man
rename to src/main/jni/iptables/extensions/libip6t_rt.man
diff --git a/jni/iptables/extensions/libipt_CLUSTERIP.c b/src/main/jni/iptables/extensions/libipt_CLUSTERIP.c
similarity index 100%
rename from jni/iptables/extensions/libipt_CLUSTERIP.c
rename to src/main/jni/iptables/extensions/libipt_CLUSTERIP.c
diff --git a/jni/iptables/extensions/libipt_CLUSTERIP.man b/src/main/jni/iptables/extensions/libipt_CLUSTERIP.man
similarity index 100%
rename from jni/iptables/extensions/libipt_CLUSTERIP.man
rename to src/main/jni/iptables/extensions/libipt_CLUSTERIP.man
diff --git a/jni/iptables/extensions/libipt_DNAT.c b/src/main/jni/iptables/extensions/libipt_DNAT.c
similarity index 100%
rename from jni/iptables/extensions/libipt_DNAT.c
rename to src/main/jni/iptables/extensions/libipt_DNAT.c
diff --git a/jni/iptables/extensions/libipt_DNAT.man b/src/main/jni/iptables/extensions/libipt_DNAT.man
similarity index 100%
rename from jni/iptables/extensions/libipt_DNAT.man
rename to src/main/jni/iptables/extensions/libipt_DNAT.man
diff --git a/jni/iptables/extensions/libipt_LOG.c b/src/main/jni/iptables/extensions/libipt_LOG.c
similarity index 100%
rename from jni/iptables/extensions/libipt_LOG.c
rename to src/main/jni/iptables/extensions/libipt_LOG.c
diff --git a/jni/iptables/extensions/libipt_LOG.man b/src/main/jni/iptables/extensions/libipt_LOG.man
similarity index 100%
rename from jni/iptables/extensions/libipt_LOG.man
rename to src/main/jni/iptables/extensions/libipt_LOG.man
diff --git a/jni/iptables/extensions/libipt_MASQUERADE.c b/src/main/jni/iptables/extensions/libipt_MASQUERADE.c
similarity index 100%
rename from jni/iptables/extensions/libipt_MASQUERADE.c
rename to src/main/jni/iptables/extensions/libipt_MASQUERADE.c
diff --git a/jni/iptables/extensions/libipt_MASQUERADE.man b/src/main/jni/iptables/extensions/libipt_MASQUERADE.man
similarity index 100%
rename from jni/iptables/extensions/libipt_MASQUERADE.man
rename to src/main/jni/iptables/extensions/libipt_MASQUERADE.man
diff --git a/jni/iptables/extensions/libipt_MIRROR.c b/src/main/jni/iptables/extensions/libipt_MIRROR.c
similarity index 100%
rename from jni/iptables/extensions/libipt_MIRROR.c
rename to src/main/jni/iptables/extensions/libipt_MIRROR.c
diff --git a/jni/iptables/extensions/libipt_MIRROR.man b/src/main/jni/iptables/extensions/libipt_MIRROR.man
similarity index 100%
rename from jni/iptables/extensions/libipt_MIRROR.man
rename to src/main/jni/iptables/extensions/libipt_MIRROR.man
diff --git a/jni/iptables/extensions/libipt_NETMAP.c b/src/main/jni/iptables/extensions/libipt_NETMAP.c
similarity index 100%
rename from jni/iptables/extensions/libipt_NETMAP.c
rename to src/main/jni/iptables/extensions/libipt_NETMAP.c
diff --git a/jni/iptables/extensions/libipt_NETMAP.man b/src/main/jni/iptables/extensions/libipt_NETMAP.man
similarity index 100%
rename from jni/iptables/extensions/libipt_NETMAP.man
rename to src/main/jni/iptables/extensions/libipt_NETMAP.man
diff --git a/jni/iptables/extensions/libipt_REDIRECT.c b/src/main/jni/iptables/extensions/libipt_REDIRECT.c
similarity index 100%
rename from jni/iptables/extensions/libipt_REDIRECT.c
rename to src/main/jni/iptables/extensions/libipt_REDIRECT.c
diff --git a/jni/iptables/extensions/libipt_REDIRECT.man b/src/main/jni/iptables/extensions/libipt_REDIRECT.man
similarity index 100%
rename from jni/iptables/extensions/libipt_REDIRECT.man
rename to src/main/jni/iptables/extensions/libipt_REDIRECT.man
diff --git a/jni/iptables/extensions/libipt_REJECT.c b/src/main/jni/iptables/extensions/libipt_REJECT.c
similarity index 100%
rename from jni/iptables/extensions/libipt_REJECT.c
rename to src/main/jni/iptables/extensions/libipt_REJECT.c
diff --git a/jni/iptables/extensions/libipt_REJECT.man b/src/main/jni/iptables/extensions/libipt_REJECT.man
similarity index 100%
rename from jni/iptables/extensions/libipt_REJECT.man
rename to src/main/jni/iptables/extensions/libipt_REJECT.man
diff --git a/jni/iptables/extensions/libipt_SAME.c b/src/main/jni/iptables/extensions/libipt_SAME.c
similarity index 100%
rename from jni/iptables/extensions/libipt_SAME.c
rename to src/main/jni/iptables/extensions/libipt_SAME.c
diff --git a/jni/iptables/extensions/libipt_SAME.man b/src/main/jni/iptables/extensions/libipt_SAME.man
similarity index 100%
rename from jni/iptables/extensions/libipt_SAME.man
rename to src/main/jni/iptables/extensions/libipt_SAME.man
diff --git a/jni/iptables/extensions/libipt_SNAT.c b/src/main/jni/iptables/extensions/libipt_SNAT.c
similarity index 100%
rename from jni/iptables/extensions/libipt_SNAT.c
rename to src/main/jni/iptables/extensions/libipt_SNAT.c
diff --git a/jni/iptables/extensions/libipt_SNAT.man b/src/main/jni/iptables/extensions/libipt_SNAT.man
similarity index 100%
rename from jni/iptables/extensions/libipt_SNAT.man
rename to src/main/jni/iptables/extensions/libipt_SNAT.man
diff --git a/jni/iptables/extensions/libipt_ULOG.c b/src/main/jni/iptables/extensions/libipt_ULOG.c
similarity index 100%
rename from jni/iptables/extensions/libipt_ULOG.c
rename to src/main/jni/iptables/extensions/libipt_ULOG.c
diff --git a/jni/iptables/extensions/libipt_ULOG.man b/src/main/jni/iptables/extensions/libipt_ULOG.man
similarity index 100%
rename from jni/iptables/extensions/libipt_ULOG.man
rename to src/main/jni/iptables/extensions/libipt_ULOG.man
diff --git a/jni/iptables/extensions/libipt_addrtype.c b/src/main/jni/iptables/extensions/libipt_addrtype.c
similarity index 100%
rename from jni/iptables/extensions/libipt_addrtype.c
rename to src/main/jni/iptables/extensions/libipt_addrtype.c
diff --git a/jni/iptables/extensions/libipt_addrtype.man b/src/main/jni/iptables/extensions/libipt_addrtype.man
similarity index 100%
rename from jni/iptables/extensions/libipt_addrtype.man
rename to src/main/jni/iptables/extensions/libipt_addrtype.man
diff --git a/jni/iptables/extensions/libipt_ah.c b/src/main/jni/iptables/extensions/libipt_ah.c
similarity index 100%
rename from jni/iptables/extensions/libipt_ah.c
rename to src/main/jni/iptables/extensions/libipt_ah.c
diff --git a/jni/iptables/extensions/libipt_ah.man b/src/main/jni/iptables/extensions/libipt_ah.man
similarity index 100%
rename from jni/iptables/extensions/libipt_ah.man
rename to src/main/jni/iptables/extensions/libipt_ah.man
diff --git a/jni/iptables/extensions/libipt_ecn.c b/src/main/jni/iptables/extensions/libipt_ecn.c
similarity index 100%
rename from jni/iptables/extensions/libipt_ecn.c
rename to src/main/jni/iptables/extensions/libipt_ecn.c
diff --git a/jni/iptables/extensions/libipt_ecn.man b/src/main/jni/iptables/extensions/libipt_ecn.man
similarity index 100%
rename from jni/iptables/extensions/libipt_ecn.man
rename to src/main/jni/iptables/extensions/libipt_ecn.man
diff --git a/jni/iptables/extensions/libipt_icmp.c b/src/main/jni/iptables/extensions/libipt_icmp.c
similarity index 100%
rename from jni/iptables/extensions/libipt_icmp.c
rename to src/main/jni/iptables/extensions/libipt_icmp.c
diff --git a/jni/iptables/extensions/libipt_icmp.man b/src/main/jni/iptables/extensions/libipt_icmp.man
similarity index 100%
rename from jni/iptables/extensions/libipt_icmp.man
rename to src/main/jni/iptables/extensions/libipt_icmp.man
diff --git a/jni/iptables/extensions/libipt_realm.c b/src/main/jni/iptables/extensions/libipt_realm.c
similarity index 100%
rename from jni/iptables/extensions/libipt_realm.c
rename to src/main/jni/iptables/extensions/libipt_realm.c
diff --git a/jni/iptables/extensions/libipt_realm.man b/src/main/jni/iptables/extensions/libipt_realm.man
similarity index 100%
rename from jni/iptables/extensions/libipt_realm.man
rename to src/main/jni/iptables/extensions/libipt_realm.man
diff --git a/jni/iptables/extensions/libipt_ttl.c b/src/main/jni/iptables/extensions/libipt_ttl.c
similarity index 100%
rename from jni/iptables/extensions/libipt_ttl.c
rename to src/main/jni/iptables/extensions/libipt_ttl.c
diff --git a/jni/iptables/extensions/libipt_ttl.man b/src/main/jni/iptables/extensions/libipt_ttl.man
similarity index 100%
rename from jni/iptables/extensions/libipt_ttl.man
rename to src/main/jni/iptables/extensions/libipt_ttl.man
diff --git a/jni/iptables/extensions/libipt_unclean.c b/src/main/jni/iptables/extensions/libipt_unclean.c
similarity index 100%
rename from jni/iptables/extensions/libipt_unclean.c
rename to src/main/jni/iptables/extensions/libipt_unclean.c
diff --git a/jni/iptables/extensions/libipt_unclean.man b/src/main/jni/iptables/extensions/libipt_unclean.man
similarity index 100%
rename from jni/iptables/extensions/libipt_unclean.man
rename to src/main/jni/iptables/extensions/libipt_unclean.man
diff --git a/jni/iptables/extensions/libxt_AUDIT.c b/src/main/jni/iptables/extensions/libxt_AUDIT.c
similarity index 100%
rename from jni/iptables/extensions/libxt_AUDIT.c
rename to src/main/jni/iptables/extensions/libxt_AUDIT.c
diff --git a/jni/iptables/extensions/libxt_AUDIT.man b/src/main/jni/iptables/extensions/libxt_AUDIT.man
similarity index 100%
rename from jni/iptables/extensions/libxt_AUDIT.man
rename to src/main/jni/iptables/extensions/libxt_AUDIT.man
diff --git a/jni/iptables/extensions/libxt_CHECKSUM.c b/src/main/jni/iptables/extensions/libxt_CHECKSUM.c
similarity index 100%
rename from jni/iptables/extensions/libxt_CHECKSUM.c
rename to src/main/jni/iptables/extensions/libxt_CHECKSUM.c
diff --git a/jni/iptables/extensions/libxt_CHECKSUM.man b/src/main/jni/iptables/extensions/libxt_CHECKSUM.man
similarity index 100%
rename from jni/iptables/extensions/libxt_CHECKSUM.man
rename to src/main/jni/iptables/extensions/libxt_CHECKSUM.man
diff --git a/jni/iptables/extensions/libxt_CLASSIFY.c b/src/main/jni/iptables/extensions/libxt_CLASSIFY.c
similarity index 100%
rename from jni/iptables/extensions/libxt_CLASSIFY.c
rename to src/main/jni/iptables/extensions/libxt_CLASSIFY.c
diff --git a/jni/iptables/extensions/libxt_CLASSIFY.man b/src/main/jni/iptables/extensions/libxt_CLASSIFY.man
similarity index 100%
rename from jni/iptables/extensions/libxt_CLASSIFY.man
rename to src/main/jni/iptables/extensions/libxt_CLASSIFY.man
diff --git a/jni/iptables/extensions/libxt_CONNSECMARK.c b/src/main/jni/iptables/extensions/libxt_CONNSECMARK.c
similarity index 100%
rename from jni/iptables/extensions/libxt_CONNSECMARK.c
rename to src/main/jni/iptables/extensions/libxt_CONNSECMARK.c
diff --git a/jni/iptables/extensions/libxt_CONNSECMARK.man b/src/main/jni/iptables/extensions/libxt_CONNSECMARK.man
similarity index 100%
rename from jni/iptables/extensions/libxt_CONNSECMARK.man
rename to src/main/jni/iptables/extensions/libxt_CONNSECMARK.man
diff --git a/jni/iptables/extensions/libxt_CT.c b/src/main/jni/iptables/extensions/libxt_CT.c
similarity index 100%
rename from jni/iptables/extensions/libxt_CT.c
rename to src/main/jni/iptables/extensions/libxt_CT.c
diff --git a/jni/iptables/extensions/libxt_CT.man b/src/main/jni/iptables/extensions/libxt_CT.man
similarity index 100%
rename from jni/iptables/extensions/libxt_CT.man
rename to src/main/jni/iptables/extensions/libxt_CT.man
diff --git a/jni/iptables/extensions/libxt_IDLETIMER.c b/src/main/jni/iptables/extensions/libxt_IDLETIMER.c
similarity index 100%
rename from jni/iptables/extensions/libxt_IDLETIMER.c
rename to src/main/jni/iptables/extensions/libxt_IDLETIMER.c
diff --git a/jni/iptables/extensions/libxt_IDLETIMER.man b/src/main/jni/iptables/extensions/libxt_IDLETIMER.man
similarity index 100%
rename from jni/iptables/extensions/libxt_IDLETIMER.man
rename to src/main/jni/iptables/extensions/libxt_IDLETIMER.man
diff --git a/jni/iptables/extensions/libxt_LED.c b/src/main/jni/iptables/extensions/libxt_LED.c
similarity index 100%
rename from jni/iptables/extensions/libxt_LED.c
rename to src/main/jni/iptables/extensions/libxt_LED.c
diff --git a/jni/iptables/extensions/libxt_LED.man b/src/main/jni/iptables/extensions/libxt_LED.man
similarity index 100%
rename from jni/iptables/extensions/libxt_LED.man
rename to src/main/jni/iptables/extensions/libxt_LED.man
diff --git a/jni/iptables/extensions/libxt_NFLOG.c b/src/main/jni/iptables/extensions/libxt_NFLOG.c
similarity index 100%
rename from jni/iptables/extensions/libxt_NFLOG.c
rename to src/main/jni/iptables/extensions/libxt_NFLOG.c
diff --git a/jni/iptables/extensions/libxt_NFLOG.man b/src/main/jni/iptables/extensions/libxt_NFLOG.man
similarity index 100%
rename from jni/iptables/extensions/libxt_NFLOG.man
rename to src/main/jni/iptables/extensions/libxt_NFLOG.man
diff --git a/jni/iptables/extensions/libxt_NFQUEUE.c b/src/main/jni/iptables/extensions/libxt_NFQUEUE.c
similarity index 100%
rename from jni/iptables/extensions/libxt_NFQUEUE.c
rename to src/main/jni/iptables/extensions/libxt_NFQUEUE.c
diff --git a/jni/iptables/extensions/libxt_NFQUEUE.man b/src/main/jni/iptables/extensions/libxt_NFQUEUE.man
similarity index 100%
rename from jni/iptables/extensions/libxt_NFQUEUE.man
rename to src/main/jni/iptables/extensions/libxt_NFQUEUE.man
diff --git a/jni/iptables/extensions/libxt_NOTRACK.c b/src/main/jni/iptables/extensions/libxt_NOTRACK.c
similarity index 100%
rename from jni/iptables/extensions/libxt_NOTRACK.c
rename to src/main/jni/iptables/extensions/libxt_NOTRACK.c
diff --git a/jni/iptables/extensions/libxt_NOTRACK.man b/src/main/jni/iptables/extensions/libxt_NOTRACK.man
similarity index 100%
rename from jni/iptables/extensions/libxt_NOTRACK.man
rename to src/main/jni/iptables/extensions/libxt_NOTRACK.man
diff --git a/jni/iptables/extensions/libxt_SECMARK.c b/src/main/jni/iptables/extensions/libxt_SECMARK.c
similarity index 100%
rename from jni/iptables/extensions/libxt_SECMARK.c
rename to src/main/jni/iptables/extensions/libxt_SECMARK.c
diff --git a/jni/iptables/extensions/libxt_SECMARK.man b/src/main/jni/iptables/extensions/libxt_SECMARK.man
similarity index 100%
rename from jni/iptables/extensions/libxt_SECMARK.man
rename to src/main/jni/iptables/extensions/libxt_SECMARK.man
diff --git a/jni/iptables/extensions/libxt_TCPOPTSTRIP.c b/src/main/jni/iptables/extensions/libxt_TCPOPTSTRIP.c
similarity index 100%
rename from jni/iptables/extensions/libxt_TCPOPTSTRIP.c
rename to src/main/jni/iptables/extensions/libxt_TCPOPTSTRIP.c
diff --git a/jni/iptables/extensions/libxt_TCPOPTSTRIP.man b/src/main/jni/iptables/extensions/libxt_TCPOPTSTRIP.man
similarity index 100%
rename from jni/iptables/extensions/libxt_TCPOPTSTRIP.man
rename to src/main/jni/iptables/extensions/libxt_TCPOPTSTRIP.man
diff --git a/jni/iptables/extensions/libxt_TEE.c b/src/main/jni/iptables/extensions/libxt_TEE.c
similarity index 100%
rename from jni/iptables/extensions/libxt_TEE.c
rename to src/main/jni/iptables/extensions/libxt_TEE.c
diff --git a/jni/iptables/extensions/libxt_TEE.man b/src/main/jni/iptables/extensions/libxt_TEE.man
similarity index 100%
rename from jni/iptables/extensions/libxt_TEE.man
rename to src/main/jni/iptables/extensions/libxt_TEE.man
diff --git a/jni/iptables/extensions/libxt_TPROXY.c b/src/main/jni/iptables/extensions/libxt_TPROXY.c
similarity index 100%
rename from jni/iptables/extensions/libxt_TPROXY.c
rename to src/main/jni/iptables/extensions/libxt_TPROXY.c
diff --git a/jni/iptables/extensions/libxt_TPROXY.man b/src/main/jni/iptables/extensions/libxt_TPROXY.man
similarity index 100%
rename from jni/iptables/extensions/libxt_TPROXY.man
rename to src/main/jni/iptables/extensions/libxt_TPROXY.man
diff --git a/jni/iptables/extensions/libxt_TRACE.c b/src/main/jni/iptables/extensions/libxt_TRACE.c
similarity index 100%
rename from jni/iptables/extensions/libxt_TRACE.c
rename to src/main/jni/iptables/extensions/libxt_TRACE.c
diff --git a/jni/iptables/extensions/libxt_TRACE.man b/src/main/jni/iptables/extensions/libxt_TRACE.man
similarity index 100%
rename from jni/iptables/extensions/libxt_TRACE.man
rename to src/main/jni/iptables/extensions/libxt_TRACE.man
diff --git a/jni/iptables/extensions/libxt_cluster.c b/src/main/jni/iptables/extensions/libxt_cluster.c
similarity index 100%
rename from jni/iptables/extensions/libxt_cluster.c
rename to src/main/jni/iptables/extensions/libxt_cluster.c
diff --git a/jni/iptables/extensions/libxt_cluster.man b/src/main/jni/iptables/extensions/libxt_cluster.man
similarity index 100%
rename from jni/iptables/extensions/libxt_cluster.man
rename to src/main/jni/iptables/extensions/libxt_cluster.man
diff --git a/jni/iptables/extensions/libxt_comment.c b/src/main/jni/iptables/extensions/libxt_comment.c
similarity index 100%
rename from jni/iptables/extensions/libxt_comment.c
rename to src/main/jni/iptables/extensions/libxt_comment.c
diff --git a/jni/iptables/extensions/libxt_comment.man b/src/main/jni/iptables/extensions/libxt_comment.man
similarity index 100%
rename from jni/iptables/extensions/libxt_comment.man
rename to src/main/jni/iptables/extensions/libxt_comment.man
diff --git a/jni/iptables/extensions/libxt_connbytes.c b/src/main/jni/iptables/extensions/libxt_connbytes.c
similarity index 100%
rename from jni/iptables/extensions/libxt_connbytes.c
rename to src/main/jni/iptables/extensions/libxt_connbytes.c
diff --git a/jni/iptables/extensions/libxt_connbytes.man b/src/main/jni/iptables/extensions/libxt_connbytes.man
similarity index 100%
rename from jni/iptables/extensions/libxt_connbytes.man
rename to src/main/jni/iptables/extensions/libxt_connbytes.man
diff --git a/jni/iptables/extensions/libxt_connlimit.c b/src/main/jni/iptables/extensions/libxt_connlimit.c
similarity index 100%
rename from jni/iptables/extensions/libxt_connlimit.c
rename to src/main/jni/iptables/extensions/libxt_connlimit.c
diff --git a/jni/iptables/extensions/libxt_connlimit.man b/src/main/jni/iptables/extensions/libxt_connlimit.man
similarity index 100%
rename from jni/iptables/extensions/libxt_connlimit.man
rename to src/main/jni/iptables/extensions/libxt_connlimit.man
diff --git a/jni/iptables/extensions/libxt_connmark.c b/src/main/jni/iptables/extensions/libxt_connmark.c
similarity index 100%
rename from jni/iptables/extensions/libxt_connmark.c
rename to src/main/jni/iptables/extensions/libxt_connmark.c
diff --git a/jni/iptables/extensions/libxt_connmark.man b/src/main/jni/iptables/extensions/libxt_connmark.man
similarity index 100%
rename from jni/iptables/extensions/libxt_connmark.man
rename to src/main/jni/iptables/extensions/libxt_connmark.man
diff --git a/jni/iptables/extensions/libxt_conntrack.c b/src/main/jni/iptables/extensions/libxt_conntrack.c
similarity index 100%
rename from jni/iptables/extensions/libxt_conntrack.c
rename to src/main/jni/iptables/extensions/libxt_conntrack.c
diff --git a/jni/iptables/extensions/libxt_conntrack.man b/src/main/jni/iptables/extensions/libxt_conntrack.man
similarity index 100%
rename from jni/iptables/extensions/libxt_conntrack.man
rename to src/main/jni/iptables/extensions/libxt_conntrack.man
diff --git a/jni/iptables/extensions/libxt_cpu.c b/src/main/jni/iptables/extensions/libxt_cpu.c
similarity index 100%
rename from jni/iptables/extensions/libxt_cpu.c
rename to src/main/jni/iptables/extensions/libxt_cpu.c
diff --git a/jni/iptables/extensions/libxt_cpu.man b/src/main/jni/iptables/extensions/libxt_cpu.man
similarity index 100%
rename from jni/iptables/extensions/libxt_cpu.man
rename to src/main/jni/iptables/extensions/libxt_cpu.man
diff --git a/jni/iptables/extensions/libxt_dccp.c b/src/main/jni/iptables/extensions/libxt_dccp.c
similarity index 100%
rename from jni/iptables/extensions/libxt_dccp.c
rename to src/main/jni/iptables/extensions/libxt_dccp.c
diff --git a/jni/iptables/extensions/libxt_dccp.man b/src/main/jni/iptables/extensions/libxt_dccp.man
similarity index 100%
rename from jni/iptables/extensions/libxt_dccp.man
rename to src/main/jni/iptables/extensions/libxt_dccp.man
diff --git a/jni/iptables/extensions/libxt_devgroup.c b/src/main/jni/iptables/extensions/libxt_devgroup.c
similarity index 100%
rename from jni/iptables/extensions/libxt_devgroup.c
rename to src/main/jni/iptables/extensions/libxt_devgroup.c
diff --git a/jni/iptables/extensions/libxt_dscp.c b/src/main/jni/iptables/extensions/libxt_dscp.c
similarity index 100%
rename from jni/iptables/extensions/libxt_dscp.c
rename to src/main/jni/iptables/extensions/libxt_dscp.c
diff --git a/jni/iptables/extensions/libxt_dscp.man b/src/main/jni/iptables/extensions/libxt_dscp.man
similarity index 100%
rename from jni/iptables/extensions/libxt_dscp.man
rename to src/main/jni/iptables/extensions/libxt_dscp.man
diff --git a/jni/iptables/extensions/libxt_esp.c b/src/main/jni/iptables/extensions/libxt_esp.c
similarity index 100%
rename from jni/iptables/extensions/libxt_esp.c
rename to src/main/jni/iptables/extensions/libxt_esp.c
diff --git a/jni/iptables/extensions/libxt_esp.man b/src/main/jni/iptables/extensions/libxt_esp.man
similarity index 100%
rename from jni/iptables/extensions/libxt_esp.man
rename to src/main/jni/iptables/extensions/libxt_esp.man
diff --git a/jni/iptables/extensions/libxt_hashlimit.c b/src/main/jni/iptables/extensions/libxt_hashlimit.c
similarity index 100%
rename from jni/iptables/extensions/libxt_hashlimit.c
rename to src/main/jni/iptables/extensions/libxt_hashlimit.c
diff --git a/jni/iptables/extensions/libxt_hashlimit.man b/src/main/jni/iptables/extensions/libxt_hashlimit.man
similarity index 100%
rename from jni/iptables/extensions/libxt_hashlimit.man
rename to src/main/jni/iptables/extensions/libxt_hashlimit.man
diff --git a/jni/iptables/extensions/libxt_helper.c b/src/main/jni/iptables/extensions/libxt_helper.c
similarity index 100%
rename from jni/iptables/extensions/libxt_helper.c
rename to src/main/jni/iptables/extensions/libxt_helper.c
diff --git a/jni/iptables/extensions/libxt_helper.man b/src/main/jni/iptables/extensions/libxt_helper.man
similarity index 100%
rename from jni/iptables/extensions/libxt_helper.man
rename to src/main/jni/iptables/extensions/libxt_helper.man
diff --git a/jni/iptables/extensions/libxt_iprange.c b/src/main/jni/iptables/extensions/libxt_iprange.c
similarity index 100%
rename from jni/iptables/extensions/libxt_iprange.c
rename to src/main/jni/iptables/extensions/libxt_iprange.c
diff --git a/jni/iptables/extensions/libxt_iprange.man b/src/main/jni/iptables/extensions/libxt_iprange.man
similarity index 100%
rename from jni/iptables/extensions/libxt_iprange.man
rename to src/main/jni/iptables/extensions/libxt_iprange.man
diff --git a/jni/iptables/extensions/libxt_ipvs.c b/src/main/jni/iptables/extensions/libxt_ipvs.c
similarity index 100%
rename from jni/iptables/extensions/libxt_ipvs.c
rename to src/main/jni/iptables/extensions/libxt_ipvs.c
diff --git a/jni/iptables/extensions/libxt_ipvs.man b/src/main/jni/iptables/extensions/libxt_ipvs.man
similarity index 100%
rename from jni/iptables/extensions/libxt_ipvs.man
rename to src/main/jni/iptables/extensions/libxt_ipvs.man
diff --git a/jni/iptables/extensions/libxt_length.c b/src/main/jni/iptables/extensions/libxt_length.c
similarity index 100%
rename from jni/iptables/extensions/libxt_length.c
rename to src/main/jni/iptables/extensions/libxt_length.c
diff --git a/jni/iptables/extensions/libxt_length.man b/src/main/jni/iptables/extensions/libxt_length.man
similarity index 100%
rename from jni/iptables/extensions/libxt_length.man
rename to src/main/jni/iptables/extensions/libxt_length.man
diff --git a/jni/iptables/extensions/libxt_limit.c b/src/main/jni/iptables/extensions/libxt_limit.c
similarity index 100%
rename from jni/iptables/extensions/libxt_limit.c
rename to src/main/jni/iptables/extensions/libxt_limit.c
diff --git a/jni/iptables/extensions/libxt_limit.man b/src/main/jni/iptables/extensions/libxt_limit.man
similarity index 100%
rename from jni/iptables/extensions/libxt_limit.man
rename to src/main/jni/iptables/extensions/libxt_limit.man
diff --git a/jni/iptables/extensions/libxt_mac.c b/src/main/jni/iptables/extensions/libxt_mac.c
similarity index 100%
rename from jni/iptables/extensions/libxt_mac.c
rename to src/main/jni/iptables/extensions/libxt_mac.c
diff --git a/jni/iptables/extensions/libxt_mac.man b/src/main/jni/iptables/extensions/libxt_mac.man
similarity index 100%
rename from jni/iptables/extensions/libxt_mac.man
rename to src/main/jni/iptables/extensions/libxt_mac.man
diff --git a/jni/iptables/extensions/libxt_mark.c b/src/main/jni/iptables/extensions/libxt_mark.c
similarity index 100%
rename from jni/iptables/extensions/libxt_mark.c
rename to src/main/jni/iptables/extensions/libxt_mark.c
diff --git a/jni/iptables/extensions/libxt_mark.man b/src/main/jni/iptables/extensions/libxt_mark.man
similarity index 100%
rename from jni/iptables/extensions/libxt_mark.man
rename to src/main/jni/iptables/extensions/libxt_mark.man
diff --git a/jni/iptables/extensions/libxt_multiport.c b/src/main/jni/iptables/extensions/libxt_multiport.c
similarity index 100%
rename from jni/iptables/extensions/libxt_multiport.c
rename to src/main/jni/iptables/extensions/libxt_multiport.c
diff --git a/jni/iptables/extensions/libxt_multiport.man b/src/main/jni/iptables/extensions/libxt_multiport.man
similarity index 100%
rename from jni/iptables/extensions/libxt_multiport.man
rename to src/main/jni/iptables/extensions/libxt_multiport.man
diff --git a/jni/iptables/extensions/libxt_osf.c b/src/main/jni/iptables/extensions/libxt_osf.c
similarity index 100%
rename from jni/iptables/extensions/libxt_osf.c
rename to src/main/jni/iptables/extensions/libxt_osf.c
diff --git a/jni/iptables/extensions/libxt_osf.man b/src/main/jni/iptables/extensions/libxt_osf.man
similarity index 100%
rename from jni/iptables/extensions/libxt_osf.man
rename to src/main/jni/iptables/extensions/libxt_osf.man
diff --git a/jni/iptables/extensions/libxt_owner.c b/src/main/jni/iptables/extensions/libxt_owner.c
similarity index 100%
rename from jni/iptables/extensions/libxt_owner.c
rename to src/main/jni/iptables/extensions/libxt_owner.c
diff --git a/jni/iptables/extensions/libxt_owner.man b/src/main/jni/iptables/extensions/libxt_owner.man
similarity index 100%
rename from jni/iptables/extensions/libxt_owner.man
rename to src/main/jni/iptables/extensions/libxt_owner.man
diff --git a/jni/iptables/extensions/libxt_physdev.c b/src/main/jni/iptables/extensions/libxt_physdev.c
similarity index 100%
rename from jni/iptables/extensions/libxt_physdev.c
rename to src/main/jni/iptables/extensions/libxt_physdev.c
diff --git a/jni/iptables/extensions/libxt_physdev.man b/src/main/jni/iptables/extensions/libxt_physdev.man
similarity index 100%
rename from jni/iptables/extensions/libxt_physdev.man
rename to src/main/jni/iptables/extensions/libxt_physdev.man
diff --git a/jni/iptables/extensions/libxt_pkttype.c b/src/main/jni/iptables/extensions/libxt_pkttype.c
similarity index 100%
rename from jni/iptables/extensions/libxt_pkttype.c
rename to src/main/jni/iptables/extensions/libxt_pkttype.c
diff --git a/jni/iptables/extensions/libxt_pkttype.man b/src/main/jni/iptables/extensions/libxt_pkttype.man
similarity index 100%
rename from jni/iptables/extensions/libxt_pkttype.man
rename to src/main/jni/iptables/extensions/libxt_pkttype.man
diff --git a/jni/iptables/extensions/libxt_policy.c b/src/main/jni/iptables/extensions/libxt_policy.c
similarity index 100%
rename from jni/iptables/extensions/libxt_policy.c
rename to src/main/jni/iptables/extensions/libxt_policy.c
diff --git a/jni/iptables/extensions/libxt_policy.man b/src/main/jni/iptables/extensions/libxt_policy.man
similarity index 100%
rename from jni/iptables/extensions/libxt_policy.man
rename to src/main/jni/iptables/extensions/libxt_policy.man
diff --git a/jni/iptables/extensions/libxt_quota.c b/src/main/jni/iptables/extensions/libxt_quota.c
similarity index 100%
rename from jni/iptables/extensions/libxt_quota.c
rename to src/main/jni/iptables/extensions/libxt_quota.c
diff --git a/jni/iptables/extensions/libxt_quota.man b/src/main/jni/iptables/extensions/libxt_quota.man
similarity index 100%
rename from jni/iptables/extensions/libxt_quota.man
rename to src/main/jni/iptables/extensions/libxt_quota.man
diff --git a/jni/iptables/extensions/libxt_quota2.c b/src/main/jni/iptables/extensions/libxt_quota2.c
similarity index 100%
rename from jni/iptables/extensions/libxt_quota2.c
rename to src/main/jni/iptables/extensions/libxt_quota2.c
diff --git a/jni/iptables/extensions/libxt_quota2.man b/src/main/jni/iptables/extensions/libxt_quota2.man
similarity index 100%
rename from jni/iptables/extensions/libxt_quota2.man
rename to src/main/jni/iptables/extensions/libxt_quota2.man
diff --git a/jni/iptables/extensions/libxt_rateest.c b/src/main/jni/iptables/extensions/libxt_rateest.c
similarity index 100%
rename from jni/iptables/extensions/libxt_rateest.c
rename to src/main/jni/iptables/extensions/libxt_rateest.c
diff --git a/jni/iptables/extensions/libxt_rateest.man b/src/main/jni/iptables/extensions/libxt_rateest.man
similarity index 100%
rename from jni/iptables/extensions/libxt_rateest.man
rename to src/main/jni/iptables/extensions/libxt_rateest.man
diff --git a/jni/iptables/extensions/libxt_recent.c b/src/main/jni/iptables/extensions/libxt_recent.c
similarity index 100%
rename from jni/iptables/extensions/libxt_recent.c
rename to src/main/jni/iptables/extensions/libxt_recent.c
diff --git a/jni/iptables/extensions/libxt_recent.man b/src/main/jni/iptables/extensions/libxt_recent.man
similarity index 100%
rename from jni/iptables/extensions/libxt_recent.man
rename to src/main/jni/iptables/extensions/libxt_recent.man
diff --git a/jni/iptables/extensions/libxt_sctp.c b/src/main/jni/iptables/extensions/libxt_sctp.c
similarity index 100%
rename from jni/iptables/extensions/libxt_sctp.c
rename to src/main/jni/iptables/extensions/libxt_sctp.c
diff --git a/jni/iptables/extensions/libxt_sctp.man b/src/main/jni/iptables/extensions/libxt_sctp.man
similarity index 100%
rename from jni/iptables/extensions/libxt_sctp.man
rename to src/main/jni/iptables/extensions/libxt_sctp.man
diff --git a/jni/iptables/extensions/libxt_set.c b/src/main/jni/iptables/extensions/libxt_set.c
similarity index 100%
rename from jni/iptables/extensions/libxt_set.c
rename to src/main/jni/iptables/extensions/libxt_set.c
diff --git a/jni/iptables/extensions/libxt_set.h b/src/main/jni/iptables/extensions/libxt_set.h
similarity index 100%
rename from jni/iptables/extensions/libxt_set.h
rename to src/main/jni/iptables/extensions/libxt_set.h
diff --git a/jni/iptables/extensions/libxt_set.man b/src/main/jni/iptables/extensions/libxt_set.man
similarity index 100%
rename from jni/iptables/extensions/libxt_set.man
rename to src/main/jni/iptables/extensions/libxt_set.man
diff --git a/jni/iptables/extensions/libxt_socket.c b/src/main/jni/iptables/extensions/libxt_socket.c
similarity index 100%
rename from jni/iptables/extensions/libxt_socket.c
rename to src/main/jni/iptables/extensions/libxt_socket.c
diff --git a/jni/iptables/extensions/libxt_socket.man b/src/main/jni/iptables/extensions/libxt_socket.man
similarity index 100%
rename from jni/iptables/extensions/libxt_socket.man
rename to src/main/jni/iptables/extensions/libxt_socket.man
diff --git a/jni/iptables/extensions/libxt_standard.c b/src/main/jni/iptables/extensions/libxt_standard.c
similarity index 100%
rename from jni/iptables/extensions/libxt_standard.c
rename to src/main/jni/iptables/extensions/libxt_standard.c
diff --git a/jni/iptables/extensions/libxt_state.c b/src/main/jni/iptables/extensions/libxt_state.c
similarity index 100%
rename from jni/iptables/extensions/libxt_state.c
rename to src/main/jni/iptables/extensions/libxt_state.c
diff --git a/jni/iptables/extensions/libxt_state.man b/src/main/jni/iptables/extensions/libxt_state.man
similarity index 100%
rename from jni/iptables/extensions/libxt_state.man
rename to src/main/jni/iptables/extensions/libxt_state.man
diff --git a/jni/iptables/extensions/libxt_statistic.c b/src/main/jni/iptables/extensions/libxt_statistic.c
similarity index 100%
rename from jni/iptables/extensions/libxt_statistic.c
rename to src/main/jni/iptables/extensions/libxt_statistic.c
diff --git a/jni/iptables/extensions/libxt_statistic.man b/src/main/jni/iptables/extensions/libxt_statistic.man
similarity index 100%
rename from jni/iptables/extensions/libxt_statistic.man
rename to src/main/jni/iptables/extensions/libxt_statistic.man
diff --git a/jni/iptables/extensions/libxt_string.c b/src/main/jni/iptables/extensions/libxt_string.c
similarity index 100%
rename from jni/iptables/extensions/libxt_string.c
rename to src/main/jni/iptables/extensions/libxt_string.c
diff --git a/jni/iptables/extensions/libxt_string.man b/src/main/jni/iptables/extensions/libxt_string.man
similarity index 100%
rename from jni/iptables/extensions/libxt_string.man
rename to src/main/jni/iptables/extensions/libxt_string.man
diff --git a/jni/iptables/extensions/libxt_tcp.c b/src/main/jni/iptables/extensions/libxt_tcp.c
similarity index 100%
rename from jni/iptables/extensions/libxt_tcp.c
rename to src/main/jni/iptables/extensions/libxt_tcp.c
diff --git a/jni/iptables/extensions/libxt_tcp.man b/src/main/jni/iptables/extensions/libxt_tcp.man
similarity index 100%
rename from jni/iptables/extensions/libxt_tcp.man
rename to src/main/jni/iptables/extensions/libxt_tcp.man
diff --git a/jni/iptables/extensions/libxt_tcpmss.c b/src/main/jni/iptables/extensions/libxt_tcpmss.c
similarity index 100%
rename from jni/iptables/extensions/libxt_tcpmss.c
rename to src/main/jni/iptables/extensions/libxt_tcpmss.c
diff --git a/jni/iptables/extensions/libxt_tcpmss.man b/src/main/jni/iptables/extensions/libxt_tcpmss.man
similarity index 100%
rename from jni/iptables/extensions/libxt_tcpmss.man
rename to src/main/jni/iptables/extensions/libxt_tcpmss.man
diff --git a/jni/iptables/extensions/libxt_time.c b/src/main/jni/iptables/extensions/libxt_time.c
similarity index 100%
rename from jni/iptables/extensions/libxt_time.c
rename to src/main/jni/iptables/extensions/libxt_time.c
diff --git a/jni/iptables/extensions/libxt_time.man b/src/main/jni/iptables/extensions/libxt_time.man
similarity index 100%
rename from jni/iptables/extensions/libxt_time.man
rename to src/main/jni/iptables/extensions/libxt_time.man
diff --git a/jni/iptables/extensions/libxt_tos.c b/src/main/jni/iptables/extensions/libxt_tos.c
similarity index 100%
rename from jni/iptables/extensions/libxt_tos.c
rename to src/main/jni/iptables/extensions/libxt_tos.c
diff --git a/jni/iptables/extensions/libxt_tos.man b/src/main/jni/iptables/extensions/libxt_tos.man
similarity index 100%
rename from jni/iptables/extensions/libxt_tos.man
rename to src/main/jni/iptables/extensions/libxt_tos.man
diff --git a/jni/iptables/extensions/libxt_u32.c b/src/main/jni/iptables/extensions/libxt_u32.c
similarity index 100%
rename from jni/iptables/extensions/libxt_u32.c
rename to src/main/jni/iptables/extensions/libxt_u32.c
diff --git a/jni/iptables/extensions/libxt_u32.man b/src/main/jni/iptables/extensions/libxt_u32.man
similarity index 100%
rename from jni/iptables/extensions/libxt_u32.man
rename to src/main/jni/iptables/extensions/libxt_u32.man
diff --git a/jni/iptables/extensions/libxt_udp.c b/src/main/jni/iptables/extensions/libxt_udp.c
similarity index 100%
rename from jni/iptables/extensions/libxt_udp.c
rename to src/main/jni/iptables/extensions/libxt_udp.c
diff --git a/jni/iptables/extensions/libxt_udp.man b/src/main/jni/iptables/extensions/libxt_udp.man
similarity index 100%
rename from jni/iptables/extensions/libxt_udp.man
rename to src/main/jni/iptables/extensions/libxt_udp.man
diff --git a/jni/iptables/extensions/tos_values.c b/src/main/jni/iptables/extensions/tos_values.c
similarity index 100%
rename from jni/iptables/extensions/tos_values.c
rename to src/main/jni/iptables/extensions/tos_values.c
diff --git a/jni/iptables/include/Makefile.am b/src/main/jni/iptables/include/Makefile.am
similarity index 100%
rename from jni/iptables/include/Makefile.am
rename to src/main/jni/iptables/include/Makefile.am
diff --git a/jni/iptables/include/ip6tables.h b/src/main/jni/iptables/include/ip6tables.h
similarity index 100%
rename from jni/iptables/include/ip6tables.h
rename to src/main/jni/iptables/include/ip6tables.h
diff --git a/jni/iptables/include/iptables.h b/src/main/jni/iptables/include/iptables.h
similarity index 100%
rename from jni/iptables/include/iptables.h
rename to src/main/jni/iptables/include/iptables.h
diff --git a/jni/iptables/include/iptables/internal.h b/src/main/jni/iptables/include/iptables/internal.h
similarity index 100%
rename from jni/iptables/include/iptables/internal.h
rename to src/main/jni/iptables/include/iptables/internal.h
diff --git a/jni/iptables/include/iptables/internal.h.in b/src/main/jni/iptables/include/iptables/internal.h.in
similarity index 100%
rename from jni/iptables/include/iptables/internal.h.in
rename to src/main/jni/iptables/include/iptables/internal.h.in
diff --git a/jni/iptables/include/libipq/libipq.h b/src/main/jni/iptables/include/libipq/libipq.h
similarity index 100%
rename from jni/iptables/include/libipq/libipq.h
rename to src/main/jni/iptables/include/libipq/libipq.h
diff --git a/jni/iptables/include/libiptc/ipt_kernel_headers.h b/src/main/jni/iptables/include/libiptc/ipt_kernel_headers.h
similarity index 100%
rename from jni/iptables/include/libiptc/ipt_kernel_headers.h
rename to src/main/jni/iptables/include/libiptc/ipt_kernel_headers.h
diff --git a/jni/iptables/include/libiptc/libip6tc.h b/src/main/jni/iptables/include/libiptc/libip6tc.h
similarity index 100%
rename from jni/iptables/include/libiptc/libip6tc.h
rename to src/main/jni/iptables/include/libiptc/libip6tc.h
diff --git a/jni/iptables/include/libiptc/libiptc.h b/src/main/jni/iptables/include/libiptc/libiptc.h
similarity index 100%
rename from jni/iptables/include/libiptc/libiptc.h
rename to src/main/jni/iptables/include/libiptc/libiptc.h
diff --git a/jni/iptables/include/libiptc/libxtc.h b/src/main/jni/iptables/include/libiptc/libxtc.h
similarity index 100%
rename from jni/iptables/include/libiptc/libxtc.h
rename to src/main/jni/iptables/include/libiptc/libxtc.h
diff --git a/jni/iptables/include/libipulog/libipulog.h b/src/main/jni/iptables/include/libipulog/libipulog.h
similarity index 100%
rename from jni/iptables/include/libipulog/libipulog.h
rename to src/main/jni/iptables/include/libipulog/libipulog.h
diff --git a/jni/iptables/include/linux/kernel.h b/src/main/jni/iptables/include/linux/kernel.h
similarity index 100%
rename from jni/iptables/include/linux/kernel.h
rename to src/main/jni/iptables/include/linux/kernel.h
diff --git a/jni/iptables/include/linux/netfilter.h b/src/main/jni/iptables/include/linux/netfilter.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter.h
rename to src/main/jni/iptables/include/linux/netfilter.h
diff --git a/jni/iptables/include/linux/netfilter/nf_conntrack_common.h b/src/main/jni/iptables/include/linux/netfilter/nf_conntrack_common.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/nf_conntrack_common.h
rename to src/main/jni/iptables/include/linux/netfilter/nf_conntrack_common.h
diff --git a/jni/iptables/include/linux/netfilter/nf_conntrack_tuple_common.h b/src/main/jni/iptables/include/linux/netfilter/nf_conntrack_tuple_common.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/nf_conntrack_tuple_common.h
rename to src/main/jni/iptables/include/linux/netfilter/nf_conntrack_tuple_common.h
diff --git a/jni/iptables/include/linux/netfilter/x_tables.h b/src/main/jni/iptables/include/linux/netfilter/x_tables.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/x_tables.h
rename to src/main/jni/iptables/include/linux/netfilter/x_tables.h
diff --git a/jni/iptables/include/linux/netfilter/xt_AUDIT.h b/src/main/jni/iptables/include/linux/netfilter/xt_AUDIT.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_AUDIT.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_AUDIT.h
diff --git a/jni/iptables/include/linux/netfilter/xt_CHECKSUM.h b/src/main/jni/iptables/include/linux/netfilter/xt_CHECKSUM.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_CHECKSUM.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_CHECKSUM.h
diff --git a/jni/iptables/include/linux/netfilter/xt_CLASSIFY.h b/src/main/jni/iptables/include/linux/netfilter/xt_CLASSIFY.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_CLASSIFY.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_CLASSIFY.h
diff --git a/jni/iptables/include/linux/netfilter/xt_CONNSECMARK.h b/src/main/jni/iptables/include/linux/netfilter/xt_CONNSECMARK.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_CONNSECMARK.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_CONNSECMARK.h
diff --git a/jni/iptables/include/linux/netfilter/xt_CT.h b/src/main/jni/iptables/include/linux/netfilter/xt_CT.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_CT.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_CT.h
diff --git a/jni/iptables/include/linux/netfilter/xt_IDLETIMER.h b/src/main/jni/iptables/include/linux/netfilter/xt_IDLETIMER.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_IDLETIMER.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_IDLETIMER.h
diff --git a/jni/iptables/include/linux/netfilter/xt_LED.h b/src/main/jni/iptables/include/linux/netfilter/xt_LED.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_LED.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_LED.h
diff --git a/jni/iptables/include/linux/netfilter/xt_NFLOG.h b/src/main/jni/iptables/include/linux/netfilter/xt_NFLOG.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_NFLOG.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_NFLOG.h
diff --git a/jni/iptables/include/linux/netfilter/xt_NFQUEUE.h b/src/main/jni/iptables/include/linux/netfilter/xt_NFQUEUE.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_NFQUEUE.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_NFQUEUE.h
diff --git a/jni/iptables/include/linux/netfilter/xt_SECMARK.h b/src/main/jni/iptables/include/linux/netfilter/xt_SECMARK.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_SECMARK.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_SECMARK.h
diff --git a/jni/iptables/include/linux/netfilter/xt_TCPOPTSTRIP.h b/src/main/jni/iptables/include/linux/netfilter/xt_TCPOPTSTRIP.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_TCPOPTSTRIP.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_TCPOPTSTRIP.h
diff --git a/jni/iptables/include/linux/netfilter/xt_TEE.h b/src/main/jni/iptables/include/linux/netfilter/xt_TEE.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_TEE.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_TEE.h
diff --git a/jni/iptables/include/linux/netfilter/xt_TPROXY.h b/src/main/jni/iptables/include/linux/netfilter/xt_TPROXY.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_TPROXY.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_TPROXY.h
diff --git a/jni/iptables/include/linux/netfilter/xt_cluster.h b/src/main/jni/iptables/include/linux/netfilter/xt_cluster.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_cluster.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_cluster.h
diff --git a/jni/iptables/include/linux/netfilter/xt_comment.h b/src/main/jni/iptables/include/linux/netfilter/xt_comment.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_comment.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_comment.h
diff --git a/jni/iptables/include/linux/netfilter/xt_connbytes.h b/src/main/jni/iptables/include/linux/netfilter/xt_connbytes.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_connbytes.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_connbytes.h
diff --git a/jni/iptables/include/linux/netfilter/xt_connlimit.h b/src/main/jni/iptables/include/linux/netfilter/xt_connlimit.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_connlimit.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_connlimit.h
diff --git a/jni/iptables/include/linux/netfilter/xt_connmark.h b/src/main/jni/iptables/include/linux/netfilter/xt_connmark.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_connmark.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_connmark.h
diff --git a/jni/iptables/include/linux/netfilter/xt_conntrack.h b/src/main/jni/iptables/include/linux/netfilter/xt_conntrack.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_conntrack.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_conntrack.h
diff --git a/jni/iptables/include/linux/netfilter/xt_cpu.h b/src/main/jni/iptables/include/linux/netfilter/xt_cpu.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_cpu.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_cpu.h
diff --git a/jni/iptables/include/linux/netfilter/xt_dccp.h b/src/main/jni/iptables/include/linux/netfilter/xt_dccp.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_dccp.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_dccp.h
diff --git a/jni/iptables/include/linux/netfilter/xt_devgroup.h b/src/main/jni/iptables/include/linux/netfilter/xt_devgroup.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_devgroup.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_devgroup.h
diff --git a/jni/iptables/include/linux/netfilter/xt_dscp.h b/src/main/jni/iptables/include/linux/netfilter/xt_dscp.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_dscp.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_dscp.h
diff --git a/jni/iptables/include/linux/netfilter/xt_esp.h b/src/main/jni/iptables/include/linux/netfilter/xt_esp.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_esp.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_esp.h
diff --git a/jni/iptables/include/linux/netfilter/xt_hashlimit.h b/src/main/jni/iptables/include/linux/netfilter/xt_hashlimit.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_hashlimit.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_hashlimit.h
diff --git a/jni/iptables/include/linux/netfilter/xt_helper.h b/src/main/jni/iptables/include/linux/netfilter/xt_helper.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_helper.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_helper.h
diff --git a/jni/iptables/include/linux/netfilter/xt_iprange.h b/src/main/jni/iptables/include/linux/netfilter/xt_iprange.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_iprange.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_iprange.h
diff --git a/jni/iptables/include/linux/netfilter/xt_ipvs.h b/src/main/jni/iptables/include/linux/netfilter/xt_ipvs.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_ipvs.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_ipvs.h
diff --git a/jni/iptables/include/linux/netfilter/xt_length.h b/src/main/jni/iptables/include/linux/netfilter/xt_length.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_length.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_length.h
diff --git a/jni/iptables/include/linux/netfilter/xt_limit.h b/src/main/jni/iptables/include/linux/netfilter/xt_limit.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_limit.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_limit.h
diff --git a/jni/iptables/include/linux/netfilter/xt_mac.h b/src/main/jni/iptables/include/linux/netfilter/xt_mac.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_mac.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_mac.h
diff --git a/jni/iptables/include/linux/netfilter/xt_mark.h b/src/main/jni/iptables/include/linux/netfilter/xt_mark.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_mark.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_mark.h
diff --git a/jni/iptables/include/linux/netfilter/xt_multiport.h b/src/main/jni/iptables/include/linux/netfilter/xt_multiport.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_multiport.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_multiport.h
diff --git a/jni/iptables/include/linux/netfilter/xt_osf.h b/src/main/jni/iptables/include/linux/netfilter/xt_osf.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_osf.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_osf.h
diff --git a/jni/iptables/include/linux/netfilter/xt_owner.h b/src/main/jni/iptables/include/linux/netfilter/xt_owner.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_owner.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_owner.h
diff --git a/jni/iptables/include/linux/netfilter/xt_physdev.h b/src/main/jni/iptables/include/linux/netfilter/xt_physdev.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_physdev.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_physdev.h
diff --git a/jni/iptables/include/linux/netfilter/xt_pkttype.h b/src/main/jni/iptables/include/linux/netfilter/xt_pkttype.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_pkttype.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_pkttype.h
diff --git a/jni/iptables/include/linux/netfilter/xt_policy.h b/src/main/jni/iptables/include/linux/netfilter/xt_policy.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_policy.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_policy.h
diff --git a/jni/iptables/include/linux/netfilter/xt_quota.h b/src/main/jni/iptables/include/linux/netfilter/xt_quota.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_quota.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_quota.h
diff --git a/jni/iptables/include/linux/netfilter/xt_quota2.h b/src/main/jni/iptables/include/linux/netfilter/xt_quota2.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_quota2.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_quota2.h
diff --git a/jni/iptables/include/linux/netfilter/xt_rateest.h b/src/main/jni/iptables/include/linux/netfilter/xt_rateest.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_rateest.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_rateest.h
diff --git a/jni/iptables/include/linux/netfilter/xt_realm.h b/src/main/jni/iptables/include/linux/netfilter/xt_realm.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_realm.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_realm.h
diff --git a/jni/iptables/include/linux/netfilter/xt_recent.h b/src/main/jni/iptables/include/linux/netfilter/xt_recent.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_recent.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_recent.h
diff --git a/jni/iptables/include/linux/netfilter/xt_sctp.h b/src/main/jni/iptables/include/linux/netfilter/xt_sctp.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_sctp.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_sctp.h
diff --git a/jni/iptables/include/linux/netfilter/xt_set.h b/src/main/jni/iptables/include/linux/netfilter/xt_set.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_set.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_set.h
diff --git a/jni/iptables/include/linux/netfilter/xt_socket.h b/src/main/jni/iptables/include/linux/netfilter/xt_socket.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_socket.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_socket.h
diff --git a/jni/iptables/include/linux/netfilter/xt_state.h b/src/main/jni/iptables/include/linux/netfilter/xt_state.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_state.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_state.h
diff --git a/jni/iptables/include/linux/netfilter/xt_statistic.h b/src/main/jni/iptables/include/linux/netfilter/xt_statistic.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_statistic.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_statistic.h
diff --git a/jni/iptables/include/linux/netfilter/xt_string.h b/src/main/jni/iptables/include/linux/netfilter/xt_string.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_string.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_string.h
diff --git a/jni/iptables/include/linux/netfilter/xt_tcpmss.h b/src/main/jni/iptables/include/linux/netfilter/xt_tcpmss.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_tcpmss.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_tcpmss.h
diff --git a/jni/iptables/include/linux/netfilter/xt_tcpudp.h b/src/main/jni/iptables/include/linux/netfilter/xt_tcpudp.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_tcpudp.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_tcpudp.h
diff --git a/jni/iptables/include/linux/netfilter/xt_time.h b/src/main/jni/iptables/include/linux/netfilter/xt_time.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_time.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_time.h
diff --git a/jni/iptables/include/linux/netfilter/xt_u32.h b/src/main/jni/iptables/include/linux/netfilter/xt_u32.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter/xt_u32.h
rename to src/main/jni/iptables/include/linux/netfilter/xt_u32.h
diff --git a/jni/iptables/include/linux/netfilter_ipv4.h b/src/main/jni/iptables/include/linux/netfilter_ipv4.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv4.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv4.h
diff --git a/jni/iptables/include/linux/netfilter_ipv4/ip_tables.h b/src/main/jni/iptables/include/linux/netfilter_ipv4/ip_tables.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv4/ip_tables.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv4/ip_tables.h
diff --git a/jni/iptables/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h b/src/main/jni/iptables/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
diff --git a/jni/iptables/include/linux/netfilter_ipv4/ipt_LOG.h b/src/main/jni/iptables/include/linux/netfilter_ipv4/ipt_LOG.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv4/ipt_LOG.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv4/ipt_LOG.h
diff --git a/jni/iptables/include/linux/netfilter_ipv4/ipt_REJECT.h b/src/main/jni/iptables/include/linux/netfilter_ipv4/ipt_REJECT.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv4/ipt_REJECT.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv4/ipt_REJECT.h
diff --git a/jni/iptables/include/linux/netfilter_ipv4/ipt_SAME.h b/src/main/jni/iptables/include/linux/netfilter_ipv4/ipt_SAME.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv4/ipt_SAME.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv4/ipt_SAME.h
diff --git a/jni/iptables/include/linux/netfilter_ipv4/ipt_ULOG.h b/src/main/jni/iptables/include/linux/netfilter_ipv4/ipt_ULOG.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv4/ipt_ULOG.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv4/ipt_ULOG.h
diff --git a/jni/iptables/include/linux/netfilter_ipv4/ipt_addrtype.h b/src/main/jni/iptables/include/linux/netfilter_ipv4/ipt_addrtype.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv4/ipt_addrtype.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv4/ipt_addrtype.h
diff --git a/jni/iptables/include/linux/netfilter_ipv4/ipt_ah.h b/src/main/jni/iptables/include/linux/netfilter_ipv4/ipt_ah.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv4/ipt_ah.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv4/ipt_ah.h
diff --git a/jni/iptables/include/linux/netfilter_ipv4/ipt_ecn.h b/src/main/jni/iptables/include/linux/netfilter_ipv4/ipt_ecn.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv4/ipt_ecn.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv4/ipt_ecn.h
diff --git a/jni/iptables/include/linux/netfilter_ipv4/ipt_realm.h b/src/main/jni/iptables/include/linux/netfilter_ipv4/ipt_realm.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv4/ipt_realm.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv4/ipt_realm.h
diff --git a/jni/iptables/include/linux/netfilter_ipv4/ipt_ttl.h b/src/main/jni/iptables/include/linux/netfilter_ipv4/ipt_ttl.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv4/ipt_ttl.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv4/ipt_ttl.h
diff --git a/jni/iptables/include/linux/netfilter_ipv6.h b/src/main/jni/iptables/include/linux/netfilter_ipv6.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv6.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv6.h
diff --git a/jni/iptables/include/linux/netfilter_ipv6/ip6_tables.h b/src/main/jni/iptables/include/linux/netfilter_ipv6/ip6_tables.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv6/ip6_tables.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv6/ip6_tables.h
diff --git a/jni/iptables/include/linux/netfilter_ipv6/ip6t_LOG.h b/src/main/jni/iptables/include/linux/netfilter_ipv6/ip6t_LOG.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv6/ip6t_LOG.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv6/ip6t_LOG.h
diff --git a/jni/iptables/include/linux/netfilter_ipv6/ip6t_REJECT.h b/src/main/jni/iptables/include/linux/netfilter_ipv6/ip6t_REJECT.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv6/ip6t_REJECT.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv6/ip6t_REJECT.h
diff --git a/jni/iptables/include/linux/netfilter_ipv6/ip6t_ah.h b/src/main/jni/iptables/include/linux/netfilter_ipv6/ip6t_ah.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv6/ip6t_ah.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv6/ip6t_ah.h
diff --git a/jni/iptables/include/linux/netfilter_ipv6/ip6t_frag.h b/src/main/jni/iptables/include/linux/netfilter_ipv6/ip6t_frag.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv6/ip6t_frag.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv6/ip6t_frag.h
diff --git a/jni/iptables/include/linux/netfilter_ipv6/ip6t_hl.h b/src/main/jni/iptables/include/linux/netfilter_ipv6/ip6t_hl.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv6/ip6t_hl.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv6/ip6t_hl.h
diff --git a/jni/iptables/include/linux/netfilter_ipv6/ip6t_ipv6header.h b/src/main/jni/iptables/include/linux/netfilter_ipv6/ip6t_ipv6header.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv6/ip6t_ipv6header.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv6/ip6t_ipv6header.h
diff --git a/jni/iptables/include/linux/netfilter_ipv6/ip6t_mh.h b/src/main/jni/iptables/include/linux/netfilter_ipv6/ip6t_mh.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv6/ip6t_mh.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv6/ip6t_mh.h
diff --git a/jni/iptables/include/linux/netfilter_ipv6/ip6t_opts.h b/src/main/jni/iptables/include/linux/netfilter_ipv6/ip6t_opts.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv6/ip6t_opts.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv6/ip6t_opts.h
diff --git a/jni/iptables/include/linux/netfilter_ipv6/ip6t_rt.h b/src/main/jni/iptables/include/linux/netfilter_ipv6/ip6t_rt.h
similarity index 100%
rename from jni/iptables/include/linux/netfilter_ipv6/ip6t_rt.h
rename to src/main/jni/iptables/include/linux/netfilter_ipv6/ip6t_rt.h
diff --git a/jni/iptables/include/linux/types.h b/src/main/jni/iptables/include/linux/types.h
similarity index 100%
rename from jni/iptables/include/linux/types.h
rename to src/main/jni/iptables/include/linux/types.h
diff --git a/jni/iptables/include/net/netfilter/nf_conntrack_tuple.h b/src/main/jni/iptables/include/net/netfilter/nf_conntrack_tuple.h
similarity index 100%
rename from jni/iptables/include/net/netfilter/nf_conntrack_tuple.h
rename to src/main/jni/iptables/include/net/netfilter/nf_conntrack_tuple.h
diff --git a/jni/iptables/include/net/netfilter/nf_nat.h b/src/main/jni/iptables/include/net/netfilter/nf_nat.h
similarity index 100%
rename from jni/iptables/include/net/netfilter/nf_nat.h
rename to src/main/jni/iptables/include/net/netfilter/nf_nat.h
diff --git a/jni/iptables/include/xtables.h b/src/main/jni/iptables/include/xtables.h
similarity index 100%
rename from jni/iptables/include/xtables.h
rename to src/main/jni/iptables/include/xtables.h
diff --git a/jni/iptables/include/xtables.h.in b/src/main/jni/iptables/include/xtables.h.in
similarity index 100%
rename from jni/iptables/include/xtables.h.in
rename to src/main/jni/iptables/include/xtables.h.in
diff --git a/jni/iptables/iptables/.gitignore b/src/main/jni/iptables/iptables/.gitignore
similarity index 100%
rename from jni/iptables/iptables/.gitignore
rename to src/main/jni/iptables/iptables/.gitignore
diff --git a/jni/iptables/iptables/Android.mk b/src/main/jni/iptables/iptables/Android.mk
similarity index 100%
rename from jni/iptables/iptables/Android.mk
rename to src/main/jni/iptables/iptables/Android.mk
diff --git a/jni/iptables/iptables/Makefile.am b/src/main/jni/iptables/iptables/Makefile.am
similarity index 100%
rename from jni/iptables/iptables/Makefile.am
rename to src/main/jni/iptables/iptables/Makefile.am
diff --git a/jni/iptables/iptables/ip6tables-multi.h b/src/main/jni/iptables/iptables/ip6tables-multi.h
similarity index 100%
rename from jni/iptables/iptables/ip6tables-multi.h
rename to src/main/jni/iptables/iptables/ip6tables-multi.h
diff --git a/jni/iptables/iptables/ip6tables-restore.8 b/src/main/jni/iptables/iptables/ip6tables-restore.8
similarity index 100%
rename from jni/iptables/iptables/ip6tables-restore.8
rename to src/main/jni/iptables/iptables/ip6tables-restore.8
diff --git a/jni/iptables/iptables/ip6tables-restore.c b/src/main/jni/iptables/iptables/ip6tables-restore.c
similarity index 100%
rename from jni/iptables/iptables/ip6tables-restore.c
rename to src/main/jni/iptables/iptables/ip6tables-restore.c
diff --git a/jni/iptables/iptables/ip6tables-save.8 b/src/main/jni/iptables/iptables/ip6tables-save.8
similarity index 100%
rename from jni/iptables/iptables/ip6tables-save.8
rename to src/main/jni/iptables/iptables/ip6tables-save.8
diff --git a/jni/iptables/iptables/ip6tables-save.c b/src/main/jni/iptables/iptables/ip6tables-save.c
similarity index 100%
rename from jni/iptables/iptables/ip6tables-save.c
rename to src/main/jni/iptables/iptables/ip6tables-save.c
diff --git a/jni/iptables/iptables/ip6tables-standalone.c b/src/main/jni/iptables/iptables/ip6tables-standalone.c
similarity index 100%
rename from jni/iptables/iptables/ip6tables-standalone.c
rename to src/main/jni/iptables/iptables/ip6tables-standalone.c
diff --git a/jni/iptables/iptables/ip6tables.8.in b/src/main/jni/iptables/iptables/ip6tables.8.in
similarity index 100%
rename from jni/iptables/iptables/ip6tables.8.in
rename to src/main/jni/iptables/iptables/ip6tables.8.in
diff --git a/jni/iptables/iptables/ip6tables.c b/src/main/jni/iptables/iptables/ip6tables.c
similarity index 100%
rename from jni/iptables/iptables/ip6tables.c
rename to src/main/jni/iptables/iptables/ip6tables.c
diff --git a/jni/iptables/iptables/iptables-apply b/src/main/jni/iptables/iptables/iptables-apply
similarity index 100%
rename from jni/iptables/iptables/iptables-apply
rename to src/main/jni/iptables/iptables/iptables-apply
diff --git a/jni/iptables/iptables/iptables-apply.8 b/src/main/jni/iptables/iptables/iptables-apply.8
similarity index 100%
rename from jni/iptables/iptables/iptables-apply.8
rename to src/main/jni/iptables/iptables/iptables-apply.8
diff --git a/jni/iptables/iptables/iptables-multi.h b/src/main/jni/iptables/iptables/iptables-multi.h
similarity index 100%
rename from jni/iptables/iptables/iptables-multi.h
rename to src/main/jni/iptables/iptables/iptables-multi.h
diff --git a/jni/iptables/iptables/iptables-restore.8 b/src/main/jni/iptables/iptables/iptables-restore.8
similarity index 100%
rename from jni/iptables/iptables/iptables-restore.8
rename to src/main/jni/iptables/iptables/iptables-restore.8
diff --git a/jni/iptables/iptables/iptables-restore.c b/src/main/jni/iptables/iptables/iptables-restore.c
similarity index 100%
rename from jni/iptables/iptables/iptables-restore.c
rename to src/main/jni/iptables/iptables/iptables-restore.c
diff --git a/jni/iptables/iptables/iptables-save.8 b/src/main/jni/iptables/iptables/iptables-save.8
similarity index 100%
rename from jni/iptables/iptables/iptables-save.8
rename to src/main/jni/iptables/iptables/iptables-save.8
diff --git a/jni/iptables/iptables/iptables-save.c b/src/main/jni/iptables/iptables/iptables-save.c
similarity index 100%
rename from jni/iptables/iptables/iptables-save.c
rename to src/main/jni/iptables/iptables/iptables-save.c
diff --git a/jni/iptables/iptables/iptables-standalone.c b/src/main/jni/iptables/iptables/iptables-standalone.c
similarity index 100%
rename from jni/iptables/iptables/iptables-standalone.c
rename to src/main/jni/iptables/iptables/iptables-standalone.c
diff --git a/jni/iptables/iptables/iptables-xml.1 b/src/main/jni/iptables/iptables/iptables-xml.1
similarity index 100%
rename from jni/iptables/iptables/iptables-xml.1
rename to src/main/jni/iptables/iptables/iptables-xml.1
diff --git a/jni/iptables/iptables/iptables-xml.c b/src/main/jni/iptables/iptables/iptables-xml.c
similarity index 100%
rename from jni/iptables/iptables/iptables-xml.c
rename to src/main/jni/iptables/iptables/iptables-xml.c
diff --git a/jni/iptables/iptables/iptables.8.in b/src/main/jni/iptables/iptables/iptables.8.in
similarity index 100%
rename from jni/iptables/iptables/iptables.8.in
rename to src/main/jni/iptables/iptables/iptables.8.in
diff --git a/jni/iptables/iptables/iptables.c b/src/main/jni/iptables/iptables/iptables.c
similarity index 100%
rename from jni/iptables/iptables/iptables.c
rename to src/main/jni/iptables/iptables/iptables.c
diff --git a/jni/iptables/iptables/iptables.xslt b/src/main/jni/iptables/iptables/iptables.xslt
similarity index 100%
rename from jni/iptables/iptables/iptables.xslt
rename to src/main/jni/iptables/iptables/iptables.xslt
diff --git a/jni/iptables/iptables/xshared.c b/src/main/jni/iptables/iptables/xshared.c
similarity index 100%
rename from jni/iptables/iptables/xshared.c
rename to src/main/jni/iptables/iptables/xshared.c
diff --git a/jni/iptables/iptables/xshared.h b/src/main/jni/iptables/iptables/xshared.h
similarity index 100%
rename from jni/iptables/iptables/xshared.h
rename to src/main/jni/iptables/iptables/xshared.h
diff --git a/jni/iptables/iptables/xtables-multi.c b/src/main/jni/iptables/iptables/xtables-multi.c
similarity index 100%
rename from jni/iptables/iptables/xtables-multi.c
rename to src/main/jni/iptables/iptables/xtables-multi.c
diff --git a/jni/iptables/iptables/xtables-multi.h b/src/main/jni/iptables/iptables/xtables-multi.h
similarity index 100%
rename from jni/iptables/iptables/xtables-multi.h
rename to src/main/jni/iptables/iptables/xtables-multi.h
diff --git a/jni/iptables/iptables/xtables.c b/src/main/jni/iptables/iptables/xtables.c
similarity index 100%
rename from jni/iptables/iptables/xtables.c
rename to src/main/jni/iptables/iptables/xtables.c
diff --git a/jni/iptables/iptables/xtables.pc.in b/src/main/jni/iptables/iptables/xtables.pc.in
similarity index 100%
rename from jni/iptables/iptables/xtables.pc.in
rename to src/main/jni/iptables/iptables/xtables.pc.in
diff --git a/jni/iptables/iptables/xtoptions.c b/src/main/jni/iptables/iptables/xtoptions.c
similarity index 100%
rename from jni/iptables/iptables/xtoptions.c
rename to src/main/jni/iptables/iptables/xtoptions.c
diff --git a/jni/iptables/libipq/Makefile.am b/src/main/jni/iptables/libipq/Makefile.am
similarity index 100%
rename from jni/iptables/libipq/Makefile.am
rename to src/main/jni/iptables/libipq/Makefile.am
diff --git a/jni/iptables/libipq/ipq_create_handle.3 b/src/main/jni/iptables/libipq/ipq_create_handle.3
similarity index 100%
rename from jni/iptables/libipq/ipq_create_handle.3
rename to src/main/jni/iptables/libipq/ipq_create_handle.3
diff --git a/jni/iptables/libipq/ipq_destroy_handle.3 b/src/main/jni/iptables/libipq/ipq_destroy_handle.3
similarity index 100%
rename from jni/iptables/libipq/ipq_destroy_handle.3
rename to src/main/jni/iptables/libipq/ipq_destroy_handle.3
diff --git a/jni/iptables/libipq/ipq_errstr.3 b/src/main/jni/iptables/libipq/ipq_errstr.3
similarity index 100%
rename from jni/iptables/libipq/ipq_errstr.3
rename to src/main/jni/iptables/libipq/ipq_errstr.3
diff --git a/jni/iptables/libipq/ipq_get_msgerr.3 b/src/main/jni/iptables/libipq/ipq_get_msgerr.3
similarity index 100%
rename from jni/iptables/libipq/ipq_get_msgerr.3
rename to src/main/jni/iptables/libipq/ipq_get_msgerr.3
diff --git a/jni/iptables/libipq/ipq_get_packet.3 b/src/main/jni/iptables/libipq/ipq_get_packet.3
similarity index 100%
rename from jni/iptables/libipq/ipq_get_packet.3
rename to src/main/jni/iptables/libipq/ipq_get_packet.3
diff --git a/jni/iptables/libipq/ipq_message_type.3 b/src/main/jni/iptables/libipq/ipq_message_type.3
similarity index 100%
rename from jni/iptables/libipq/ipq_message_type.3
rename to src/main/jni/iptables/libipq/ipq_message_type.3
diff --git a/jni/iptables/libipq/ipq_perror.3 b/src/main/jni/iptables/libipq/ipq_perror.3
similarity index 100%
rename from jni/iptables/libipq/ipq_perror.3
rename to src/main/jni/iptables/libipq/ipq_perror.3
diff --git a/jni/iptables/libipq/ipq_read.3 b/src/main/jni/iptables/libipq/ipq_read.3
similarity index 100%
rename from jni/iptables/libipq/ipq_read.3
rename to src/main/jni/iptables/libipq/ipq_read.3
diff --git a/jni/iptables/libipq/ipq_set_mode.3 b/src/main/jni/iptables/libipq/ipq_set_mode.3
similarity index 100%
rename from jni/iptables/libipq/ipq_set_mode.3
rename to src/main/jni/iptables/libipq/ipq_set_mode.3
diff --git a/jni/iptables/libipq/ipq_set_verdict.3 b/src/main/jni/iptables/libipq/ipq_set_verdict.3
similarity index 100%
rename from jni/iptables/libipq/ipq_set_verdict.3
rename to src/main/jni/iptables/libipq/ipq_set_verdict.3
diff --git a/jni/iptables/libipq/libipq.3 b/src/main/jni/iptables/libipq/libipq.3
similarity index 100%
rename from jni/iptables/libipq/libipq.3
rename to src/main/jni/iptables/libipq/libipq.3
diff --git a/jni/iptables/libipq/libipq.c b/src/main/jni/iptables/libipq/libipq.c
similarity index 100%
rename from jni/iptables/libipq/libipq.c
rename to src/main/jni/iptables/libipq/libipq.c
diff --git a/jni/iptables/libiptc/.gitignore b/src/main/jni/iptables/libiptc/.gitignore
similarity index 100%
rename from jni/iptables/libiptc/.gitignore
rename to src/main/jni/iptables/libiptc/.gitignore
diff --git a/jni/iptables/libiptc/Android.mk b/src/main/jni/iptables/libiptc/Android.mk
similarity index 100%
rename from jni/iptables/libiptc/Android.mk
rename to src/main/jni/iptables/libiptc/Android.mk
diff --git a/jni/iptables/libiptc/Makefile.am b/src/main/jni/iptables/libiptc/Makefile.am
similarity index 100%
rename from jni/iptables/libiptc/Makefile.am
rename to src/main/jni/iptables/libiptc/Makefile.am
diff --git a/jni/iptables/libiptc/libip4tc.c b/src/main/jni/iptables/libiptc/libip4tc.c
similarity index 100%
rename from jni/iptables/libiptc/libip4tc.c
rename to src/main/jni/iptables/libiptc/libip4tc.c
diff --git a/jni/iptables/libiptc/libip6tc.c b/src/main/jni/iptables/libiptc/libip6tc.c
similarity index 100%
rename from jni/iptables/libiptc/libip6tc.c
rename to src/main/jni/iptables/libiptc/libip6tc.c
diff --git a/jni/iptables/libiptc/libiptc.c b/src/main/jni/iptables/libiptc/libiptc.c
similarity index 100%
rename from jni/iptables/libiptc/libiptc.c
rename to src/main/jni/iptables/libiptc/libiptc.c
diff --git a/jni/iptables/libiptc/libiptc.pc.in b/src/main/jni/iptables/libiptc/libiptc.pc.in
similarity index 100%
rename from jni/iptables/libiptc/libiptc.pc.in
rename to src/main/jni/iptables/libiptc/libiptc.pc.in
diff --git a/jni/iptables/libiptc/linux_list.h b/src/main/jni/iptables/libiptc/linux_list.h
similarity index 100%
rename from jni/iptables/libiptc/linux_list.h
rename to src/main/jni/iptables/libiptc/linux_list.h
diff --git a/jni/iptables/libiptc/linux_stddef.h b/src/main/jni/iptables/libiptc/linux_stddef.h
similarity index 100%
rename from jni/iptables/libiptc/linux_stddef.h
rename to src/main/jni/iptables/libiptc/linux_stddef.h
diff --git a/jni/iptables/m4/.gitignore b/src/main/jni/iptables/m4/.gitignore
similarity index 100%
rename from jni/iptables/m4/.gitignore
rename to src/main/jni/iptables/m4/.gitignore
diff --git a/jni/iptables/m4/ax_check_linker_flags.m4 b/src/main/jni/iptables/m4/ax_check_linker_flags.m4
similarity index 100%
rename from jni/iptables/m4/ax_check_linker_flags.m4
rename to src/main/jni/iptables/m4/ax_check_linker_flags.m4
diff --git a/jni/iptables/release.sh b/src/main/jni/iptables/release.sh
similarity index 100%
rename from jni/iptables/release.sh
rename to src/main/jni/iptables/release.sh
diff --git a/jni/iptables/tests/options-ipv4.rules b/src/main/jni/iptables/tests/options-ipv4.rules
similarity index 100%
rename from jni/iptables/tests/options-ipv4.rules
rename to src/main/jni/iptables/tests/options-ipv4.rules
diff --git a/jni/iptables/tests/options-most.rules b/src/main/jni/iptables/tests/options-most.rules
similarity index 100%
rename from jni/iptables/tests/options-most.rules
rename to src/main/jni/iptables/tests/options-most.rules
diff --git a/jni/iptables/utils/.gitignore b/src/main/jni/iptables/utils/.gitignore
similarity index 100%
rename from jni/iptables/utils/.gitignore
rename to src/main/jni/iptables/utils/.gitignore
diff --git a/jni/iptables/utils/Makefile.am b/src/main/jni/iptables/utils/Makefile.am
similarity index 100%
rename from jni/iptables/utils/Makefile.am
rename to src/main/jni/iptables/utils/Makefile.am
diff --git a/jni/iptables/utils/nfnl_osf.c b/src/main/jni/iptables/utils/nfnl_osf.c
similarity index 100%
rename from jni/iptables/utils/nfnl_osf.c
rename to src/main/jni/iptables/utils/nfnl_osf.c
diff --git a/jni/iptables/utils/pf.os b/src/main/jni/iptables/utils/pf.os
similarity index 100%
rename from jni/iptables/utils/pf.os
rename to src/main/jni/iptables/utils/pf.os
diff --git a/jni/libev/config.h b/src/main/jni/libev/config.h
similarity index 100%
rename from jni/libev/config.h
rename to src/main/jni/libev/config.h
diff --git a/jni/libev/ev++.h b/src/main/jni/libev/ev++.h
similarity index 100%
rename from jni/libev/ev++.h
rename to src/main/jni/libev/ev++.h
diff --git a/jni/libev/ev.c b/src/main/jni/libev/ev.c
similarity index 100%
rename from jni/libev/ev.c
rename to src/main/jni/libev/ev.c
diff --git a/jni/libev/ev.h b/src/main/jni/libev/ev.h
similarity index 100%
rename from jni/libev/ev.h
rename to src/main/jni/libev/ev.h
diff --git a/jni/libev/ev_epoll.c b/src/main/jni/libev/ev_epoll.c
similarity index 100%
rename from jni/libev/ev_epoll.c
rename to src/main/jni/libev/ev_epoll.c
diff --git a/jni/libev/ev_kqueue.c b/src/main/jni/libev/ev_kqueue.c
similarity index 100%
rename from jni/libev/ev_kqueue.c
rename to src/main/jni/libev/ev_kqueue.c
diff --git a/jni/libev/ev_poll.c b/src/main/jni/libev/ev_poll.c
similarity index 100%
rename from jni/libev/ev_poll.c
rename to src/main/jni/libev/ev_poll.c
diff --git a/jni/libev/ev_port.c b/src/main/jni/libev/ev_port.c
similarity index 100%
rename from jni/libev/ev_port.c
rename to src/main/jni/libev/ev_port.c
diff --git a/jni/libev/ev_select.c b/src/main/jni/libev/ev_select.c
similarity index 100%
rename from jni/libev/ev_select.c
rename to src/main/jni/libev/ev_select.c
diff --git a/jni/libev/ev_vars.h b/src/main/jni/libev/ev_vars.h
similarity index 100%
rename from jni/libev/ev_vars.h
rename to src/main/jni/libev/ev_vars.h
diff --git a/jni/libev/ev_win32.c b/src/main/jni/libev/ev_win32.c
similarity index 100%
rename from jni/libev/ev_win32.c
rename to src/main/jni/libev/ev_win32.c
diff --git a/jni/libev/ev_wrap.h b/src/main/jni/libev/ev_wrap.h
similarity index 100%
rename from jni/libev/ev_wrap.h
rename to src/main/jni/libev/ev_wrap.h
diff --git a/jni/libev/event.c b/src/main/jni/libev/event.c
similarity index 100%
rename from jni/libev/event.c
rename to src/main/jni/libev/event.c
diff --git a/jni/libev/event.h b/src/main/jni/libev/event.h
similarity index 100%
rename from jni/libev/event.h
rename to src/main/jni/libev/event.h
diff --git a/jni/libevent/arc4random.c b/src/main/jni/libevent/arc4random.c
similarity index 100%
rename from jni/libevent/arc4random.c
rename to src/main/jni/libevent/arc4random.c
diff --git a/jni/libevent/buffer.c b/src/main/jni/libevent/buffer.c
similarity index 100%
rename from jni/libevent/buffer.c
rename to src/main/jni/libevent/buffer.c
diff --git a/jni/libevent/buffer_iocp.c b/src/main/jni/libevent/buffer_iocp.c
similarity index 100%
rename from jni/libevent/buffer_iocp.c
rename to src/main/jni/libevent/buffer_iocp.c
diff --git a/jni/libevent/bufferevent-internal.h b/src/main/jni/libevent/bufferevent-internal.h
similarity index 100%
rename from jni/libevent/bufferevent-internal.h
rename to src/main/jni/libevent/bufferevent-internal.h
diff --git a/jni/libevent/bufferevent.c b/src/main/jni/libevent/bufferevent.c
similarity index 100%
rename from jni/libevent/bufferevent.c
rename to src/main/jni/libevent/bufferevent.c
diff --git a/jni/libevent/bufferevent_async.c b/src/main/jni/libevent/bufferevent_async.c
similarity index 100%
rename from jni/libevent/bufferevent_async.c
rename to src/main/jni/libevent/bufferevent_async.c
diff --git a/jni/libevent/bufferevent_filter.c b/src/main/jni/libevent/bufferevent_filter.c
similarity index 100%
rename from jni/libevent/bufferevent_filter.c
rename to src/main/jni/libevent/bufferevent_filter.c
diff --git a/jni/libevent/bufferevent_openssl.c b/src/main/jni/libevent/bufferevent_openssl.c
similarity index 100%
rename from jni/libevent/bufferevent_openssl.c
rename to src/main/jni/libevent/bufferevent_openssl.c
diff --git a/jni/libevent/bufferevent_pair.c b/src/main/jni/libevent/bufferevent_pair.c
similarity index 100%
rename from jni/libevent/bufferevent_pair.c
rename to src/main/jni/libevent/bufferevent_pair.c
diff --git a/jni/libevent/bufferevent_ratelim.c b/src/main/jni/libevent/bufferevent_ratelim.c
similarity index 100%
rename from jni/libevent/bufferevent_ratelim.c
rename to src/main/jni/libevent/bufferevent_ratelim.c
diff --git a/jni/libevent/bufferevent_sock.c b/src/main/jni/libevent/bufferevent_sock.c
similarity index 100%
rename from jni/libevent/bufferevent_sock.c
rename to src/main/jni/libevent/bufferevent_sock.c
diff --git a/jni/libevent/changelist-internal.h b/src/main/jni/libevent/changelist-internal.h
similarity index 100%
rename from jni/libevent/changelist-internal.h
rename to src/main/jni/libevent/changelist-internal.h
diff --git a/jni/libevent/compat/sys/queue.h b/src/main/jni/libevent/compat/sys/queue.h
similarity index 100%
rename from jni/libevent/compat/sys/queue.h
rename to src/main/jni/libevent/compat/sys/queue.h
diff --git a/jni/libevent/config.h b/src/main/jni/libevent/config.h
similarity index 100%
rename from jni/libevent/config.h
rename to src/main/jni/libevent/config.h
diff --git a/jni/libevent/defer-internal.h b/src/main/jni/libevent/defer-internal.h
similarity index 100%
rename from jni/libevent/defer-internal.h
rename to src/main/jni/libevent/defer-internal.h
diff --git a/jni/libevent/devpoll.c b/src/main/jni/libevent/devpoll.c
similarity index 100%
rename from jni/libevent/devpoll.c
rename to src/main/jni/libevent/devpoll.c
diff --git a/jni/libevent/epoll.c b/src/main/jni/libevent/epoll.c
similarity index 100%
rename from jni/libevent/epoll.c
rename to src/main/jni/libevent/epoll.c
diff --git a/jni/libevent/epoll_sub.c b/src/main/jni/libevent/epoll_sub.c
similarity index 100%
rename from jni/libevent/epoll_sub.c
rename to src/main/jni/libevent/epoll_sub.c
diff --git a/jni/libevent/evbuffer-internal.h b/src/main/jni/libevent/evbuffer-internal.h
similarity index 100%
rename from jni/libevent/evbuffer-internal.h
rename to src/main/jni/libevent/evbuffer-internal.h
diff --git a/jni/libevent/evdns.c b/src/main/jni/libevent/evdns.c
similarity index 100%
rename from jni/libevent/evdns.c
rename to src/main/jni/libevent/evdns.c
diff --git a/jni/libevent/evdns.h b/src/main/jni/libevent/evdns.h
similarity index 100%
rename from jni/libevent/evdns.h
rename to src/main/jni/libevent/evdns.h
diff --git a/jni/libevent/event-internal.h b/src/main/jni/libevent/event-internal.h
similarity index 100%
rename from jni/libevent/event-internal.h
rename to src/main/jni/libevent/event-internal.h
diff --git a/jni/libevent/event.c b/src/main/jni/libevent/event.c
similarity index 100%
rename from jni/libevent/event.c
rename to src/main/jni/libevent/event.c
diff --git a/jni/libevent/event.h b/src/main/jni/libevent/event.h
similarity index 100%
rename from jni/libevent/event.h
rename to src/main/jni/libevent/event.h
diff --git a/jni/libevent/event_iocp.c b/src/main/jni/libevent/event_iocp.c
similarity index 100%
rename from jni/libevent/event_iocp.c
rename to src/main/jni/libevent/event_iocp.c
diff --git a/jni/libevent/event_tagging.c b/src/main/jni/libevent/event_tagging.c
similarity index 100%
rename from jni/libevent/event_tagging.c
rename to src/main/jni/libevent/event_tagging.c
diff --git a/jni/libevent/evhttp.h b/src/main/jni/libevent/evhttp.h
similarity index 100%
rename from jni/libevent/evhttp.h
rename to src/main/jni/libevent/evhttp.h
diff --git a/jni/libevent/evmap-internal.h b/src/main/jni/libevent/evmap-internal.h
similarity index 100%
rename from jni/libevent/evmap-internal.h
rename to src/main/jni/libevent/evmap-internal.h
diff --git a/jni/libevent/evmap.c b/src/main/jni/libevent/evmap.c
similarity index 100%
rename from jni/libevent/evmap.c
rename to src/main/jni/libevent/evmap.c
diff --git a/jni/libevent/evport.c b/src/main/jni/libevent/evport.c
similarity index 100%
rename from jni/libevent/evport.c
rename to src/main/jni/libevent/evport.c
diff --git a/jni/libevent/evrpc-internal.h b/src/main/jni/libevent/evrpc-internal.h
similarity index 100%
rename from jni/libevent/evrpc-internal.h
rename to src/main/jni/libevent/evrpc-internal.h
diff --git a/jni/libevent/evrpc.c b/src/main/jni/libevent/evrpc.c
similarity index 100%
rename from jni/libevent/evrpc.c
rename to src/main/jni/libevent/evrpc.c
diff --git a/jni/libevent/evrpc.h b/src/main/jni/libevent/evrpc.h
similarity index 100%
rename from jni/libevent/evrpc.h
rename to src/main/jni/libevent/evrpc.h
diff --git a/jni/libevent/evsignal-internal.h b/src/main/jni/libevent/evsignal-internal.h
similarity index 100%
rename from jni/libevent/evsignal-internal.h
rename to src/main/jni/libevent/evsignal-internal.h
diff --git a/jni/libevent/evthread-internal.h b/src/main/jni/libevent/evthread-internal.h
similarity index 100%
rename from jni/libevent/evthread-internal.h
rename to src/main/jni/libevent/evthread-internal.h
diff --git a/jni/libevent/evthread.c b/src/main/jni/libevent/evthread.c
similarity index 100%
rename from jni/libevent/evthread.c
rename to src/main/jni/libevent/evthread.c
diff --git a/jni/libevent/evthread_pthread.c b/src/main/jni/libevent/evthread_pthread.c
similarity index 100%
rename from jni/libevent/evthread_pthread.c
rename to src/main/jni/libevent/evthread_pthread.c
diff --git a/jni/libevent/evthread_win32.c b/src/main/jni/libevent/evthread_win32.c
similarity index 100%
rename from jni/libevent/evthread_win32.c
rename to src/main/jni/libevent/evthread_win32.c
diff --git a/jni/libevent/evutil.c b/src/main/jni/libevent/evutil.c
similarity index 100%
rename from jni/libevent/evutil.c
rename to src/main/jni/libevent/evutil.c
diff --git a/jni/libevent/evutil.h b/src/main/jni/libevent/evutil.h
similarity index 100%
rename from jni/libevent/evutil.h
rename to src/main/jni/libevent/evutil.h
diff --git a/jni/libevent/evutil_rand.c b/src/main/jni/libevent/evutil_rand.c
similarity index 100%
rename from jni/libevent/evutil_rand.c
rename to src/main/jni/libevent/evutil_rand.c
diff --git a/jni/libevent/ht-internal.h b/src/main/jni/libevent/ht-internal.h
similarity index 100%
rename from jni/libevent/ht-internal.h
rename to src/main/jni/libevent/ht-internal.h
diff --git a/jni/libevent/http-internal.h b/src/main/jni/libevent/http-internal.h
similarity index 100%
rename from jni/libevent/http-internal.h
rename to src/main/jni/libevent/http-internal.h
diff --git a/jni/libevent/http.c b/src/main/jni/libevent/http.c
similarity index 100%
rename from jni/libevent/http.c
rename to src/main/jni/libevent/http.c
diff --git a/jni/libevent/include/event2/buffer.h b/src/main/jni/libevent/include/event2/buffer.h
similarity index 100%
rename from jni/libevent/include/event2/buffer.h
rename to src/main/jni/libevent/include/event2/buffer.h
diff --git a/jni/libevent/include/event2/buffer_compat.h b/src/main/jni/libevent/include/event2/buffer_compat.h
similarity index 100%
rename from jni/libevent/include/event2/buffer_compat.h
rename to src/main/jni/libevent/include/event2/buffer_compat.h
diff --git a/jni/libevent/include/event2/bufferevent.h b/src/main/jni/libevent/include/event2/bufferevent.h
similarity index 100%
rename from jni/libevent/include/event2/bufferevent.h
rename to src/main/jni/libevent/include/event2/bufferevent.h
diff --git a/jni/libevent/include/event2/bufferevent_compat.h b/src/main/jni/libevent/include/event2/bufferevent_compat.h
similarity index 100%
rename from jni/libevent/include/event2/bufferevent_compat.h
rename to src/main/jni/libevent/include/event2/bufferevent_compat.h
diff --git a/jni/libevent/include/event2/bufferevent_ssl.h b/src/main/jni/libevent/include/event2/bufferevent_ssl.h
similarity index 100%
rename from jni/libevent/include/event2/bufferevent_ssl.h
rename to src/main/jni/libevent/include/event2/bufferevent_ssl.h
diff --git a/jni/libevent/include/event2/bufferevent_struct.h b/src/main/jni/libevent/include/event2/bufferevent_struct.h
similarity index 100%
rename from jni/libevent/include/event2/bufferevent_struct.h
rename to src/main/jni/libevent/include/event2/bufferevent_struct.h
diff --git a/jni/libevent/include/event2/dns.h b/src/main/jni/libevent/include/event2/dns.h
similarity index 100%
rename from jni/libevent/include/event2/dns.h
rename to src/main/jni/libevent/include/event2/dns.h
diff --git a/jni/libevent/include/event2/dns_compat.h b/src/main/jni/libevent/include/event2/dns_compat.h
similarity index 100%
rename from jni/libevent/include/event2/dns_compat.h
rename to src/main/jni/libevent/include/event2/dns_compat.h
diff --git a/jni/libevent/include/event2/dns_struct.h b/src/main/jni/libevent/include/event2/dns_struct.h
similarity index 100%
rename from jni/libevent/include/event2/dns_struct.h
rename to src/main/jni/libevent/include/event2/dns_struct.h
diff --git a/jni/libevent/include/event2/event-config.h b/src/main/jni/libevent/include/event2/event-config.h
similarity index 100%
rename from jni/libevent/include/event2/event-config.h
rename to src/main/jni/libevent/include/event2/event-config.h
diff --git a/jni/libevent/include/event2/event.h b/src/main/jni/libevent/include/event2/event.h
similarity index 100%
rename from jni/libevent/include/event2/event.h
rename to src/main/jni/libevent/include/event2/event.h
diff --git a/jni/libevent/include/event2/event_compat.h b/src/main/jni/libevent/include/event2/event_compat.h
similarity index 100%
rename from jni/libevent/include/event2/event_compat.h
rename to src/main/jni/libevent/include/event2/event_compat.h
diff --git a/jni/libevent/include/event2/event_struct.h b/src/main/jni/libevent/include/event2/event_struct.h
similarity index 100%
rename from jni/libevent/include/event2/event_struct.h
rename to src/main/jni/libevent/include/event2/event_struct.h
diff --git a/jni/libevent/include/event2/http.h b/src/main/jni/libevent/include/event2/http.h
similarity index 100%
rename from jni/libevent/include/event2/http.h
rename to src/main/jni/libevent/include/event2/http.h
diff --git a/jni/libevent/include/event2/http_compat.h b/src/main/jni/libevent/include/event2/http_compat.h
similarity index 100%
rename from jni/libevent/include/event2/http_compat.h
rename to src/main/jni/libevent/include/event2/http_compat.h
diff --git a/jni/libevent/include/event2/http_struct.h b/src/main/jni/libevent/include/event2/http_struct.h
similarity index 100%
rename from jni/libevent/include/event2/http_struct.h
rename to src/main/jni/libevent/include/event2/http_struct.h
diff --git a/jni/libevent/include/event2/keyvalq_struct.h b/src/main/jni/libevent/include/event2/keyvalq_struct.h
similarity index 100%
rename from jni/libevent/include/event2/keyvalq_struct.h
rename to src/main/jni/libevent/include/event2/keyvalq_struct.h
diff --git a/jni/libevent/include/event2/listener.h b/src/main/jni/libevent/include/event2/listener.h
similarity index 100%
rename from jni/libevent/include/event2/listener.h
rename to src/main/jni/libevent/include/event2/listener.h
diff --git a/jni/libevent/include/event2/rpc.h b/src/main/jni/libevent/include/event2/rpc.h
similarity index 100%
rename from jni/libevent/include/event2/rpc.h
rename to src/main/jni/libevent/include/event2/rpc.h
diff --git a/jni/libevent/include/event2/rpc_compat.h b/src/main/jni/libevent/include/event2/rpc_compat.h
similarity index 100%
rename from jni/libevent/include/event2/rpc_compat.h
rename to src/main/jni/libevent/include/event2/rpc_compat.h
diff --git a/jni/libevent/include/event2/rpc_struct.h b/src/main/jni/libevent/include/event2/rpc_struct.h
similarity index 100%
rename from jni/libevent/include/event2/rpc_struct.h
rename to src/main/jni/libevent/include/event2/rpc_struct.h
diff --git a/jni/libevent/include/event2/tag.h b/src/main/jni/libevent/include/event2/tag.h
similarity index 100%
rename from jni/libevent/include/event2/tag.h
rename to src/main/jni/libevent/include/event2/tag.h
diff --git a/jni/libevent/include/event2/tag_compat.h b/src/main/jni/libevent/include/event2/tag_compat.h
similarity index 100%
rename from jni/libevent/include/event2/tag_compat.h
rename to src/main/jni/libevent/include/event2/tag_compat.h
diff --git a/jni/libevent/include/event2/thread.h b/src/main/jni/libevent/include/event2/thread.h
similarity index 100%
rename from jni/libevent/include/event2/thread.h
rename to src/main/jni/libevent/include/event2/thread.h
diff --git a/jni/libevent/include/event2/util.h b/src/main/jni/libevent/include/event2/util.h
similarity index 100%
rename from jni/libevent/include/event2/util.h
rename to src/main/jni/libevent/include/event2/util.h
diff --git a/jni/libevent/iocp-internal.h b/src/main/jni/libevent/iocp-internal.h
similarity index 100%
rename from jni/libevent/iocp-internal.h
rename to src/main/jni/libevent/iocp-internal.h
diff --git a/jni/libevent/ipv6-internal.h b/src/main/jni/libevent/ipv6-internal.h
similarity index 100%
rename from jni/libevent/ipv6-internal.h
rename to src/main/jni/libevent/ipv6-internal.h
diff --git a/jni/libevent/kqueue.c b/src/main/jni/libevent/kqueue.c
similarity index 100%
rename from jni/libevent/kqueue.c
rename to src/main/jni/libevent/kqueue.c
diff --git a/jni/libevent/listener.c b/src/main/jni/libevent/listener.c
similarity index 100%
rename from jni/libevent/listener.c
rename to src/main/jni/libevent/listener.c
diff --git a/jni/libevent/log-internal.h b/src/main/jni/libevent/log-internal.h
similarity index 100%
rename from jni/libevent/log-internal.h
rename to src/main/jni/libevent/log-internal.h
diff --git a/jni/libevent/log.c b/src/main/jni/libevent/log.c
similarity index 100%
rename from jni/libevent/log.c
rename to src/main/jni/libevent/log.c
diff --git a/jni/libevent/minheap-internal.h b/src/main/jni/libevent/minheap-internal.h
similarity index 100%
rename from jni/libevent/minheap-internal.h
rename to src/main/jni/libevent/minheap-internal.h
diff --git a/jni/libevent/mm-internal.h b/src/main/jni/libevent/mm-internal.h
similarity index 100%
rename from jni/libevent/mm-internal.h
rename to src/main/jni/libevent/mm-internal.h
diff --git a/jni/libevent/poll.c b/src/main/jni/libevent/poll.c
similarity index 100%
rename from jni/libevent/poll.c
rename to src/main/jni/libevent/poll.c
diff --git a/jni/libevent/ratelim-internal.h b/src/main/jni/libevent/ratelim-internal.h
similarity index 100%
rename from jni/libevent/ratelim-internal.h
rename to src/main/jni/libevent/ratelim-internal.h
diff --git a/jni/libevent/select.c b/src/main/jni/libevent/select.c
similarity index 100%
rename from jni/libevent/select.c
rename to src/main/jni/libevent/select.c
diff --git a/jni/libevent/signal.c b/src/main/jni/libevent/signal.c
similarity index 100%
rename from jni/libevent/signal.c
rename to src/main/jni/libevent/signal.c
diff --git a/jni/libevent/strlcpy-internal.h b/src/main/jni/libevent/strlcpy-internal.h
similarity index 100%
rename from jni/libevent/strlcpy-internal.h
rename to src/main/jni/libevent/strlcpy-internal.h
diff --git a/jni/libevent/strlcpy.c b/src/main/jni/libevent/strlcpy.c
similarity index 100%
rename from jni/libevent/strlcpy.c
rename to src/main/jni/libevent/strlcpy.c
diff --git a/jni/libevent/util-internal.h b/src/main/jni/libevent/util-internal.h
similarity index 100%
rename from jni/libevent/util-internal.h
rename to src/main/jni/libevent/util-internal.h
diff --git a/jni/libevent/win32select.c b/src/main/jni/libevent/win32select.c
similarity index 100%
rename from jni/libevent/win32select.c
rename to src/main/jni/libevent/win32select.c
diff --git a/jni/obfsproxy/config.h b/src/main/jni/obfsproxy/config.h
similarity index 100%
rename from jni/obfsproxy/config.h
rename to src/main/jni/obfsproxy/config.h
diff --git a/jni/obfsproxy/container.c b/src/main/jni/obfsproxy/container.c
similarity index 100%
rename from jni/obfsproxy/container.c
rename to src/main/jni/obfsproxy/container.c
diff --git a/jni/obfsproxy/container.h b/src/main/jni/obfsproxy/container.h
similarity index 100%
rename from jni/obfsproxy/container.h
rename to src/main/jni/obfsproxy/container.h
diff --git a/jni/obfsproxy/crypt.c b/src/main/jni/obfsproxy/crypt.c
similarity index 100%
rename from jni/obfsproxy/crypt.c
rename to src/main/jni/obfsproxy/crypt.c
diff --git a/jni/obfsproxy/crypt.h b/src/main/jni/obfsproxy/crypt.h
similarity index 100%
rename from jni/obfsproxy/crypt.h
rename to src/main/jni/obfsproxy/crypt.h
diff --git a/jni/obfsproxy/external.c b/src/main/jni/obfsproxy/external.c
similarity index 100%
rename from jni/obfsproxy/external.c
rename to src/main/jni/obfsproxy/external.c
diff --git a/jni/obfsproxy/external.h b/src/main/jni/obfsproxy/external.h
similarity index 100%
rename from jni/obfsproxy/external.h
rename to src/main/jni/obfsproxy/external.h
diff --git a/jni/obfsproxy/ht.h b/src/main/jni/obfsproxy/ht.h
similarity index 100%
rename from jni/obfsproxy/ht.h
rename to src/main/jni/obfsproxy/ht.h
diff --git a/jni/obfsproxy/main.c b/src/main/jni/obfsproxy/main.c
similarity index 100%
rename from jni/obfsproxy/main.c
rename to src/main/jni/obfsproxy/main.c
diff --git a/jni/obfsproxy/main.h b/src/main/jni/obfsproxy/main.h
similarity index 100%
rename from jni/obfsproxy/main.h
rename to src/main/jni/obfsproxy/main.h
diff --git a/jni/obfsproxy/managed.c b/src/main/jni/obfsproxy/managed.c
similarity index 100%
rename from jni/obfsproxy/managed.c
rename to src/main/jni/obfsproxy/managed.c
diff --git a/jni/obfsproxy/managed.h b/src/main/jni/obfsproxy/managed.h
similarity index 100%
rename from jni/obfsproxy/managed.h
rename to src/main/jni/obfsproxy/managed.h
diff --git a/jni/obfsproxy/micro-revision.i b/src/main/jni/obfsproxy/micro-revision.i
similarity index 100%
rename from jni/obfsproxy/micro-revision.i
rename to src/main/jni/obfsproxy/micro-revision.i
diff --git a/jni/obfsproxy/network.c b/src/main/jni/obfsproxy/network.c
similarity index 100%
rename from jni/obfsproxy/network.c
rename to src/main/jni/obfsproxy/network.c
diff --git a/jni/obfsproxy/network.h b/src/main/jni/obfsproxy/network.h
similarity index 100%
rename from jni/obfsproxy/network.h
rename to src/main/jni/obfsproxy/network.h
diff --git a/jni/obfsproxy/obfs_main.c b/src/main/jni/obfsproxy/obfs_main.c
similarity index 100%
rename from jni/obfsproxy/obfs_main.c
rename to src/main/jni/obfsproxy/obfs_main.c
diff --git a/jni/obfsproxy/protocol.c b/src/main/jni/obfsproxy/protocol.c
similarity index 100%
rename from jni/obfsproxy/protocol.c
rename to src/main/jni/obfsproxy/protocol.c
diff --git a/jni/obfsproxy/protocol.h b/src/main/jni/obfsproxy/protocol.h
similarity index 100%
rename from jni/obfsproxy/protocol.h
rename to src/main/jni/obfsproxy/protocol.h
diff --git a/jni/obfsproxy/protocols/dummy.c b/src/main/jni/obfsproxy/protocols/dummy.c
similarity index 100%
rename from jni/obfsproxy/protocols/dummy.c
rename to src/main/jni/obfsproxy/protocols/dummy.c
diff --git a/jni/obfsproxy/protocols/dummy.h b/src/main/jni/obfsproxy/protocols/dummy.h
similarity index 100%
rename from jni/obfsproxy/protocols/dummy.h
rename to src/main/jni/obfsproxy/protocols/dummy.h
diff --git a/jni/obfsproxy/protocols/obfs2.c b/src/main/jni/obfsproxy/protocols/obfs2.c
similarity index 100%
rename from jni/obfsproxy/protocols/obfs2.c
rename to src/main/jni/obfsproxy/protocols/obfs2.c
diff --git a/jni/obfsproxy/protocols/obfs2.h b/src/main/jni/obfsproxy/protocols/obfs2.h
similarity index 100%
rename from jni/obfsproxy/protocols/obfs2.h
rename to src/main/jni/obfsproxy/protocols/obfs2.h
diff --git a/jni/obfsproxy/sha256.c b/src/main/jni/obfsproxy/sha256.c
similarity index 100%
rename from jni/obfsproxy/sha256.c
rename to src/main/jni/obfsproxy/sha256.c
diff --git a/jni/obfsproxy/sha256.h b/src/main/jni/obfsproxy/sha256.h
similarity index 100%
rename from jni/obfsproxy/sha256.h
rename to src/main/jni/obfsproxy/sha256.h
diff --git a/jni/obfsproxy/socks.c b/src/main/jni/obfsproxy/socks.c
similarity index 100%
rename from jni/obfsproxy/socks.c
rename to src/main/jni/obfsproxy/socks.c
diff --git a/jni/obfsproxy/socks.h b/src/main/jni/obfsproxy/socks.h
similarity index 100%
rename from jni/obfsproxy/socks.h
rename to src/main/jni/obfsproxy/socks.h
diff --git a/jni/obfsproxy/status.c b/src/main/jni/obfsproxy/status.c
similarity index 100%
rename from jni/obfsproxy/status.c
rename to src/main/jni/obfsproxy/status.c
diff --git a/jni/obfsproxy/status.h b/src/main/jni/obfsproxy/status.h
similarity index 100%
rename from jni/obfsproxy/status.h
rename to src/main/jni/obfsproxy/status.h
diff --git a/jni/obfsproxy/test/tester.py.in b/src/main/jni/obfsproxy/test/tester.py.in
similarity index 100%
rename from jni/obfsproxy/test/tester.py.in
rename to src/main/jni/obfsproxy/test/tester.py.in
diff --git a/jni/obfsproxy/test/tinytest.c b/src/main/jni/obfsproxy/test/tinytest.c
similarity index 100%
rename from jni/obfsproxy/test/tinytest.c
rename to src/main/jni/obfsproxy/test/tinytest.c
diff --git a/jni/obfsproxy/test/tinytest.h b/src/main/jni/obfsproxy/test/tinytest.h
similarity index 100%
rename from jni/obfsproxy/test/tinytest.h
rename to src/main/jni/obfsproxy/test/tinytest.h
diff --git a/jni/obfsproxy/test/tinytest_macros.h b/src/main/jni/obfsproxy/test/tinytest_macros.h
similarity index 100%
rename from jni/obfsproxy/test/tinytest_macros.h
rename to src/main/jni/obfsproxy/test/tinytest_macros.h
diff --git a/jni/obfsproxy/test/unittest.c b/src/main/jni/obfsproxy/test/unittest.c
similarity index 100%
rename from jni/obfsproxy/test/unittest.c
rename to src/main/jni/obfsproxy/test/unittest.c
diff --git a/jni/obfsproxy/test/unittest_container.c b/src/main/jni/obfsproxy/test/unittest_container.c
similarity index 100%
rename from jni/obfsproxy/test/unittest_container.c
rename to src/main/jni/obfsproxy/test/unittest_container.c
diff --git a/jni/obfsproxy/test/unittest_crypt.c b/src/main/jni/obfsproxy/test/unittest_crypt.c
similarity index 100%
rename from jni/obfsproxy/test/unittest_crypt.c
rename to src/main/jni/obfsproxy/test/unittest_crypt.c
diff --git a/jni/obfsproxy/test/unittest_dummy.c b/src/main/jni/obfsproxy/test/unittest_dummy.c
similarity index 100%
rename from jni/obfsproxy/test/unittest_dummy.c
rename to src/main/jni/obfsproxy/test/unittest_dummy.c
diff --git a/jni/obfsproxy/test/unittest_managed.c b/src/main/jni/obfsproxy/test/unittest_managed.c
similarity index 100%
rename from jni/obfsproxy/test/unittest_managed.c
rename to src/main/jni/obfsproxy/test/unittest_managed.c
diff --git a/jni/obfsproxy/test/unittest_obfs2.c b/src/main/jni/obfsproxy/test/unittest_obfs2.c
similarity index 100%
rename from jni/obfsproxy/test/unittest_obfs2.c
rename to src/main/jni/obfsproxy/test/unittest_obfs2.c
diff --git a/jni/obfsproxy/test/unittest_socks.c b/src/main/jni/obfsproxy/test/unittest_socks.c
similarity index 100%
rename from jni/obfsproxy/test/unittest_socks.c
rename to src/main/jni/obfsproxy/test/unittest_socks.c
diff --git a/jni/obfsproxy/test/unittest_util.c b/src/main/jni/obfsproxy/test/unittest_util.c
similarity index 100%
rename from jni/obfsproxy/test/unittest_util.c
rename to src/main/jni/obfsproxy/test/unittest_util.c
diff --git a/jni/obfsproxy/util.c b/src/main/jni/obfsproxy/util.c
similarity index 100%
rename from jni/obfsproxy/util.c
rename to src/main/jni/obfsproxy/util.c
diff --git a/jni/obfsproxy/util.h b/src/main/jni/obfsproxy/util.h
similarity index 100%
rename from jni/obfsproxy/util.h
rename to src/main/jni/obfsproxy/util.h
diff --git a/jni/openssl/ACKNOWLEDGMENTS b/src/main/jni/openssl/ACKNOWLEDGMENTS
similarity index 100%
rename from jni/openssl/ACKNOWLEDGMENTS
rename to src/main/jni/openssl/ACKNOWLEDGMENTS
diff --git a/jni/openssl/MODULE_LICENSE_BSD_LIKE b/src/main/jni/openssl/MODULE_LICENSE_BSD_LIKE
similarity index 100%
rename from jni/openssl/MODULE_LICENSE_BSD_LIKE
rename to src/main/jni/openssl/MODULE_LICENSE_BSD_LIKE
diff --git a/jni/openssl/NOTICE b/src/main/jni/openssl/NOTICE
similarity index 100%
rename from jni/openssl/NOTICE
rename to src/main/jni/openssl/NOTICE
diff --git a/jni/openssl/README.ANDROID.txt b/src/main/jni/openssl/README.ANDROID.txt
similarity index 100%
rename from jni/openssl/README.ANDROID.txt
rename to src/main/jni/openssl/README.ANDROID.txt
diff --git a/jni/openssl/README.md b/src/main/jni/openssl/README.md
similarity index 100%
rename from jni/openssl/README.md
rename to src/main/jni/openssl/README.md
diff --git a/jni/openssl/android-config.mk b/src/main/jni/openssl/android-config.mk
similarity index 100%
rename from jni/openssl/android-config.mk
rename to src/main/jni/openssl/android-config.mk
diff --git a/jni/openssl/crypto/Android.mk b/src/main/jni/openssl/crypto/Android.mk
similarity index 100%
rename from jni/openssl/crypto/Android.mk
rename to src/main/jni/openssl/crypto/Android.mk
diff --git a/jni/openssl/crypto/LPdir_nyi.c b/src/main/jni/openssl/crypto/LPdir_nyi.c
similarity index 100%
rename from jni/openssl/crypto/LPdir_nyi.c
rename to src/main/jni/openssl/crypto/LPdir_nyi.c
diff --git a/jni/openssl/crypto/LPdir_unix.c b/src/main/jni/openssl/crypto/LPdir_unix.c
similarity index 100%
rename from jni/openssl/crypto/LPdir_unix.c
rename to src/main/jni/openssl/crypto/LPdir_unix.c
diff --git a/jni/openssl/crypto/LPdir_vms.c b/src/main/jni/openssl/crypto/LPdir_vms.c
similarity index 100%
rename from jni/openssl/crypto/LPdir_vms.c
rename to src/main/jni/openssl/crypto/LPdir_vms.c
diff --git a/jni/openssl/crypto/LPdir_win.c b/src/main/jni/openssl/crypto/LPdir_win.c
similarity index 100%
rename from jni/openssl/crypto/LPdir_win.c
rename to src/main/jni/openssl/crypto/LPdir_win.c
diff --git a/jni/openssl/crypto/LPdir_win32.c b/src/main/jni/openssl/crypto/LPdir_win32.c
similarity index 100%
rename from jni/openssl/crypto/LPdir_win32.c
rename to src/main/jni/openssl/crypto/LPdir_win32.c
diff --git a/jni/openssl/crypto/LPdir_wince.c b/src/main/jni/openssl/crypto/LPdir_wince.c
similarity index 100%
rename from jni/openssl/crypto/LPdir_wince.c
rename to src/main/jni/openssl/crypto/LPdir_wince.c
diff --git a/jni/openssl/crypto/Makefile b/src/main/jni/openssl/crypto/Makefile
similarity index 100%
rename from jni/openssl/crypto/Makefile
rename to src/main/jni/openssl/crypto/Makefile
diff --git a/jni/openssl/crypto/aes/Makefile b/src/main/jni/openssl/crypto/aes/Makefile
similarity index 100%
rename from jni/openssl/crypto/aes/Makefile
rename to src/main/jni/openssl/crypto/aes/Makefile
diff --git a/jni/openssl/crypto/aes/README b/src/main/jni/openssl/crypto/aes/README
similarity index 100%
rename from jni/openssl/crypto/aes/README
rename to src/main/jni/openssl/crypto/aes/README
diff --git a/jni/openssl/crypto/aes/aes.h b/src/main/jni/openssl/crypto/aes/aes.h
similarity index 100%
rename from jni/openssl/crypto/aes/aes.h
rename to src/main/jni/openssl/crypto/aes/aes.h
diff --git a/jni/openssl/crypto/aes/aes_cbc.c b/src/main/jni/openssl/crypto/aes/aes_cbc.c
similarity index 100%
rename from jni/openssl/crypto/aes/aes_cbc.c
rename to src/main/jni/openssl/crypto/aes/aes_cbc.c
diff --git a/jni/openssl/crypto/aes/aes_cfb.c b/src/main/jni/openssl/crypto/aes/aes_cfb.c
similarity index 100%
rename from jni/openssl/crypto/aes/aes_cfb.c
rename to src/main/jni/openssl/crypto/aes/aes_cfb.c
diff --git a/jni/openssl/crypto/aes/aes_core.c b/src/main/jni/openssl/crypto/aes/aes_core.c
similarity index 100%
rename from jni/openssl/crypto/aes/aes_core.c
rename to src/main/jni/openssl/crypto/aes/aes_core.c
diff --git a/jni/openssl/crypto/aes/aes_ctr.c b/src/main/jni/openssl/crypto/aes/aes_ctr.c
similarity index 100%
rename from jni/openssl/crypto/aes/aes_ctr.c
rename to src/main/jni/openssl/crypto/aes/aes_ctr.c
diff --git a/jni/openssl/crypto/aes/aes_ecb.c b/src/main/jni/openssl/crypto/aes/aes_ecb.c
similarity index 100%
rename from jni/openssl/crypto/aes/aes_ecb.c
rename to src/main/jni/openssl/crypto/aes/aes_ecb.c
diff --git a/jni/openssl/crypto/aes/aes_ige.c b/src/main/jni/openssl/crypto/aes/aes_ige.c
similarity index 100%
rename from jni/openssl/crypto/aes/aes_ige.c
rename to src/main/jni/openssl/crypto/aes/aes_ige.c
diff --git a/jni/openssl/crypto/aes/aes_locl.h b/src/main/jni/openssl/crypto/aes/aes_locl.h
similarity index 100%
rename from jni/openssl/crypto/aes/aes_locl.h
rename to src/main/jni/openssl/crypto/aes/aes_locl.h
diff --git a/jni/openssl/crypto/aes/aes_misc.c b/src/main/jni/openssl/crypto/aes/aes_misc.c
similarity index 100%
rename from jni/openssl/crypto/aes/aes_misc.c
rename to src/main/jni/openssl/crypto/aes/aes_misc.c
diff --git a/jni/openssl/crypto/aes/aes_ofb.c b/src/main/jni/openssl/crypto/aes/aes_ofb.c
similarity index 100%
rename from jni/openssl/crypto/aes/aes_ofb.c
rename to src/main/jni/openssl/crypto/aes/aes_ofb.c
diff --git a/jni/openssl/crypto/aes/aes_wrap.c b/src/main/jni/openssl/crypto/aes/aes_wrap.c
similarity index 100%
rename from jni/openssl/crypto/aes/aes_wrap.c
rename to src/main/jni/openssl/crypto/aes/aes_wrap.c
diff --git a/jni/openssl/crypto/aes/aes_x86core.c b/src/main/jni/openssl/crypto/aes/aes_x86core.c
similarity index 100%
rename from jni/openssl/crypto/aes/aes_x86core.c
rename to src/main/jni/openssl/crypto/aes/aes_x86core.c
diff --git a/jni/openssl/crypto/aes/asm/aes-586.pl b/src/main/jni/openssl/crypto/aes/asm/aes-586.pl
similarity index 100%
rename from jni/openssl/crypto/aes/asm/aes-586.pl
rename to src/main/jni/openssl/crypto/aes/asm/aes-586.pl
diff --git a/jni/openssl/crypto/aes/asm/aes-armv4.S b/src/main/jni/openssl/crypto/aes/asm/aes-armv4.S
similarity index 100%
rename from jni/openssl/crypto/aes/asm/aes-armv4.S
rename to src/main/jni/openssl/crypto/aes/asm/aes-armv4.S
diff --git a/jni/openssl/crypto/aes/asm/aes-armv4.pl b/src/main/jni/openssl/crypto/aes/asm/aes-armv4.pl
similarity index 100%
rename from jni/openssl/crypto/aes/asm/aes-armv4.pl
rename to src/main/jni/openssl/crypto/aes/asm/aes-armv4.pl
diff --git a/jni/openssl/crypto/aes/asm/aes-ia64.S b/src/main/jni/openssl/crypto/aes/asm/aes-ia64.S
similarity index 100%
rename from jni/openssl/crypto/aes/asm/aes-ia64.S
rename to src/main/jni/openssl/crypto/aes/asm/aes-ia64.S
diff --git a/jni/openssl/crypto/aes/asm/aes-mips.pl b/src/main/jni/openssl/crypto/aes/asm/aes-mips.pl
similarity index 100%
rename from jni/openssl/crypto/aes/asm/aes-mips.pl
rename to src/main/jni/openssl/crypto/aes/asm/aes-mips.pl
diff --git a/jni/openssl/crypto/aes/asm/aes-parisc.pl b/src/main/jni/openssl/crypto/aes/asm/aes-parisc.pl
similarity index 100%
rename from jni/openssl/crypto/aes/asm/aes-parisc.pl
rename to src/main/jni/openssl/crypto/aes/asm/aes-parisc.pl
diff --git a/jni/openssl/crypto/aes/asm/aes-ppc.pl b/src/main/jni/openssl/crypto/aes/asm/aes-ppc.pl
similarity index 100%
rename from jni/openssl/crypto/aes/asm/aes-ppc.pl
rename to src/main/jni/openssl/crypto/aes/asm/aes-ppc.pl
diff --git a/jni/openssl/crypto/aes/asm/aes-s390x.pl b/src/main/jni/openssl/crypto/aes/asm/aes-s390x.pl
similarity index 100%
rename from jni/openssl/crypto/aes/asm/aes-s390x.pl
rename to src/main/jni/openssl/crypto/aes/asm/aes-s390x.pl
diff --git a/jni/openssl/crypto/aes/asm/aes-sparcv9.pl b/src/main/jni/openssl/crypto/aes/asm/aes-sparcv9.pl
similarity index 100%
rename from jni/openssl/crypto/aes/asm/aes-sparcv9.pl
rename to src/main/jni/openssl/crypto/aes/asm/aes-sparcv9.pl
diff --git a/jni/openssl/crypto/aes/asm/aes-x86_64.pl b/src/main/jni/openssl/crypto/aes/asm/aes-x86_64.pl
similarity index 100%
rename from jni/openssl/crypto/aes/asm/aes-x86_64.pl
rename to src/main/jni/openssl/crypto/aes/asm/aes-x86_64.pl
diff --git a/jni/openssl/crypto/aes/asm/aesni-sha1-x86_64.pl b/src/main/jni/openssl/crypto/aes/asm/aesni-sha1-x86_64.pl
similarity index 100%
rename from jni/openssl/crypto/aes/asm/aesni-sha1-x86_64.pl
rename to src/main/jni/openssl/crypto/aes/asm/aesni-sha1-x86_64.pl
diff --git a/jni/openssl/crypto/aes/asm/aesni-x86.pl b/src/main/jni/openssl/crypto/aes/asm/aesni-x86.pl
similarity index 100%
rename from jni/openssl/crypto/aes/asm/aesni-x86.pl
rename to src/main/jni/openssl/crypto/aes/asm/aesni-x86.pl
diff --git a/jni/openssl/crypto/aes/asm/aesni-x86_64.pl b/src/main/jni/openssl/crypto/aes/asm/aesni-x86_64.pl
similarity index 100%
rename from jni/openssl/crypto/aes/asm/aesni-x86_64.pl
rename to src/main/jni/openssl/crypto/aes/asm/aesni-x86_64.pl
diff --git a/jni/openssl/crypto/aes/asm/bsaes-x86_64.pl b/src/main/jni/openssl/crypto/aes/asm/bsaes-x86_64.pl
similarity index 100%
rename from jni/openssl/crypto/aes/asm/bsaes-x86_64.pl
rename to src/main/jni/openssl/crypto/aes/asm/bsaes-x86_64.pl
diff --git a/jni/openssl/crypto/aes/asm/vpaes-x86.pl b/src/main/jni/openssl/crypto/aes/asm/vpaes-x86.pl
similarity index 100%
rename from jni/openssl/crypto/aes/asm/vpaes-x86.pl
rename to src/main/jni/openssl/crypto/aes/asm/vpaes-x86.pl
diff --git a/jni/openssl/crypto/aes/asm/vpaes-x86_64.pl b/src/main/jni/openssl/crypto/aes/asm/vpaes-x86_64.pl
similarity index 100%
rename from jni/openssl/crypto/aes/asm/vpaes-x86_64.pl
rename to src/main/jni/openssl/crypto/aes/asm/vpaes-x86_64.pl
diff --git a/jni/openssl/crypto/alphacpuid.pl b/src/main/jni/openssl/crypto/alphacpuid.pl
similarity index 100%
rename from jni/openssl/crypto/alphacpuid.pl
rename to src/main/jni/openssl/crypto/alphacpuid.pl
diff --git a/jni/openssl/crypto/arm_arch.h b/src/main/jni/openssl/crypto/arm_arch.h
similarity index 100%
rename from jni/openssl/crypto/arm_arch.h
rename to src/main/jni/openssl/crypto/arm_arch.h
diff --git a/jni/openssl/crypto/armcap.c b/src/main/jni/openssl/crypto/armcap.c
similarity index 100%
rename from jni/openssl/crypto/armcap.c
rename to src/main/jni/openssl/crypto/armcap.c
diff --git a/jni/openssl/crypto/armv4cpuid.S b/src/main/jni/openssl/crypto/armv4cpuid.S
similarity index 100%
rename from jni/openssl/crypto/armv4cpuid.S
rename to src/main/jni/openssl/crypto/armv4cpuid.S
diff --git a/jni/openssl/crypto/asn1/Makefile b/src/main/jni/openssl/crypto/asn1/Makefile
similarity index 100%
rename from jni/openssl/crypto/asn1/Makefile
rename to src/main/jni/openssl/crypto/asn1/Makefile
diff --git a/jni/openssl/crypto/asn1/a_bitstr.c b/src/main/jni/openssl/crypto/asn1/a_bitstr.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_bitstr.c
rename to src/main/jni/openssl/crypto/asn1/a_bitstr.c
diff --git a/jni/openssl/crypto/asn1/a_bool.c b/src/main/jni/openssl/crypto/asn1/a_bool.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_bool.c
rename to src/main/jni/openssl/crypto/asn1/a_bool.c
diff --git a/jni/openssl/crypto/asn1/a_bytes.c b/src/main/jni/openssl/crypto/asn1/a_bytes.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_bytes.c
rename to src/main/jni/openssl/crypto/asn1/a_bytes.c
diff --git a/jni/openssl/crypto/asn1/a_d2i_fp.c b/src/main/jni/openssl/crypto/asn1/a_d2i_fp.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_d2i_fp.c
rename to src/main/jni/openssl/crypto/asn1/a_d2i_fp.c
diff --git a/jni/openssl/crypto/asn1/a_digest.c b/src/main/jni/openssl/crypto/asn1/a_digest.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_digest.c
rename to src/main/jni/openssl/crypto/asn1/a_digest.c
diff --git a/jni/openssl/crypto/asn1/a_dup.c b/src/main/jni/openssl/crypto/asn1/a_dup.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_dup.c
rename to src/main/jni/openssl/crypto/asn1/a_dup.c
diff --git a/jni/openssl/crypto/asn1/a_enum.c b/src/main/jni/openssl/crypto/asn1/a_enum.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_enum.c
rename to src/main/jni/openssl/crypto/asn1/a_enum.c
diff --git a/jni/openssl/crypto/asn1/a_gentm.c b/src/main/jni/openssl/crypto/asn1/a_gentm.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_gentm.c
rename to src/main/jni/openssl/crypto/asn1/a_gentm.c
diff --git a/jni/openssl/crypto/asn1/a_i2d_fp.c b/src/main/jni/openssl/crypto/asn1/a_i2d_fp.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_i2d_fp.c
rename to src/main/jni/openssl/crypto/asn1/a_i2d_fp.c
diff --git a/jni/openssl/crypto/asn1/a_int.c b/src/main/jni/openssl/crypto/asn1/a_int.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_int.c
rename to src/main/jni/openssl/crypto/asn1/a_int.c
diff --git a/jni/openssl/crypto/asn1/a_mbstr.c b/src/main/jni/openssl/crypto/asn1/a_mbstr.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_mbstr.c
rename to src/main/jni/openssl/crypto/asn1/a_mbstr.c
diff --git a/jni/openssl/crypto/asn1/a_object.c b/src/main/jni/openssl/crypto/asn1/a_object.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_object.c
rename to src/main/jni/openssl/crypto/asn1/a_object.c
diff --git a/jni/openssl/crypto/asn1/a_octet.c b/src/main/jni/openssl/crypto/asn1/a_octet.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_octet.c
rename to src/main/jni/openssl/crypto/asn1/a_octet.c
diff --git a/jni/openssl/crypto/asn1/a_print.c b/src/main/jni/openssl/crypto/asn1/a_print.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_print.c
rename to src/main/jni/openssl/crypto/asn1/a_print.c
diff --git a/jni/openssl/crypto/asn1/a_set.c b/src/main/jni/openssl/crypto/asn1/a_set.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_set.c
rename to src/main/jni/openssl/crypto/asn1/a_set.c
diff --git a/jni/openssl/crypto/asn1/a_sign.c b/src/main/jni/openssl/crypto/asn1/a_sign.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_sign.c
rename to src/main/jni/openssl/crypto/asn1/a_sign.c
diff --git a/jni/openssl/crypto/asn1/a_strex.c b/src/main/jni/openssl/crypto/asn1/a_strex.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_strex.c
rename to src/main/jni/openssl/crypto/asn1/a_strex.c
diff --git a/jni/openssl/crypto/asn1/a_strnid.c b/src/main/jni/openssl/crypto/asn1/a_strnid.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_strnid.c
rename to src/main/jni/openssl/crypto/asn1/a_strnid.c
diff --git a/jni/openssl/crypto/asn1/a_time.c b/src/main/jni/openssl/crypto/asn1/a_time.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_time.c
rename to src/main/jni/openssl/crypto/asn1/a_time.c
diff --git a/jni/openssl/crypto/asn1/a_type.c b/src/main/jni/openssl/crypto/asn1/a_type.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_type.c
rename to src/main/jni/openssl/crypto/asn1/a_type.c
diff --git a/jni/openssl/crypto/asn1/a_utctm.c b/src/main/jni/openssl/crypto/asn1/a_utctm.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_utctm.c
rename to src/main/jni/openssl/crypto/asn1/a_utctm.c
diff --git a/jni/openssl/crypto/asn1/a_utf8.c b/src/main/jni/openssl/crypto/asn1/a_utf8.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_utf8.c
rename to src/main/jni/openssl/crypto/asn1/a_utf8.c
diff --git a/jni/openssl/crypto/asn1/a_verify.c b/src/main/jni/openssl/crypto/asn1/a_verify.c
similarity index 100%
rename from jni/openssl/crypto/asn1/a_verify.c
rename to src/main/jni/openssl/crypto/asn1/a_verify.c
diff --git a/jni/openssl/crypto/asn1/ameth_lib.c b/src/main/jni/openssl/crypto/asn1/ameth_lib.c
similarity index 100%
rename from jni/openssl/crypto/asn1/ameth_lib.c
rename to src/main/jni/openssl/crypto/asn1/ameth_lib.c
diff --git a/jni/openssl/crypto/asn1/asn1.h b/src/main/jni/openssl/crypto/asn1/asn1.h
similarity index 100%
rename from jni/openssl/crypto/asn1/asn1.h
rename to src/main/jni/openssl/crypto/asn1/asn1.h
diff --git a/jni/openssl/crypto/asn1/asn1_err.c b/src/main/jni/openssl/crypto/asn1/asn1_err.c
similarity index 100%
rename from jni/openssl/crypto/asn1/asn1_err.c
rename to src/main/jni/openssl/crypto/asn1/asn1_err.c
diff --git a/jni/openssl/crypto/asn1/asn1_gen.c b/src/main/jni/openssl/crypto/asn1/asn1_gen.c
similarity index 100%
rename from jni/openssl/crypto/asn1/asn1_gen.c
rename to src/main/jni/openssl/crypto/asn1/asn1_gen.c
diff --git a/jni/openssl/crypto/asn1/asn1_lib.c b/src/main/jni/openssl/crypto/asn1/asn1_lib.c
similarity index 100%
rename from jni/openssl/crypto/asn1/asn1_lib.c
rename to src/main/jni/openssl/crypto/asn1/asn1_lib.c
diff --git a/jni/openssl/crypto/asn1/asn1_locl.h b/src/main/jni/openssl/crypto/asn1/asn1_locl.h
similarity index 100%
rename from jni/openssl/crypto/asn1/asn1_locl.h
rename to src/main/jni/openssl/crypto/asn1/asn1_locl.h
diff --git a/jni/openssl/crypto/asn1/asn1_mac.h b/src/main/jni/openssl/crypto/asn1/asn1_mac.h
similarity index 100%
rename from jni/openssl/crypto/asn1/asn1_mac.h
rename to src/main/jni/openssl/crypto/asn1/asn1_mac.h
diff --git a/jni/openssl/crypto/asn1/asn1_par.c b/src/main/jni/openssl/crypto/asn1/asn1_par.c
similarity index 100%
rename from jni/openssl/crypto/asn1/asn1_par.c
rename to src/main/jni/openssl/crypto/asn1/asn1_par.c
diff --git a/jni/openssl/crypto/asn1/asn1t.h b/src/main/jni/openssl/crypto/asn1/asn1t.h
similarity index 100%
rename from jni/openssl/crypto/asn1/asn1t.h
rename to src/main/jni/openssl/crypto/asn1/asn1t.h
diff --git a/jni/openssl/crypto/asn1/asn_mime.c b/src/main/jni/openssl/crypto/asn1/asn_mime.c
similarity index 100%
rename from jni/openssl/crypto/asn1/asn_mime.c
rename to src/main/jni/openssl/crypto/asn1/asn_mime.c
diff --git a/jni/openssl/crypto/asn1/asn_moid.c b/src/main/jni/openssl/crypto/asn1/asn_moid.c
similarity index 100%
rename from jni/openssl/crypto/asn1/asn_moid.c
rename to src/main/jni/openssl/crypto/asn1/asn_moid.c
diff --git a/jni/openssl/crypto/asn1/asn_pack.c b/src/main/jni/openssl/crypto/asn1/asn_pack.c
similarity index 100%
rename from jni/openssl/crypto/asn1/asn_pack.c
rename to src/main/jni/openssl/crypto/asn1/asn_pack.c
diff --git a/jni/openssl/crypto/asn1/bio_asn1.c b/src/main/jni/openssl/crypto/asn1/bio_asn1.c
similarity index 100%
rename from jni/openssl/crypto/asn1/bio_asn1.c
rename to src/main/jni/openssl/crypto/asn1/bio_asn1.c
diff --git a/jni/openssl/crypto/asn1/bio_ndef.c b/src/main/jni/openssl/crypto/asn1/bio_ndef.c
similarity index 100%
rename from jni/openssl/crypto/asn1/bio_ndef.c
rename to src/main/jni/openssl/crypto/asn1/bio_ndef.c
diff --git a/jni/openssl/crypto/asn1/charmap.h b/src/main/jni/openssl/crypto/asn1/charmap.h
similarity index 100%
rename from jni/openssl/crypto/asn1/charmap.h
rename to src/main/jni/openssl/crypto/asn1/charmap.h
diff --git a/jni/openssl/crypto/asn1/charmap.pl b/src/main/jni/openssl/crypto/asn1/charmap.pl
similarity index 100%
rename from jni/openssl/crypto/asn1/charmap.pl
rename to src/main/jni/openssl/crypto/asn1/charmap.pl
diff --git a/jni/openssl/crypto/asn1/d2i_pr.c b/src/main/jni/openssl/crypto/asn1/d2i_pr.c
similarity index 100%
rename from jni/openssl/crypto/asn1/d2i_pr.c
rename to src/main/jni/openssl/crypto/asn1/d2i_pr.c
diff --git a/jni/openssl/crypto/asn1/d2i_pu.c b/src/main/jni/openssl/crypto/asn1/d2i_pu.c
similarity index 100%
rename from jni/openssl/crypto/asn1/d2i_pu.c
rename to src/main/jni/openssl/crypto/asn1/d2i_pu.c
diff --git a/jni/openssl/crypto/asn1/evp_asn1.c b/src/main/jni/openssl/crypto/asn1/evp_asn1.c
similarity index 100%
rename from jni/openssl/crypto/asn1/evp_asn1.c
rename to src/main/jni/openssl/crypto/asn1/evp_asn1.c
diff --git a/jni/openssl/crypto/asn1/f_enum.c b/src/main/jni/openssl/crypto/asn1/f_enum.c
similarity index 100%
rename from jni/openssl/crypto/asn1/f_enum.c
rename to src/main/jni/openssl/crypto/asn1/f_enum.c
diff --git a/jni/openssl/crypto/asn1/f_int.c b/src/main/jni/openssl/crypto/asn1/f_int.c
similarity index 100%
rename from jni/openssl/crypto/asn1/f_int.c
rename to src/main/jni/openssl/crypto/asn1/f_int.c
diff --git a/jni/openssl/crypto/asn1/f_string.c b/src/main/jni/openssl/crypto/asn1/f_string.c
similarity index 100%
rename from jni/openssl/crypto/asn1/f_string.c
rename to src/main/jni/openssl/crypto/asn1/f_string.c
diff --git a/jni/openssl/crypto/asn1/i2d_pr.c b/src/main/jni/openssl/crypto/asn1/i2d_pr.c
similarity index 100%
rename from jni/openssl/crypto/asn1/i2d_pr.c
rename to src/main/jni/openssl/crypto/asn1/i2d_pr.c
diff --git a/jni/openssl/crypto/asn1/i2d_pu.c b/src/main/jni/openssl/crypto/asn1/i2d_pu.c
similarity index 100%
rename from jni/openssl/crypto/asn1/i2d_pu.c
rename to src/main/jni/openssl/crypto/asn1/i2d_pu.c
diff --git a/jni/openssl/crypto/asn1/n_pkey.c b/src/main/jni/openssl/crypto/asn1/n_pkey.c
similarity index 100%
rename from jni/openssl/crypto/asn1/n_pkey.c
rename to src/main/jni/openssl/crypto/asn1/n_pkey.c
diff --git a/jni/openssl/crypto/asn1/nsseq.c b/src/main/jni/openssl/crypto/asn1/nsseq.c
similarity index 100%
rename from jni/openssl/crypto/asn1/nsseq.c
rename to src/main/jni/openssl/crypto/asn1/nsseq.c
diff --git a/jni/openssl/crypto/asn1/p5_pbe.c b/src/main/jni/openssl/crypto/asn1/p5_pbe.c
similarity index 100%
rename from jni/openssl/crypto/asn1/p5_pbe.c
rename to src/main/jni/openssl/crypto/asn1/p5_pbe.c
diff --git a/jni/openssl/crypto/asn1/p5_pbev2.c b/src/main/jni/openssl/crypto/asn1/p5_pbev2.c
similarity index 100%
rename from jni/openssl/crypto/asn1/p5_pbev2.c
rename to src/main/jni/openssl/crypto/asn1/p5_pbev2.c
diff --git a/jni/openssl/crypto/asn1/p8_pkey.c b/src/main/jni/openssl/crypto/asn1/p8_pkey.c
similarity index 100%
rename from jni/openssl/crypto/asn1/p8_pkey.c
rename to src/main/jni/openssl/crypto/asn1/p8_pkey.c
diff --git a/jni/openssl/crypto/asn1/t_bitst.c b/src/main/jni/openssl/crypto/asn1/t_bitst.c
similarity index 100%
rename from jni/openssl/crypto/asn1/t_bitst.c
rename to src/main/jni/openssl/crypto/asn1/t_bitst.c
diff --git a/jni/openssl/crypto/asn1/t_crl.c b/src/main/jni/openssl/crypto/asn1/t_crl.c
similarity index 100%
rename from jni/openssl/crypto/asn1/t_crl.c
rename to src/main/jni/openssl/crypto/asn1/t_crl.c
diff --git a/jni/openssl/crypto/asn1/t_pkey.c b/src/main/jni/openssl/crypto/asn1/t_pkey.c
similarity index 100%
rename from jni/openssl/crypto/asn1/t_pkey.c
rename to src/main/jni/openssl/crypto/asn1/t_pkey.c
diff --git a/jni/openssl/crypto/asn1/t_req.c b/src/main/jni/openssl/crypto/asn1/t_req.c
similarity index 100%
rename from jni/openssl/crypto/asn1/t_req.c
rename to src/main/jni/openssl/crypto/asn1/t_req.c
diff --git a/jni/openssl/crypto/asn1/t_spki.c b/src/main/jni/openssl/crypto/asn1/t_spki.c
similarity index 100%
rename from jni/openssl/crypto/asn1/t_spki.c
rename to src/main/jni/openssl/crypto/asn1/t_spki.c
diff --git a/jni/openssl/crypto/asn1/t_x509.c b/src/main/jni/openssl/crypto/asn1/t_x509.c
similarity index 100%
rename from jni/openssl/crypto/asn1/t_x509.c
rename to src/main/jni/openssl/crypto/asn1/t_x509.c
diff --git a/jni/openssl/crypto/asn1/t_x509a.c b/src/main/jni/openssl/crypto/asn1/t_x509a.c
similarity index 100%
rename from jni/openssl/crypto/asn1/t_x509a.c
rename to src/main/jni/openssl/crypto/asn1/t_x509a.c
diff --git a/jni/openssl/crypto/asn1/tasn_dec.c b/src/main/jni/openssl/crypto/asn1/tasn_dec.c
similarity index 100%
rename from jni/openssl/crypto/asn1/tasn_dec.c
rename to src/main/jni/openssl/crypto/asn1/tasn_dec.c
diff --git a/jni/openssl/crypto/asn1/tasn_enc.c b/src/main/jni/openssl/crypto/asn1/tasn_enc.c
similarity index 100%
rename from jni/openssl/crypto/asn1/tasn_enc.c
rename to src/main/jni/openssl/crypto/asn1/tasn_enc.c
diff --git a/jni/openssl/crypto/asn1/tasn_fre.c b/src/main/jni/openssl/crypto/asn1/tasn_fre.c
similarity index 100%
rename from jni/openssl/crypto/asn1/tasn_fre.c
rename to src/main/jni/openssl/crypto/asn1/tasn_fre.c
diff --git a/jni/openssl/crypto/asn1/tasn_new.c b/src/main/jni/openssl/crypto/asn1/tasn_new.c
similarity index 100%
rename from jni/openssl/crypto/asn1/tasn_new.c
rename to src/main/jni/openssl/crypto/asn1/tasn_new.c
diff --git a/jni/openssl/crypto/asn1/tasn_prn.c b/src/main/jni/openssl/crypto/asn1/tasn_prn.c
similarity index 100%
rename from jni/openssl/crypto/asn1/tasn_prn.c
rename to src/main/jni/openssl/crypto/asn1/tasn_prn.c
diff --git a/jni/openssl/crypto/asn1/tasn_typ.c b/src/main/jni/openssl/crypto/asn1/tasn_typ.c
similarity index 100%
rename from jni/openssl/crypto/asn1/tasn_typ.c
rename to src/main/jni/openssl/crypto/asn1/tasn_typ.c
diff --git a/jni/openssl/crypto/asn1/tasn_utl.c b/src/main/jni/openssl/crypto/asn1/tasn_utl.c
similarity index 100%
rename from jni/openssl/crypto/asn1/tasn_utl.c
rename to src/main/jni/openssl/crypto/asn1/tasn_utl.c
diff --git a/jni/openssl/crypto/asn1/x_algor.c b/src/main/jni/openssl/crypto/asn1/x_algor.c
similarity index 100%
rename from jni/openssl/crypto/asn1/x_algor.c
rename to src/main/jni/openssl/crypto/asn1/x_algor.c
diff --git a/jni/openssl/crypto/asn1/x_attrib.c b/src/main/jni/openssl/crypto/asn1/x_attrib.c
similarity index 100%
rename from jni/openssl/crypto/asn1/x_attrib.c
rename to src/main/jni/openssl/crypto/asn1/x_attrib.c
diff --git a/jni/openssl/crypto/asn1/x_bignum.c b/src/main/jni/openssl/crypto/asn1/x_bignum.c
similarity index 100%
rename from jni/openssl/crypto/asn1/x_bignum.c
rename to src/main/jni/openssl/crypto/asn1/x_bignum.c
diff --git a/jni/openssl/crypto/asn1/x_crl.c b/src/main/jni/openssl/crypto/asn1/x_crl.c
similarity index 100%
rename from jni/openssl/crypto/asn1/x_crl.c
rename to src/main/jni/openssl/crypto/asn1/x_crl.c
diff --git a/jni/openssl/crypto/asn1/x_exten.c b/src/main/jni/openssl/crypto/asn1/x_exten.c
similarity index 100%
rename from jni/openssl/crypto/asn1/x_exten.c
rename to src/main/jni/openssl/crypto/asn1/x_exten.c
diff --git a/jni/openssl/crypto/asn1/x_info.c b/src/main/jni/openssl/crypto/asn1/x_info.c
similarity index 100%
rename from jni/openssl/crypto/asn1/x_info.c
rename to src/main/jni/openssl/crypto/asn1/x_info.c
diff --git a/jni/openssl/crypto/asn1/x_long.c b/src/main/jni/openssl/crypto/asn1/x_long.c
similarity index 100%
rename from jni/openssl/crypto/asn1/x_long.c
rename to src/main/jni/openssl/crypto/asn1/x_long.c
diff --git a/jni/openssl/crypto/asn1/x_name.c b/src/main/jni/openssl/crypto/asn1/x_name.c
similarity index 100%
rename from jni/openssl/crypto/asn1/x_name.c
rename to src/main/jni/openssl/crypto/asn1/x_name.c
diff --git a/jni/openssl/crypto/asn1/x_nx509.c b/src/main/jni/openssl/crypto/asn1/x_nx509.c
similarity index 100%
rename from jni/openssl/crypto/asn1/x_nx509.c
rename to src/main/jni/openssl/crypto/asn1/x_nx509.c
diff --git a/jni/openssl/crypto/asn1/x_pkey.c b/src/main/jni/openssl/crypto/asn1/x_pkey.c
similarity index 100%
rename from jni/openssl/crypto/asn1/x_pkey.c
rename to src/main/jni/openssl/crypto/asn1/x_pkey.c
diff --git a/jni/openssl/crypto/asn1/x_pubkey.c b/src/main/jni/openssl/crypto/asn1/x_pubkey.c
similarity index 100%
rename from jni/openssl/crypto/asn1/x_pubkey.c
rename to src/main/jni/openssl/crypto/asn1/x_pubkey.c
diff --git a/jni/openssl/crypto/asn1/x_req.c b/src/main/jni/openssl/crypto/asn1/x_req.c
similarity index 100%
rename from jni/openssl/crypto/asn1/x_req.c
rename to src/main/jni/openssl/crypto/asn1/x_req.c
diff --git a/jni/openssl/crypto/asn1/x_sig.c b/src/main/jni/openssl/crypto/asn1/x_sig.c
similarity index 100%
rename from jni/openssl/crypto/asn1/x_sig.c
rename to src/main/jni/openssl/crypto/asn1/x_sig.c
diff --git a/jni/openssl/crypto/asn1/x_spki.c b/src/main/jni/openssl/crypto/asn1/x_spki.c
similarity index 100%
rename from jni/openssl/crypto/asn1/x_spki.c
rename to src/main/jni/openssl/crypto/asn1/x_spki.c
diff --git a/jni/openssl/crypto/asn1/x_val.c b/src/main/jni/openssl/crypto/asn1/x_val.c
similarity index 100%
rename from jni/openssl/crypto/asn1/x_val.c
rename to src/main/jni/openssl/crypto/asn1/x_val.c
diff --git a/jni/openssl/crypto/asn1/x_x509.c b/src/main/jni/openssl/crypto/asn1/x_x509.c
similarity index 100%
rename from jni/openssl/crypto/asn1/x_x509.c
rename to src/main/jni/openssl/crypto/asn1/x_x509.c
diff --git a/jni/openssl/crypto/asn1/x_x509a.c b/src/main/jni/openssl/crypto/asn1/x_x509a.c
similarity index 100%
rename from jni/openssl/crypto/asn1/x_x509a.c
rename to src/main/jni/openssl/crypto/asn1/x_x509a.c
diff --git a/jni/openssl/crypto/bf/COPYRIGHT b/src/main/jni/openssl/crypto/bf/COPYRIGHT
similarity index 100%
rename from jni/openssl/crypto/bf/COPYRIGHT
rename to src/main/jni/openssl/crypto/bf/COPYRIGHT
diff --git a/jni/openssl/crypto/bf/INSTALL b/src/main/jni/openssl/crypto/bf/INSTALL
similarity index 100%
rename from jni/openssl/crypto/bf/INSTALL
rename to src/main/jni/openssl/crypto/bf/INSTALL
diff --git a/jni/openssl/crypto/bf/Makefile b/src/main/jni/openssl/crypto/bf/Makefile
similarity index 100%
rename from jni/openssl/crypto/bf/Makefile
rename to src/main/jni/openssl/crypto/bf/Makefile
diff --git a/jni/openssl/crypto/bf/README b/src/main/jni/openssl/crypto/bf/README
similarity index 100%
rename from jni/openssl/crypto/bf/README
rename to src/main/jni/openssl/crypto/bf/README
diff --git a/jni/openssl/crypto/bf/VERSION b/src/main/jni/openssl/crypto/bf/VERSION
similarity index 100%
rename from jni/openssl/crypto/bf/VERSION
rename to src/main/jni/openssl/crypto/bf/VERSION
diff --git a/jni/openssl/crypto/bf/asm/bf-586.pl b/src/main/jni/openssl/crypto/bf/asm/bf-586.pl
similarity index 100%
rename from jni/openssl/crypto/bf/asm/bf-586.pl
rename to src/main/jni/openssl/crypto/bf/asm/bf-586.pl
diff --git a/jni/openssl/crypto/bf/asm/bf-686.pl b/src/main/jni/openssl/crypto/bf/asm/bf-686.pl
similarity index 100%
rename from jni/openssl/crypto/bf/asm/bf-686.pl
rename to src/main/jni/openssl/crypto/bf/asm/bf-686.pl
diff --git a/jni/openssl/crypto/bf/asm/readme b/src/main/jni/openssl/crypto/bf/asm/readme
similarity index 100%
rename from jni/openssl/crypto/bf/asm/readme
rename to src/main/jni/openssl/crypto/bf/asm/readme
diff --git a/jni/openssl/crypto/bf/bf_cbc.c b/src/main/jni/openssl/crypto/bf/bf_cbc.c
similarity index 100%
rename from jni/openssl/crypto/bf/bf_cbc.c
rename to src/main/jni/openssl/crypto/bf/bf_cbc.c
diff --git a/jni/openssl/crypto/bf/bf_cfb64.c b/src/main/jni/openssl/crypto/bf/bf_cfb64.c
similarity index 100%
rename from jni/openssl/crypto/bf/bf_cfb64.c
rename to src/main/jni/openssl/crypto/bf/bf_cfb64.c
diff --git a/jni/openssl/crypto/bf/bf_ecb.c b/src/main/jni/openssl/crypto/bf/bf_ecb.c
similarity index 100%
rename from jni/openssl/crypto/bf/bf_ecb.c
rename to src/main/jni/openssl/crypto/bf/bf_ecb.c
diff --git a/jni/openssl/crypto/bf/bf_enc.c b/src/main/jni/openssl/crypto/bf/bf_enc.c
similarity index 100%
rename from jni/openssl/crypto/bf/bf_enc.c
rename to src/main/jni/openssl/crypto/bf/bf_enc.c
diff --git a/jni/openssl/crypto/bf/bf_locl.h b/src/main/jni/openssl/crypto/bf/bf_locl.h
similarity index 100%
rename from jni/openssl/crypto/bf/bf_locl.h
rename to src/main/jni/openssl/crypto/bf/bf_locl.h
diff --git a/jni/openssl/crypto/bf/bf_ofb64.c b/src/main/jni/openssl/crypto/bf/bf_ofb64.c
similarity index 100%
rename from jni/openssl/crypto/bf/bf_ofb64.c
rename to src/main/jni/openssl/crypto/bf/bf_ofb64.c
diff --git a/jni/openssl/crypto/bf/bf_opts.c b/src/main/jni/openssl/crypto/bf/bf_opts.c
similarity index 100%
rename from jni/openssl/crypto/bf/bf_opts.c
rename to src/main/jni/openssl/crypto/bf/bf_opts.c
diff --git a/jni/openssl/crypto/bf/bf_pi.h b/src/main/jni/openssl/crypto/bf/bf_pi.h
similarity index 100%
rename from jni/openssl/crypto/bf/bf_pi.h
rename to src/main/jni/openssl/crypto/bf/bf_pi.h
diff --git a/jni/openssl/crypto/bf/bf_skey.c b/src/main/jni/openssl/crypto/bf/bf_skey.c
similarity index 100%
rename from jni/openssl/crypto/bf/bf_skey.c
rename to src/main/jni/openssl/crypto/bf/bf_skey.c
diff --git a/jni/openssl/crypto/bf/bfs.cpp b/src/main/jni/openssl/crypto/bf/bfs.cpp
similarity index 100%
rename from jni/openssl/crypto/bf/bfs.cpp
rename to src/main/jni/openssl/crypto/bf/bfs.cpp
diff --git a/jni/openssl/crypto/bf/bfspeed.c b/src/main/jni/openssl/crypto/bf/bfspeed.c
similarity index 100%
rename from jni/openssl/crypto/bf/bfspeed.c
rename to src/main/jni/openssl/crypto/bf/bfspeed.c
diff --git a/jni/openssl/crypto/bf/bftest.c b/src/main/jni/openssl/crypto/bf/bftest.c
similarity index 100%
rename from jni/openssl/crypto/bf/bftest.c
rename to src/main/jni/openssl/crypto/bf/bftest.c
diff --git a/jni/openssl/crypto/bf/blowfish.h b/src/main/jni/openssl/crypto/bf/blowfish.h
similarity index 100%
rename from jni/openssl/crypto/bf/blowfish.h
rename to src/main/jni/openssl/crypto/bf/blowfish.h
diff --git a/jni/openssl/crypto/bio/Makefile b/src/main/jni/openssl/crypto/bio/Makefile
similarity index 100%
rename from jni/openssl/crypto/bio/Makefile
rename to src/main/jni/openssl/crypto/bio/Makefile
diff --git a/jni/openssl/crypto/bio/b_dump.c b/src/main/jni/openssl/crypto/bio/b_dump.c
similarity index 100%
rename from jni/openssl/crypto/bio/b_dump.c
rename to src/main/jni/openssl/crypto/bio/b_dump.c
diff --git a/jni/openssl/crypto/bio/b_print.c b/src/main/jni/openssl/crypto/bio/b_print.c
similarity index 100%
rename from jni/openssl/crypto/bio/b_print.c
rename to src/main/jni/openssl/crypto/bio/b_print.c
diff --git a/jni/openssl/crypto/bio/b_sock.c b/src/main/jni/openssl/crypto/bio/b_sock.c
similarity index 100%
rename from jni/openssl/crypto/bio/b_sock.c
rename to src/main/jni/openssl/crypto/bio/b_sock.c
diff --git a/jni/openssl/crypto/bio/bf_buff.c b/src/main/jni/openssl/crypto/bio/bf_buff.c
similarity index 100%
rename from jni/openssl/crypto/bio/bf_buff.c
rename to src/main/jni/openssl/crypto/bio/bf_buff.c
diff --git a/jni/openssl/crypto/bio/bf_lbuf.c b/src/main/jni/openssl/crypto/bio/bf_lbuf.c
similarity index 100%
rename from jni/openssl/crypto/bio/bf_lbuf.c
rename to src/main/jni/openssl/crypto/bio/bf_lbuf.c
diff --git a/jni/openssl/crypto/bio/bf_nbio.c b/src/main/jni/openssl/crypto/bio/bf_nbio.c
similarity index 100%
rename from jni/openssl/crypto/bio/bf_nbio.c
rename to src/main/jni/openssl/crypto/bio/bf_nbio.c
diff --git a/jni/openssl/crypto/bio/bf_null.c b/src/main/jni/openssl/crypto/bio/bf_null.c
similarity index 100%
rename from jni/openssl/crypto/bio/bf_null.c
rename to src/main/jni/openssl/crypto/bio/bf_null.c
diff --git a/jni/openssl/crypto/bio/bio.h b/src/main/jni/openssl/crypto/bio/bio.h
similarity index 100%
rename from jni/openssl/crypto/bio/bio.h
rename to src/main/jni/openssl/crypto/bio/bio.h
diff --git a/jni/openssl/crypto/bio/bio_cb.c b/src/main/jni/openssl/crypto/bio/bio_cb.c
similarity index 100%
rename from jni/openssl/crypto/bio/bio_cb.c
rename to src/main/jni/openssl/crypto/bio/bio_cb.c
diff --git a/jni/openssl/crypto/bio/bio_err.c b/src/main/jni/openssl/crypto/bio/bio_err.c
similarity index 100%
rename from jni/openssl/crypto/bio/bio_err.c
rename to src/main/jni/openssl/crypto/bio/bio_err.c
diff --git a/jni/openssl/crypto/bio/bio_lcl.h b/src/main/jni/openssl/crypto/bio/bio_lcl.h
similarity index 100%
rename from jni/openssl/crypto/bio/bio_lcl.h
rename to src/main/jni/openssl/crypto/bio/bio_lcl.h
diff --git a/jni/openssl/crypto/bio/bio_lib.c b/src/main/jni/openssl/crypto/bio/bio_lib.c
similarity index 100%
rename from jni/openssl/crypto/bio/bio_lib.c
rename to src/main/jni/openssl/crypto/bio/bio_lib.c
diff --git a/jni/openssl/crypto/bio/bss_acpt.c b/src/main/jni/openssl/crypto/bio/bss_acpt.c
similarity index 100%
rename from jni/openssl/crypto/bio/bss_acpt.c
rename to src/main/jni/openssl/crypto/bio/bss_acpt.c
diff --git a/jni/openssl/crypto/bio/bss_bio.c b/src/main/jni/openssl/crypto/bio/bss_bio.c
similarity index 100%
rename from jni/openssl/crypto/bio/bss_bio.c
rename to src/main/jni/openssl/crypto/bio/bss_bio.c
diff --git a/jni/openssl/crypto/bio/bss_conn.c b/src/main/jni/openssl/crypto/bio/bss_conn.c
similarity index 100%
rename from jni/openssl/crypto/bio/bss_conn.c
rename to src/main/jni/openssl/crypto/bio/bss_conn.c
diff --git a/jni/openssl/crypto/bio/bss_dgram.c b/src/main/jni/openssl/crypto/bio/bss_dgram.c
similarity index 100%
rename from jni/openssl/crypto/bio/bss_dgram.c
rename to src/main/jni/openssl/crypto/bio/bss_dgram.c
diff --git a/jni/openssl/crypto/bio/bss_fd.c b/src/main/jni/openssl/crypto/bio/bss_fd.c
similarity index 100%
rename from jni/openssl/crypto/bio/bss_fd.c
rename to src/main/jni/openssl/crypto/bio/bss_fd.c
diff --git a/jni/openssl/crypto/bio/bss_file.c b/src/main/jni/openssl/crypto/bio/bss_file.c
similarity index 100%
rename from jni/openssl/crypto/bio/bss_file.c
rename to src/main/jni/openssl/crypto/bio/bss_file.c
diff --git a/jni/openssl/crypto/bio/bss_log.c b/src/main/jni/openssl/crypto/bio/bss_log.c
similarity index 100%
rename from jni/openssl/crypto/bio/bss_log.c
rename to src/main/jni/openssl/crypto/bio/bss_log.c
diff --git a/jni/openssl/crypto/bio/bss_mem.c b/src/main/jni/openssl/crypto/bio/bss_mem.c
similarity index 100%
rename from jni/openssl/crypto/bio/bss_mem.c
rename to src/main/jni/openssl/crypto/bio/bss_mem.c
diff --git a/jni/openssl/crypto/bio/bss_null.c b/src/main/jni/openssl/crypto/bio/bss_null.c
similarity index 100%
rename from jni/openssl/crypto/bio/bss_null.c
rename to src/main/jni/openssl/crypto/bio/bss_null.c
diff --git a/jni/openssl/crypto/bio/bss_rtcp.c b/src/main/jni/openssl/crypto/bio/bss_rtcp.c
similarity index 100%
rename from jni/openssl/crypto/bio/bss_rtcp.c
rename to src/main/jni/openssl/crypto/bio/bss_rtcp.c
diff --git a/jni/openssl/crypto/bio/bss_sock.c b/src/main/jni/openssl/crypto/bio/bss_sock.c
similarity index 100%
rename from jni/openssl/crypto/bio/bss_sock.c
rename to src/main/jni/openssl/crypto/bio/bss_sock.c
diff --git a/jni/openssl/crypto/bn/Makefile b/src/main/jni/openssl/crypto/bn/Makefile
similarity index 100%
rename from jni/openssl/crypto/bn/Makefile
rename to src/main/jni/openssl/crypto/bn/Makefile
diff --git a/jni/openssl/crypto/bn/asm/README b/src/main/jni/openssl/crypto/bn/asm/README
similarity index 100%
rename from jni/openssl/crypto/bn/asm/README
rename to src/main/jni/openssl/crypto/bn/asm/README
diff --git a/jni/openssl/crypto/bn/asm/alpha-mont.pl b/src/main/jni/openssl/crypto/bn/asm/alpha-mont.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/alpha-mont.pl
rename to src/main/jni/openssl/crypto/bn/asm/alpha-mont.pl
diff --git a/jni/openssl/crypto/bn/asm/armv4-gf2m.pl b/src/main/jni/openssl/crypto/bn/asm/armv4-gf2m.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/armv4-gf2m.pl
rename to src/main/jni/openssl/crypto/bn/asm/armv4-gf2m.pl
diff --git a/jni/openssl/crypto/bn/asm/armv4-mont.S b/src/main/jni/openssl/crypto/bn/asm/armv4-mont.S
similarity index 100%
rename from jni/openssl/crypto/bn/asm/armv4-mont.S
rename to src/main/jni/openssl/crypto/bn/asm/armv4-mont.S
diff --git a/jni/openssl/crypto/bn/asm/armv4-mont.pl b/src/main/jni/openssl/crypto/bn/asm/armv4-mont.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/armv4-mont.pl
rename to src/main/jni/openssl/crypto/bn/asm/armv4-mont.pl
diff --git a/jni/openssl/crypto/bn/asm/bn-586.pl b/src/main/jni/openssl/crypto/bn/asm/bn-586.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/bn-586.pl
rename to src/main/jni/openssl/crypto/bn/asm/bn-586.pl
diff --git a/jni/openssl/crypto/bn/asm/co-586.pl b/src/main/jni/openssl/crypto/bn/asm/co-586.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/co-586.pl
rename to src/main/jni/openssl/crypto/bn/asm/co-586.pl
diff --git a/jni/openssl/crypto/bn/asm/ia64-mont.pl b/src/main/jni/openssl/crypto/bn/asm/ia64-mont.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/ia64-mont.pl
rename to src/main/jni/openssl/crypto/bn/asm/ia64-mont.pl
diff --git a/jni/openssl/crypto/bn/asm/ia64.S b/src/main/jni/openssl/crypto/bn/asm/ia64.S
similarity index 100%
rename from jni/openssl/crypto/bn/asm/ia64.S
rename to src/main/jni/openssl/crypto/bn/asm/ia64.S
diff --git a/jni/openssl/crypto/bn/asm/mips-mont.pl b/src/main/jni/openssl/crypto/bn/asm/mips-mont.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/mips-mont.pl
rename to src/main/jni/openssl/crypto/bn/asm/mips-mont.pl
diff --git a/jni/openssl/crypto/bn/asm/mips.pl b/src/main/jni/openssl/crypto/bn/asm/mips.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/mips.pl
rename to src/main/jni/openssl/crypto/bn/asm/mips.pl
diff --git a/jni/openssl/crypto/bn/asm/mips3-mont.pl b/src/main/jni/openssl/crypto/bn/asm/mips3-mont.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/mips3-mont.pl
rename to src/main/jni/openssl/crypto/bn/asm/mips3-mont.pl
diff --git a/jni/openssl/crypto/bn/asm/mips3.s b/src/main/jni/openssl/crypto/bn/asm/mips3.s
similarity index 100%
rename from jni/openssl/crypto/bn/asm/mips3.s
rename to src/main/jni/openssl/crypto/bn/asm/mips3.s
diff --git a/jni/openssl/crypto/bn/asm/modexp512-x86_64.pl b/src/main/jni/openssl/crypto/bn/asm/modexp512-x86_64.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/modexp512-x86_64.pl
rename to src/main/jni/openssl/crypto/bn/asm/modexp512-x86_64.pl
diff --git a/jni/openssl/crypto/bn/asm/pa-risc2.s b/src/main/jni/openssl/crypto/bn/asm/pa-risc2.s
similarity index 100%
rename from jni/openssl/crypto/bn/asm/pa-risc2.s
rename to src/main/jni/openssl/crypto/bn/asm/pa-risc2.s
diff --git a/jni/openssl/crypto/bn/asm/pa-risc2W.s b/src/main/jni/openssl/crypto/bn/asm/pa-risc2W.s
similarity index 100%
rename from jni/openssl/crypto/bn/asm/pa-risc2W.s
rename to src/main/jni/openssl/crypto/bn/asm/pa-risc2W.s
diff --git a/jni/openssl/crypto/bn/asm/parisc-mont.pl b/src/main/jni/openssl/crypto/bn/asm/parisc-mont.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/parisc-mont.pl
rename to src/main/jni/openssl/crypto/bn/asm/parisc-mont.pl
diff --git a/jni/openssl/crypto/bn/asm/ppc-mont.pl b/src/main/jni/openssl/crypto/bn/asm/ppc-mont.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/ppc-mont.pl
rename to src/main/jni/openssl/crypto/bn/asm/ppc-mont.pl
diff --git a/jni/openssl/crypto/bn/asm/ppc.pl b/src/main/jni/openssl/crypto/bn/asm/ppc.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/ppc.pl
rename to src/main/jni/openssl/crypto/bn/asm/ppc.pl
diff --git a/jni/openssl/crypto/bn/asm/ppc64-mont.pl b/src/main/jni/openssl/crypto/bn/asm/ppc64-mont.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/ppc64-mont.pl
rename to src/main/jni/openssl/crypto/bn/asm/ppc64-mont.pl
diff --git a/jni/openssl/crypto/bn/asm/s390x-gf2m.pl b/src/main/jni/openssl/crypto/bn/asm/s390x-gf2m.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/s390x-gf2m.pl
rename to src/main/jni/openssl/crypto/bn/asm/s390x-gf2m.pl
diff --git a/jni/openssl/crypto/bn/asm/s390x-mont.pl b/src/main/jni/openssl/crypto/bn/asm/s390x-mont.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/s390x-mont.pl
rename to src/main/jni/openssl/crypto/bn/asm/s390x-mont.pl
diff --git a/jni/openssl/crypto/bn/asm/s390x.S b/src/main/jni/openssl/crypto/bn/asm/s390x.S
similarity index 100%
rename from jni/openssl/crypto/bn/asm/s390x.S
rename to src/main/jni/openssl/crypto/bn/asm/s390x.S
diff --git a/jni/openssl/crypto/bn/asm/sparcv8.S b/src/main/jni/openssl/crypto/bn/asm/sparcv8.S
similarity index 100%
rename from jni/openssl/crypto/bn/asm/sparcv8.S
rename to src/main/jni/openssl/crypto/bn/asm/sparcv8.S
diff --git a/jni/openssl/crypto/bn/asm/sparcv8plus.S b/src/main/jni/openssl/crypto/bn/asm/sparcv8plus.S
similarity index 100%
rename from jni/openssl/crypto/bn/asm/sparcv8plus.S
rename to src/main/jni/openssl/crypto/bn/asm/sparcv8plus.S
diff --git a/jni/openssl/crypto/bn/asm/sparcv9-mont.pl b/src/main/jni/openssl/crypto/bn/asm/sparcv9-mont.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/sparcv9-mont.pl
rename to src/main/jni/openssl/crypto/bn/asm/sparcv9-mont.pl
diff --git a/jni/openssl/crypto/bn/asm/sparcv9a-mont.pl b/src/main/jni/openssl/crypto/bn/asm/sparcv9a-mont.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/sparcv9a-mont.pl
rename to src/main/jni/openssl/crypto/bn/asm/sparcv9a-mont.pl
diff --git a/jni/openssl/crypto/bn/asm/via-mont.pl b/src/main/jni/openssl/crypto/bn/asm/via-mont.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/via-mont.pl
rename to src/main/jni/openssl/crypto/bn/asm/via-mont.pl
diff --git a/jni/openssl/crypto/bn/asm/vms.mar b/src/main/jni/openssl/crypto/bn/asm/vms.mar
similarity index 100%
rename from jni/openssl/crypto/bn/asm/vms.mar
rename to src/main/jni/openssl/crypto/bn/asm/vms.mar
diff --git a/jni/openssl/crypto/bn/asm/x86-gf2m.pl b/src/main/jni/openssl/crypto/bn/asm/x86-gf2m.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/x86-gf2m.pl
rename to src/main/jni/openssl/crypto/bn/asm/x86-gf2m.pl
diff --git a/jni/openssl/crypto/bn/asm/x86-mont.pl b/src/main/jni/openssl/crypto/bn/asm/x86-mont.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/x86-mont.pl
rename to src/main/jni/openssl/crypto/bn/asm/x86-mont.pl
diff --git a/jni/openssl/crypto/bn/asm/x86.pl b/src/main/jni/openssl/crypto/bn/asm/x86.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/x86.pl
rename to src/main/jni/openssl/crypto/bn/asm/x86.pl
diff --git a/jni/openssl/crypto/bn/asm/x86/add.pl b/src/main/jni/openssl/crypto/bn/asm/x86/add.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/x86/add.pl
rename to src/main/jni/openssl/crypto/bn/asm/x86/add.pl
diff --git a/jni/openssl/crypto/bn/asm/x86/comba.pl b/src/main/jni/openssl/crypto/bn/asm/x86/comba.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/x86/comba.pl
rename to src/main/jni/openssl/crypto/bn/asm/x86/comba.pl
diff --git a/jni/openssl/crypto/bn/asm/x86/div.pl b/src/main/jni/openssl/crypto/bn/asm/x86/div.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/x86/div.pl
rename to src/main/jni/openssl/crypto/bn/asm/x86/div.pl
diff --git a/jni/openssl/crypto/bn/asm/x86/f b/src/main/jni/openssl/crypto/bn/asm/x86/f
similarity index 100%
rename from jni/openssl/crypto/bn/asm/x86/f
rename to src/main/jni/openssl/crypto/bn/asm/x86/f
diff --git a/jni/openssl/crypto/bn/asm/x86/mul.pl b/src/main/jni/openssl/crypto/bn/asm/x86/mul.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/x86/mul.pl
rename to src/main/jni/openssl/crypto/bn/asm/x86/mul.pl
diff --git a/jni/openssl/crypto/bn/asm/x86/mul_add.pl b/src/main/jni/openssl/crypto/bn/asm/x86/mul_add.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/x86/mul_add.pl
rename to src/main/jni/openssl/crypto/bn/asm/x86/mul_add.pl
diff --git a/jni/openssl/crypto/bn/asm/x86/sqr.pl b/src/main/jni/openssl/crypto/bn/asm/x86/sqr.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/x86/sqr.pl
rename to src/main/jni/openssl/crypto/bn/asm/x86/sqr.pl
diff --git a/jni/openssl/crypto/bn/asm/x86/sub.pl b/src/main/jni/openssl/crypto/bn/asm/x86/sub.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/x86/sub.pl
rename to src/main/jni/openssl/crypto/bn/asm/x86/sub.pl
diff --git a/jni/openssl/crypto/bn/asm/x86_64-gcc.c b/src/main/jni/openssl/crypto/bn/asm/x86_64-gcc.c
similarity index 100%
rename from jni/openssl/crypto/bn/asm/x86_64-gcc.c
rename to src/main/jni/openssl/crypto/bn/asm/x86_64-gcc.c
diff --git a/jni/openssl/crypto/bn/asm/x86_64-gf2m.pl b/src/main/jni/openssl/crypto/bn/asm/x86_64-gf2m.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/x86_64-gf2m.pl
rename to src/main/jni/openssl/crypto/bn/asm/x86_64-gf2m.pl
diff --git a/jni/openssl/crypto/bn/asm/x86_64-mont.pl b/src/main/jni/openssl/crypto/bn/asm/x86_64-mont.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/x86_64-mont.pl
rename to src/main/jni/openssl/crypto/bn/asm/x86_64-mont.pl
diff --git a/jni/openssl/crypto/bn/asm/x86_64-mont5.pl b/src/main/jni/openssl/crypto/bn/asm/x86_64-mont5.pl
similarity index 100%
rename from jni/openssl/crypto/bn/asm/x86_64-mont5.pl
rename to src/main/jni/openssl/crypto/bn/asm/x86_64-mont5.pl
diff --git a/jni/openssl/crypto/bn/bn.h b/src/main/jni/openssl/crypto/bn/bn.h
similarity index 100%
rename from jni/openssl/crypto/bn/bn.h
rename to src/main/jni/openssl/crypto/bn/bn.h
diff --git a/jni/openssl/crypto/bn/bn.mul b/src/main/jni/openssl/crypto/bn/bn.mul
similarity index 100%
rename from jni/openssl/crypto/bn/bn.mul
rename to src/main/jni/openssl/crypto/bn/bn.mul
diff --git a/jni/openssl/crypto/bn/bn_add.c b/src/main/jni/openssl/crypto/bn/bn_add.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_add.c
rename to src/main/jni/openssl/crypto/bn/bn_add.c
diff --git a/jni/openssl/crypto/bn/bn_asm.c b/src/main/jni/openssl/crypto/bn/bn_asm.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_asm.c
rename to src/main/jni/openssl/crypto/bn/bn_asm.c
diff --git a/jni/openssl/crypto/bn/bn_blind.c b/src/main/jni/openssl/crypto/bn/bn_blind.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_blind.c
rename to src/main/jni/openssl/crypto/bn/bn_blind.c
diff --git a/jni/openssl/crypto/bn/bn_const.c b/src/main/jni/openssl/crypto/bn/bn_const.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_const.c
rename to src/main/jni/openssl/crypto/bn/bn_const.c
diff --git a/jni/openssl/crypto/bn/bn_ctx.c b/src/main/jni/openssl/crypto/bn/bn_ctx.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_ctx.c
rename to src/main/jni/openssl/crypto/bn/bn_ctx.c
diff --git a/jni/openssl/crypto/bn/bn_depr.c b/src/main/jni/openssl/crypto/bn/bn_depr.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_depr.c
rename to src/main/jni/openssl/crypto/bn/bn_depr.c
diff --git a/jni/openssl/crypto/bn/bn_div.c b/src/main/jni/openssl/crypto/bn/bn_div.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_div.c
rename to src/main/jni/openssl/crypto/bn/bn_div.c
diff --git a/jni/openssl/crypto/bn/bn_err.c b/src/main/jni/openssl/crypto/bn/bn_err.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_err.c
rename to src/main/jni/openssl/crypto/bn/bn_err.c
diff --git a/jni/openssl/crypto/bn/bn_exp.c b/src/main/jni/openssl/crypto/bn/bn_exp.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_exp.c
rename to src/main/jni/openssl/crypto/bn/bn_exp.c
diff --git a/jni/openssl/crypto/bn/bn_exp2.c b/src/main/jni/openssl/crypto/bn/bn_exp2.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_exp2.c
rename to src/main/jni/openssl/crypto/bn/bn_exp2.c
diff --git a/jni/openssl/crypto/bn/bn_gcd.c b/src/main/jni/openssl/crypto/bn/bn_gcd.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_gcd.c
rename to src/main/jni/openssl/crypto/bn/bn_gcd.c
diff --git a/jni/openssl/crypto/bn/bn_gf2m.c b/src/main/jni/openssl/crypto/bn/bn_gf2m.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_gf2m.c
rename to src/main/jni/openssl/crypto/bn/bn_gf2m.c
diff --git a/jni/openssl/crypto/bn/bn_kron.c b/src/main/jni/openssl/crypto/bn/bn_kron.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_kron.c
rename to src/main/jni/openssl/crypto/bn/bn_kron.c
diff --git a/jni/openssl/crypto/bn/bn_lcl.h b/src/main/jni/openssl/crypto/bn/bn_lcl.h
similarity index 100%
rename from jni/openssl/crypto/bn/bn_lcl.h
rename to src/main/jni/openssl/crypto/bn/bn_lcl.h
diff --git a/jni/openssl/crypto/bn/bn_lib.c b/src/main/jni/openssl/crypto/bn/bn_lib.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_lib.c
rename to src/main/jni/openssl/crypto/bn/bn_lib.c
diff --git a/jni/openssl/crypto/bn/bn_mod.c b/src/main/jni/openssl/crypto/bn/bn_mod.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_mod.c
rename to src/main/jni/openssl/crypto/bn/bn_mod.c
diff --git a/jni/openssl/crypto/bn/bn_mont.c b/src/main/jni/openssl/crypto/bn/bn_mont.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_mont.c
rename to src/main/jni/openssl/crypto/bn/bn_mont.c
diff --git a/jni/openssl/crypto/bn/bn_mpi.c b/src/main/jni/openssl/crypto/bn/bn_mpi.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_mpi.c
rename to src/main/jni/openssl/crypto/bn/bn_mpi.c
diff --git a/jni/openssl/crypto/bn/bn_mul.c b/src/main/jni/openssl/crypto/bn/bn_mul.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_mul.c
rename to src/main/jni/openssl/crypto/bn/bn_mul.c
diff --git a/jni/openssl/crypto/bn/bn_nist.c b/src/main/jni/openssl/crypto/bn/bn_nist.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_nist.c
rename to src/main/jni/openssl/crypto/bn/bn_nist.c
diff --git a/jni/openssl/crypto/bn/bn_prime.c b/src/main/jni/openssl/crypto/bn/bn_prime.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_prime.c
rename to src/main/jni/openssl/crypto/bn/bn_prime.c
diff --git a/jni/openssl/crypto/bn/bn_prime.h b/src/main/jni/openssl/crypto/bn/bn_prime.h
similarity index 100%
rename from jni/openssl/crypto/bn/bn_prime.h
rename to src/main/jni/openssl/crypto/bn/bn_prime.h
diff --git a/jni/openssl/crypto/bn/bn_prime.pl b/src/main/jni/openssl/crypto/bn/bn_prime.pl
similarity index 100%
rename from jni/openssl/crypto/bn/bn_prime.pl
rename to src/main/jni/openssl/crypto/bn/bn_prime.pl
diff --git a/jni/openssl/crypto/bn/bn_print.c b/src/main/jni/openssl/crypto/bn/bn_print.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_print.c
rename to src/main/jni/openssl/crypto/bn/bn_print.c
diff --git a/jni/openssl/crypto/bn/bn_rand.c b/src/main/jni/openssl/crypto/bn/bn_rand.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_rand.c
rename to src/main/jni/openssl/crypto/bn/bn_rand.c
diff --git a/jni/openssl/crypto/bn/bn_recp.c b/src/main/jni/openssl/crypto/bn/bn_recp.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_recp.c
rename to src/main/jni/openssl/crypto/bn/bn_recp.c
diff --git a/jni/openssl/crypto/bn/bn_shift.c b/src/main/jni/openssl/crypto/bn/bn_shift.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_shift.c
rename to src/main/jni/openssl/crypto/bn/bn_shift.c
diff --git a/jni/openssl/crypto/bn/bn_sqr.c b/src/main/jni/openssl/crypto/bn/bn_sqr.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_sqr.c
rename to src/main/jni/openssl/crypto/bn/bn_sqr.c
diff --git a/jni/openssl/crypto/bn/bn_sqrt.c b/src/main/jni/openssl/crypto/bn/bn_sqrt.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_sqrt.c
rename to src/main/jni/openssl/crypto/bn/bn_sqrt.c
diff --git a/jni/openssl/crypto/bn/bn_word.c b/src/main/jni/openssl/crypto/bn/bn_word.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_word.c
rename to src/main/jni/openssl/crypto/bn/bn_word.c
diff --git a/jni/openssl/crypto/bn/bn_x931p.c b/src/main/jni/openssl/crypto/bn/bn_x931p.c
similarity index 100%
rename from jni/openssl/crypto/bn/bn_x931p.c
rename to src/main/jni/openssl/crypto/bn/bn_x931p.c
diff --git a/jni/openssl/crypto/bn/bnspeed.c b/src/main/jni/openssl/crypto/bn/bnspeed.c
similarity index 100%
rename from jni/openssl/crypto/bn/bnspeed.c
rename to src/main/jni/openssl/crypto/bn/bnspeed.c
diff --git a/jni/openssl/crypto/bn/bntest.c b/src/main/jni/openssl/crypto/bn/bntest.c
similarity index 100%
rename from jni/openssl/crypto/bn/bntest.c
rename to src/main/jni/openssl/crypto/bn/bntest.c
diff --git a/jni/openssl/crypto/bn/divtest.c b/src/main/jni/openssl/crypto/bn/divtest.c
similarity index 100%
rename from jni/openssl/crypto/bn/divtest.c
rename to src/main/jni/openssl/crypto/bn/divtest.c
diff --git a/jni/openssl/crypto/bn/exp.c b/src/main/jni/openssl/crypto/bn/exp.c
similarity index 100%
rename from jni/openssl/crypto/bn/exp.c
rename to src/main/jni/openssl/crypto/bn/exp.c
diff --git a/jni/openssl/crypto/bn/expspeed.c b/src/main/jni/openssl/crypto/bn/expspeed.c
similarity index 100%
rename from jni/openssl/crypto/bn/expspeed.c
rename to src/main/jni/openssl/crypto/bn/expspeed.c
diff --git a/jni/openssl/crypto/bn/exptest.c b/src/main/jni/openssl/crypto/bn/exptest.c
similarity index 100%
rename from jni/openssl/crypto/bn/exptest.c
rename to src/main/jni/openssl/crypto/bn/exptest.c
diff --git a/jni/openssl/crypto/bn/todo b/src/main/jni/openssl/crypto/bn/todo
similarity index 100%
rename from jni/openssl/crypto/bn/todo
rename to src/main/jni/openssl/crypto/bn/todo
diff --git a/jni/openssl/crypto/bn/vms-helper.c b/src/main/jni/openssl/crypto/bn/vms-helper.c
similarity index 100%
rename from jni/openssl/crypto/bn/vms-helper.c
rename to src/main/jni/openssl/crypto/bn/vms-helper.c
diff --git a/jni/openssl/crypto/buffer/Makefile b/src/main/jni/openssl/crypto/buffer/Makefile
similarity index 100%
rename from jni/openssl/crypto/buffer/Makefile
rename to src/main/jni/openssl/crypto/buffer/Makefile
diff --git a/jni/openssl/crypto/buffer/buf_err.c b/src/main/jni/openssl/crypto/buffer/buf_err.c
similarity index 100%
rename from jni/openssl/crypto/buffer/buf_err.c
rename to src/main/jni/openssl/crypto/buffer/buf_err.c
diff --git a/jni/openssl/crypto/buffer/buf_str.c b/src/main/jni/openssl/crypto/buffer/buf_str.c
similarity index 100%
rename from jni/openssl/crypto/buffer/buf_str.c
rename to src/main/jni/openssl/crypto/buffer/buf_str.c
diff --git a/jni/openssl/crypto/buffer/buffer.c b/src/main/jni/openssl/crypto/buffer/buffer.c
similarity index 100%
rename from jni/openssl/crypto/buffer/buffer.c
rename to src/main/jni/openssl/crypto/buffer/buffer.c
diff --git a/jni/openssl/crypto/buffer/buffer.h b/src/main/jni/openssl/crypto/buffer/buffer.h
similarity index 100%
rename from jni/openssl/crypto/buffer/buffer.h
rename to src/main/jni/openssl/crypto/buffer/buffer.h
diff --git a/jni/openssl/crypto/camellia/Makefile b/src/main/jni/openssl/crypto/camellia/Makefile
similarity index 100%
rename from jni/openssl/crypto/camellia/Makefile
rename to src/main/jni/openssl/crypto/camellia/Makefile
diff --git a/jni/openssl/crypto/camellia/asm/cmll-x86.pl b/src/main/jni/openssl/crypto/camellia/asm/cmll-x86.pl
similarity index 100%
rename from jni/openssl/crypto/camellia/asm/cmll-x86.pl
rename to src/main/jni/openssl/crypto/camellia/asm/cmll-x86.pl
diff --git a/jni/openssl/crypto/camellia/asm/cmll-x86_64.pl b/src/main/jni/openssl/crypto/camellia/asm/cmll-x86_64.pl
similarity index 100%
rename from jni/openssl/crypto/camellia/asm/cmll-x86_64.pl
rename to src/main/jni/openssl/crypto/camellia/asm/cmll-x86_64.pl
diff --git a/jni/openssl/crypto/camellia/camellia.c b/src/main/jni/openssl/crypto/camellia/camellia.c
similarity index 100%
rename from jni/openssl/crypto/camellia/camellia.c
rename to src/main/jni/openssl/crypto/camellia/camellia.c
diff --git a/jni/openssl/crypto/camellia/camellia.h b/src/main/jni/openssl/crypto/camellia/camellia.h
similarity index 100%
rename from jni/openssl/crypto/camellia/camellia.h
rename to src/main/jni/openssl/crypto/camellia/camellia.h
diff --git a/jni/openssl/crypto/camellia/cmll_cbc.c b/src/main/jni/openssl/crypto/camellia/cmll_cbc.c
similarity index 100%
rename from jni/openssl/crypto/camellia/cmll_cbc.c
rename to src/main/jni/openssl/crypto/camellia/cmll_cbc.c
diff --git a/jni/openssl/crypto/camellia/cmll_cfb.c b/src/main/jni/openssl/crypto/camellia/cmll_cfb.c
similarity index 100%
rename from jni/openssl/crypto/camellia/cmll_cfb.c
rename to src/main/jni/openssl/crypto/camellia/cmll_cfb.c
diff --git a/jni/openssl/crypto/camellia/cmll_ctr.c b/src/main/jni/openssl/crypto/camellia/cmll_ctr.c
similarity index 100%
rename from jni/openssl/crypto/camellia/cmll_ctr.c
rename to src/main/jni/openssl/crypto/camellia/cmll_ctr.c
diff --git a/jni/openssl/crypto/camellia/cmll_ecb.c b/src/main/jni/openssl/crypto/camellia/cmll_ecb.c
similarity index 100%
rename from jni/openssl/crypto/camellia/cmll_ecb.c
rename to src/main/jni/openssl/crypto/camellia/cmll_ecb.c
diff --git a/jni/openssl/crypto/camellia/cmll_locl.h b/src/main/jni/openssl/crypto/camellia/cmll_locl.h
similarity index 100%
rename from jni/openssl/crypto/camellia/cmll_locl.h
rename to src/main/jni/openssl/crypto/camellia/cmll_locl.h
diff --git a/jni/openssl/crypto/camellia/cmll_misc.c b/src/main/jni/openssl/crypto/camellia/cmll_misc.c
similarity index 100%
rename from jni/openssl/crypto/camellia/cmll_misc.c
rename to src/main/jni/openssl/crypto/camellia/cmll_misc.c
diff --git a/jni/openssl/crypto/camellia/cmll_ofb.c b/src/main/jni/openssl/crypto/camellia/cmll_ofb.c
similarity index 100%
rename from jni/openssl/crypto/camellia/cmll_ofb.c
rename to src/main/jni/openssl/crypto/camellia/cmll_ofb.c
diff --git a/jni/openssl/crypto/camellia/cmll_utl.c b/src/main/jni/openssl/crypto/camellia/cmll_utl.c
similarity index 100%
rename from jni/openssl/crypto/camellia/cmll_utl.c
rename to src/main/jni/openssl/crypto/camellia/cmll_utl.c
diff --git a/jni/openssl/crypto/cmac/Makefile b/src/main/jni/openssl/crypto/cmac/Makefile
similarity index 100%
rename from jni/openssl/crypto/cmac/Makefile
rename to src/main/jni/openssl/crypto/cmac/Makefile
diff --git a/jni/openssl/crypto/cmac/cm_ameth.c b/src/main/jni/openssl/crypto/cmac/cm_ameth.c
similarity index 100%
rename from jni/openssl/crypto/cmac/cm_ameth.c
rename to src/main/jni/openssl/crypto/cmac/cm_ameth.c
diff --git a/jni/openssl/crypto/cmac/cm_pmeth.c b/src/main/jni/openssl/crypto/cmac/cm_pmeth.c
similarity index 100%
rename from jni/openssl/crypto/cmac/cm_pmeth.c
rename to src/main/jni/openssl/crypto/cmac/cm_pmeth.c
diff --git a/jni/openssl/crypto/cmac/cmac.c b/src/main/jni/openssl/crypto/cmac/cmac.c
similarity index 100%
rename from jni/openssl/crypto/cmac/cmac.c
rename to src/main/jni/openssl/crypto/cmac/cmac.c
diff --git a/jni/openssl/crypto/cmac/cmac.h b/src/main/jni/openssl/crypto/cmac/cmac.h
similarity index 100%
rename from jni/openssl/crypto/cmac/cmac.h
rename to src/main/jni/openssl/crypto/cmac/cmac.h
diff --git a/jni/openssl/crypto/comp/Makefile b/src/main/jni/openssl/crypto/comp/Makefile
similarity index 100%
rename from jni/openssl/crypto/comp/Makefile
rename to src/main/jni/openssl/crypto/comp/Makefile
diff --git a/jni/openssl/crypto/comp/c_rle.c b/src/main/jni/openssl/crypto/comp/c_rle.c
similarity index 100%
rename from jni/openssl/crypto/comp/c_rle.c
rename to src/main/jni/openssl/crypto/comp/c_rle.c
diff --git a/jni/openssl/crypto/comp/c_zlib.c b/src/main/jni/openssl/crypto/comp/c_zlib.c
similarity index 100%
rename from jni/openssl/crypto/comp/c_zlib.c
rename to src/main/jni/openssl/crypto/comp/c_zlib.c
diff --git a/jni/openssl/crypto/comp/comp.h b/src/main/jni/openssl/crypto/comp/comp.h
similarity index 100%
rename from jni/openssl/crypto/comp/comp.h
rename to src/main/jni/openssl/crypto/comp/comp.h
diff --git a/jni/openssl/crypto/comp/comp_err.c b/src/main/jni/openssl/crypto/comp/comp_err.c
similarity index 100%
rename from jni/openssl/crypto/comp/comp_err.c
rename to src/main/jni/openssl/crypto/comp/comp_err.c
diff --git a/jni/openssl/crypto/comp/comp_lib.c b/src/main/jni/openssl/crypto/comp/comp_lib.c
similarity index 100%
rename from jni/openssl/crypto/comp/comp_lib.c
rename to src/main/jni/openssl/crypto/comp/comp_lib.c
diff --git a/jni/openssl/crypto/conf/Makefile b/src/main/jni/openssl/crypto/conf/Makefile
similarity index 100%
rename from jni/openssl/crypto/conf/Makefile
rename to src/main/jni/openssl/crypto/conf/Makefile
diff --git a/jni/openssl/crypto/conf/README b/src/main/jni/openssl/crypto/conf/README
similarity index 100%
rename from jni/openssl/crypto/conf/README
rename to src/main/jni/openssl/crypto/conf/README
diff --git a/jni/openssl/crypto/conf/cnf_save.c b/src/main/jni/openssl/crypto/conf/cnf_save.c
similarity index 100%
rename from jni/openssl/crypto/conf/cnf_save.c
rename to src/main/jni/openssl/crypto/conf/cnf_save.c
diff --git a/jni/openssl/crypto/conf/conf.h b/src/main/jni/openssl/crypto/conf/conf.h
similarity index 100%
rename from jni/openssl/crypto/conf/conf.h
rename to src/main/jni/openssl/crypto/conf/conf.h
diff --git a/jni/openssl/crypto/conf/conf_api.c b/src/main/jni/openssl/crypto/conf/conf_api.c
similarity index 100%
rename from jni/openssl/crypto/conf/conf_api.c
rename to src/main/jni/openssl/crypto/conf/conf_api.c
diff --git a/jni/openssl/crypto/conf/conf_api.h b/src/main/jni/openssl/crypto/conf/conf_api.h
similarity index 100%
rename from jni/openssl/crypto/conf/conf_api.h
rename to src/main/jni/openssl/crypto/conf/conf_api.h
diff --git a/jni/openssl/crypto/conf/conf_def.c b/src/main/jni/openssl/crypto/conf/conf_def.c
similarity index 100%
rename from jni/openssl/crypto/conf/conf_def.c
rename to src/main/jni/openssl/crypto/conf/conf_def.c
diff --git a/jni/openssl/crypto/conf/conf_def.h b/src/main/jni/openssl/crypto/conf/conf_def.h
similarity index 100%
rename from jni/openssl/crypto/conf/conf_def.h
rename to src/main/jni/openssl/crypto/conf/conf_def.h
diff --git a/jni/openssl/crypto/conf/conf_err.c b/src/main/jni/openssl/crypto/conf/conf_err.c
similarity index 100%
rename from jni/openssl/crypto/conf/conf_err.c
rename to src/main/jni/openssl/crypto/conf/conf_err.c
diff --git a/jni/openssl/crypto/conf/conf_lib.c b/src/main/jni/openssl/crypto/conf/conf_lib.c
similarity index 100%
rename from jni/openssl/crypto/conf/conf_lib.c
rename to src/main/jni/openssl/crypto/conf/conf_lib.c
diff --git a/jni/openssl/crypto/conf/conf_mall.c b/src/main/jni/openssl/crypto/conf/conf_mall.c
similarity index 100%
rename from jni/openssl/crypto/conf/conf_mall.c
rename to src/main/jni/openssl/crypto/conf/conf_mall.c
diff --git a/jni/openssl/crypto/conf/conf_mod.c b/src/main/jni/openssl/crypto/conf/conf_mod.c
similarity index 100%
rename from jni/openssl/crypto/conf/conf_mod.c
rename to src/main/jni/openssl/crypto/conf/conf_mod.c
diff --git a/jni/openssl/crypto/conf/conf_sap.c b/src/main/jni/openssl/crypto/conf/conf_sap.c
similarity index 100%
rename from jni/openssl/crypto/conf/conf_sap.c
rename to src/main/jni/openssl/crypto/conf/conf_sap.c
diff --git a/jni/openssl/crypto/conf/keysets.pl b/src/main/jni/openssl/crypto/conf/keysets.pl
similarity index 100%
rename from jni/openssl/crypto/conf/keysets.pl
rename to src/main/jni/openssl/crypto/conf/keysets.pl
diff --git a/jni/openssl/crypto/conf/ssleay.cnf b/src/main/jni/openssl/crypto/conf/ssleay.cnf
similarity index 100%
rename from jni/openssl/crypto/conf/ssleay.cnf
rename to src/main/jni/openssl/crypto/conf/ssleay.cnf
diff --git a/jni/openssl/crypto/conf/test.c b/src/main/jni/openssl/crypto/conf/test.c
similarity index 100%
rename from jni/openssl/crypto/conf/test.c
rename to src/main/jni/openssl/crypto/conf/test.c
diff --git a/jni/openssl/crypto/cpt_err.c b/src/main/jni/openssl/crypto/cpt_err.c
similarity index 100%
rename from jni/openssl/crypto/cpt_err.c
rename to src/main/jni/openssl/crypto/cpt_err.c
diff --git a/jni/openssl/crypto/cryptlib.c b/src/main/jni/openssl/crypto/cryptlib.c
similarity index 100%
rename from jni/openssl/crypto/cryptlib.c
rename to src/main/jni/openssl/crypto/cryptlib.c
diff --git a/jni/openssl/crypto/cryptlib.h b/src/main/jni/openssl/crypto/cryptlib.h
similarity index 100%
rename from jni/openssl/crypto/cryptlib.h
rename to src/main/jni/openssl/crypto/cryptlib.h
diff --git a/jni/openssl/crypto/crypto-lib.com b/src/main/jni/openssl/crypto/crypto-lib.com
similarity index 100%
rename from jni/openssl/crypto/crypto-lib.com
rename to src/main/jni/openssl/crypto/crypto-lib.com
diff --git a/jni/openssl/crypto/crypto.h b/src/main/jni/openssl/crypto/crypto.h
similarity index 100%
rename from jni/openssl/crypto/crypto.h
rename to src/main/jni/openssl/crypto/crypto.h
diff --git a/jni/openssl/crypto/cversion.c b/src/main/jni/openssl/crypto/cversion.c
similarity index 100%
rename from jni/openssl/crypto/cversion.c
rename to src/main/jni/openssl/crypto/cversion.c
diff --git a/jni/openssl/crypto/des/COPYRIGHT b/src/main/jni/openssl/crypto/des/COPYRIGHT
similarity index 100%
rename from jni/openssl/crypto/des/COPYRIGHT
rename to src/main/jni/openssl/crypto/des/COPYRIGHT
diff --git a/jni/openssl/crypto/des/DES.pm b/src/main/jni/openssl/crypto/des/DES.pm
similarity index 100%
rename from jni/openssl/crypto/des/DES.pm
rename to src/main/jni/openssl/crypto/des/DES.pm
diff --git a/jni/openssl/crypto/des/DES.xs b/src/main/jni/openssl/crypto/des/DES.xs
similarity index 100%
rename from jni/openssl/crypto/des/DES.xs
rename to src/main/jni/openssl/crypto/des/DES.xs
diff --git a/jni/openssl/crypto/des/FILES0 b/src/main/jni/openssl/crypto/des/FILES0
similarity index 100%
rename from jni/openssl/crypto/des/FILES0
rename to src/main/jni/openssl/crypto/des/FILES0
diff --git a/jni/openssl/crypto/des/INSTALL b/src/main/jni/openssl/crypto/des/INSTALL
similarity index 100%
rename from jni/openssl/crypto/des/INSTALL
rename to src/main/jni/openssl/crypto/des/INSTALL
diff --git a/jni/openssl/crypto/des/Imakefile b/src/main/jni/openssl/crypto/des/Imakefile
similarity index 100%
rename from jni/openssl/crypto/des/Imakefile
rename to src/main/jni/openssl/crypto/des/Imakefile
diff --git a/jni/openssl/crypto/des/KERBEROS b/src/main/jni/openssl/crypto/des/KERBEROS
similarity index 100%
rename from jni/openssl/crypto/des/KERBEROS
rename to src/main/jni/openssl/crypto/des/KERBEROS
diff --git a/jni/openssl/crypto/des/Makefile b/src/main/jni/openssl/crypto/des/Makefile
similarity index 100%
rename from jni/openssl/crypto/des/Makefile
rename to src/main/jni/openssl/crypto/des/Makefile
diff --git a/jni/openssl/crypto/des/README b/src/main/jni/openssl/crypto/des/README
similarity index 100%
rename from jni/openssl/crypto/des/README
rename to src/main/jni/openssl/crypto/des/README
diff --git a/jni/openssl/crypto/des/VERSION b/src/main/jni/openssl/crypto/des/VERSION
similarity index 100%
rename from jni/openssl/crypto/des/VERSION
rename to src/main/jni/openssl/crypto/des/VERSION
diff --git a/jni/openssl/crypto/des/asm/crypt586.pl b/src/main/jni/openssl/crypto/des/asm/crypt586.pl
similarity index 100%
rename from jni/openssl/crypto/des/asm/crypt586.pl
rename to src/main/jni/openssl/crypto/des/asm/crypt586.pl
diff --git a/jni/openssl/crypto/des/asm/des-586.pl b/src/main/jni/openssl/crypto/des/asm/des-586.pl
similarity index 100%
rename from jni/openssl/crypto/des/asm/des-586.pl
rename to src/main/jni/openssl/crypto/des/asm/des-586.pl
diff --git a/jni/openssl/crypto/des/asm/des_enc.m4 b/src/main/jni/openssl/crypto/des/asm/des_enc.m4
similarity index 100%
rename from jni/openssl/crypto/des/asm/des_enc.m4
rename to src/main/jni/openssl/crypto/des/asm/des_enc.m4
diff --git a/jni/openssl/crypto/des/asm/desboth.pl b/src/main/jni/openssl/crypto/des/asm/desboth.pl
similarity index 100%
rename from jni/openssl/crypto/des/asm/desboth.pl
rename to src/main/jni/openssl/crypto/des/asm/desboth.pl
diff --git a/jni/openssl/crypto/des/asm/readme b/src/main/jni/openssl/crypto/des/asm/readme
similarity index 100%
rename from jni/openssl/crypto/des/asm/readme
rename to src/main/jni/openssl/crypto/des/asm/readme
diff --git a/jni/openssl/crypto/des/cbc3_enc.c b/src/main/jni/openssl/crypto/des/cbc3_enc.c
similarity index 100%
rename from jni/openssl/crypto/des/cbc3_enc.c
rename to src/main/jni/openssl/crypto/des/cbc3_enc.c
diff --git a/jni/openssl/crypto/des/cbc_cksm.c b/src/main/jni/openssl/crypto/des/cbc_cksm.c
similarity index 100%
rename from jni/openssl/crypto/des/cbc_cksm.c
rename to src/main/jni/openssl/crypto/des/cbc_cksm.c
diff --git a/jni/openssl/crypto/des/cbc_enc.c b/src/main/jni/openssl/crypto/des/cbc_enc.c
similarity index 100%
rename from jni/openssl/crypto/des/cbc_enc.c
rename to src/main/jni/openssl/crypto/des/cbc_enc.c
diff --git a/jni/openssl/crypto/des/cfb64ede.c b/src/main/jni/openssl/crypto/des/cfb64ede.c
similarity index 100%
rename from jni/openssl/crypto/des/cfb64ede.c
rename to src/main/jni/openssl/crypto/des/cfb64ede.c
diff --git a/jni/openssl/crypto/des/cfb64enc.c b/src/main/jni/openssl/crypto/des/cfb64enc.c
similarity index 100%
rename from jni/openssl/crypto/des/cfb64enc.c
rename to src/main/jni/openssl/crypto/des/cfb64enc.c
diff --git a/jni/openssl/crypto/des/cfb_enc.c b/src/main/jni/openssl/crypto/des/cfb_enc.c
similarity index 100%
rename from jni/openssl/crypto/des/cfb_enc.c
rename to src/main/jni/openssl/crypto/des/cfb_enc.c
diff --git a/jni/openssl/crypto/des/des-lib.com b/src/main/jni/openssl/crypto/des/des-lib.com
similarity index 100%
rename from jni/openssl/crypto/des/des-lib.com
rename to src/main/jni/openssl/crypto/des/des-lib.com
diff --git a/jni/openssl/crypto/des/des.c b/src/main/jni/openssl/crypto/des/des.c
similarity index 100%
rename from jni/openssl/crypto/des/des.c
rename to src/main/jni/openssl/crypto/des/des.c
diff --git a/jni/openssl/crypto/des/des.h b/src/main/jni/openssl/crypto/des/des.h
similarity index 100%
rename from jni/openssl/crypto/des/des.h
rename to src/main/jni/openssl/crypto/des/des.h
diff --git a/jni/openssl/crypto/des/des.pod b/src/main/jni/openssl/crypto/des/des.pod
similarity index 100%
rename from jni/openssl/crypto/des/des.pod
rename to src/main/jni/openssl/crypto/des/des.pod
diff --git a/jni/openssl/crypto/des/des3s.cpp b/src/main/jni/openssl/crypto/des/des3s.cpp
similarity index 100%
rename from jni/openssl/crypto/des/des3s.cpp
rename to src/main/jni/openssl/crypto/des/des3s.cpp
diff --git a/jni/openssl/crypto/des/des_enc.c b/src/main/jni/openssl/crypto/des/des_enc.c
similarity index 100%
rename from jni/openssl/crypto/des/des_enc.c
rename to src/main/jni/openssl/crypto/des/des_enc.c
diff --git a/jni/openssl/crypto/des/des_locl.h b/src/main/jni/openssl/crypto/des/des_locl.h
similarity index 100%
rename from jni/openssl/crypto/des/des_locl.h
rename to src/main/jni/openssl/crypto/des/des_locl.h
diff --git a/jni/openssl/crypto/des/des_old.c b/src/main/jni/openssl/crypto/des/des_old.c
similarity index 100%
rename from jni/openssl/crypto/des/des_old.c
rename to src/main/jni/openssl/crypto/des/des_old.c
diff --git a/jni/openssl/crypto/des/des_old.h b/src/main/jni/openssl/crypto/des/des_old.h
similarity index 100%
rename from jni/openssl/crypto/des/des_old.h
rename to src/main/jni/openssl/crypto/des/des_old.h
diff --git a/jni/openssl/crypto/des/des_old2.c b/src/main/jni/openssl/crypto/des/des_old2.c
similarity index 100%
rename from jni/openssl/crypto/des/des_old2.c
rename to src/main/jni/openssl/crypto/des/des_old2.c
diff --git a/jni/openssl/crypto/des/des_opts.c b/src/main/jni/openssl/crypto/des/des_opts.c
similarity index 100%
rename from jni/openssl/crypto/des/des_opts.c
rename to src/main/jni/openssl/crypto/des/des_opts.c
diff --git a/jni/openssl/crypto/des/des_ver.h b/src/main/jni/openssl/crypto/des/des_ver.h
similarity index 100%
rename from jni/openssl/crypto/des/des_ver.h
rename to src/main/jni/openssl/crypto/des/des_ver.h
diff --git a/jni/openssl/crypto/des/dess.cpp b/src/main/jni/openssl/crypto/des/dess.cpp
similarity index 100%
rename from jni/openssl/crypto/des/dess.cpp
rename to src/main/jni/openssl/crypto/des/dess.cpp
diff --git a/jni/openssl/crypto/des/destest.c b/src/main/jni/openssl/crypto/des/destest.c
similarity index 100%
rename from jni/openssl/crypto/des/destest.c
rename to src/main/jni/openssl/crypto/des/destest.c
diff --git a/jni/openssl/crypto/des/ecb3_enc.c b/src/main/jni/openssl/crypto/des/ecb3_enc.c
similarity index 100%
rename from jni/openssl/crypto/des/ecb3_enc.c
rename to src/main/jni/openssl/crypto/des/ecb3_enc.c
diff --git a/jni/openssl/crypto/des/ecb_enc.c b/src/main/jni/openssl/crypto/des/ecb_enc.c
similarity index 100%
rename from jni/openssl/crypto/des/ecb_enc.c
rename to src/main/jni/openssl/crypto/des/ecb_enc.c
diff --git a/jni/openssl/crypto/des/ede_cbcm_enc.c b/src/main/jni/openssl/crypto/des/ede_cbcm_enc.c
similarity index 100%
rename from jni/openssl/crypto/des/ede_cbcm_enc.c
rename to src/main/jni/openssl/crypto/des/ede_cbcm_enc.c
diff --git a/jni/openssl/crypto/des/enc_read.c b/src/main/jni/openssl/crypto/des/enc_read.c
similarity index 100%
rename from jni/openssl/crypto/des/enc_read.c
rename to src/main/jni/openssl/crypto/des/enc_read.c
diff --git a/jni/openssl/crypto/des/enc_writ.c b/src/main/jni/openssl/crypto/des/enc_writ.c
similarity index 100%
rename from jni/openssl/crypto/des/enc_writ.c
rename to src/main/jni/openssl/crypto/des/enc_writ.c
diff --git a/jni/openssl/crypto/des/fcrypt.c b/src/main/jni/openssl/crypto/des/fcrypt.c
similarity index 100%
rename from jni/openssl/crypto/des/fcrypt.c
rename to src/main/jni/openssl/crypto/des/fcrypt.c
diff --git a/jni/openssl/crypto/des/fcrypt_b.c b/src/main/jni/openssl/crypto/des/fcrypt_b.c
similarity index 100%
rename from jni/openssl/crypto/des/fcrypt_b.c
rename to src/main/jni/openssl/crypto/des/fcrypt_b.c
diff --git a/jni/openssl/crypto/des/makefile.bc b/src/main/jni/openssl/crypto/des/makefile.bc
similarity index 100%
rename from jni/openssl/crypto/des/makefile.bc
rename to src/main/jni/openssl/crypto/des/makefile.bc
diff --git a/jni/openssl/crypto/des/ncbc_enc.c b/src/main/jni/openssl/crypto/des/ncbc_enc.c
similarity index 100%
rename from jni/openssl/crypto/des/ncbc_enc.c
rename to src/main/jni/openssl/crypto/des/ncbc_enc.c
diff --git a/jni/openssl/crypto/des/ofb64ede.c b/src/main/jni/openssl/crypto/des/ofb64ede.c
similarity index 100%
rename from jni/openssl/crypto/des/ofb64ede.c
rename to src/main/jni/openssl/crypto/des/ofb64ede.c
diff --git a/jni/openssl/crypto/des/ofb64enc.c b/src/main/jni/openssl/crypto/des/ofb64enc.c
similarity index 100%
rename from jni/openssl/crypto/des/ofb64enc.c
rename to src/main/jni/openssl/crypto/des/ofb64enc.c
diff --git a/jni/openssl/crypto/des/ofb_enc.c b/src/main/jni/openssl/crypto/des/ofb_enc.c
similarity index 100%
rename from jni/openssl/crypto/des/ofb_enc.c
rename to src/main/jni/openssl/crypto/des/ofb_enc.c
diff --git a/jni/openssl/crypto/des/options.txt b/src/main/jni/openssl/crypto/des/options.txt
similarity index 100%
rename from jni/openssl/crypto/des/options.txt
rename to src/main/jni/openssl/crypto/des/options.txt
diff --git a/jni/openssl/crypto/des/pcbc_enc.c b/src/main/jni/openssl/crypto/des/pcbc_enc.c
similarity index 100%
rename from jni/openssl/crypto/des/pcbc_enc.c
rename to src/main/jni/openssl/crypto/des/pcbc_enc.c
diff --git a/jni/openssl/crypto/des/qud_cksm.c b/src/main/jni/openssl/crypto/des/qud_cksm.c
similarity index 100%
rename from jni/openssl/crypto/des/qud_cksm.c
rename to src/main/jni/openssl/crypto/des/qud_cksm.c
diff --git a/jni/openssl/crypto/des/rand_key.c b/src/main/jni/openssl/crypto/des/rand_key.c
similarity index 100%
rename from jni/openssl/crypto/des/rand_key.c
rename to src/main/jni/openssl/crypto/des/rand_key.c
diff --git a/jni/openssl/crypto/des/read2pwd.c b/src/main/jni/openssl/crypto/des/read2pwd.c
similarity index 100%
rename from jni/openssl/crypto/des/read2pwd.c
rename to src/main/jni/openssl/crypto/des/read2pwd.c
diff --git a/jni/openssl/crypto/des/read_pwd.c b/src/main/jni/openssl/crypto/des/read_pwd.c
similarity index 100%
rename from jni/openssl/crypto/des/read_pwd.c
rename to src/main/jni/openssl/crypto/des/read_pwd.c
diff --git a/jni/openssl/crypto/des/rpc_des.h b/src/main/jni/openssl/crypto/des/rpc_des.h
similarity index 100%
rename from jni/openssl/crypto/des/rpc_des.h
rename to src/main/jni/openssl/crypto/des/rpc_des.h
diff --git a/jni/openssl/crypto/des/rpc_enc.c b/src/main/jni/openssl/crypto/des/rpc_enc.c
similarity index 100%
rename from jni/openssl/crypto/des/rpc_enc.c
rename to src/main/jni/openssl/crypto/des/rpc_enc.c
diff --git a/jni/openssl/crypto/des/rpw.c b/src/main/jni/openssl/crypto/des/rpw.c
similarity index 100%
rename from jni/openssl/crypto/des/rpw.c
rename to src/main/jni/openssl/crypto/des/rpw.c
diff --git a/jni/openssl/crypto/des/set_key.c b/src/main/jni/openssl/crypto/des/set_key.c
similarity index 100%
rename from jni/openssl/crypto/des/set_key.c
rename to src/main/jni/openssl/crypto/des/set_key.c
diff --git a/jni/openssl/crypto/des/speed.c b/src/main/jni/openssl/crypto/des/speed.c
similarity index 100%
rename from jni/openssl/crypto/des/speed.c
rename to src/main/jni/openssl/crypto/des/speed.c
diff --git a/jni/openssl/crypto/des/spr.h b/src/main/jni/openssl/crypto/des/spr.h
similarity index 100%
rename from jni/openssl/crypto/des/spr.h
rename to src/main/jni/openssl/crypto/des/spr.h
diff --git a/jni/openssl/crypto/des/str2key.c b/src/main/jni/openssl/crypto/des/str2key.c
similarity index 100%
rename from jni/openssl/crypto/des/str2key.c
rename to src/main/jni/openssl/crypto/des/str2key.c
diff --git a/jni/openssl/crypto/des/t/test b/src/main/jni/openssl/crypto/des/t/test
similarity index 100%
rename from jni/openssl/crypto/des/t/test
rename to src/main/jni/openssl/crypto/des/t/test
diff --git a/jni/openssl/crypto/des/times/486-50.sol b/src/main/jni/openssl/crypto/des/times/486-50.sol
similarity index 100%
rename from jni/openssl/crypto/des/times/486-50.sol
rename to src/main/jni/openssl/crypto/des/times/486-50.sol
diff --git a/jni/openssl/crypto/des/times/586-100.lnx b/src/main/jni/openssl/crypto/des/times/586-100.lnx
similarity index 100%
rename from jni/openssl/crypto/des/times/586-100.lnx
rename to src/main/jni/openssl/crypto/des/times/586-100.lnx
diff --git a/jni/openssl/crypto/des/times/686-200.fre b/src/main/jni/openssl/crypto/des/times/686-200.fre
similarity index 100%
rename from jni/openssl/crypto/des/times/686-200.fre
rename to src/main/jni/openssl/crypto/des/times/686-200.fre
diff --git a/jni/openssl/crypto/des/times/aix.cc b/src/main/jni/openssl/crypto/des/times/aix.cc
similarity index 100%
rename from jni/openssl/crypto/des/times/aix.cc
rename to src/main/jni/openssl/crypto/des/times/aix.cc
diff --git a/jni/openssl/crypto/des/times/alpha.cc b/src/main/jni/openssl/crypto/des/times/alpha.cc
similarity index 100%
rename from jni/openssl/crypto/des/times/alpha.cc
rename to src/main/jni/openssl/crypto/des/times/alpha.cc
diff --git a/jni/openssl/crypto/des/times/hpux.cc b/src/main/jni/openssl/crypto/des/times/hpux.cc
similarity index 100%
rename from jni/openssl/crypto/des/times/hpux.cc
rename to src/main/jni/openssl/crypto/des/times/hpux.cc
diff --git a/jni/openssl/crypto/des/times/sparc.gcc b/src/main/jni/openssl/crypto/des/times/sparc.gcc
similarity index 100%
rename from jni/openssl/crypto/des/times/sparc.gcc
rename to src/main/jni/openssl/crypto/des/times/sparc.gcc
diff --git a/jni/openssl/crypto/des/times/usparc.cc b/src/main/jni/openssl/crypto/des/times/usparc.cc
similarity index 100%
rename from jni/openssl/crypto/des/times/usparc.cc
rename to src/main/jni/openssl/crypto/des/times/usparc.cc
diff --git a/jni/openssl/crypto/des/typemap b/src/main/jni/openssl/crypto/des/typemap
similarity index 100%
rename from jni/openssl/crypto/des/typemap
rename to src/main/jni/openssl/crypto/des/typemap
diff --git a/jni/openssl/crypto/des/xcbc_enc.c b/src/main/jni/openssl/crypto/des/xcbc_enc.c
similarity index 100%
rename from jni/openssl/crypto/des/xcbc_enc.c
rename to src/main/jni/openssl/crypto/des/xcbc_enc.c
diff --git a/jni/openssl/crypto/dh/Makefile b/src/main/jni/openssl/crypto/dh/Makefile
similarity index 100%
rename from jni/openssl/crypto/dh/Makefile
rename to src/main/jni/openssl/crypto/dh/Makefile
diff --git a/jni/openssl/crypto/dh/dh.h b/src/main/jni/openssl/crypto/dh/dh.h
similarity index 100%
rename from jni/openssl/crypto/dh/dh.h
rename to src/main/jni/openssl/crypto/dh/dh.h
diff --git a/jni/openssl/crypto/dh/dh1024.pem b/src/main/jni/openssl/crypto/dh/dh1024.pem
similarity index 100%
rename from jni/openssl/crypto/dh/dh1024.pem
rename to src/main/jni/openssl/crypto/dh/dh1024.pem
diff --git a/jni/openssl/crypto/dh/dh192.pem b/src/main/jni/openssl/crypto/dh/dh192.pem
similarity index 100%
rename from jni/openssl/crypto/dh/dh192.pem
rename to src/main/jni/openssl/crypto/dh/dh192.pem
diff --git a/jni/openssl/crypto/dh/dh2048.pem b/src/main/jni/openssl/crypto/dh/dh2048.pem
similarity index 100%
rename from jni/openssl/crypto/dh/dh2048.pem
rename to src/main/jni/openssl/crypto/dh/dh2048.pem
diff --git a/jni/openssl/crypto/dh/dh4096.pem b/src/main/jni/openssl/crypto/dh/dh4096.pem
similarity index 100%
rename from jni/openssl/crypto/dh/dh4096.pem
rename to src/main/jni/openssl/crypto/dh/dh4096.pem
diff --git a/jni/openssl/crypto/dh/dh512.pem b/src/main/jni/openssl/crypto/dh/dh512.pem
similarity index 100%
rename from jni/openssl/crypto/dh/dh512.pem
rename to src/main/jni/openssl/crypto/dh/dh512.pem
diff --git a/jni/openssl/crypto/dh/dh_ameth.c b/src/main/jni/openssl/crypto/dh/dh_ameth.c
similarity index 100%
rename from jni/openssl/crypto/dh/dh_ameth.c
rename to src/main/jni/openssl/crypto/dh/dh_ameth.c
diff --git a/jni/openssl/crypto/dh/dh_asn1.c b/src/main/jni/openssl/crypto/dh/dh_asn1.c
similarity index 100%
rename from jni/openssl/crypto/dh/dh_asn1.c
rename to src/main/jni/openssl/crypto/dh/dh_asn1.c
diff --git a/jni/openssl/crypto/dh/dh_check.c b/src/main/jni/openssl/crypto/dh/dh_check.c
similarity index 100%
rename from jni/openssl/crypto/dh/dh_check.c
rename to src/main/jni/openssl/crypto/dh/dh_check.c
diff --git a/jni/openssl/crypto/dh/dh_depr.c b/src/main/jni/openssl/crypto/dh/dh_depr.c
similarity index 100%
rename from jni/openssl/crypto/dh/dh_depr.c
rename to src/main/jni/openssl/crypto/dh/dh_depr.c
diff --git a/jni/openssl/crypto/dh/dh_err.c b/src/main/jni/openssl/crypto/dh/dh_err.c
similarity index 100%
rename from jni/openssl/crypto/dh/dh_err.c
rename to src/main/jni/openssl/crypto/dh/dh_err.c
diff --git a/jni/openssl/crypto/dh/dh_gen.c b/src/main/jni/openssl/crypto/dh/dh_gen.c
similarity index 100%
rename from jni/openssl/crypto/dh/dh_gen.c
rename to src/main/jni/openssl/crypto/dh/dh_gen.c
diff --git a/jni/openssl/crypto/dh/dh_key.c b/src/main/jni/openssl/crypto/dh/dh_key.c
similarity index 100%
rename from jni/openssl/crypto/dh/dh_key.c
rename to src/main/jni/openssl/crypto/dh/dh_key.c
diff --git a/jni/openssl/crypto/dh/dh_lib.c b/src/main/jni/openssl/crypto/dh/dh_lib.c
similarity index 100%
rename from jni/openssl/crypto/dh/dh_lib.c
rename to src/main/jni/openssl/crypto/dh/dh_lib.c
diff --git a/jni/openssl/crypto/dh/dh_pmeth.c b/src/main/jni/openssl/crypto/dh/dh_pmeth.c
similarity index 100%
rename from jni/openssl/crypto/dh/dh_pmeth.c
rename to src/main/jni/openssl/crypto/dh/dh_pmeth.c
diff --git a/jni/openssl/crypto/dh/dh_prn.c b/src/main/jni/openssl/crypto/dh/dh_prn.c
similarity index 100%
rename from jni/openssl/crypto/dh/dh_prn.c
rename to src/main/jni/openssl/crypto/dh/dh_prn.c
diff --git a/jni/openssl/crypto/dh/dhtest.c b/src/main/jni/openssl/crypto/dh/dhtest.c
similarity index 100%
rename from jni/openssl/crypto/dh/dhtest.c
rename to src/main/jni/openssl/crypto/dh/dhtest.c
diff --git a/jni/openssl/crypto/dh/example b/src/main/jni/openssl/crypto/dh/example
similarity index 100%
rename from jni/openssl/crypto/dh/example
rename to src/main/jni/openssl/crypto/dh/example
diff --git a/jni/openssl/crypto/dh/generate b/src/main/jni/openssl/crypto/dh/generate
similarity index 100%
rename from jni/openssl/crypto/dh/generate
rename to src/main/jni/openssl/crypto/dh/generate
diff --git a/jni/openssl/crypto/dh/p1024.c b/src/main/jni/openssl/crypto/dh/p1024.c
similarity index 100%
rename from jni/openssl/crypto/dh/p1024.c
rename to src/main/jni/openssl/crypto/dh/p1024.c
diff --git a/jni/openssl/crypto/dh/p192.c b/src/main/jni/openssl/crypto/dh/p192.c
similarity index 100%
rename from jni/openssl/crypto/dh/p192.c
rename to src/main/jni/openssl/crypto/dh/p192.c
diff --git a/jni/openssl/crypto/dh/p512.c b/src/main/jni/openssl/crypto/dh/p512.c
similarity index 100%
rename from jni/openssl/crypto/dh/p512.c
rename to src/main/jni/openssl/crypto/dh/p512.c
diff --git a/jni/openssl/crypto/dsa/Makefile b/src/main/jni/openssl/crypto/dsa/Makefile
similarity index 100%
rename from jni/openssl/crypto/dsa/Makefile
rename to src/main/jni/openssl/crypto/dsa/Makefile
diff --git a/jni/openssl/crypto/dsa/README b/src/main/jni/openssl/crypto/dsa/README
similarity index 100%
rename from jni/openssl/crypto/dsa/README
rename to src/main/jni/openssl/crypto/dsa/README
diff --git a/jni/openssl/crypto/dsa/dsa.h b/src/main/jni/openssl/crypto/dsa/dsa.h
similarity index 100%
rename from jni/openssl/crypto/dsa/dsa.h
rename to src/main/jni/openssl/crypto/dsa/dsa.h
diff --git a/jni/openssl/crypto/dsa/dsa_ameth.c b/src/main/jni/openssl/crypto/dsa/dsa_ameth.c
similarity index 100%
rename from jni/openssl/crypto/dsa/dsa_ameth.c
rename to src/main/jni/openssl/crypto/dsa/dsa_ameth.c
diff --git a/jni/openssl/crypto/dsa/dsa_asn1.c b/src/main/jni/openssl/crypto/dsa/dsa_asn1.c
similarity index 100%
rename from jni/openssl/crypto/dsa/dsa_asn1.c
rename to src/main/jni/openssl/crypto/dsa/dsa_asn1.c
diff --git a/jni/openssl/crypto/dsa/dsa_depr.c b/src/main/jni/openssl/crypto/dsa/dsa_depr.c
similarity index 100%
rename from jni/openssl/crypto/dsa/dsa_depr.c
rename to src/main/jni/openssl/crypto/dsa/dsa_depr.c
diff --git a/jni/openssl/crypto/dsa/dsa_err.c b/src/main/jni/openssl/crypto/dsa/dsa_err.c
similarity index 100%
rename from jni/openssl/crypto/dsa/dsa_err.c
rename to src/main/jni/openssl/crypto/dsa/dsa_err.c
diff --git a/jni/openssl/crypto/dsa/dsa_gen.c b/src/main/jni/openssl/crypto/dsa/dsa_gen.c
similarity index 100%
rename from jni/openssl/crypto/dsa/dsa_gen.c
rename to src/main/jni/openssl/crypto/dsa/dsa_gen.c
diff --git a/jni/openssl/crypto/dsa/dsa_key.c b/src/main/jni/openssl/crypto/dsa/dsa_key.c
similarity index 100%
rename from jni/openssl/crypto/dsa/dsa_key.c
rename to src/main/jni/openssl/crypto/dsa/dsa_key.c
diff --git a/jni/openssl/crypto/dsa/dsa_lib.c b/src/main/jni/openssl/crypto/dsa/dsa_lib.c
similarity index 100%
rename from jni/openssl/crypto/dsa/dsa_lib.c
rename to src/main/jni/openssl/crypto/dsa/dsa_lib.c
diff --git a/jni/openssl/crypto/dsa/dsa_locl.h b/src/main/jni/openssl/crypto/dsa/dsa_locl.h
similarity index 100%
rename from jni/openssl/crypto/dsa/dsa_locl.h
rename to src/main/jni/openssl/crypto/dsa/dsa_locl.h
diff --git a/jni/openssl/crypto/dsa/dsa_ossl.c b/src/main/jni/openssl/crypto/dsa/dsa_ossl.c
similarity index 100%
rename from jni/openssl/crypto/dsa/dsa_ossl.c
rename to src/main/jni/openssl/crypto/dsa/dsa_ossl.c
diff --git a/jni/openssl/crypto/dsa/dsa_pmeth.c b/src/main/jni/openssl/crypto/dsa/dsa_pmeth.c
similarity index 100%
rename from jni/openssl/crypto/dsa/dsa_pmeth.c
rename to src/main/jni/openssl/crypto/dsa/dsa_pmeth.c
diff --git a/jni/openssl/crypto/dsa/dsa_prn.c b/src/main/jni/openssl/crypto/dsa/dsa_prn.c
similarity index 100%
rename from jni/openssl/crypto/dsa/dsa_prn.c
rename to src/main/jni/openssl/crypto/dsa/dsa_prn.c
diff --git a/jni/openssl/crypto/dsa/dsa_sign.c b/src/main/jni/openssl/crypto/dsa/dsa_sign.c
similarity index 100%
rename from jni/openssl/crypto/dsa/dsa_sign.c
rename to src/main/jni/openssl/crypto/dsa/dsa_sign.c
diff --git a/jni/openssl/crypto/dsa/dsa_vrf.c b/src/main/jni/openssl/crypto/dsa/dsa_vrf.c
similarity index 100%
rename from jni/openssl/crypto/dsa/dsa_vrf.c
rename to src/main/jni/openssl/crypto/dsa/dsa_vrf.c
diff --git a/jni/openssl/crypto/dsa/dsagen.c b/src/main/jni/openssl/crypto/dsa/dsagen.c
similarity index 100%
rename from jni/openssl/crypto/dsa/dsagen.c
rename to src/main/jni/openssl/crypto/dsa/dsagen.c
diff --git a/jni/openssl/crypto/dsa/dsatest.c b/src/main/jni/openssl/crypto/dsa/dsatest.c
similarity index 100%
rename from jni/openssl/crypto/dsa/dsatest.c
rename to src/main/jni/openssl/crypto/dsa/dsatest.c
diff --git a/jni/openssl/crypto/dsa/fips186a.txt b/src/main/jni/openssl/crypto/dsa/fips186a.txt
similarity index 100%
rename from jni/openssl/crypto/dsa/fips186a.txt
rename to src/main/jni/openssl/crypto/dsa/fips186a.txt
diff --git a/jni/openssl/crypto/dso/Makefile b/src/main/jni/openssl/crypto/dso/Makefile
similarity index 100%
rename from jni/openssl/crypto/dso/Makefile
rename to src/main/jni/openssl/crypto/dso/Makefile
diff --git a/jni/openssl/crypto/dso/README b/src/main/jni/openssl/crypto/dso/README
similarity index 100%
rename from jni/openssl/crypto/dso/README
rename to src/main/jni/openssl/crypto/dso/README
diff --git a/jni/openssl/crypto/dso/dso.h b/src/main/jni/openssl/crypto/dso/dso.h
similarity index 100%
rename from jni/openssl/crypto/dso/dso.h
rename to src/main/jni/openssl/crypto/dso/dso.h
diff --git a/jni/openssl/crypto/dso/dso_beos.c b/src/main/jni/openssl/crypto/dso/dso_beos.c
similarity index 100%
rename from jni/openssl/crypto/dso/dso_beos.c
rename to src/main/jni/openssl/crypto/dso/dso_beos.c
diff --git a/jni/openssl/crypto/dso/dso_dl.c b/src/main/jni/openssl/crypto/dso/dso_dl.c
similarity index 100%
rename from jni/openssl/crypto/dso/dso_dl.c
rename to src/main/jni/openssl/crypto/dso/dso_dl.c
diff --git a/jni/openssl/crypto/dso/dso_dlfcn.c b/src/main/jni/openssl/crypto/dso/dso_dlfcn.c
similarity index 100%
rename from jni/openssl/crypto/dso/dso_dlfcn.c
rename to src/main/jni/openssl/crypto/dso/dso_dlfcn.c
diff --git a/jni/openssl/crypto/dso/dso_err.c b/src/main/jni/openssl/crypto/dso/dso_err.c
similarity index 100%
rename from jni/openssl/crypto/dso/dso_err.c
rename to src/main/jni/openssl/crypto/dso/dso_err.c
diff --git a/jni/openssl/crypto/dso/dso_lib.c b/src/main/jni/openssl/crypto/dso/dso_lib.c
similarity index 100%
rename from jni/openssl/crypto/dso/dso_lib.c
rename to src/main/jni/openssl/crypto/dso/dso_lib.c
diff --git a/jni/openssl/crypto/dso/dso_null.c b/src/main/jni/openssl/crypto/dso/dso_null.c
similarity index 100%
rename from jni/openssl/crypto/dso/dso_null.c
rename to src/main/jni/openssl/crypto/dso/dso_null.c
diff --git a/jni/openssl/crypto/dso/dso_openssl.c b/src/main/jni/openssl/crypto/dso/dso_openssl.c
similarity index 100%
rename from jni/openssl/crypto/dso/dso_openssl.c
rename to src/main/jni/openssl/crypto/dso/dso_openssl.c
diff --git a/jni/openssl/crypto/dso/dso_vms.c b/src/main/jni/openssl/crypto/dso/dso_vms.c
similarity index 100%
rename from jni/openssl/crypto/dso/dso_vms.c
rename to src/main/jni/openssl/crypto/dso/dso_vms.c
diff --git a/jni/openssl/crypto/dso/dso_win32.c b/src/main/jni/openssl/crypto/dso/dso_win32.c
similarity index 100%
rename from jni/openssl/crypto/dso/dso_win32.c
rename to src/main/jni/openssl/crypto/dso/dso_win32.c
diff --git a/jni/openssl/crypto/ebcdic.c b/src/main/jni/openssl/crypto/ebcdic.c
similarity index 100%
rename from jni/openssl/crypto/ebcdic.c
rename to src/main/jni/openssl/crypto/ebcdic.c
diff --git a/jni/openssl/crypto/ebcdic.h b/src/main/jni/openssl/crypto/ebcdic.h
similarity index 100%
rename from jni/openssl/crypto/ebcdic.h
rename to src/main/jni/openssl/crypto/ebcdic.h
diff --git a/jni/openssl/crypto/ec/Makefile b/src/main/jni/openssl/crypto/ec/Makefile
similarity index 100%
rename from jni/openssl/crypto/ec/Makefile
rename to src/main/jni/openssl/crypto/ec/Makefile
diff --git a/jni/openssl/crypto/ec/ec.h b/src/main/jni/openssl/crypto/ec/ec.h
similarity index 100%
rename from jni/openssl/crypto/ec/ec.h
rename to src/main/jni/openssl/crypto/ec/ec.h
diff --git a/jni/openssl/crypto/ec/ec2_mult.c b/src/main/jni/openssl/crypto/ec/ec2_mult.c
similarity index 100%
rename from jni/openssl/crypto/ec/ec2_mult.c
rename to src/main/jni/openssl/crypto/ec/ec2_mult.c
diff --git a/jni/openssl/crypto/ec/ec2_oct.c b/src/main/jni/openssl/crypto/ec/ec2_oct.c
similarity index 100%
rename from jni/openssl/crypto/ec/ec2_oct.c
rename to src/main/jni/openssl/crypto/ec/ec2_oct.c
diff --git a/jni/openssl/crypto/ec/ec2_smpl.c b/src/main/jni/openssl/crypto/ec/ec2_smpl.c
similarity index 100%
rename from jni/openssl/crypto/ec/ec2_smpl.c
rename to src/main/jni/openssl/crypto/ec/ec2_smpl.c
diff --git a/jni/openssl/crypto/ec/ec_ameth.c b/src/main/jni/openssl/crypto/ec/ec_ameth.c
similarity index 100%
rename from jni/openssl/crypto/ec/ec_ameth.c
rename to src/main/jni/openssl/crypto/ec/ec_ameth.c
diff --git a/jni/openssl/crypto/ec/ec_asn1.c b/src/main/jni/openssl/crypto/ec/ec_asn1.c
similarity index 100%
rename from jni/openssl/crypto/ec/ec_asn1.c
rename to src/main/jni/openssl/crypto/ec/ec_asn1.c
diff --git a/jni/openssl/crypto/ec/ec_check.c b/src/main/jni/openssl/crypto/ec/ec_check.c
similarity index 100%
rename from jni/openssl/crypto/ec/ec_check.c
rename to src/main/jni/openssl/crypto/ec/ec_check.c
diff --git a/jni/openssl/crypto/ec/ec_curve.c b/src/main/jni/openssl/crypto/ec/ec_curve.c
similarity index 100%
rename from jni/openssl/crypto/ec/ec_curve.c
rename to src/main/jni/openssl/crypto/ec/ec_curve.c
diff --git a/jni/openssl/crypto/ec/ec_cvt.c b/src/main/jni/openssl/crypto/ec/ec_cvt.c
similarity index 100%
rename from jni/openssl/crypto/ec/ec_cvt.c
rename to src/main/jni/openssl/crypto/ec/ec_cvt.c
diff --git a/jni/openssl/crypto/ec/ec_err.c b/src/main/jni/openssl/crypto/ec/ec_err.c
similarity index 100%
rename from jni/openssl/crypto/ec/ec_err.c
rename to src/main/jni/openssl/crypto/ec/ec_err.c
diff --git a/jni/openssl/crypto/ec/ec_key.c b/src/main/jni/openssl/crypto/ec/ec_key.c
similarity index 100%
rename from jni/openssl/crypto/ec/ec_key.c
rename to src/main/jni/openssl/crypto/ec/ec_key.c
diff --git a/jni/openssl/crypto/ec/ec_lcl.h b/src/main/jni/openssl/crypto/ec/ec_lcl.h
similarity index 100%
rename from jni/openssl/crypto/ec/ec_lcl.h
rename to src/main/jni/openssl/crypto/ec/ec_lcl.h
diff --git a/jni/openssl/crypto/ec/ec_lib.c b/src/main/jni/openssl/crypto/ec/ec_lib.c
similarity index 100%
rename from jni/openssl/crypto/ec/ec_lib.c
rename to src/main/jni/openssl/crypto/ec/ec_lib.c
diff --git a/jni/openssl/crypto/ec/ec_mult.c b/src/main/jni/openssl/crypto/ec/ec_mult.c
similarity index 100%
rename from jni/openssl/crypto/ec/ec_mult.c
rename to src/main/jni/openssl/crypto/ec/ec_mult.c
diff --git a/jni/openssl/crypto/ec/ec_oct.c b/src/main/jni/openssl/crypto/ec/ec_oct.c
similarity index 100%
rename from jni/openssl/crypto/ec/ec_oct.c
rename to src/main/jni/openssl/crypto/ec/ec_oct.c
diff --git a/jni/openssl/crypto/ec/ec_pmeth.c b/src/main/jni/openssl/crypto/ec/ec_pmeth.c
similarity index 100%
rename from jni/openssl/crypto/ec/ec_pmeth.c
rename to src/main/jni/openssl/crypto/ec/ec_pmeth.c
diff --git a/jni/openssl/crypto/ec/ec_print.c b/src/main/jni/openssl/crypto/ec/ec_print.c
similarity index 100%
rename from jni/openssl/crypto/ec/ec_print.c
rename to src/main/jni/openssl/crypto/ec/ec_print.c
diff --git a/jni/openssl/crypto/ec/eck_prn.c b/src/main/jni/openssl/crypto/ec/eck_prn.c
similarity index 100%
rename from jni/openssl/crypto/ec/eck_prn.c
rename to src/main/jni/openssl/crypto/ec/eck_prn.c
diff --git a/jni/openssl/crypto/ec/ecp_mont.c b/src/main/jni/openssl/crypto/ec/ecp_mont.c
similarity index 100%
rename from jni/openssl/crypto/ec/ecp_mont.c
rename to src/main/jni/openssl/crypto/ec/ecp_mont.c
diff --git a/jni/openssl/crypto/ec/ecp_nist.c b/src/main/jni/openssl/crypto/ec/ecp_nist.c
similarity index 100%
rename from jni/openssl/crypto/ec/ecp_nist.c
rename to src/main/jni/openssl/crypto/ec/ecp_nist.c
diff --git a/jni/openssl/crypto/ec/ecp_nistp224.c b/src/main/jni/openssl/crypto/ec/ecp_nistp224.c
similarity index 100%
rename from jni/openssl/crypto/ec/ecp_nistp224.c
rename to src/main/jni/openssl/crypto/ec/ecp_nistp224.c
diff --git a/jni/openssl/crypto/ec/ecp_nistp256.c b/src/main/jni/openssl/crypto/ec/ecp_nistp256.c
similarity index 100%
rename from jni/openssl/crypto/ec/ecp_nistp256.c
rename to src/main/jni/openssl/crypto/ec/ecp_nistp256.c
diff --git a/jni/openssl/crypto/ec/ecp_nistp521.c b/src/main/jni/openssl/crypto/ec/ecp_nistp521.c
similarity index 100%
rename from jni/openssl/crypto/ec/ecp_nistp521.c
rename to src/main/jni/openssl/crypto/ec/ecp_nistp521.c
diff --git a/jni/openssl/crypto/ec/ecp_nistputil.c b/src/main/jni/openssl/crypto/ec/ecp_nistputil.c
similarity index 100%
rename from jni/openssl/crypto/ec/ecp_nistputil.c
rename to src/main/jni/openssl/crypto/ec/ecp_nistputil.c
diff --git a/jni/openssl/crypto/ec/ecp_oct.c b/src/main/jni/openssl/crypto/ec/ecp_oct.c
similarity index 100%
rename from jni/openssl/crypto/ec/ecp_oct.c
rename to src/main/jni/openssl/crypto/ec/ecp_oct.c
diff --git a/jni/openssl/crypto/ec/ecp_smpl.c b/src/main/jni/openssl/crypto/ec/ecp_smpl.c
similarity index 100%
rename from jni/openssl/crypto/ec/ecp_smpl.c
rename to src/main/jni/openssl/crypto/ec/ecp_smpl.c
diff --git a/jni/openssl/crypto/ec/ectest.c b/src/main/jni/openssl/crypto/ec/ectest.c
similarity index 100%
rename from jni/openssl/crypto/ec/ectest.c
rename to src/main/jni/openssl/crypto/ec/ectest.c
diff --git a/jni/openssl/crypto/ecdh/Makefile b/src/main/jni/openssl/crypto/ecdh/Makefile
similarity index 100%
rename from jni/openssl/crypto/ecdh/Makefile
rename to src/main/jni/openssl/crypto/ecdh/Makefile
diff --git a/jni/openssl/crypto/ecdh/ecdh.h b/src/main/jni/openssl/crypto/ecdh/ecdh.h
similarity index 100%
rename from jni/openssl/crypto/ecdh/ecdh.h
rename to src/main/jni/openssl/crypto/ecdh/ecdh.h
diff --git a/jni/openssl/crypto/ecdh/ecdhtest.c b/src/main/jni/openssl/crypto/ecdh/ecdhtest.c
similarity index 100%
rename from jni/openssl/crypto/ecdh/ecdhtest.c
rename to src/main/jni/openssl/crypto/ecdh/ecdhtest.c
diff --git a/jni/openssl/crypto/ecdh/ech_err.c b/src/main/jni/openssl/crypto/ecdh/ech_err.c
similarity index 100%
rename from jni/openssl/crypto/ecdh/ech_err.c
rename to src/main/jni/openssl/crypto/ecdh/ech_err.c
diff --git a/jni/openssl/crypto/ecdh/ech_key.c b/src/main/jni/openssl/crypto/ecdh/ech_key.c
similarity index 100%
rename from jni/openssl/crypto/ecdh/ech_key.c
rename to src/main/jni/openssl/crypto/ecdh/ech_key.c
diff --git a/jni/openssl/crypto/ecdh/ech_lib.c b/src/main/jni/openssl/crypto/ecdh/ech_lib.c
similarity index 100%
rename from jni/openssl/crypto/ecdh/ech_lib.c
rename to src/main/jni/openssl/crypto/ecdh/ech_lib.c
diff --git a/jni/openssl/crypto/ecdh/ech_locl.h b/src/main/jni/openssl/crypto/ecdh/ech_locl.h
similarity index 100%
rename from jni/openssl/crypto/ecdh/ech_locl.h
rename to src/main/jni/openssl/crypto/ecdh/ech_locl.h
diff --git a/jni/openssl/crypto/ecdh/ech_ossl.c b/src/main/jni/openssl/crypto/ecdh/ech_ossl.c
similarity index 100%
rename from jni/openssl/crypto/ecdh/ech_ossl.c
rename to src/main/jni/openssl/crypto/ecdh/ech_ossl.c
diff --git a/jni/openssl/crypto/ecdsa/Makefile b/src/main/jni/openssl/crypto/ecdsa/Makefile
similarity index 100%
rename from jni/openssl/crypto/ecdsa/Makefile
rename to src/main/jni/openssl/crypto/ecdsa/Makefile
diff --git a/jni/openssl/crypto/ecdsa/ecdsa.h b/src/main/jni/openssl/crypto/ecdsa/ecdsa.h
similarity index 100%
rename from jni/openssl/crypto/ecdsa/ecdsa.h
rename to src/main/jni/openssl/crypto/ecdsa/ecdsa.h
diff --git a/jni/openssl/crypto/ecdsa/ecdsatest.c b/src/main/jni/openssl/crypto/ecdsa/ecdsatest.c
similarity index 100%
rename from jni/openssl/crypto/ecdsa/ecdsatest.c
rename to src/main/jni/openssl/crypto/ecdsa/ecdsatest.c
diff --git a/jni/openssl/crypto/ecdsa/ecs_asn1.c b/src/main/jni/openssl/crypto/ecdsa/ecs_asn1.c
similarity index 100%
rename from jni/openssl/crypto/ecdsa/ecs_asn1.c
rename to src/main/jni/openssl/crypto/ecdsa/ecs_asn1.c
diff --git a/jni/openssl/crypto/ecdsa/ecs_err.c b/src/main/jni/openssl/crypto/ecdsa/ecs_err.c
similarity index 100%
rename from jni/openssl/crypto/ecdsa/ecs_err.c
rename to src/main/jni/openssl/crypto/ecdsa/ecs_err.c
diff --git a/jni/openssl/crypto/ecdsa/ecs_lib.c b/src/main/jni/openssl/crypto/ecdsa/ecs_lib.c
similarity index 100%
rename from jni/openssl/crypto/ecdsa/ecs_lib.c
rename to src/main/jni/openssl/crypto/ecdsa/ecs_lib.c
diff --git a/jni/openssl/crypto/ecdsa/ecs_locl.h b/src/main/jni/openssl/crypto/ecdsa/ecs_locl.h
similarity index 100%
rename from jni/openssl/crypto/ecdsa/ecs_locl.h
rename to src/main/jni/openssl/crypto/ecdsa/ecs_locl.h
diff --git a/jni/openssl/crypto/ecdsa/ecs_ossl.c b/src/main/jni/openssl/crypto/ecdsa/ecs_ossl.c
similarity index 100%
rename from jni/openssl/crypto/ecdsa/ecs_ossl.c
rename to src/main/jni/openssl/crypto/ecdsa/ecs_ossl.c
diff --git a/jni/openssl/crypto/ecdsa/ecs_sign.c b/src/main/jni/openssl/crypto/ecdsa/ecs_sign.c
similarity index 100%
rename from jni/openssl/crypto/ecdsa/ecs_sign.c
rename to src/main/jni/openssl/crypto/ecdsa/ecs_sign.c
diff --git a/jni/openssl/crypto/ecdsa/ecs_vrf.c b/src/main/jni/openssl/crypto/ecdsa/ecs_vrf.c
similarity index 100%
rename from jni/openssl/crypto/ecdsa/ecs_vrf.c
rename to src/main/jni/openssl/crypto/ecdsa/ecs_vrf.c
diff --git a/jni/openssl/crypto/engine/Makefile b/src/main/jni/openssl/crypto/engine/Makefile
similarity index 100%
rename from jni/openssl/crypto/engine/Makefile
rename to src/main/jni/openssl/crypto/engine/Makefile
diff --git a/jni/openssl/crypto/engine/README b/src/main/jni/openssl/crypto/engine/README
similarity index 100%
rename from jni/openssl/crypto/engine/README
rename to src/main/jni/openssl/crypto/engine/README
diff --git a/jni/openssl/crypto/engine/eng_all.c b/src/main/jni/openssl/crypto/engine/eng_all.c
similarity index 100%
rename from jni/openssl/crypto/engine/eng_all.c
rename to src/main/jni/openssl/crypto/engine/eng_all.c
diff --git a/jni/openssl/crypto/engine/eng_cnf.c b/src/main/jni/openssl/crypto/engine/eng_cnf.c
similarity index 100%
rename from jni/openssl/crypto/engine/eng_cnf.c
rename to src/main/jni/openssl/crypto/engine/eng_cnf.c
diff --git a/jni/openssl/crypto/engine/eng_cryptodev.c b/src/main/jni/openssl/crypto/engine/eng_cryptodev.c
similarity index 100%
rename from jni/openssl/crypto/engine/eng_cryptodev.c
rename to src/main/jni/openssl/crypto/engine/eng_cryptodev.c
diff --git a/jni/openssl/crypto/engine/eng_ctrl.c b/src/main/jni/openssl/crypto/engine/eng_ctrl.c
similarity index 100%
rename from jni/openssl/crypto/engine/eng_ctrl.c
rename to src/main/jni/openssl/crypto/engine/eng_ctrl.c
diff --git a/jni/openssl/crypto/engine/eng_dyn.c b/src/main/jni/openssl/crypto/engine/eng_dyn.c
similarity index 100%
rename from jni/openssl/crypto/engine/eng_dyn.c
rename to src/main/jni/openssl/crypto/engine/eng_dyn.c
diff --git a/jni/openssl/crypto/engine/eng_err.c b/src/main/jni/openssl/crypto/engine/eng_err.c
similarity index 100%
rename from jni/openssl/crypto/engine/eng_err.c
rename to src/main/jni/openssl/crypto/engine/eng_err.c
diff --git a/jni/openssl/crypto/engine/eng_fat.c b/src/main/jni/openssl/crypto/engine/eng_fat.c
similarity index 100%
rename from jni/openssl/crypto/engine/eng_fat.c
rename to src/main/jni/openssl/crypto/engine/eng_fat.c
diff --git a/jni/openssl/crypto/engine/eng_init.c b/src/main/jni/openssl/crypto/engine/eng_init.c
similarity index 100%
rename from jni/openssl/crypto/engine/eng_init.c
rename to src/main/jni/openssl/crypto/engine/eng_init.c
diff --git a/jni/openssl/crypto/engine/eng_int.h b/src/main/jni/openssl/crypto/engine/eng_int.h
similarity index 100%
rename from jni/openssl/crypto/engine/eng_int.h
rename to src/main/jni/openssl/crypto/engine/eng_int.h
diff --git a/jni/openssl/crypto/engine/eng_lib.c b/src/main/jni/openssl/crypto/engine/eng_lib.c
similarity index 100%
rename from jni/openssl/crypto/engine/eng_lib.c
rename to src/main/jni/openssl/crypto/engine/eng_lib.c
diff --git a/jni/openssl/crypto/engine/eng_list.c b/src/main/jni/openssl/crypto/engine/eng_list.c
similarity index 100%
rename from jni/openssl/crypto/engine/eng_list.c
rename to src/main/jni/openssl/crypto/engine/eng_list.c
diff --git a/jni/openssl/crypto/engine/eng_openssl.c b/src/main/jni/openssl/crypto/engine/eng_openssl.c
similarity index 100%
rename from jni/openssl/crypto/engine/eng_openssl.c
rename to src/main/jni/openssl/crypto/engine/eng_openssl.c
diff --git a/jni/openssl/crypto/engine/eng_pkey.c b/src/main/jni/openssl/crypto/engine/eng_pkey.c
similarity index 100%
rename from jni/openssl/crypto/engine/eng_pkey.c
rename to src/main/jni/openssl/crypto/engine/eng_pkey.c
diff --git a/jni/openssl/crypto/engine/eng_rdrand.c b/src/main/jni/openssl/crypto/engine/eng_rdrand.c
similarity index 100%
rename from jni/openssl/crypto/engine/eng_rdrand.c
rename to src/main/jni/openssl/crypto/engine/eng_rdrand.c
diff --git a/jni/openssl/crypto/engine/eng_rsax.c b/src/main/jni/openssl/crypto/engine/eng_rsax.c
similarity index 100%
rename from jni/openssl/crypto/engine/eng_rsax.c
rename to src/main/jni/openssl/crypto/engine/eng_rsax.c
diff --git a/jni/openssl/crypto/engine/eng_table.c b/src/main/jni/openssl/crypto/engine/eng_table.c
similarity index 100%
rename from jni/openssl/crypto/engine/eng_table.c
rename to src/main/jni/openssl/crypto/engine/eng_table.c
diff --git a/jni/openssl/crypto/engine/engine.h b/src/main/jni/openssl/crypto/engine/engine.h
similarity index 100%
rename from jni/openssl/crypto/engine/engine.h
rename to src/main/jni/openssl/crypto/engine/engine.h
diff --git a/jni/openssl/crypto/engine/enginetest.c b/src/main/jni/openssl/crypto/engine/enginetest.c
similarity index 100%
rename from jni/openssl/crypto/engine/enginetest.c
rename to src/main/jni/openssl/crypto/engine/enginetest.c
diff --git a/jni/openssl/crypto/engine/tb_asnmth.c b/src/main/jni/openssl/crypto/engine/tb_asnmth.c
similarity index 100%
rename from jni/openssl/crypto/engine/tb_asnmth.c
rename to src/main/jni/openssl/crypto/engine/tb_asnmth.c
diff --git a/jni/openssl/crypto/engine/tb_cipher.c b/src/main/jni/openssl/crypto/engine/tb_cipher.c
similarity index 100%
rename from jni/openssl/crypto/engine/tb_cipher.c
rename to src/main/jni/openssl/crypto/engine/tb_cipher.c
diff --git a/jni/openssl/crypto/engine/tb_dh.c b/src/main/jni/openssl/crypto/engine/tb_dh.c
similarity index 100%
rename from jni/openssl/crypto/engine/tb_dh.c
rename to src/main/jni/openssl/crypto/engine/tb_dh.c
diff --git a/jni/openssl/crypto/engine/tb_digest.c b/src/main/jni/openssl/crypto/engine/tb_digest.c
similarity index 100%
rename from jni/openssl/crypto/engine/tb_digest.c
rename to src/main/jni/openssl/crypto/engine/tb_digest.c
diff --git a/jni/openssl/crypto/engine/tb_dsa.c b/src/main/jni/openssl/crypto/engine/tb_dsa.c
similarity index 100%
rename from jni/openssl/crypto/engine/tb_dsa.c
rename to src/main/jni/openssl/crypto/engine/tb_dsa.c
diff --git a/jni/openssl/crypto/engine/tb_ecdh.c b/src/main/jni/openssl/crypto/engine/tb_ecdh.c
similarity index 100%
rename from jni/openssl/crypto/engine/tb_ecdh.c
rename to src/main/jni/openssl/crypto/engine/tb_ecdh.c
diff --git a/jni/openssl/crypto/engine/tb_ecdsa.c b/src/main/jni/openssl/crypto/engine/tb_ecdsa.c
similarity index 100%
rename from jni/openssl/crypto/engine/tb_ecdsa.c
rename to src/main/jni/openssl/crypto/engine/tb_ecdsa.c
diff --git a/jni/openssl/crypto/engine/tb_pkmeth.c b/src/main/jni/openssl/crypto/engine/tb_pkmeth.c
similarity index 100%
rename from jni/openssl/crypto/engine/tb_pkmeth.c
rename to src/main/jni/openssl/crypto/engine/tb_pkmeth.c
diff --git a/jni/openssl/crypto/engine/tb_rand.c b/src/main/jni/openssl/crypto/engine/tb_rand.c
similarity index 100%
rename from jni/openssl/crypto/engine/tb_rand.c
rename to src/main/jni/openssl/crypto/engine/tb_rand.c
diff --git a/jni/openssl/crypto/engine/tb_rsa.c b/src/main/jni/openssl/crypto/engine/tb_rsa.c
similarity index 100%
rename from jni/openssl/crypto/engine/tb_rsa.c
rename to src/main/jni/openssl/crypto/engine/tb_rsa.c
diff --git a/jni/openssl/crypto/engine/tb_store.c b/src/main/jni/openssl/crypto/engine/tb_store.c
similarity index 100%
rename from jni/openssl/crypto/engine/tb_store.c
rename to src/main/jni/openssl/crypto/engine/tb_store.c
diff --git a/jni/openssl/crypto/err/Makefile b/src/main/jni/openssl/crypto/err/Makefile
similarity index 100%
rename from jni/openssl/crypto/err/Makefile
rename to src/main/jni/openssl/crypto/err/Makefile
diff --git a/jni/openssl/crypto/err/err.c b/src/main/jni/openssl/crypto/err/err.c
similarity index 100%
rename from jni/openssl/crypto/err/err.c
rename to src/main/jni/openssl/crypto/err/err.c
diff --git a/jni/openssl/crypto/err/err.h b/src/main/jni/openssl/crypto/err/err.h
similarity index 100%
rename from jni/openssl/crypto/err/err.h
rename to src/main/jni/openssl/crypto/err/err.h
diff --git a/jni/openssl/crypto/err/err_all.c b/src/main/jni/openssl/crypto/err/err_all.c
similarity index 100%
rename from jni/openssl/crypto/err/err_all.c
rename to src/main/jni/openssl/crypto/err/err_all.c
diff --git a/jni/openssl/crypto/err/err_prn.c b/src/main/jni/openssl/crypto/err/err_prn.c
similarity index 100%
rename from jni/openssl/crypto/err/err_prn.c
rename to src/main/jni/openssl/crypto/err/err_prn.c
diff --git a/jni/openssl/crypto/err/openssl.ec b/src/main/jni/openssl/crypto/err/openssl.ec
similarity index 100%
rename from jni/openssl/crypto/err/openssl.ec
rename to src/main/jni/openssl/crypto/err/openssl.ec
diff --git a/jni/openssl/crypto/evp/Makefile b/src/main/jni/openssl/crypto/evp/Makefile
similarity index 100%
rename from jni/openssl/crypto/evp/Makefile
rename to src/main/jni/openssl/crypto/evp/Makefile
diff --git a/jni/openssl/crypto/evp/bio_b64.c b/src/main/jni/openssl/crypto/evp/bio_b64.c
similarity index 100%
rename from jni/openssl/crypto/evp/bio_b64.c
rename to src/main/jni/openssl/crypto/evp/bio_b64.c
diff --git a/jni/openssl/crypto/evp/bio_enc.c b/src/main/jni/openssl/crypto/evp/bio_enc.c
similarity index 100%
rename from jni/openssl/crypto/evp/bio_enc.c
rename to src/main/jni/openssl/crypto/evp/bio_enc.c
diff --git a/jni/openssl/crypto/evp/bio_md.c b/src/main/jni/openssl/crypto/evp/bio_md.c
similarity index 100%
rename from jni/openssl/crypto/evp/bio_md.c
rename to src/main/jni/openssl/crypto/evp/bio_md.c
diff --git a/jni/openssl/crypto/evp/bio_ok.c b/src/main/jni/openssl/crypto/evp/bio_ok.c
similarity index 100%
rename from jni/openssl/crypto/evp/bio_ok.c
rename to src/main/jni/openssl/crypto/evp/bio_ok.c
diff --git a/jni/openssl/crypto/evp/c_all.c b/src/main/jni/openssl/crypto/evp/c_all.c
similarity index 100%
rename from jni/openssl/crypto/evp/c_all.c
rename to src/main/jni/openssl/crypto/evp/c_all.c
diff --git a/jni/openssl/crypto/evp/c_allc.c b/src/main/jni/openssl/crypto/evp/c_allc.c
similarity index 100%
rename from jni/openssl/crypto/evp/c_allc.c
rename to src/main/jni/openssl/crypto/evp/c_allc.c
diff --git a/jni/openssl/crypto/evp/c_alld.c b/src/main/jni/openssl/crypto/evp/c_alld.c
similarity index 100%
rename from jni/openssl/crypto/evp/c_alld.c
rename to src/main/jni/openssl/crypto/evp/c_alld.c
diff --git a/jni/openssl/crypto/evp/digest.c b/src/main/jni/openssl/crypto/evp/digest.c
similarity index 100%
rename from jni/openssl/crypto/evp/digest.c
rename to src/main/jni/openssl/crypto/evp/digest.c
diff --git a/jni/openssl/crypto/evp/e_aes.c b/src/main/jni/openssl/crypto/evp/e_aes.c
similarity index 100%
rename from jni/openssl/crypto/evp/e_aes.c
rename to src/main/jni/openssl/crypto/evp/e_aes.c
diff --git a/jni/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c b/src/main/jni/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c
similarity index 100%
rename from jni/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c
rename to src/main/jni/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c
diff --git a/jni/openssl/crypto/evp/e_bf.c b/src/main/jni/openssl/crypto/evp/e_bf.c
similarity index 100%
rename from jni/openssl/crypto/evp/e_bf.c
rename to src/main/jni/openssl/crypto/evp/e_bf.c
diff --git a/jni/openssl/crypto/evp/e_camellia.c b/src/main/jni/openssl/crypto/evp/e_camellia.c
similarity index 100%
rename from jni/openssl/crypto/evp/e_camellia.c
rename to src/main/jni/openssl/crypto/evp/e_camellia.c
diff --git a/jni/openssl/crypto/evp/e_cast.c b/src/main/jni/openssl/crypto/evp/e_cast.c
similarity index 100%
rename from jni/openssl/crypto/evp/e_cast.c
rename to src/main/jni/openssl/crypto/evp/e_cast.c
diff --git a/jni/openssl/crypto/evp/e_des.c b/src/main/jni/openssl/crypto/evp/e_des.c
similarity index 100%
rename from jni/openssl/crypto/evp/e_des.c
rename to src/main/jni/openssl/crypto/evp/e_des.c
diff --git a/jni/openssl/crypto/evp/e_des3.c b/src/main/jni/openssl/crypto/evp/e_des3.c
similarity index 100%
rename from jni/openssl/crypto/evp/e_des3.c
rename to src/main/jni/openssl/crypto/evp/e_des3.c
diff --git a/jni/openssl/crypto/evp/e_dsa.c b/src/main/jni/openssl/crypto/evp/e_dsa.c
similarity index 100%
rename from jni/openssl/crypto/evp/e_dsa.c
rename to src/main/jni/openssl/crypto/evp/e_dsa.c
diff --git a/jni/openssl/crypto/evp/e_idea.c b/src/main/jni/openssl/crypto/evp/e_idea.c
similarity index 100%
rename from jni/openssl/crypto/evp/e_idea.c
rename to src/main/jni/openssl/crypto/evp/e_idea.c
diff --git a/jni/openssl/crypto/evp/e_null.c b/src/main/jni/openssl/crypto/evp/e_null.c
similarity index 100%
rename from jni/openssl/crypto/evp/e_null.c
rename to src/main/jni/openssl/crypto/evp/e_null.c
diff --git a/jni/openssl/crypto/evp/e_old.c b/src/main/jni/openssl/crypto/evp/e_old.c
similarity index 100%
rename from jni/openssl/crypto/evp/e_old.c
rename to src/main/jni/openssl/crypto/evp/e_old.c
diff --git a/jni/openssl/crypto/evp/e_rc2.c b/src/main/jni/openssl/crypto/evp/e_rc2.c
similarity index 100%
rename from jni/openssl/crypto/evp/e_rc2.c
rename to src/main/jni/openssl/crypto/evp/e_rc2.c
diff --git a/jni/openssl/crypto/evp/e_rc4.c b/src/main/jni/openssl/crypto/evp/e_rc4.c
similarity index 100%
rename from jni/openssl/crypto/evp/e_rc4.c
rename to src/main/jni/openssl/crypto/evp/e_rc4.c
diff --git a/jni/openssl/crypto/evp/e_rc4_hmac_md5.c b/src/main/jni/openssl/crypto/evp/e_rc4_hmac_md5.c
similarity index 100%
rename from jni/openssl/crypto/evp/e_rc4_hmac_md5.c
rename to src/main/jni/openssl/crypto/evp/e_rc4_hmac_md5.c
diff --git a/jni/openssl/crypto/evp/e_rc5.c b/src/main/jni/openssl/crypto/evp/e_rc5.c
similarity index 100%
rename from jni/openssl/crypto/evp/e_rc5.c
rename to src/main/jni/openssl/crypto/evp/e_rc5.c
diff --git a/jni/openssl/crypto/evp/e_seed.c b/src/main/jni/openssl/crypto/evp/e_seed.c
similarity index 100%
rename from jni/openssl/crypto/evp/e_seed.c
rename to src/main/jni/openssl/crypto/evp/e_seed.c
diff --git a/jni/openssl/crypto/evp/e_xcbc_d.c b/src/main/jni/openssl/crypto/evp/e_xcbc_d.c
similarity index 100%
rename from jni/openssl/crypto/evp/e_xcbc_d.c
rename to src/main/jni/openssl/crypto/evp/e_xcbc_d.c
diff --git a/jni/openssl/crypto/evp/encode.c b/src/main/jni/openssl/crypto/evp/encode.c
similarity index 100%
rename from jni/openssl/crypto/evp/encode.c
rename to src/main/jni/openssl/crypto/evp/encode.c
diff --git a/jni/openssl/crypto/evp/evp.h b/src/main/jni/openssl/crypto/evp/evp.h
similarity index 100%
rename from jni/openssl/crypto/evp/evp.h
rename to src/main/jni/openssl/crypto/evp/evp.h
diff --git a/jni/openssl/crypto/evp/evp_acnf.c b/src/main/jni/openssl/crypto/evp/evp_acnf.c
similarity index 100%
rename from jni/openssl/crypto/evp/evp_acnf.c
rename to src/main/jni/openssl/crypto/evp/evp_acnf.c
diff --git a/jni/openssl/crypto/evp/evp_enc.c b/src/main/jni/openssl/crypto/evp/evp_enc.c
similarity index 100%
rename from jni/openssl/crypto/evp/evp_enc.c
rename to src/main/jni/openssl/crypto/evp/evp_enc.c
diff --git a/jni/openssl/crypto/evp/evp_err.c b/src/main/jni/openssl/crypto/evp/evp_err.c
similarity index 100%
rename from jni/openssl/crypto/evp/evp_err.c
rename to src/main/jni/openssl/crypto/evp/evp_err.c
diff --git a/jni/openssl/crypto/evp/evp_fips.c b/src/main/jni/openssl/crypto/evp/evp_fips.c
similarity index 100%
rename from jni/openssl/crypto/evp/evp_fips.c
rename to src/main/jni/openssl/crypto/evp/evp_fips.c
diff --git a/jni/openssl/crypto/evp/evp_key.c b/src/main/jni/openssl/crypto/evp/evp_key.c
similarity index 100%
rename from jni/openssl/crypto/evp/evp_key.c
rename to src/main/jni/openssl/crypto/evp/evp_key.c
diff --git a/jni/openssl/crypto/evp/evp_lib.c b/src/main/jni/openssl/crypto/evp/evp_lib.c
similarity index 100%
rename from jni/openssl/crypto/evp/evp_lib.c
rename to src/main/jni/openssl/crypto/evp/evp_lib.c
diff --git a/jni/openssl/crypto/evp/evp_locl.h b/src/main/jni/openssl/crypto/evp/evp_locl.h
similarity index 100%
rename from jni/openssl/crypto/evp/evp_locl.h
rename to src/main/jni/openssl/crypto/evp/evp_locl.h
diff --git a/jni/openssl/crypto/evp/evp_pbe.c b/src/main/jni/openssl/crypto/evp/evp_pbe.c
similarity index 100%
rename from jni/openssl/crypto/evp/evp_pbe.c
rename to src/main/jni/openssl/crypto/evp/evp_pbe.c
diff --git a/jni/openssl/crypto/evp/evp_pkey.c b/src/main/jni/openssl/crypto/evp/evp_pkey.c
similarity index 100%
rename from jni/openssl/crypto/evp/evp_pkey.c
rename to src/main/jni/openssl/crypto/evp/evp_pkey.c
diff --git a/jni/openssl/crypto/evp/evp_test.c b/src/main/jni/openssl/crypto/evp/evp_test.c
similarity index 100%
rename from jni/openssl/crypto/evp/evp_test.c
rename to src/main/jni/openssl/crypto/evp/evp_test.c
diff --git a/jni/openssl/crypto/evp/evptests.txt b/src/main/jni/openssl/crypto/evp/evptests.txt
similarity index 100%
rename from jni/openssl/crypto/evp/evptests.txt
rename to src/main/jni/openssl/crypto/evp/evptests.txt
diff --git a/jni/openssl/crypto/evp/m_dss.c b/src/main/jni/openssl/crypto/evp/m_dss.c
similarity index 100%
rename from jni/openssl/crypto/evp/m_dss.c
rename to src/main/jni/openssl/crypto/evp/m_dss.c
diff --git a/jni/openssl/crypto/evp/m_dss1.c b/src/main/jni/openssl/crypto/evp/m_dss1.c
similarity index 100%
rename from jni/openssl/crypto/evp/m_dss1.c
rename to src/main/jni/openssl/crypto/evp/m_dss1.c
diff --git a/jni/openssl/crypto/evp/m_ecdsa.c b/src/main/jni/openssl/crypto/evp/m_ecdsa.c
similarity index 100%
rename from jni/openssl/crypto/evp/m_ecdsa.c
rename to src/main/jni/openssl/crypto/evp/m_ecdsa.c
diff --git a/jni/openssl/crypto/evp/m_md2.c b/src/main/jni/openssl/crypto/evp/m_md2.c
similarity index 100%
rename from jni/openssl/crypto/evp/m_md2.c
rename to src/main/jni/openssl/crypto/evp/m_md2.c
diff --git a/jni/openssl/crypto/evp/m_md4.c b/src/main/jni/openssl/crypto/evp/m_md4.c
similarity index 100%
rename from jni/openssl/crypto/evp/m_md4.c
rename to src/main/jni/openssl/crypto/evp/m_md4.c
diff --git a/jni/openssl/crypto/evp/m_md5.c b/src/main/jni/openssl/crypto/evp/m_md5.c
similarity index 100%
rename from jni/openssl/crypto/evp/m_md5.c
rename to src/main/jni/openssl/crypto/evp/m_md5.c
diff --git a/jni/openssl/crypto/evp/m_mdc2.c b/src/main/jni/openssl/crypto/evp/m_mdc2.c
similarity index 100%
rename from jni/openssl/crypto/evp/m_mdc2.c
rename to src/main/jni/openssl/crypto/evp/m_mdc2.c
diff --git a/jni/openssl/crypto/evp/m_null.c b/src/main/jni/openssl/crypto/evp/m_null.c
similarity index 100%
rename from jni/openssl/crypto/evp/m_null.c
rename to src/main/jni/openssl/crypto/evp/m_null.c
diff --git a/jni/openssl/crypto/evp/m_ripemd.c b/src/main/jni/openssl/crypto/evp/m_ripemd.c
similarity index 100%
rename from jni/openssl/crypto/evp/m_ripemd.c
rename to src/main/jni/openssl/crypto/evp/m_ripemd.c
diff --git a/jni/openssl/crypto/evp/m_sha.c b/src/main/jni/openssl/crypto/evp/m_sha.c
similarity index 100%
rename from jni/openssl/crypto/evp/m_sha.c
rename to src/main/jni/openssl/crypto/evp/m_sha.c
diff --git a/jni/openssl/crypto/evp/m_sha1.c b/src/main/jni/openssl/crypto/evp/m_sha1.c
similarity index 100%
rename from jni/openssl/crypto/evp/m_sha1.c
rename to src/main/jni/openssl/crypto/evp/m_sha1.c
diff --git a/jni/openssl/crypto/evp/m_sigver.c b/src/main/jni/openssl/crypto/evp/m_sigver.c
similarity index 100%
rename from jni/openssl/crypto/evp/m_sigver.c
rename to src/main/jni/openssl/crypto/evp/m_sigver.c
diff --git a/jni/openssl/crypto/evp/m_wp.c b/src/main/jni/openssl/crypto/evp/m_wp.c
similarity index 100%
rename from jni/openssl/crypto/evp/m_wp.c
rename to src/main/jni/openssl/crypto/evp/m_wp.c
diff --git a/jni/openssl/crypto/evp/names.c b/src/main/jni/openssl/crypto/evp/names.c
similarity index 100%
rename from jni/openssl/crypto/evp/names.c
rename to src/main/jni/openssl/crypto/evp/names.c
diff --git a/jni/openssl/crypto/evp/openbsd_hw.c b/src/main/jni/openssl/crypto/evp/openbsd_hw.c
similarity index 100%
rename from jni/openssl/crypto/evp/openbsd_hw.c
rename to src/main/jni/openssl/crypto/evp/openbsd_hw.c
diff --git a/jni/openssl/crypto/evp/p5_crpt.c b/src/main/jni/openssl/crypto/evp/p5_crpt.c
similarity index 100%
rename from jni/openssl/crypto/evp/p5_crpt.c
rename to src/main/jni/openssl/crypto/evp/p5_crpt.c
diff --git a/jni/openssl/crypto/evp/p5_crpt2.c b/src/main/jni/openssl/crypto/evp/p5_crpt2.c
similarity index 100%
rename from jni/openssl/crypto/evp/p5_crpt2.c
rename to src/main/jni/openssl/crypto/evp/p5_crpt2.c
diff --git a/jni/openssl/crypto/evp/p_dec.c b/src/main/jni/openssl/crypto/evp/p_dec.c
similarity index 100%
rename from jni/openssl/crypto/evp/p_dec.c
rename to src/main/jni/openssl/crypto/evp/p_dec.c
diff --git a/jni/openssl/crypto/evp/p_enc.c b/src/main/jni/openssl/crypto/evp/p_enc.c
similarity index 100%
rename from jni/openssl/crypto/evp/p_enc.c
rename to src/main/jni/openssl/crypto/evp/p_enc.c
diff --git a/jni/openssl/crypto/evp/p_lib.c b/src/main/jni/openssl/crypto/evp/p_lib.c
similarity index 100%
rename from jni/openssl/crypto/evp/p_lib.c
rename to src/main/jni/openssl/crypto/evp/p_lib.c
diff --git a/jni/openssl/crypto/evp/p_open.c b/src/main/jni/openssl/crypto/evp/p_open.c
similarity index 100%
rename from jni/openssl/crypto/evp/p_open.c
rename to src/main/jni/openssl/crypto/evp/p_open.c
diff --git a/jni/openssl/crypto/evp/p_seal.c b/src/main/jni/openssl/crypto/evp/p_seal.c
similarity index 100%
rename from jni/openssl/crypto/evp/p_seal.c
rename to src/main/jni/openssl/crypto/evp/p_seal.c
diff --git a/jni/openssl/crypto/evp/p_sign.c b/src/main/jni/openssl/crypto/evp/p_sign.c
similarity index 100%
rename from jni/openssl/crypto/evp/p_sign.c
rename to src/main/jni/openssl/crypto/evp/p_sign.c
diff --git a/jni/openssl/crypto/evp/p_verify.c b/src/main/jni/openssl/crypto/evp/p_verify.c
similarity index 100%
rename from jni/openssl/crypto/evp/p_verify.c
rename to src/main/jni/openssl/crypto/evp/p_verify.c
diff --git a/jni/openssl/crypto/evp/pmeth_fn.c b/src/main/jni/openssl/crypto/evp/pmeth_fn.c
similarity index 100%
rename from jni/openssl/crypto/evp/pmeth_fn.c
rename to src/main/jni/openssl/crypto/evp/pmeth_fn.c
diff --git a/jni/openssl/crypto/evp/pmeth_gn.c b/src/main/jni/openssl/crypto/evp/pmeth_gn.c
similarity index 100%
rename from jni/openssl/crypto/evp/pmeth_gn.c
rename to src/main/jni/openssl/crypto/evp/pmeth_gn.c
diff --git a/jni/openssl/crypto/evp/pmeth_lib.c b/src/main/jni/openssl/crypto/evp/pmeth_lib.c
similarity index 100%
rename from jni/openssl/crypto/evp/pmeth_lib.c
rename to src/main/jni/openssl/crypto/evp/pmeth_lib.c
diff --git a/jni/openssl/crypto/ex_data.c b/src/main/jni/openssl/crypto/ex_data.c
similarity index 100%
rename from jni/openssl/crypto/ex_data.c
rename to src/main/jni/openssl/crypto/ex_data.c
diff --git a/jni/openssl/crypto/fips_err.h b/src/main/jni/openssl/crypto/fips_err.h
similarity index 100%
rename from jni/openssl/crypto/fips_err.h
rename to src/main/jni/openssl/crypto/fips_err.h
diff --git a/jni/openssl/crypto/fips_ers.c b/src/main/jni/openssl/crypto/fips_ers.c
similarity index 100%
rename from jni/openssl/crypto/fips_ers.c
rename to src/main/jni/openssl/crypto/fips_ers.c
diff --git a/jni/openssl/crypto/hmac/Makefile b/src/main/jni/openssl/crypto/hmac/Makefile
similarity index 100%
rename from jni/openssl/crypto/hmac/Makefile
rename to src/main/jni/openssl/crypto/hmac/Makefile
diff --git a/jni/openssl/crypto/hmac/hm_ameth.c b/src/main/jni/openssl/crypto/hmac/hm_ameth.c
similarity index 100%
rename from jni/openssl/crypto/hmac/hm_ameth.c
rename to src/main/jni/openssl/crypto/hmac/hm_ameth.c
diff --git a/jni/openssl/crypto/hmac/hm_pmeth.c b/src/main/jni/openssl/crypto/hmac/hm_pmeth.c
similarity index 100%
rename from jni/openssl/crypto/hmac/hm_pmeth.c
rename to src/main/jni/openssl/crypto/hmac/hm_pmeth.c
diff --git a/jni/openssl/crypto/hmac/hmac.c b/src/main/jni/openssl/crypto/hmac/hmac.c
similarity index 100%
rename from jni/openssl/crypto/hmac/hmac.c
rename to src/main/jni/openssl/crypto/hmac/hmac.c
diff --git a/jni/openssl/crypto/hmac/hmac.h b/src/main/jni/openssl/crypto/hmac/hmac.h
similarity index 100%
rename from jni/openssl/crypto/hmac/hmac.h
rename to src/main/jni/openssl/crypto/hmac/hmac.h
diff --git a/jni/openssl/crypto/hmac/hmactest.c b/src/main/jni/openssl/crypto/hmac/hmactest.c
similarity index 100%
rename from jni/openssl/crypto/hmac/hmactest.c
rename to src/main/jni/openssl/crypto/hmac/hmactest.c
diff --git a/jni/openssl/crypto/ia64cpuid.S b/src/main/jni/openssl/crypto/ia64cpuid.S
similarity index 100%
rename from jni/openssl/crypto/ia64cpuid.S
rename to src/main/jni/openssl/crypto/ia64cpuid.S
diff --git a/jni/openssl/crypto/install-crypto.com b/src/main/jni/openssl/crypto/install-crypto.com
similarity index 100%
rename from jni/openssl/crypto/install-crypto.com
rename to src/main/jni/openssl/crypto/install-crypto.com
diff --git a/jni/openssl/crypto/jpake/Makefile b/src/main/jni/openssl/crypto/jpake/Makefile
similarity index 100%
rename from jni/openssl/crypto/jpake/Makefile
rename to src/main/jni/openssl/crypto/jpake/Makefile
diff --git a/jni/openssl/crypto/jpake/jpake.c b/src/main/jni/openssl/crypto/jpake/jpake.c
similarity index 100%
rename from jni/openssl/crypto/jpake/jpake.c
rename to src/main/jni/openssl/crypto/jpake/jpake.c
diff --git a/jni/openssl/crypto/jpake/jpake.h b/src/main/jni/openssl/crypto/jpake/jpake.h
similarity index 100%
rename from jni/openssl/crypto/jpake/jpake.h
rename to src/main/jni/openssl/crypto/jpake/jpake.h
diff --git a/jni/openssl/crypto/jpake/jpake_err.c b/src/main/jni/openssl/crypto/jpake/jpake_err.c
similarity index 100%
rename from jni/openssl/crypto/jpake/jpake_err.c
rename to src/main/jni/openssl/crypto/jpake/jpake_err.c
diff --git a/jni/openssl/crypto/jpake/jpaketest.c b/src/main/jni/openssl/crypto/jpake/jpaketest.c
similarity index 100%
rename from jni/openssl/crypto/jpake/jpaketest.c
rename to src/main/jni/openssl/crypto/jpake/jpaketest.c
diff --git a/jni/openssl/crypto/krb5/Makefile b/src/main/jni/openssl/crypto/krb5/Makefile
similarity index 100%
rename from jni/openssl/crypto/krb5/Makefile
rename to src/main/jni/openssl/crypto/krb5/Makefile
diff --git a/jni/openssl/crypto/krb5/krb5_asn.c b/src/main/jni/openssl/crypto/krb5/krb5_asn.c
similarity index 100%
rename from jni/openssl/crypto/krb5/krb5_asn.c
rename to src/main/jni/openssl/crypto/krb5/krb5_asn.c
diff --git a/jni/openssl/crypto/krb5/krb5_asn.h b/src/main/jni/openssl/crypto/krb5/krb5_asn.h
similarity index 100%
rename from jni/openssl/crypto/krb5/krb5_asn.h
rename to src/main/jni/openssl/crypto/krb5/krb5_asn.h
diff --git a/jni/openssl/crypto/lhash/Makefile b/src/main/jni/openssl/crypto/lhash/Makefile
similarity index 100%
rename from jni/openssl/crypto/lhash/Makefile
rename to src/main/jni/openssl/crypto/lhash/Makefile
diff --git a/jni/openssl/crypto/lhash/lh_stats.c b/src/main/jni/openssl/crypto/lhash/lh_stats.c
similarity index 100%
rename from jni/openssl/crypto/lhash/lh_stats.c
rename to src/main/jni/openssl/crypto/lhash/lh_stats.c
diff --git a/jni/openssl/crypto/lhash/lh_test.c b/src/main/jni/openssl/crypto/lhash/lh_test.c
similarity index 100%
rename from jni/openssl/crypto/lhash/lh_test.c
rename to src/main/jni/openssl/crypto/lhash/lh_test.c
diff --git a/jni/openssl/crypto/lhash/lhash.c b/src/main/jni/openssl/crypto/lhash/lhash.c
similarity index 100%
rename from jni/openssl/crypto/lhash/lhash.c
rename to src/main/jni/openssl/crypto/lhash/lhash.c
diff --git a/jni/openssl/crypto/lhash/lhash.h b/src/main/jni/openssl/crypto/lhash/lhash.h
similarity index 100%
rename from jni/openssl/crypto/lhash/lhash.h
rename to src/main/jni/openssl/crypto/lhash/lhash.h
diff --git a/jni/openssl/crypto/lhash/num.pl b/src/main/jni/openssl/crypto/lhash/num.pl
similarity index 100%
rename from jni/openssl/crypto/lhash/num.pl
rename to src/main/jni/openssl/crypto/lhash/num.pl
diff --git a/jni/openssl/crypto/md32_common.h b/src/main/jni/openssl/crypto/md32_common.h
similarity index 100%
rename from jni/openssl/crypto/md32_common.h
rename to src/main/jni/openssl/crypto/md32_common.h
diff --git a/jni/openssl/crypto/md4/Makefile b/src/main/jni/openssl/crypto/md4/Makefile
similarity index 100%
rename from jni/openssl/crypto/md4/Makefile
rename to src/main/jni/openssl/crypto/md4/Makefile
diff --git a/jni/openssl/crypto/md4/md4.c b/src/main/jni/openssl/crypto/md4/md4.c
similarity index 100%
rename from jni/openssl/crypto/md4/md4.c
rename to src/main/jni/openssl/crypto/md4/md4.c
diff --git a/jni/openssl/crypto/md4/md4.h b/src/main/jni/openssl/crypto/md4/md4.h
similarity index 100%
rename from jni/openssl/crypto/md4/md4.h
rename to src/main/jni/openssl/crypto/md4/md4.h
diff --git a/jni/openssl/crypto/md4/md4_dgst.c b/src/main/jni/openssl/crypto/md4/md4_dgst.c
similarity index 100%
rename from jni/openssl/crypto/md4/md4_dgst.c
rename to src/main/jni/openssl/crypto/md4/md4_dgst.c
diff --git a/jni/openssl/crypto/md4/md4_locl.h b/src/main/jni/openssl/crypto/md4/md4_locl.h
similarity index 100%
rename from jni/openssl/crypto/md4/md4_locl.h
rename to src/main/jni/openssl/crypto/md4/md4_locl.h
diff --git a/jni/openssl/crypto/md4/md4_one.c b/src/main/jni/openssl/crypto/md4/md4_one.c
similarity index 100%
rename from jni/openssl/crypto/md4/md4_one.c
rename to src/main/jni/openssl/crypto/md4/md4_one.c
diff --git a/jni/openssl/crypto/md4/md4s.cpp b/src/main/jni/openssl/crypto/md4/md4s.cpp
similarity index 100%
rename from jni/openssl/crypto/md4/md4s.cpp
rename to src/main/jni/openssl/crypto/md4/md4s.cpp
diff --git a/jni/openssl/crypto/md4/md4test.c b/src/main/jni/openssl/crypto/md4/md4test.c
similarity index 100%
rename from jni/openssl/crypto/md4/md4test.c
rename to src/main/jni/openssl/crypto/md4/md4test.c
diff --git a/jni/openssl/crypto/md5/Makefile b/src/main/jni/openssl/crypto/md5/Makefile
similarity index 100%
rename from jni/openssl/crypto/md5/Makefile
rename to src/main/jni/openssl/crypto/md5/Makefile
diff --git a/jni/openssl/crypto/md5/asm/md5-586.pl b/src/main/jni/openssl/crypto/md5/asm/md5-586.pl
similarity index 100%
rename from jni/openssl/crypto/md5/asm/md5-586.pl
rename to src/main/jni/openssl/crypto/md5/asm/md5-586.pl
diff --git a/jni/openssl/crypto/md5/asm/md5-ia64.S b/src/main/jni/openssl/crypto/md5/asm/md5-ia64.S
similarity index 100%
rename from jni/openssl/crypto/md5/asm/md5-ia64.S
rename to src/main/jni/openssl/crypto/md5/asm/md5-ia64.S
diff --git a/jni/openssl/crypto/md5/asm/md5-x86_64.pl b/src/main/jni/openssl/crypto/md5/asm/md5-x86_64.pl
similarity index 100%
rename from jni/openssl/crypto/md5/asm/md5-x86_64.pl
rename to src/main/jni/openssl/crypto/md5/asm/md5-x86_64.pl
diff --git a/jni/openssl/crypto/md5/md5.c b/src/main/jni/openssl/crypto/md5/md5.c
similarity index 100%
rename from jni/openssl/crypto/md5/md5.c
rename to src/main/jni/openssl/crypto/md5/md5.c
diff --git a/jni/openssl/crypto/md5/md5.h b/src/main/jni/openssl/crypto/md5/md5.h
similarity index 100%
rename from jni/openssl/crypto/md5/md5.h
rename to src/main/jni/openssl/crypto/md5/md5.h
diff --git a/jni/openssl/crypto/md5/md5_dgst.c b/src/main/jni/openssl/crypto/md5/md5_dgst.c
similarity index 100%
rename from jni/openssl/crypto/md5/md5_dgst.c
rename to src/main/jni/openssl/crypto/md5/md5_dgst.c
diff --git a/jni/openssl/crypto/md5/md5_locl.h b/src/main/jni/openssl/crypto/md5/md5_locl.h
similarity index 100%
rename from jni/openssl/crypto/md5/md5_locl.h
rename to src/main/jni/openssl/crypto/md5/md5_locl.h
diff --git a/jni/openssl/crypto/md5/md5_one.c b/src/main/jni/openssl/crypto/md5/md5_one.c
similarity index 100%
rename from jni/openssl/crypto/md5/md5_one.c
rename to src/main/jni/openssl/crypto/md5/md5_one.c
diff --git a/jni/openssl/crypto/md5/md5s.cpp b/src/main/jni/openssl/crypto/md5/md5s.cpp
similarity index 100%
rename from jni/openssl/crypto/md5/md5s.cpp
rename to src/main/jni/openssl/crypto/md5/md5s.cpp
diff --git a/jni/openssl/crypto/md5/md5test.c b/src/main/jni/openssl/crypto/md5/md5test.c
similarity index 100%
rename from jni/openssl/crypto/md5/md5test.c
rename to src/main/jni/openssl/crypto/md5/md5test.c
diff --git a/jni/openssl/crypto/mdc2/Makefile b/src/main/jni/openssl/crypto/mdc2/Makefile
similarity index 100%
rename from jni/openssl/crypto/mdc2/Makefile
rename to src/main/jni/openssl/crypto/mdc2/Makefile
diff --git a/jni/openssl/crypto/mdc2/mdc2.h b/src/main/jni/openssl/crypto/mdc2/mdc2.h
similarity index 100%
rename from jni/openssl/crypto/mdc2/mdc2.h
rename to src/main/jni/openssl/crypto/mdc2/mdc2.h
diff --git a/jni/openssl/crypto/mdc2/mdc2_one.c b/src/main/jni/openssl/crypto/mdc2/mdc2_one.c
similarity index 100%
rename from jni/openssl/crypto/mdc2/mdc2_one.c
rename to src/main/jni/openssl/crypto/mdc2/mdc2_one.c
diff --git a/jni/openssl/crypto/mdc2/mdc2dgst.c b/src/main/jni/openssl/crypto/mdc2/mdc2dgst.c
similarity index 100%
rename from jni/openssl/crypto/mdc2/mdc2dgst.c
rename to src/main/jni/openssl/crypto/mdc2/mdc2dgst.c
diff --git a/jni/openssl/crypto/mdc2/mdc2test.c b/src/main/jni/openssl/crypto/mdc2/mdc2test.c
similarity index 100%
rename from jni/openssl/crypto/mdc2/mdc2test.c
rename to src/main/jni/openssl/crypto/mdc2/mdc2test.c
diff --git a/jni/openssl/crypto/mem.c b/src/main/jni/openssl/crypto/mem.c
similarity index 100%
rename from jni/openssl/crypto/mem.c
rename to src/main/jni/openssl/crypto/mem.c
diff --git a/jni/openssl/crypto/mem_clr.c b/src/main/jni/openssl/crypto/mem_clr.c
similarity index 100%
rename from jni/openssl/crypto/mem_clr.c
rename to src/main/jni/openssl/crypto/mem_clr.c
diff --git a/jni/openssl/crypto/mem_dbg.c b/src/main/jni/openssl/crypto/mem_dbg.c
similarity index 100%
rename from jni/openssl/crypto/mem_dbg.c
rename to src/main/jni/openssl/crypto/mem_dbg.c
diff --git a/jni/openssl/crypto/modes/Makefile b/src/main/jni/openssl/crypto/modes/Makefile
similarity index 100%
rename from jni/openssl/crypto/modes/Makefile
rename to src/main/jni/openssl/crypto/modes/Makefile
diff --git a/jni/openssl/crypto/modes/asm/ghash-alpha.pl b/src/main/jni/openssl/crypto/modes/asm/ghash-alpha.pl
similarity index 100%
rename from jni/openssl/crypto/modes/asm/ghash-alpha.pl
rename to src/main/jni/openssl/crypto/modes/asm/ghash-alpha.pl
diff --git a/jni/openssl/crypto/modes/asm/ghash-armv4.pl b/src/main/jni/openssl/crypto/modes/asm/ghash-armv4.pl
similarity index 100%
rename from jni/openssl/crypto/modes/asm/ghash-armv4.pl
rename to src/main/jni/openssl/crypto/modes/asm/ghash-armv4.pl
diff --git a/jni/openssl/crypto/modes/asm/ghash-ia64.pl b/src/main/jni/openssl/crypto/modes/asm/ghash-ia64.pl
similarity index 100%
rename from jni/openssl/crypto/modes/asm/ghash-ia64.pl
rename to src/main/jni/openssl/crypto/modes/asm/ghash-ia64.pl
diff --git a/jni/openssl/crypto/modes/asm/ghash-parisc.pl b/src/main/jni/openssl/crypto/modes/asm/ghash-parisc.pl
similarity index 100%
rename from jni/openssl/crypto/modes/asm/ghash-parisc.pl
rename to src/main/jni/openssl/crypto/modes/asm/ghash-parisc.pl
diff --git a/jni/openssl/crypto/modes/asm/ghash-s390x.pl b/src/main/jni/openssl/crypto/modes/asm/ghash-s390x.pl
similarity index 100%
rename from jni/openssl/crypto/modes/asm/ghash-s390x.pl
rename to src/main/jni/openssl/crypto/modes/asm/ghash-s390x.pl
diff --git a/jni/openssl/crypto/modes/asm/ghash-sparcv9.pl b/src/main/jni/openssl/crypto/modes/asm/ghash-sparcv9.pl
similarity index 100%
rename from jni/openssl/crypto/modes/asm/ghash-sparcv9.pl
rename to src/main/jni/openssl/crypto/modes/asm/ghash-sparcv9.pl
diff --git a/jni/openssl/crypto/modes/asm/ghash-x86.pl b/src/main/jni/openssl/crypto/modes/asm/ghash-x86.pl
similarity index 100%
rename from jni/openssl/crypto/modes/asm/ghash-x86.pl
rename to src/main/jni/openssl/crypto/modes/asm/ghash-x86.pl
diff --git a/jni/openssl/crypto/modes/asm/ghash-x86_64.pl b/src/main/jni/openssl/crypto/modes/asm/ghash-x86_64.pl
similarity index 100%
rename from jni/openssl/crypto/modes/asm/ghash-x86_64.pl
rename to src/main/jni/openssl/crypto/modes/asm/ghash-x86_64.pl
diff --git a/jni/openssl/crypto/modes/cbc128.c b/src/main/jni/openssl/crypto/modes/cbc128.c
similarity index 100%
rename from jni/openssl/crypto/modes/cbc128.c
rename to src/main/jni/openssl/crypto/modes/cbc128.c
diff --git a/jni/openssl/crypto/modes/ccm128.c b/src/main/jni/openssl/crypto/modes/ccm128.c
similarity index 100%
rename from jni/openssl/crypto/modes/ccm128.c
rename to src/main/jni/openssl/crypto/modes/ccm128.c
diff --git a/jni/openssl/crypto/modes/cfb128.c b/src/main/jni/openssl/crypto/modes/cfb128.c
similarity index 100%
rename from jni/openssl/crypto/modes/cfb128.c
rename to src/main/jni/openssl/crypto/modes/cfb128.c
diff --git a/jni/openssl/crypto/modes/ctr128.c b/src/main/jni/openssl/crypto/modes/ctr128.c
similarity index 100%
rename from jni/openssl/crypto/modes/ctr128.c
rename to src/main/jni/openssl/crypto/modes/ctr128.c
diff --git a/jni/openssl/crypto/modes/cts128.c b/src/main/jni/openssl/crypto/modes/cts128.c
similarity index 100%
rename from jni/openssl/crypto/modes/cts128.c
rename to src/main/jni/openssl/crypto/modes/cts128.c
diff --git a/jni/openssl/crypto/modes/gcm128.c b/src/main/jni/openssl/crypto/modes/gcm128.c
similarity index 100%
rename from jni/openssl/crypto/modes/gcm128.c
rename to src/main/jni/openssl/crypto/modes/gcm128.c
diff --git a/jni/openssl/crypto/modes/modes.h b/src/main/jni/openssl/crypto/modes/modes.h
similarity index 100%
rename from jni/openssl/crypto/modes/modes.h
rename to src/main/jni/openssl/crypto/modes/modes.h
diff --git a/jni/openssl/crypto/modes/modes_lcl.h b/src/main/jni/openssl/crypto/modes/modes_lcl.h
similarity index 100%
rename from jni/openssl/crypto/modes/modes_lcl.h
rename to src/main/jni/openssl/crypto/modes/modes_lcl.h
diff --git a/jni/openssl/crypto/modes/ofb128.c b/src/main/jni/openssl/crypto/modes/ofb128.c
similarity index 100%
rename from jni/openssl/crypto/modes/ofb128.c
rename to src/main/jni/openssl/crypto/modes/ofb128.c
diff --git a/jni/openssl/crypto/modes/xts128.c b/src/main/jni/openssl/crypto/modes/xts128.c
similarity index 100%
rename from jni/openssl/crypto/modes/xts128.c
rename to src/main/jni/openssl/crypto/modes/xts128.c
diff --git a/jni/openssl/crypto/o_dir.c b/src/main/jni/openssl/crypto/o_dir.c
similarity index 100%
rename from jni/openssl/crypto/o_dir.c
rename to src/main/jni/openssl/crypto/o_dir.c
diff --git a/jni/openssl/crypto/o_dir.h b/src/main/jni/openssl/crypto/o_dir.h
similarity index 100%
rename from jni/openssl/crypto/o_dir.h
rename to src/main/jni/openssl/crypto/o_dir.h
diff --git a/jni/openssl/crypto/o_dir_test.c b/src/main/jni/openssl/crypto/o_dir_test.c
similarity index 100%
rename from jni/openssl/crypto/o_dir_test.c
rename to src/main/jni/openssl/crypto/o_dir_test.c
diff --git a/jni/openssl/crypto/o_fips.c b/src/main/jni/openssl/crypto/o_fips.c
similarity index 100%
rename from jni/openssl/crypto/o_fips.c
rename to src/main/jni/openssl/crypto/o_fips.c
diff --git a/jni/openssl/crypto/o_init.c b/src/main/jni/openssl/crypto/o_init.c
similarity index 100%
rename from jni/openssl/crypto/o_init.c
rename to src/main/jni/openssl/crypto/o_init.c
diff --git a/jni/openssl/crypto/o_str.c b/src/main/jni/openssl/crypto/o_str.c
similarity index 100%
rename from jni/openssl/crypto/o_str.c
rename to src/main/jni/openssl/crypto/o_str.c
diff --git a/jni/openssl/crypto/o_str.h b/src/main/jni/openssl/crypto/o_str.h
similarity index 100%
rename from jni/openssl/crypto/o_str.h
rename to src/main/jni/openssl/crypto/o_str.h
diff --git a/jni/openssl/crypto/o_time.c b/src/main/jni/openssl/crypto/o_time.c
similarity index 100%
rename from jni/openssl/crypto/o_time.c
rename to src/main/jni/openssl/crypto/o_time.c
diff --git a/jni/openssl/crypto/o_time.h b/src/main/jni/openssl/crypto/o_time.h
similarity index 100%
rename from jni/openssl/crypto/o_time.h
rename to src/main/jni/openssl/crypto/o_time.h
diff --git a/jni/openssl/crypto/objects/Makefile b/src/main/jni/openssl/crypto/objects/Makefile
similarity index 100%
rename from jni/openssl/crypto/objects/Makefile
rename to src/main/jni/openssl/crypto/objects/Makefile
diff --git a/jni/openssl/crypto/objects/o_names.c b/src/main/jni/openssl/crypto/objects/o_names.c
similarity index 100%
rename from jni/openssl/crypto/objects/o_names.c
rename to src/main/jni/openssl/crypto/objects/o_names.c
diff --git a/jni/openssl/crypto/objects/obj_dat.c b/src/main/jni/openssl/crypto/objects/obj_dat.c
similarity index 100%
rename from jni/openssl/crypto/objects/obj_dat.c
rename to src/main/jni/openssl/crypto/objects/obj_dat.c
diff --git a/jni/openssl/crypto/objects/obj_dat.h b/src/main/jni/openssl/crypto/objects/obj_dat.h
similarity index 100%
rename from jni/openssl/crypto/objects/obj_dat.h
rename to src/main/jni/openssl/crypto/objects/obj_dat.h
diff --git a/jni/openssl/crypto/objects/obj_dat.pl b/src/main/jni/openssl/crypto/objects/obj_dat.pl
similarity index 100%
rename from jni/openssl/crypto/objects/obj_dat.pl
rename to src/main/jni/openssl/crypto/objects/obj_dat.pl
diff --git a/jni/openssl/crypto/objects/obj_err.c b/src/main/jni/openssl/crypto/objects/obj_err.c
similarity index 100%
rename from jni/openssl/crypto/objects/obj_err.c
rename to src/main/jni/openssl/crypto/objects/obj_err.c
diff --git a/jni/openssl/crypto/objects/obj_lib.c b/src/main/jni/openssl/crypto/objects/obj_lib.c
similarity index 100%
rename from jni/openssl/crypto/objects/obj_lib.c
rename to src/main/jni/openssl/crypto/objects/obj_lib.c
diff --git a/jni/openssl/crypto/objects/obj_mac.h b/src/main/jni/openssl/crypto/objects/obj_mac.h
similarity index 100%
rename from jni/openssl/crypto/objects/obj_mac.h
rename to src/main/jni/openssl/crypto/objects/obj_mac.h
diff --git a/jni/openssl/crypto/objects/obj_mac.num b/src/main/jni/openssl/crypto/objects/obj_mac.num
similarity index 100%
rename from jni/openssl/crypto/objects/obj_mac.num
rename to src/main/jni/openssl/crypto/objects/obj_mac.num
diff --git a/jni/openssl/crypto/objects/obj_xref.c b/src/main/jni/openssl/crypto/objects/obj_xref.c
similarity index 100%
rename from jni/openssl/crypto/objects/obj_xref.c
rename to src/main/jni/openssl/crypto/objects/obj_xref.c
diff --git a/jni/openssl/crypto/objects/obj_xref.h b/src/main/jni/openssl/crypto/objects/obj_xref.h
similarity index 100%
rename from jni/openssl/crypto/objects/obj_xref.h
rename to src/main/jni/openssl/crypto/objects/obj_xref.h
diff --git a/jni/openssl/crypto/objects/obj_xref.txt b/src/main/jni/openssl/crypto/objects/obj_xref.txt
similarity index 100%
rename from jni/openssl/crypto/objects/obj_xref.txt
rename to src/main/jni/openssl/crypto/objects/obj_xref.txt
diff --git a/jni/openssl/crypto/objects/objects.README b/src/main/jni/openssl/crypto/objects/objects.README
similarity index 100%
rename from jni/openssl/crypto/objects/objects.README
rename to src/main/jni/openssl/crypto/objects/objects.README
diff --git a/jni/openssl/crypto/objects/objects.h b/src/main/jni/openssl/crypto/objects/objects.h
similarity index 100%
rename from jni/openssl/crypto/objects/objects.h
rename to src/main/jni/openssl/crypto/objects/objects.h
diff --git a/jni/openssl/crypto/objects/objects.pl b/src/main/jni/openssl/crypto/objects/objects.pl
similarity index 100%
rename from jni/openssl/crypto/objects/objects.pl
rename to src/main/jni/openssl/crypto/objects/objects.pl
diff --git a/jni/openssl/crypto/objects/objects.txt b/src/main/jni/openssl/crypto/objects/objects.txt
similarity index 100%
rename from jni/openssl/crypto/objects/objects.txt
rename to src/main/jni/openssl/crypto/objects/objects.txt
diff --git a/jni/openssl/crypto/objects/objxref.pl b/src/main/jni/openssl/crypto/objects/objxref.pl
similarity index 100%
rename from jni/openssl/crypto/objects/objxref.pl
rename to src/main/jni/openssl/crypto/objects/objxref.pl
diff --git a/jni/openssl/crypto/ocsp/Makefile b/src/main/jni/openssl/crypto/ocsp/Makefile
similarity index 100%
rename from jni/openssl/crypto/ocsp/Makefile
rename to src/main/jni/openssl/crypto/ocsp/Makefile
diff --git a/jni/openssl/crypto/ocsp/ocsp.h b/src/main/jni/openssl/crypto/ocsp/ocsp.h
similarity index 100%
rename from jni/openssl/crypto/ocsp/ocsp.h
rename to src/main/jni/openssl/crypto/ocsp/ocsp.h
diff --git a/jni/openssl/crypto/ocsp/ocsp_asn.c b/src/main/jni/openssl/crypto/ocsp/ocsp_asn.c
similarity index 100%
rename from jni/openssl/crypto/ocsp/ocsp_asn.c
rename to src/main/jni/openssl/crypto/ocsp/ocsp_asn.c
diff --git a/jni/openssl/crypto/ocsp/ocsp_cl.c b/src/main/jni/openssl/crypto/ocsp/ocsp_cl.c
similarity index 100%
rename from jni/openssl/crypto/ocsp/ocsp_cl.c
rename to src/main/jni/openssl/crypto/ocsp/ocsp_cl.c
diff --git a/jni/openssl/crypto/ocsp/ocsp_err.c b/src/main/jni/openssl/crypto/ocsp/ocsp_err.c
similarity index 100%
rename from jni/openssl/crypto/ocsp/ocsp_err.c
rename to src/main/jni/openssl/crypto/ocsp/ocsp_err.c
diff --git a/jni/openssl/crypto/ocsp/ocsp_ext.c b/src/main/jni/openssl/crypto/ocsp/ocsp_ext.c
similarity index 100%
rename from jni/openssl/crypto/ocsp/ocsp_ext.c
rename to src/main/jni/openssl/crypto/ocsp/ocsp_ext.c
diff --git a/jni/openssl/crypto/ocsp/ocsp_ht.c b/src/main/jni/openssl/crypto/ocsp/ocsp_ht.c
similarity index 100%
rename from jni/openssl/crypto/ocsp/ocsp_ht.c
rename to src/main/jni/openssl/crypto/ocsp/ocsp_ht.c
diff --git a/jni/openssl/crypto/ocsp/ocsp_lib.c b/src/main/jni/openssl/crypto/ocsp/ocsp_lib.c
similarity index 100%
rename from jni/openssl/crypto/ocsp/ocsp_lib.c
rename to src/main/jni/openssl/crypto/ocsp/ocsp_lib.c
diff --git a/jni/openssl/crypto/ocsp/ocsp_prn.c b/src/main/jni/openssl/crypto/ocsp/ocsp_prn.c
similarity index 100%
rename from jni/openssl/crypto/ocsp/ocsp_prn.c
rename to src/main/jni/openssl/crypto/ocsp/ocsp_prn.c
diff --git a/jni/openssl/crypto/ocsp/ocsp_srv.c b/src/main/jni/openssl/crypto/ocsp/ocsp_srv.c
similarity index 100%
rename from jni/openssl/crypto/ocsp/ocsp_srv.c
rename to src/main/jni/openssl/crypto/ocsp/ocsp_srv.c
diff --git a/jni/openssl/crypto/ocsp/ocsp_vfy.c b/src/main/jni/openssl/crypto/ocsp/ocsp_vfy.c
similarity index 100%
rename from jni/openssl/crypto/ocsp/ocsp_vfy.c
rename to src/main/jni/openssl/crypto/ocsp/ocsp_vfy.c
diff --git a/jni/openssl/crypto/opensslconf.h b/src/main/jni/openssl/crypto/opensslconf.h
similarity index 100%
rename from jni/openssl/crypto/opensslconf.h
rename to src/main/jni/openssl/crypto/opensslconf.h
diff --git a/jni/openssl/crypto/opensslconf.h.in b/src/main/jni/openssl/crypto/opensslconf.h.in
similarity index 100%
rename from jni/openssl/crypto/opensslconf.h.in
rename to src/main/jni/openssl/crypto/opensslconf.h.in
diff --git a/jni/openssl/crypto/opensslv.h b/src/main/jni/openssl/crypto/opensslv.h
similarity index 100%
rename from jni/openssl/crypto/opensslv.h
rename to src/main/jni/openssl/crypto/opensslv.h
diff --git a/jni/openssl/crypto/ossl_typ.h b/src/main/jni/openssl/crypto/ossl_typ.h
similarity index 100%
rename from jni/openssl/crypto/ossl_typ.h
rename to src/main/jni/openssl/crypto/ossl_typ.h
diff --git a/jni/openssl/crypto/pariscid.pl b/src/main/jni/openssl/crypto/pariscid.pl
similarity index 100%
rename from jni/openssl/crypto/pariscid.pl
rename to src/main/jni/openssl/crypto/pariscid.pl
diff --git a/jni/openssl/crypto/pem/Makefile b/src/main/jni/openssl/crypto/pem/Makefile
similarity index 100%
rename from jni/openssl/crypto/pem/Makefile
rename to src/main/jni/openssl/crypto/pem/Makefile
diff --git a/jni/openssl/crypto/pem/message b/src/main/jni/openssl/crypto/pem/message
similarity index 100%
rename from jni/openssl/crypto/pem/message
rename to src/main/jni/openssl/crypto/pem/message
diff --git a/jni/openssl/crypto/pem/pem.h b/src/main/jni/openssl/crypto/pem/pem.h
similarity index 100%
rename from jni/openssl/crypto/pem/pem.h
rename to src/main/jni/openssl/crypto/pem/pem.h
diff --git a/jni/openssl/crypto/pem/pem2.h b/src/main/jni/openssl/crypto/pem/pem2.h
similarity index 100%
rename from jni/openssl/crypto/pem/pem2.h
rename to src/main/jni/openssl/crypto/pem/pem2.h
diff --git a/jni/openssl/crypto/pem/pem_all.c b/src/main/jni/openssl/crypto/pem/pem_all.c
similarity index 100%
rename from jni/openssl/crypto/pem/pem_all.c
rename to src/main/jni/openssl/crypto/pem/pem_all.c
diff --git a/jni/openssl/crypto/pem/pem_err.c b/src/main/jni/openssl/crypto/pem/pem_err.c
similarity index 100%
rename from jni/openssl/crypto/pem/pem_err.c
rename to src/main/jni/openssl/crypto/pem/pem_err.c
diff --git a/jni/openssl/crypto/pem/pem_info.c b/src/main/jni/openssl/crypto/pem/pem_info.c
similarity index 100%
rename from jni/openssl/crypto/pem/pem_info.c
rename to src/main/jni/openssl/crypto/pem/pem_info.c
diff --git a/jni/openssl/crypto/pem/pem_lib.c b/src/main/jni/openssl/crypto/pem/pem_lib.c
similarity index 100%
rename from jni/openssl/crypto/pem/pem_lib.c
rename to src/main/jni/openssl/crypto/pem/pem_lib.c
diff --git a/jni/openssl/crypto/pem/pem_oth.c b/src/main/jni/openssl/crypto/pem/pem_oth.c
similarity index 100%
rename from jni/openssl/crypto/pem/pem_oth.c
rename to src/main/jni/openssl/crypto/pem/pem_oth.c
diff --git a/jni/openssl/crypto/pem/pem_pk8.c b/src/main/jni/openssl/crypto/pem/pem_pk8.c
similarity index 100%
rename from jni/openssl/crypto/pem/pem_pk8.c
rename to src/main/jni/openssl/crypto/pem/pem_pk8.c
diff --git a/jni/openssl/crypto/pem/pem_pkey.c b/src/main/jni/openssl/crypto/pem/pem_pkey.c
similarity index 100%
rename from jni/openssl/crypto/pem/pem_pkey.c
rename to src/main/jni/openssl/crypto/pem/pem_pkey.c
diff --git a/jni/openssl/crypto/pem/pem_seal.c b/src/main/jni/openssl/crypto/pem/pem_seal.c
similarity index 100%
rename from jni/openssl/crypto/pem/pem_seal.c
rename to src/main/jni/openssl/crypto/pem/pem_seal.c
diff --git a/jni/openssl/crypto/pem/pem_sign.c b/src/main/jni/openssl/crypto/pem/pem_sign.c
similarity index 100%
rename from jni/openssl/crypto/pem/pem_sign.c
rename to src/main/jni/openssl/crypto/pem/pem_sign.c
diff --git a/jni/openssl/crypto/pem/pem_x509.c b/src/main/jni/openssl/crypto/pem/pem_x509.c
similarity index 100%
rename from jni/openssl/crypto/pem/pem_x509.c
rename to src/main/jni/openssl/crypto/pem/pem_x509.c
diff --git a/jni/openssl/crypto/pem/pem_xaux.c b/src/main/jni/openssl/crypto/pem/pem_xaux.c
similarity index 100%
rename from jni/openssl/crypto/pem/pem_xaux.c
rename to src/main/jni/openssl/crypto/pem/pem_xaux.c
diff --git a/jni/openssl/crypto/pem/pkcs7.lis b/src/main/jni/openssl/crypto/pem/pkcs7.lis
similarity index 100%
rename from jni/openssl/crypto/pem/pkcs7.lis
rename to src/main/jni/openssl/crypto/pem/pkcs7.lis
diff --git a/jni/openssl/crypto/pem/pvkfmt.c b/src/main/jni/openssl/crypto/pem/pvkfmt.c
similarity index 100%
rename from jni/openssl/crypto/pem/pvkfmt.c
rename to src/main/jni/openssl/crypto/pem/pvkfmt.c
diff --git a/jni/openssl/crypto/perlasm/cbc.pl b/src/main/jni/openssl/crypto/perlasm/cbc.pl
similarity index 100%
rename from jni/openssl/crypto/perlasm/cbc.pl
rename to src/main/jni/openssl/crypto/perlasm/cbc.pl
diff --git a/jni/openssl/crypto/perlasm/ppc-xlate.pl b/src/main/jni/openssl/crypto/perlasm/ppc-xlate.pl
similarity index 100%
rename from jni/openssl/crypto/perlasm/ppc-xlate.pl
rename to src/main/jni/openssl/crypto/perlasm/ppc-xlate.pl
diff --git a/jni/openssl/crypto/perlasm/readme b/src/main/jni/openssl/crypto/perlasm/readme
similarity index 100%
rename from jni/openssl/crypto/perlasm/readme
rename to src/main/jni/openssl/crypto/perlasm/readme
diff --git a/jni/openssl/crypto/perlasm/x86_64-xlate.pl b/src/main/jni/openssl/crypto/perlasm/x86_64-xlate.pl
similarity index 100%
rename from jni/openssl/crypto/perlasm/x86_64-xlate.pl
rename to src/main/jni/openssl/crypto/perlasm/x86_64-xlate.pl
diff --git a/jni/openssl/crypto/perlasm/x86asm.pl b/src/main/jni/openssl/crypto/perlasm/x86asm.pl
similarity index 100%
rename from jni/openssl/crypto/perlasm/x86asm.pl
rename to src/main/jni/openssl/crypto/perlasm/x86asm.pl
diff --git a/jni/openssl/crypto/perlasm/x86gas.pl b/src/main/jni/openssl/crypto/perlasm/x86gas.pl
similarity index 100%
rename from jni/openssl/crypto/perlasm/x86gas.pl
rename to src/main/jni/openssl/crypto/perlasm/x86gas.pl
diff --git a/jni/openssl/crypto/perlasm/x86masm.pl b/src/main/jni/openssl/crypto/perlasm/x86masm.pl
similarity index 100%
rename from jni/openssl/crypto/perlasm/x86masm.pl
rename to src/main/jni/openssl/crypto/perlasm/x86masm.pl
diff --git a/jni/openssl/crypto/perlasm/x86nasm.pl b/src/main/jni/openssl/crypto/perlasm/x86nasm.pl
similarity index 100%
rename from jni/openssl/crypto/perlasm/x86nasm.pl
rename to src/main/jni/openssl/crypto/perlasm/x86nasm.pl
diff --git a/jni/openssl/crypto/pkcs12/Makefile b/src/main/jni/openssl/crypto/pkcs12/Makefile
similarity index 100%
rename from jni/openssl/crypto/pkcs12/Makefile
rename to src/main/jni/openssl/crypto/pkcs12/Makefile
diff --git a/jni/openssl/crypto/pkcs12/p12_add.c b/src/main/jni/openssl/crypto/pkcs12/p12_add.c
similarity index 100%
rename from jni/openssl/crypto/pkcs12/p12_add.c
rename to src/main/jni/openssl/crypto/pkcs12/p12_add.c
diff --git a/jni/openssl/crypto/pkcs12/p12_asn.c b/src/main/jni/openssl/crypto/pkcs12/p12_asn.c
similarity index 100%
rename from jni/openssl/crypto/pkcs12/p12_asn.c
rename to src/main/jni/openssl/crypto/pkcs12/p12_asn.c
diff --git a/jni/openssl/crypto/pkcs12/p12_attr.c b/src/main/jni/openssl/crypto/pkcs12/p12_attr.c
similarity index 100%
rename from jni/openssl/crypto/pkcs12/p12_attr.c
rename to src/main/jni/openssl/crypto/pkcs12/p12_attr.c
diff --git a/jni/openssl/crypto/pkcs12/p12_crpt.c b/src/main/jni/openssl/crypto/pkcs12/p12_crpt.c
similarity index 100%
rename from jni/openssl/crypto/pkcs12/p12_crpt.c
rename to src/main/jni/openssl/crypto/pkcs12/p12_crpt.c
diff --git a/jni/openssl/crypto/pkcs12/p12_crt.c b/src/main/jni/openssl/crypto/pkcs12/p12_crt.c
similarity index 100%
rename from jni/openssl/crypto/pkcs12/p12_crt.c
rename to src/main/jni/openssl/crypto/pkcs12/p12_crt.c
diff --git a/jni/openssl/crypto/pkcs12/p12_decr.c b/src/main/jni/openssl/crypto/pkcs12/p12_decr.c
similarity index 100%
rename from jni/openssl/crypto/pkcs12/p12_decr.c
rename to src/main/jni/openssl/crypto/pkcs12/p12_decr.c
diff --git a/jni/openssl/crypto/pkcs12/p12_init.c b/src/main/jni/openssl/crypto/pkcs12/p12_init.c
similarity index 100%
rename from jni/openssl/crypto/pkcs12/p12_init.c
rename to src/main/jni/openssl/crypto/pkcs12/p12_init.c
diff --git a/jni/openssl/crypto/pkcs12/p12_key.c b/src/main/jni/openssl/crypto/pkcs12/p12_key.c
similarity index 100%
rename from jni/openssl/crypto/pkcs12/p12_key.c
rename to src/main/jni/openssl/crypto/pkcs12/p12_key.c
diff --git a/jni/openssl/crypto/pkcs12/p12_kiss.c b/src/main/jni/openssl/crypto/pkcs12/p12_kiss.c
similarity index 100%
rename from jni/openssl/crypto/pkcs12/p12_kiss.c
rename to src/main/jni/openssl/crypto/pkcs12/p12_kiss.c
diff --git a/jni/openssl/crypto/pkcs12/p12_mutl.c b/src/main/jni/openssl/crypto/pkcs12/p12_mutl.c
similarity index 100%
rename from jni/openssl/crypto/pkcs12/p12_mutl.c
rename to src/main/jni/openssl/crypto/pkcs12/p12_mutl.c
diff --git a/jni/openssl/crypto/pkcs12/p12_npas.c b/src/main/jni/openssl/crypto/pkcs12/p12_npas.c
similarity index 100%
rename from jni/openssl/crypto/pkcs12/p12_npas.c
rename to src/main/jni/openssl/crypto/pkcs12/p12_npas.c
diff --git a/jni/openssl/crypto/pkcs12/p12_p8d.c b/src/main/jni/openssl/crypto/pkcs12/p12_p8d.c
similarity index 100%
rename from jni/openssl/crypto/pkcs12/p12_p8d.c
rename to src/main/jni/openssl/crypto/pkcs12/p12_p8d.c
diff --git a/jni/openssl/crypto/pkcs12/p12_p8e.c b/src/main/jni/openssl/crypto/pkcs12/p12_p8e.c
similarity index 100%
rename from jni/openssl/crypto/pkcs12/p12_p8e.c
rename to src/main/jni/openssl/crypto/pkcs12/p12_p8e.c
diff --git a/jni/openssl/crypto/pkcs12/p12_utl.c b/src/main/jni/openssl/crypto/pkcs12/p12_utl.c
similarity index 100%
rename from jni/openssl/crypto/pkcs12/p12_utl.c
rename to src/main/jni/openssl/crypto/pkcs12/p12_utl.c
diff --git a/jni/openssl/crypto/pkcs12/pk12err.c b/src/main/jni/openssl/crypto/pkcs12/pk12err.c
similarity index 100%
rename from jni/openssl/crypto/pkcs12/pk12err.c
rename to src/main/jni/openssl/crypto/pkcs12/pk12err.c
diff --git a/jni/openssl/crypto/pkcs12/pkcs12.h b/src/main/jni/openssl/crypto/pkcs12/pkcs12.h
similarity index 100%
rename from jni/openssl/crypto/pkcs12/pkcs12.h
rename to src/main/jni/openssl/crypto/pkcs12/pkcs12.h
diff --git a/jni/openssl/crypto/pkcs7/Makefile b/src/main/jni/openssl/crypto/pkcs7/Makefile
similarity index 100%
rename from jni/openssl/crypto/pkcs7/Makefile
rename to src/main/jni/openssl/crypto/pkcs7/Makefile
diff --git a/jni/openssl/crypto/pkcs7/bio_ber.c b/src/main/jni/openssl/crypto/pkcs7/bio_ber.c
similarity index 100%
rename from jni/openssl/crypto/pkcs7/bio_ber.c
rename to src/main/jni/openssl/crypto/pkcs7/bio_ber.c
diff --git a/jni/openssl/crypto/pkcs7/bio_pk7.c b/src/main/jni/openssl/crypto/pkcs7/bio_pk7.c
similarity index 100%
rename from jni/openssl/crypto/pkcs7/bio_pk7.c
rename to src/main/jni/openssl/crypto/pkcs7/bio_pk7.c
diff --git a/jni/openssl/crypto/pkcs7/dec.c b/src/main/jni/openssl/crypto/pkcs7/dec.c
similarity index 100%
rename from jni/openssl/crypto/pkcs7/dec.c
rename to src/main/jni/openssl/crypto/pkcs7/dec.c
diff --git a/jni/openssl/crypto/pkcs7/des.pem b/src/main/jni/openssl/crypto/pkcs7/des.pem
similarity index 100%
rename from jni/openssl/crypto/pkcs7/des.pem
rename to src/main/jni/openssl/crypto/pkcs7/des.pem
diff --git a/jni/openssl/crypto/pkcs7/doc b/src/main/jni/openssl/crypto/pkcs7/doc
similarity index 100%
rename from jni/openssl/crypto/pkcs7/doc
rename to src/main/jni/openssl/crypto/pkcs7/doc
diff --git a/jni/openssl/crypto/pkcs7/enc.c b/src/main/jni/openssl/crypto/pkcs7/enc.c
similarity index 100%
rename from jni/openssl/crypto/pkcs7/enc.c
rename to src/main/jni/openssl/crypto/pkcs7/enc.c
diff --git a/jni/openssl/crypto/pkcs7/es1.pem b/src/main/jni/openssl/crypto/pkcs7/es1.pem
similarity index 100%
rename from jni/openssl/crypto/pkcs7/es1.pem
rename to src/main/jni/openssl/crypto/pkcs7/es1.pem
diff --git a/jni/openssl/crypto/pkcs7/example.c b/src/main/jni/openssl/crypto/pkcs7/example.c
similarity index 100%
rename from jni/openssl/crypto/pkcs7/example.c
rename to src/main/jni/openssl/crypto/pkcs7/example.c
diff --git a/jni/openssl/crypto/pkcs7/example.h b/src/main/jni/openssl/crypto/pkcs7/example.h
similarity index 100%
rename from jni/openssl/crypto/pkcs7/example.h
rename to src/main/jni/openssl/crypto/pkcs7/example.h
diff --git a/jni/openssl/crypto/pkcs7/info.pem b/src/main/jni/openssl/crypto/pkcs7/info.pem
similarity index 100%
rename from jni/openssl/crypto/pkcs7/info.pem
rename to src/main/jni/openssl/crypto/pkcs7/info.pem
diff --git a/jni/openssl/crypto/pkcs7/infokey.pem b/src/main/jni/openssl/crypto/pkcs7/infokey.pem
similarity index 100%
rename from jni/openssl/crypto/pkcs7/infokey.pem
rename to src/main/jni/openssl/crypto/pkcs7/infokey.pem
diff --git a/jni/openssl/crypto/pkcs7/p7/a1 b/src/main/jni/openssl/crypto/pkcs7/p7/a1
similarity index 100%
rename from jni/openssl/crypto/pkcs7/p7/a1
rename to src/main/jni/openssl/crypto/pkcs7/p7/a1
diff --git a/jni/openssl/crypto/pkcs7/p7/a2 b/src/main/jni/openssl/crypto/pkcs7/p7/a2
similarity index 100%
rename from jni/openssl/crypto/pkcs7/p7/a2
rename to src/main/jni/openssl/crypto/pkcs7/p7/a2
diff --git a/jni/openssl/crypto/pkcs7/p7/cert.p7c b/src/main/jni/openssl/crypto/pkcs7/p7/cert.p7c
similarity index 100%
rename from jni/openssl/crypto/pkcs7/p7/cert.p7c
rename to src/main/jni/openssl/crypto/pkcs7/p7/cert.p7c
diff --git a/jni/openssl/crypto/pkcs7/p7/smime.p7m b/src/main/jni/openssl/crypto/pkcs7/p7/smime.p7m
similarity index 100%
rename from jni/openssl/crypto/pkcs7/p7/smime.p7m
rename to src/main/jni/openssl/crypto/pkcs7/p7/smime.p7m
diff --git a/jni/openssl/crypto/pkcs7/p7/smime.p7s b/src/main/jni/openssl/crypto/pkcs7/p7/smime.p7s
similarity index 100%
rename from jni/openssl/crypto/pkcs7/p7/smime.p7s
rename to src/main/jni/openssl/crypto/pkcs7/p7/smime.p7s
diff --git a/jni/openssl/crypto/pkcs7/pk7_asn1.c b/src/main/jni/openssl/crypto/pkcs7/pk7_asn1.c
similarity index 100%
rename from jni/openssl/crypto/pkcs7/pk7_asn1.c
rename to src/main/jni/openssl/crypto/pkcs7/pk7_asn1.c
diff --git a/jni/openssl/crypto/pkcs7/pk7_attr.c b/src/main/jni/openssl/crypto/pkcs7/pk7_attr.c
similarity index 100%
rename from jni/openssl/crypto/pkcs7/pk7_attr.c
rename to src/main/jni/openssl/crypto/pkcs7/pk7_attr.c
diff --git a/jni/openssl/crypto/pkcs7/pk7_dgst.c b/src/main/jni/openssl/crypto/pkcs7/pk7_dgst.c
similarity index 100%
rename from jni/openssl/crypto/pkcs7/pk7_dgst.c
rename to src/main/jni/openssl/crypto/pkcs7/pk7_dgst.c
diff --git a/jni/openssl/crypto/pkcs7/pk7_doit.c b/src/main/jni/openssl/crypto/pkcs7/pk7_doit.c
similarity index 100%
rename from jni/openssl/crypto/pkcs7/pk7_doit.c
rename to src/main/jni/openssl/crypto/pkcs7/pk7_doit.c
diff --git a/jni/openssl/crypto/pkcs7/pk7_enc.c b/src/main/jni/openssl/crypto/pkcs7/pk7_enc.c
similarity index 100%
rename from jni/openssl/crypto/pkcs7/pk7_enc.c
rename to src/main/jni/openssl/crypto/pkcs7/pk7_enc.c
diff --git a/jni/openssl/crypto/pkcs7/pk7_lib.c b/src/main/jni/openssl/crypto/pkcs7/pk7_lib.c
similarity index 100%
rename from jni/openssl/crypto/pkcs7/pk7_lib.c
rename to src/main/jni/openssl/crypto/pkcs7/pk7_lib.c
diff --git a/jni/openssl/crypto/pkcs7/pk7_mime.c b/src/main/jni/openssl/crypto/pkcs7/pk7_mime.c
similarity index 100%
rename from jni/openssl/crypto/pkcs7/pk7_mime.c
rename to src/main/jni/openssl/crypto/pkcs7/pk7_mime.c
diff --git a/jni/openssl/crypto/pkcs7/pk7_smime.c b/src/main/jni/openssl/crypto/pkcs7/pk7_smime.c
similarity index 100%
rename from jni/openssl/crypto/pkcs7/pk7_smime.c
rename to src/main/jni/openssl/crypto/pkcs7/pk7_smime.c
diff --git a/jni/openssl/crypto/pkcs7/pkcs7.h b/src/main/jni/openssl/crypto/pkcs7/pkcs7.h
similarity index 100%
rename from jni/openssl/crypto/pkcs7/pkcs7.h
rename to src/main/jni/openssl/crypto/pkcs7/pkcs7.h
diff --git a/jni/openssl/crypto/pkcs7/pkcs7err.c b/src/main/jni/openssl/crypto/pkcs7/pkcs7err.c
similarity index 100%
rename from jni/openssl/crypto/pkcs7/pkcs7err.c
rename to src/main/jni/openssl/crypto/pkcs7/pkcs7err.c
diff --git a/jni/openssl/crypto/pkcs7/server.pem b/src/main/jni/openssl/crypto/pkcs7/server.pem
similarity index 100%
rename from jni/openssl/crypto/pkcs7/server.pem
rename to src/main/jni/openssl/crypto/pkcs7/server.pem
diff --git a/jni/openssl/crypto/pkcs7/sign.c b/src/main/jni/openssl/crypto/pkcs7/sign.c
similarity index 100%
rename from jni/openssl/crypto/pkcs7/sign.c
rename to src/main/jni/openssl/crypto/pkcs7/sign.c
diff --git a/jni/openssl/crypto/pkcs7/t/3des.pem b/src/main/jni/openssl/crypto/pkcs7/t/3des.pem
similarity index 100%
rename from jni/openssl/crypto/pkcs7/t/3des.pem
rename to src/main/jni/openssl/crypto/pkcs7/t/3des.pem
diff --git a/jni/openssl/crypto/pkcs7/t/3dess.pem b/src/main/jni/openssl/crypto/pkcs7/t/3dess.pem
similarity index 100%
rename from jni/openssl/crypto/pkcs7/t/3dess.pem
rename to src/main/jni/openssl/crypto/pkcs7/t/3dess.pem
diff --git a/jni/openssl/crypto/pkcs7/t/c.pem b/src/main/jni/openssl/crypto/pkcs7/t/c.pem
similarity index 100%
rename from jni/openssl/crypto/pkcs7/t/c.pem
rename to src/main/jni/openssl/crypto/pkcs7/t/c.pem
diff --git a/jni/openssl/crypto/pkcs7/t/ff b/src/main/jni/openssl/crypto/pkcs7/t/ff
similarity index 100%
rename from jni/openssl/crypto/pkcs7/t/ff
rename to src/main/jni/openssl/crypto/pkcs7/t/ff
diff --git a/jni/openssl/crypto/pkcs7/t/msie-e b/src/main/jni/openssl/crypto/pkcs7/t/msie-e
similarity index 100%
rename from jni/openssl/crypto/pkcs7/t/msie-e
rename to src/main/jni/openssl/crypto/pkcs7/t/msie-e
diff --git a/jni/openssl/crypto/pkcs7/t/msie-e.pem b/src/main/jni/openssl/crypto/pkcs7/t/msie-e.pem
similarity index 100%
rename from jni/openssl/crypto/pkcs7/t/msie-e.pem
rename to src/main/jni/openssl/crypto/pkcs7/t/msie-e.pem
diff --git a/jni/openssl/crypto/pkcs7/t/msie-enc-01 b/src/main/jni/openssl/crypto/pkcs7/t/msie-enc-01
similarity index 100%
rename from jni/openssl/crypto/pkcs7/t/msie-enc-01
rename to src/main/jni/openssl/crypto/pkcs7/t/msie-enc-01
diff --git a/jni/openssl/crypto/pkcs7/t/msie-enc-01.pem b/src/main/jni/openssl/crypto/pkcs7/t/msie-enc-01.pem
similarity index 100%
rename from jni/openssl/crypto/pkcs7/t/msie-enc-01.pem
rename to src/main/jni/openssl/crypto/pkcs7/t/msie-enc-01.pem
diff --git a/jni/openssl/crypto/pkcs7/t/msie-enc-02 b/src/main/jni/openssl/crypto/pkcs7/t/msie-enc-02
similarity index 100%
rename from jni/openssl/crypto/pkcs7/t/msie-enc-02
rename to src/main/jni/openssl/crypto/pkcs7/t/msie-enc-02
diff --git a/jni/openssl/crypto/pkcs7/t/msie-enc-02.pem b/src/main/jni/openssl/crypto/pkcs7/t/msie-enc-02.pem
similarity index 100%
rename from jni/openssl/crypto/pkcs7/t/msie-enc-02.pem
rename to src/main/jni/openssl/crypto/pkcs7/t/msie-enc-02.pem
diff --git a/jni/openssl/crypto/pkcs7/t/msie-s-a-e b/src/main/jni/openssl/crypto/pkcs7/t/msie-s-a-e
similarity index 100%
rename from jni/openssl/crypto/pkcs7/t/msie-s-a-e
rename to src/main/jni/openssl/crypto/pkcs7/t/msie-s-a-e
diff --git a/jni/openssl/crypto/pkcs7/t/msie-s-a-e.pem b/src/main/jni/openssl/crypto/pkcs7/t/msie-s-a-e.pem
similarity index 100%
rename from jni/openssl/crypto/pkcs7/t/msie-s-a-e.pem
rename to src/main/jni/openssl/crypto/pkcs7/t/msie-s-a-e.pem
diff --git a/jni/openssl/crypto/pkcs7/t/nav-smime b/src/main/jni/openssl/crypto/pkcs7/t/nav-smime
similarity index 100%
rename from jni/openssl/crypto/pkcs7/t/nav-smime
rename to src/main/jni/openssl/crypto/pkcs7/t/nav-smime
diff --git a/jni/openssl/crypto/pkcs7/t/s.pem b/src/main/jni/openssl/crypto/pkcs7/t/s.pem
similarity index 100%
rename from jni/openssl/crypto/pkcs7/t/s.pem
rename to src/main/jni/openssl/crypto/pkcs7/t/s.pem
diff --git a/jni/openssl/crypto/pkcs7/t/server.pem b/src/main/jni/openssl/crypto/pkcs7/t/server.pem
similarity index 100%
rename from jni/openssl/crypto/pkcs7/t/server.pem
rename to src/main/jni/openssl/crypto/pkcs7/t/server.pem
diff --git a/jni/openssl/crypto/pkcs7/verify.c b/src/main/jni/openssl/crypto/pkcs7/verify.c
similarity index 100%
rename from jni/openssl/crypto/pkcs7/verify.c
rename to src/main/jni/openssl/crypto/pkcs7/verify.c
diff --git a/jni/openssl/crypto/ppccap.c b/src/main/jni/openssl/crypto/ppccap.c
similarity index 100%
rename from jni/openssl/crypto/ppccap.c
rename to src/main/jni/openssl/crypto/ppccap.c
diff --git a/jni/openssl/crypto/ppccpuid.pl b/src/main/jni/openssl/crypto/ppccpuid.pl
similarity index 100%
rename from jni/openssl/crypto/ppccpuid.pl
rename to src/main/jni/openssl/crypto/ppccpuid.pl
diff --git a/jni/openssl/crypto/pqueue/Makefile b/src/main/jni/openssl/crypto/pqueue/Makefile
similarity index 100%
rename from jni/openssl/crypto/pqueue/Makefile
rename to src/main/jni/openssl/crypto/pqueue/Makefile
diff --git a/jni/openssl/crypto/pqueue/pq_test.c b/src/main/jni/openssl/crypto/pqueue/pq_test.c
similarity index 100%
rename from jni/openssl/crypto/pqueue/pq_test.c
rename to src/main/jni/openssl/crypto/pqueue/pq_test.c
diff --git a/jni/openssl/crypto/pqueue/pqueue.c b/src/main/jni/openssl/crypto/pqueue/pqueue.c
similarity index 100%
rename from jni/openssl/crypto/pqueue/pqueue.c
rename to src/main/jni/openssl/crypto/pqueue/pqueue.c
diff --git a/jni/openssl/crypto/pqueue/pqueue.h b/src/main/jni/openssl/crypto/pqueue/pqueue.h
similarity index 100%
rename from jni/openssl/crypto/pqueue/pqueue.h
rename to src/main/jni/openssl/crypto/pqueue/pqueue.h
diff --git a/jni/openssl/crypto/rand/Makefile b/src/main/jni/openssl/crypto/rand/Makefile
similarity index 100%
rename from jni/openssl/crypto/rand/Makefile
rename to src/main/jni/openssl/crypto/rand/Makefile
diff --git a/jni/openssl/crypto/rand/md_rand.c b/src/main/jni/openssl/crypto/rand/md_rand.c
similarity index 100%
rename from jni/openssl/crypto/rand/md_rand.c
rename to src/main/jni/openssl/crypto/rand/md_rand.c
diff --git a/jni/openssl/crypto/rand/rand.h b/src/main/jni/openssl/crypto/rand/rand.h
similarity index 100%
rename from jni/openssl/crypto/rand/rand.h
rename to src/main/jni/openssl/crypto/rand/rand.h
diff --git a/jni/openssl/crypto/rand/rand_egd.c b/src/main/jni/openssl/crypto/rand/rand_egd.c
similarity index 100%
rename from jni/openssl/crypto/rand/rand_egd.c
rename to src/main/jni/openssl/crypto/rand/rand_egd.c
diff --git a/jni/openssl/crypto/rand/rand_err.c b/src/main/jni/openssl/crypto/rand/rand_err.c
similarity index 100%
rename from jni/openssl/crypto/rand/rand_err.c
rename to src/main/jni/openssl/crypto/rand/rand_err.c
diff --git a/jni/openssl/crypto/rand/rand_lcl.h b/src/main/jni/openssl/crypto/rand/rand_lcl.h
similarity index 100%
rename from jni/openssl/crypto/rand/rand_lcl.h
rename to src/main/jni/openssl/crypto/rand/rand_lcl.h
diff --git a/jni/openssl/crypto/rand/rand_lib.c b/src/main/jni/openssl/crypto/rand/rand_lib.c
similarity index 100%
rename from jni/openssl/crypto/rand/rand_lib.c
rename to src/main/jni/openssl/crypto/rand/rand_lib.c
diff --git a/jni/openssl/crypto/rand/rand_nw.c b/src/main/jni/openssl/crypto/rand/rand_nw.c
similarity index 100%
rename from jni/openssl/crypto/rand/rand_nw.c
rename to src/main/jni/openssl/crypto/rand/rand_nw.c
diff --git a/jni/openssl/crypto/rand/rand_os2.c b/src/main/jni/openssl/crypto/rand/rand_os2.c
similarity index 100%
rename from jni/openssl/crypto/rand/rand_os2.c
rename to src/main/jni/openssl/crypto/rand/rand_os2.c
diff --git a/jni/openssl/crypto/rand/rand_unix.c b/src/main/jni/openssl/crypto/rand/rand_unix.c
similarity index 100%
rename from jni/openssl/crypto/rand/rand_unix.c
rename to src/main/jni/openssl/crypto/rand/rand_unix.c
diff --git a/jni/openssl/crypto/rand/rand_vms.c b/src/main/jni/openssl/crypto/rand/rand_vms.c
similarity index 100%
rename from jni/openssl/crypto/rand/rand_vms.c
rename to src/main/jni/openssl/crypto/rand/rand_vms.c
diff --git a/jni/openssl/crypto/rand/rand_win.c b/src/main/jni/openssl/crypto/rand/rand_win.c
similarity index 100%
rename from jni/openssl/crypto/rand/rand_win.c
rename to src/main/jni/openssl/crypto/rand/rand_win.c
diff --git a/jni/openssl/crypto/rand/randfile.c b/src/main/jni/openssl/crypto/rand/randfile.c
similarity index 100%
rename from jni/openssl/crypto/rand/randfile.c
rename to src/main/jni/openssl/crypto/rand/randfile.c
diff --git a/jni/openssl/crypto/rand/randtest.c b/src/main/jni/openssl/crypto/rand/randtest.c
similarity index 100%
rename from jni/openssl/crypto/rand/randtest.c
rename to src/main/jni/openssl/crypto/rand/randtest.c
diff --git a/jni/openssl/crypto/rc2/Makefile b/src/main/jni/openssl/crypto/rc2/Makefile
similarity index 100%
rename from jni/openssl/crypto/rc2/Makefile
rename to src/main/jni/openssl/crypto/rc2/Makefile
diff --git a/jni/openssl/crypto/rc2/rc2.h b/src/main/jni/openssl/crypto/rc2/rc2.h
similarity index 100%
rename from jni/openssl/crypto/rc2/rc2.h
rename to src/main/jni/openssl/crypto/rc2/rc2.h
diff --git a/jni/openssl/crypto/rc2/rc2_cbc.c b/src/main/jni/openssl/crypto/rc2/rc2_cbc.c
similarity index 100%
rename from jni/openssl/crypto/rc2/rc2_cbc.c
rename to src/main/jni/openssl/crypto/rc2/rc2_cbc.c
diff --git a/jni/openssl/crypto/rc2/rc2_ecb.c b/src/main/jni/openssl/crypto/rc2/rc2_ecb.c
similarity index 100%
rename from jni/openssl/crypto/rc2/rc2_ecb.c
rename to src/main/jni/openssl/crypto/rc2/rc2_ecb.c
diff --git a/jni/openssl/crypto/rc2/rc2_locl.h b/src/main/jni/openssl/crypto/rc2/rc2_locl.h
similarity index 100%
rename from jni/openssl/crypto/rc2/rc2_locl.h
rename to src/main/jni/openssl/crypto/rc2/rc2_locl.h
diff --git a/jni/openssl/crypto/rc2/rc2_skey.c b/src/main/jni/openssl/crypto/rc2/rc2_skey.c
similarity index 100%
rename from jni/openssl/crypto/rc2/rc2_skey.c
rename to src/main/jni/openssl/crypto/rc2/rc2_skey.c
diff --git a/jni/openssl/crypto/rc2/rc2cfb64.c b/src/main/jni/openssl/crypto/rc2/rc2cfb64.c
similarity index 100%
rename from jni/openssl/crypto/rc2/rc2cfb64.c
rename to src/main/jni/openssl/crypto/rc2/rc2cfb64.c
diff --git a/jni/openssl/crypto/rc2/rc2ofb64.c b/src/main/jni/openssl/crypto/rc2/rc2ofb64.c
similarity index 100%
rename from jni/openssl/crypto/rc2/rc2ofb64.c
rename to src/main/jni/openssl/crypto/rc2/rc2ofb64.c
diff --git a/jni/openssl/crypto/rc2/rc2speed.c b/src/main/jni/openssl/crypto/rc2/rc2speed.c
similarity index 100%
rename from jni/openssl/crypto/rc2/rc2speed.c
rename to src/main/jni/openssl/crypto/rc2/rc2speed.c
diff --git a/jni/openssl/crypto/rc2/rc2test.c b/src/main/jni/openssl/crypto/rc2/rc2test.c
similarity index 100%
rename from jni/openssl/crypto/rc2/rc2test.c
rename to src/main/jni/openssl/crypto/rc2/rc2test.c
diff --git a/jni/openssl/crypto/rc2/rrc2.doc b/src/main/jni/openssl/crypto/rc2/rrc2.doc
similarity index 100%
rename from jni/openssl/crypto/rc2/rrc2.doc
rename to src/main/jni/openssl/crypto/rc2/rrc2.doc
diff --git a/jni/openssl/crypto/rc2/tab.c b/src/main/jni/openssl/crypto/rc2/tab.c
similarity index 100%
rename from jni/openssl/crypto/rc2/tab.c
rename to src/main/jni/openssl/crypto/rc2/tab.c
diff --git a/jni/openssl/crypto/rc2/version b/src/main/jni/openssl/crypto/rc2/version
similarity index 100%
rename from jni/openssl/crypto/rc2/version
rename to src/main/jni/openssl/crypto/rc2/version
diff --git a/jni/openssl/crypto/rc4/Makefile b/src/main/jni/openssl/crypto/rc4/Makefile
similarity index 100%
rename from jni/openssl/crypto/rc4/Makefile
rename to src/main/jni/openssl/crypto/rc4/Makefile
diff --git a/jni/openssl/crypto/rc4/asm/rc4-586.pl b/src/main/jni/openssl/crypto/rc4/asm/rc4-586.pl
similarity index 100%
rename from jni/openssl/crypto/rc4/asm/rc4-586.pl
rename to src/main/jni/openssl/crypto/rc4/asm/rc4-586.pl
diff --git a/jni/openssl/crypto/rc4/asm/rc4-ia64.pl b/src/main/jni/openssl/crypto/rc4/asm/rc4-ia64.pl
similarity index 100%
rename from jni/openssl/crypto/rc4/asm/rc4-ia64.pl
rename to src/main/jni/openssl/crypto/rc4/asm/rc4-ia64.pl
diff --git a/jni/openssl/crypto/rc4/asm/rc4-md5-x86_64.pl b/src/main/jni/openssl/crypto/rc4/asm/rc4-md5-x86_64.pl
similarity index 100%
rename from jni/openssl/crypto/rc4/asm/rc4-md5-x86_64.pl
rename to src/main/jni/openssl/crypto/rc4/asm/rc4-md5-x86_64.pl
diff --git a/jni/openssl/crypto/rc4/asm/rc4-parisc.pl b/src/main/jni/openssl/crypto/rc4/asm/rc4-parisc.pl
similarity index 100%
rename from jni/openssl/crypto/rc4/asm/rc4-parisc.pl
rename to src/main/jni/openssl/crypto/rc4/asm/rc4-parisc.pl
diff --git a/jni/openssl/crypto/rc4/asm/rc4-s390x.pl b/src/main/jni/openssl/crypto/rc4/asm/rc4-s390x.pl
similarity index 100%
rename from jni/openssl/crypto/rc4/asm/rc4-s390x.pl
rename to src/main/jni/openssl/crypto/rc4/asm/rc4-s390x.pl
diff --git a/jni/openssl/crypto/rc4/asm/rc4-x86_64.pl b/src/main/jni/openssl/crypto/rc4/asm/rc4-x86_64.pl
similarity index 100%
rename from jni/openssl/crypto/rc4/asm/rc4-x86_64.pl
rename to src/main/jni/openssl/crypto/rc4/asm/rc4-x86_64.pl
diff --git a/jni/openssl/crypto/rc4/rc4.c b/src/main/jni/openssl/crypto/rc4/rc4.c
similarity index 100%
rename from jni/openssl/crypto/rc4/rc4.c
rename to src/main/jni/openssl/crypto/rc4/rc4.c
diff --git a/jni/openssl/crypto/rc4/rc4.h b/src/main/jni/openssl/crypto/rc4/rc4.h
similarity index 100%
rename from jni/openssl/crypto/rc4/rc4.h
rename to src/main/jni/openssl/crypto/rc4/rc4.h
diff --git a/jni/openssl/crypto/rc4/rc4_enc.c b/src/main/jni/openssl/crypto/rc4/rc4_enc.c
similarity index 100%
rename from jni/openssl/crypto/rc4/rc4_enc.c
rename to src/main/jni/openssl/crypto/rc4/rc4_enc.c
diff --git a/jni/openssl/crypto/rc4/rc4_locl.h b/src/main/jni/openssl/crypto/rc4/rc4_locl.h
similarity index 100%
rename from jni/openssl/crypto/rc4/rc4_locl.h
rename to src/main/jni/openssl/crypto/rc4/rc4_locl.h
diff --git a/jni/openssl/crypto/rc4/rc4_skey.c b/src/main/jni/openssl/crypto/rc4/rc4_skey.c
similarity index 100%
rename from jni/openssl/crypto/rc4/rc4_skey.c
rename to src/main/jni/openssl/crypto/rc4/rc4_skey.c
diff --git a/jni/openssl/crypto/rc4/rc4_utl.c b/src/main/jni/openssl/crypto/rc4/rc4_utl.c
similarity index 100%
rename from jni/openssl/crypto/rc4/rc4_utl.c
rename to src/main/jni/openssl/crypto/rc4/rc4_utl.c
diff --git a/jni/openssl/crypto/rc4/rc4s.cpp b/src/main/jni/openssl/crypto/rc4/rc4s.cpp
similarity index 100%
rename from jni/openssl/crypto/rc4/rc4s.cpp
rename to src/main/jni/openssl/crypto/rc4/rc4s.cpp
diff --git a/jni/openssl/crypto/rc4/rc4speed.c b/src/main/jni/openssl/crypto/rc4/rc4speed.c
similarity index 100%
rename from jni/openssl/crypto/rc4/rc4speed.c
rename to src/main/jni/openssl/crypto/rc4/rc4speed.c
diff --git a/jni/openssl/crypto/rc4/rc4test.c b/src/main/jni/openssl/crypto/rc4/rc4test.c
similarity index 100%
rename from jni/openssl/crypto/rc4/rc4test.c
rename to src/main/jni/openssl/crypto/rc4/rc4test.c
diff --git a/jni/openssl/crypto/rc4/rrc4.doc b/src/main/jni/openssl/crypto/rc4/rrc4.doc
similarity index 100%
rename from jni/openssl/crypto/rc4/rrc4.doc
rename to src/main/jni/openssl/crypto/rc4/rrc4.doc
diff --git a/jni/openssl/crypto/ripemd/Makefile b/src/main/jni/openssl/crypto/ripemd/Makefile
similarity index 100%
rename from jni/openssl/crypto/ripemd/Makefile
rename to src/main/jni/openssl/crypto/ripemd/Makefile
diff --git a/jni/openssl/crypto/ripemd/README b/src/main/jni/openssl/crypto/ripemd/README
similarity index 100%
rename from jni/openssl/crypto/ripemd/README
rename to src/main/jni/openssl/crypto/ripemd/README
diff --git a/jni/openssl/crypto/ripemd/asm/rips.cpp b/src/main/jni/openssl/crypto/ripemd/asm/rips.cpp
similarity index 100%
rename from jni/openssl/crypto/ripemd/asm/rips.cpp
rename to src/main/jni/openssl/crypto/ripemd/asm/rips.cpp
diff --git a/jni/openssl/crypto/ripemd/asm/rmd-586.pl b/src/main/jni/openssl/crypto/ripemd/asm/rmd-586.pl
similarity index 100%
rename from jni/openssl/crypto/ripemd/asm/rmd-586.pl
rename to src/main/jni/openssl/crypto/ripemd/asm/rmd-586.pl
diff --git a/jni/openssl/crypto/ripemd/ripemd.h b/src/main/jni/openssl/crypto/ripemd/ripemd.h
similarity index 100%
rename from jni/openssl/crypto/ripemd/ripemd.h
rename to src/main/jni/openssl/crypto/ripemd/ripemd.h
diff --git a/jni/openssl/crypto/ripemd/rmd160.c b/src/main/jni/openssl/crypto/ripemd/rmd160.c
similarity index 100%
rename from jni/openssl/crypto/ripemd/rmd160.c
rename to src/main/jni/openssl/crypto/ripemd/rmd160.c
diff --git a/jni/openssl/crypto/ripemd/rmd_dgst.c b/src/main/jni/openssl/crypto/ripemd/rmd_dgst.c
similarity index 100%
rename from jni/openssl/crypto/ripemd/rmd_dgst.c
rename to src/main/jni/openssl/crypto/ripemd/rmd_dgst.c
diff --git a/jni/openssl/crypto/ripemd/rmd_locl.h b/src/main/jni/openssl/crypto/ripemd/rmd_locl.h
similarity index 100%
rename from jni/openssl/crypto/ripemd/rmd_locl.h
rename to src/main/jni/openssl/crypto/ripemd/rmd_locl.h
diff --git a/jni/openssl/crypto/ripemd/rmd_one.c b/src/main/jni/openssl/crypto/ripemd/rmd_one.c
similarity index 100%
rename from jni/openssl/crypto/ripemd/rmd_one.c
rename to src/main/jni/openssl/crypto/ripemd/rmd_one.c
diff --git a/jni/openssl/crypto/ripemd/rmdconst.h b/src/main/jni/openssl/crypto/ripemd/rmdconst.h
similarity index 100%
rename from jni/openssl/crypto/ripemd/rmdconst.h
rename to src/main/jni/openssl/crypto/ripemd/rmdconst.h
diff --git a/jni/openssl/crypto/ripemd/rmdtest.c b/src/main/jni/openssl/crypto/ripemd/rmdtest.c
similarity index 100%
rename from jni/openssl/crypto/ripemd/rmdtest.c
rename to src/main/jni/openssl/crypto/ripemd/rmdtest.c
diff --git a/jni/openssl/crypto/rsa/Makefile b/src/main/jni/openssl/crypto/rsa/Makefile
similarity index 100%
rename from jni/openssl/crypto/rsa/Makefile
rename to src/main/jni/openssl/crypto/rsa/Makefile
diff --git a/jni/openssl/crypto/rsa/rsa.h b/src/main/jni/openssl/crypto/rsa/rsa.h
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa.h
rename to src/main/jni/openssl/crypto/rsa/rsa.h
diff --git a/jni/openssl/crypto/rsa/rsa_ameth.c b/src/main/jni/openssl/crypto/rsa/rsa_ameth.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_ameth.c
rename to src/main/jni/openssl/crypto/rsa/rsa_ameth.c
diff --git a/jni/openssl/crypto/rsa/rsa_asn1.c b/src/main/jni/openssl/crypto/rsa/rsa_asn1.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_asn1.c
rename to src/main/jni/openssl/crypto/rsa/rsa_asn1.c
diff --git a/jni/openssl/crypto/rsa/rsa_chk.c b/src/main/jni/openssl/crypto/rsa/rsa_chk.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_chk.c
rename to src/main/jni/openssl/crypto/rsa/rsa_chk.c
diff --git a/jni/openssl/crypto/rsa/rsa_crpt.c b/src/main/jni/openssl/crypto/rsa/rsa_crpt.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_crpt.c
rename to src/main/jni/openssl/crypto/rsa/rsa_crpt.c
diff --git a/jni/openssl/crypto/rsa/rsa_depr.c b/src/main/jni/openssl/crypto/rsa/rsa_depr.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_depr.c
rename to src/main/jni/openssl/crypto/rsa/rsa_depr.c
diff --git a/jni/openssl/crypto/rsa/rsa_eay.c b/src/main/jni/openssl/crypto/rsa/rsa_eay.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_eay.c
rename to src/main/jni/openssl/crypto/rsa/rsa_eay.c
diff --git a/jni/openssl/crypto/rsa/rsa_err.c b/src/main/jni/openssl/crypto/rsa/rsa_err.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_err.c
rename to src/main/jni/openssl/crypto/rsa/rsa_err.c
diff --git a/jni/openssl/crypto/rsa/rsa_gen.c b/src/main/jni/openssl/crypto/rsa/rsa_gen.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_gen.c
rename to src/main/jni/openssl/crypto/rsa/rsa_gen.c
diff --git a/jni/openssl/crypto/rsa/rsa_lib.c b/src/main/jni/openssl/crypto/rsa/rsa_lib.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_lib.c
rename to src/main/jni/openssl/crypto/rsa/rsa_lib.c
diff --git a/jni/openssl/crypto/rsa/rsa_locl.h b/src/main/jni/openssl/crypto/rsa/rsa_locl.h
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_locl.h
rename to src/main/jni/openssl/crypto/rsa/rsa_locl.h
diff --git a/jni/openssl/crypto/rsa/rsa_none.c b/src/main/jni/openssl/crypto/rsa/rsa_none.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_none.c
rename to src/main/jni/openssl/crypto/rsa/rsa_none.c
diff --git a/jni/openssl/crypto/rsa/rsa_null.c b/src/main/jni/openssl/crypto/rsa/rsa_null.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_null.c
rename to src/main/jni/openssl/crypto/rsa/rsa_null.c
diff --git a/jni/openssl/crypto/rsa/rsa_oaep.c b/src/main/jni/openssl/crypto/rsa/rsa_oaep.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_oaep.c
rename to src/main/jni/openssl/crypto/rsa/rsa_oaep.c
diff --git a/jni/openssl/crypto/rsa/rsa_pk1.c b/src/main/jni/openssl/crypto/rsa/rsa_pk1.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_pk1.c
rename to src/main/jni/openssl/crypto/rsa/rsa_pk1.c
diff --git a/jni/openssl/crypto/rsa/rsa_pmeth.c b/src/main/jni/openssl/crypto/rsa/rsa_pmeth.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_pmeth.c
rename to src/main/jni/openssl/crypto/rsa/rsa_pmeth.c
diff --git a/jni/openssl/crypto/rsa/rsa_prn.c b/src/main/jni/openssl/crypto/rsa/rsa_prn.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_prn.c
rename to src/main/jni/openssl/crypto/rsa/rsa_prn.c
diff --git a/jni/openssl/crypto/rsa/rsa_pss.c b/src/main/jni/openssl/crypto/rsa/rsa_pss.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_pss.c
rename to src/main/jni/openssl/crypto/rsa/rsa_pss.c
diff --git a/jni/openssl/crypto/rsa/rsa_saos.c b/src/main/jni/openssl/crypto/rsa/rsa_saos.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_saos.c
rename to src/main/jni/openssl/crypto/rsa/rsa_saos.c
diff --git a/jni/openssl/crypto/rsa/rsa_sign.c b/src/main/jni/openssl/crypto/rsa/rsa_sign.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_sign.c
rename to src/main/jni/openssl/crypto/rsa/rsa_sign.c
diff --git a/jni/openssl/crypto/rsa/rsa_ssl.c b/src/main/jni/openssl/crypto/rsa/rsa_ssl.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_ssl.c
rename to src/main/jni/openssl/crypto/rsa/rsa_ssl.c
diff --git a/jni/openssl/crypto/rsa/rsa_test.c b/src/main/jni/openssl/crypto/rsa/rsa_test.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_test.c
rename to src/main/jni/openssl/crypto/rsa/rsa_test.c
diff --git a/jni/openssl/crypto/rsa/rsa_x931.c b/src/main/jni/openssl/crypto/rsa/rsa_x931.c
similarity index 100%
rename from jni/openssl/crypto/rsa/rsa_x931.c
rename to src/main/jni/openssl/crypto/rsa/rsa_x931.c
diff --git a/jni/openssl/crypto/s390xcap.c b/src/main/jni/openssl/crypto/s390xcap.c
similarity index 100%
rename from jni/openssl/crypto/s390xcap.c
rename to src/main/jni/openssl/crypto/s390xcap.c
diff --git a/jni/openssl/crypto/s390xcpuid.S b/src/main/jni/openssl/crypto/s390xcpuid.S
similarity index 100%
rename from jni/openssl/crypto/s390xcpuid.S
rename to src/main/jni/openssl/crypto/s390xcpuid.S
diff --git a/jni/openssl/crypto/sha/Makefile b/src/main/jni/openssl/crypto/sha/Makefile
similarity index 100%
rename from jni/openssl/crypto/sha/Makefile
rename to src/main/jni/openssl/crypto/sha/Makefile
diff --git a/jni/openssl/crypto/sha/asm/README b/src/main/jni/openssl/crypto/sha/asm/README
similarity index 100%
rename from jni/openssl/crypto/sha/asm/README
rename to src/main/jni/openssl/crypto/sha/asm/README
diff --git a/jni/openssl/crypto/sha/asm/sha1-586.pl b/src/main/jni/openssl/crypto/sha/asm/sha1-586.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha1-586.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha1-586.pl
diff --git a/jni/openssl/crypto/sha/asm/sha1-alpha.pl b/src/main/jni/openssl/crypto/sha/asm/sha1-alpha.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha1-alpha.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha1-alpha.pl
diff --git a/jni/openssl/crypto/sha/asm/sha1-armv4-large.S b/src/main/jni/openssl/crypto/sha/asm/sha1-armv4-large.S
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha1-armv4-large.S
rename to src/main/jni/openssl/crypto/sha/asm/sha1-armv4-large.S
diff --git a/jni/openssl/crypto/sha/asm/sha1-armv4-large.pl b/src/main/jni/openssl/crypto/sha/asm/sha1-armv4-large.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha1-armv4-large.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha1-armv4-large.pl
diff --git a/jni/openssl/crypto/sha/asm/sha1-ia64.pl b/src/main/jni/openssl/crypto/sha/asm/sha1-ia64.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha1-ia64.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha1-ia64.pl
diff --git a/jni/openssl/crypto/sha/asm/sha1-mips.pl b/src/main/jni/openssl/crypto/sha/asm/sha1-mips.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha1-mips.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha1-mips.pl
diff --git a/jni/openssl/crypto/sha/asm/sha1-parisc.pl b/src/main/jni/openssl/crypto/sha/asm/sha1-parisc.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha1-parisc.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha1-parisc.pl
diff --git a/jni/openssl/crypto/sha/asm/sha1-ppc.pl b/src/main/jni/openssl/crypto/sha/asm/sha1-ppc.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha1-ppc.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha1-ppc.pl
diff --git a/jni/openssl/crypto/sha/asm/sha1-s390x.pl b/src/main/jni/openssl/crypto/sha/asm/sha1-s390x.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha1-s390x.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha1-s390x.pl
diff --git a/jni/openssl/crypto/sha/asm/sha1-sparcv9.pl b/src/main/jni/openssl/crypto/sha/asm/sha1-sparcv9.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha1-sparcv9.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha1-sparcv9.pl
diff --git a/jni/openssl/crypto/sha/asm/sha1-sparcv9a.pl b/src/main/jni/openssl/crypto/sha/asm/sha1-sparcv9a.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha1-sparcv9a.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha1-sparcv9a.pl
diff --git a/jni/openssl/crypto/sha/asm/sha1-thumb.pl b/src/main/jni/openssl/crypto/sha/asm/sha1-thumb.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha1-thumb.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha1-thumb.pl
diff --git a/jni/openssl/crypto/sha/asm/sha1-x86_64.pl b/src/main/jni/openssl/crypto/sha/asm/sha1-x86_64.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha1-x86_64.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha1-x86_64.pl
diff --git a/jni/openssl/crypto/sha/asm/sha256-586.pl b/src/main/jni/openssl/crypto/sha/asm/sha256-586.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha256-586.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha256-586.pl
diff --git a/jni/openssl/crypto/sha/asm/sha256-armv4.S b/src/main/jni/openssl/crypto/sha/asm/sha256-armv4.S
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha256-armv4.S
rename to src/main/jni/openssl/crypto/sha/asm/sha256-armv4.S
diff --git a/jni/openssl/crypto/sha/asm/sha256-armv4.pl b/src/main/jni/openssl/crypto/sha/asm/sha256-armv4.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha256-armv4.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha256-armv4.pl
diff --git a/jni/openssl/crypto/sha/asm/sha512-586.pl b/src/main/jni/openssl/crypto/sha/asm/sha512-586.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha512-586.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha512-586.pl
diff --git a/jni/openssl/crypto/sha/asm/sha512-armv4.S b/src/main/jni/openssl/crypto/sha/asm/sha512-armv4.S
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha512-armv4.S
rename to src/main/jni/openssl/crypto/sha/asm/sha512-armv4.S
diff --git a/jni/openssl/crypto/sha/asm/sha512-armv4.pl b/src/main/jni/openssl/crypto/sha/asm/sha512-armv4.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha512-armv4.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha512-armv4.pl
diff --git a/jni/openssl/crypto/sha/asm/sha512-ia64.pl b/src/main/jni/openssl/crypto/sha/asm/sha512-ia64.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha512-ia64.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha512-ia64.pl
diff --git a/jni/openssl/crypto/sha/asm/sha512-mips.pl b/src/main/jni/openssl/crypto/sha/asm/sha512-mips.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha512-mips.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha512-mips.pl
diff --git a/jni/openssl/crypto/sha/asm/sha512-parisc.pl b/src/main/jni/openssl/crypto/sha/asm/sha512-parisc.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha512-parisc.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha512-parisc.pl
diff --git a/jni/openssl/crypto/sha/asm/sha512-ppc.pl b/src/main/jni/openssl/crypto/sha/asm/sha512-ppc.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha512-ppc.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha512-ppc.pl
diff --git a/jni/openssl/crypto/sha/asm/sha512-s390x.pl b/src/main/jni/openssl/crypto/sha/asm/sha512-s390x.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha512-s390x.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha512-s390x.pl
diff --git a/jni/openssl/crypto/sha/asm/sha512-sparcv9.pl b/src/main/jni/openssl/crypto/sha/asm/sha512-sparcv9.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha512-sparcv9.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha512-sparcv9.pl
diff --git a/jni/openssl/crypto/sha/asm/sha512-x86_64.pl b/src/main/jni/openssl/crypto/sha/asm/sha512-x86_64.pl
similarity index 100%
rename from jni/openssl/crypto/sha/asm/sha512-x86_64.pl
rename to src/main/jni/openssl/crypto/sha/asm/sha512-x86_64.pl
diff --git a/jni/openssl/crypto/sha/sha.c b/src/main/jni/openssl/crypto/sha/sha.c
similarity index 100%
rename from jni/openssl/crypto/sha/sha.c
rename to src/main/jni/openssl/crypto/sha/sha.c
diff --git a/jni/openssl/crypto/sha/sha.h b/src/main/jni/openssl/crypto/sha/sha.h
similarity index 100%
rename from jni/openssl/crypto/sha/sha.h
rename to src/main/jni/openssl/crypto/sha/sha.h
diff --git a/jni/openssl/crypto/sha/sha1.c b/src/main/jni/openssl/crypto/sha/sha1.c
similarity index 100%
rename from jni/openssl/crypto/sha/sha1.c
rename to src/main/jni/openssl/crypto/sha/sha1.c
diff --git a/jni/openssl/crypto/sha/sha1_one.c b/src/main/jni/openssl/crypto/sha/sha1_one.c
similarity index 100%
rename from jni/openssl/crypto/sha/sha1_one.c
rename to src/main/jni/openssl/crypto/sha/sha1_one.c
diff --git a/jni/openssl/crypto/sha/sha1dgst.c b/src/main/jni/openssl/crypto/sha/sha1dgst.c
similarity index 100%
rename from jni/openssl/crypto/sha/sha1dgst.c
rename to src/main/jni/openssl/crypto/sha/sha1dgst.c
diff --git a/jni/openssl/crypto/sha/sha1test.c b/src/main/jni/openssl/crypto/sha/sha1test.c
similarity index 100%
rename from jni/openssl/crypto/sha/sha1test.c
rename to src/main/jni/openssl/crypto/sha/sha1test.c
diff --git a/jni/openssl/crypto/sha/sha256.c b/src/main/jni/openssl/crypto/sha/sha256.c
similarity index 100%
rename from jni/openssl/crypto/sha/sha256.c
rename to src/main/jni/openssl/crypto/sha/sha256.c
diff --git a/jni/openssl/crypto/sha/sha256t.c b/src/main/jni/openssl/crypto/sha/sha256t.c
similarity index 100%
rename from jni/openssl/crypto/sha/sha256t.c
rename to src/main/jni/openssl/crypto/sha/sha256t.c
diff --git a/jni/openssl/crypto/sha/sha512.c b/src/main/jni/openssl/crypto/sha/sha512.c
similarity index 100%
rename from jni/openssl/crypto/sha/sha512.c
rename to src/main/jni/openssl/crypto/sha/sha512.c
diff --git a/jni/openssl/crypto/sha/sha512t.c b/src/main/jni/openssl/crypto/sha/sha512t.c
similarity index 100%
rename from jni/openssl/crypto/sha/sha512t.c
rename to src/main/jni/openssl/crypto/sha/sha512t.c
diff --git a/jni/openssl/crypto/sha/sha_dgst.c b/src/main/jni/openssl/crypto/sha/sha_dgst.c
similarity index 100%
rename from jni/openssl/crypto/sha/sha_dgst.c
rename to src/main/jni/openssl/crypto/sha/sha_dgst.c
diff --git a/jni/openssl/crypto/sha/sha_locl.h b/src/main/jni/openssl/crypto/sha/sha_locl.h
similarity index 100%
rename from jni/openssl/crypto/sha/sha_locl.h
rename to src/main/jni/openssl/crypto/sha/sha_locl.h
diff --git a/jni/openssl/crypto/sha/sha_one.c b/src/main/jni/openssl/crypto/sha/sha_one.c
similarity index 100%
rename from jni/openssl/crypto/sha/sha_one.c
rename to src/main/jni/openssl/crypto/sha/sha_one.c
diff --git a/jni/openssl/crypto/sha/shatest.c b/src/main/jni/openssl/crypto/sha/shatest.c
similarity index 100%
rename from jni/openssl/crypto/sha/shatest.c
rename to src/main/jni/openssl/crypto/sha/shatest.c
diff --git a/jni/openssl/crypto/sparccpuid.S b/src/main/jni/openssl/crypto/sparccpuid.S
similarity index 100%
rename from jni/openssl/crypto/sparccpuid.S
rename to src/main/jni/openssl/crypto/sparccpuid.S
diff --git a/jni/openssl/crypto/sparcv9cap.c b/src/main/jni/openssl/crypto/sparcv9cap.c
similarity index 100%
rename from jni/openssl/crypto/sparcv9cap.c
rename to src/main/jni/openssl/crypto/sparcv9cap.c
diff --git a/jni/openssl/crypto/srp/Makefile b/src/main/jni/openssl/crypto/srp/Makefile
similarity index 100%
rename from jni/openssl/crypto/srp/Makefile
rename to src/main/jni/openssl/crypto/srp/Makefile
diff --git a/jni/openssl/crypto/srp/srp.h b/src/main/jni/openssl/crypto/srp/srp.h
similarity index 100%
rename from jni/openssl/crypto/srp/srp.h
rename to src/main/jni/openssl/crypto/srp/srp.h
diff --git a/jni/openssl/crypto/srp/srp_grps.h b/src/main/jni/openssl/crypto/srp/srp_grps.h
similarity index 100%
rename from jni/openssl/crypto/srp/srp_grps.h
rename to src/main/jni/openssl/crypto/srp/srp_grps.h
diff --git a/jni/openssl/crypto/srp/srp_lcl.h b/src/main/jni/openssl/crypto/srp/srp_lcl.h
similarity index 100%
rename from jni/openssl/crypto/srp/srp_lcl.h
rename to src/main/jni/openssl/crypto/srp/srp_lcl.h
diff --git a/jni/openssl/crypto/srp/srp_lib.c b/src/main/jni/openssl/crypto/srp/srp_lib.c
similarity index 100%
rename from jni/openssl/crypto/srp/srp_lib.c
rename to src/main/jni/openssl/crypto/srp/srp_lib.c
diff --git a/jni/openssl/crypto/srp/srp_vfy.c b/src/main/jni/openssl/crypto/srp/srp_vfy.c
similarity index 100%
rename from jni/openssl/crypto/srp/srp_vfy.c
rename to src/main/jni/openssl/crypto/srp/srp_vfy.c
diff --git a/jni/openssl/crypto/srp/srptest.c b/src/main/jni/openssl/crypto/srp/srptest.c
similarity index 100%
rename from jni/openssl/crypto/srp/srptest.c
rename to src/main/jni/openssl/crypto/srp/srptest.c
diff --git a/jni/openssl/crypto/stack/Makefile b/src/main/jni/openssl/crypto/stack/Makefile
similarity index 100%
rename from jni/openssl/crypto/stack/Makefile
rename to src/main/jni/openssl/crypto/stack/Makefile
diff --git a/jni/openssl/crypto/stack/safestack.h b/src/main/jni/openssl/crypto/stack/safestack.h
similarity index 100%
rename from jni/openssl/crypto/stack/safestack.h
rename to src/main/jni/openssl/crypto/stack/safestack.h
diff --git a/jni/openssl/crypto/stack/stack.c b/src/main/jni/openssl/crypto/stack/stack.c
similarity index 100%
rename from jni/openssl/crypto/stack/stack.c
rename to src/main/jni/openssl/crypto/stack/stack.c
diff --git a/jni/openssl/crypto/stack/stack.h b/src/main/jni/openssl/crypto/stack/stack.h
similarity index 100%
rename from jni/openssl/crypto/stack/stack.h
rename to src/main/jni/openssl/crypto/stack/stack.h
diff --git a/jni/openssl/crypto/store/Makefile b/src/main/jni/openssl/crypto/store/Makefile
similarity index 100%
rename from jni/openssl/crypto/store/Makefile
rename to src/main/jni/openssl/crypto/store/Makefile
diff --git a/jni/openssl/crypto/store/README b/src/main/jni/openssl/crypto/store/README
similarity index 100%
rename from jni/openssl/crypto/store/README
rename to src/main/jni/openssl/crypto/store/README
diff --git a/jni/openssl/crypto/store/store.h b/src/main/jni/openssl/crypto/store/store.h
similarity index 100%
rename from jni/openssl/crypto/store/store.h
rename to src/main/jni/openssl/crypto/store/store.h
diff --git a/jni/openssl/crypto/store/str_err.c b/src/main/jni/openssl/crypto/store/str_err.c
similarity index 100%
rename from jni/openssl/crypto/store/str_err.c
rename to src/main/jni/openssl/crypto/store/str_err.c
diff --git a/jni/openssl/crypto/store/str_lib.c b/src/main/jni/openssl/crypto/store/str_lib.c
similarity index 100%
rename from jni/openssl/crypto/store/str_lib.c
rename to src/main/jni/openssl/crypto/store/str_lib.c
diff --git a/jni/openssl/crypto/store/str_locl.h b/src/main/jni/openssl/crypto/store/str_locl.h
similarity index 100%
rename from jni/openssl/crypto/store/str_locl.h
rename to src/main/jni/openssl/crypto/store/str_locl.h
diff --git a/jni/openssl/crypto/store/str_mem.c b/src/main/jni/openssl/crypto/store/str_mem.c
similarity index 100%
rename from jni/openssl/crypto/store/str_mem.c
rename to src/main/jni/openssl/crypto/store/str_mem.c
diff --git a/jni/openssl/crypto/store/str_meth.c b/src/main/jni/openssl/crypto/store/str_meth.c
similarity index 100%
rename from jni/openssl/crypto/store/str_meth.c
rename to src/main/jni/openssl/crypto/store/str_meth.c
diff --git a/jni/openssl/crypto/symhacks.h b/src/main/jni/openssl/crypto/symhacks.h
similarity index 100%
rename from jni/openssl/crypto/symhacks.h
rename to src/main/jni/openssl/crypto/symhacks.h
diff --git a/jni/openssl/crypto/threads/README b/src/main/jni/openssl/crypto/threads/README
similarity index 100%
rename from jni/openssl/crypto/threads/README
rename to src/main/jni/openssl/crypto/threads/README
diff --git a/jni/openssl/crypto/threads/mttest.c b/src/main/jni/openssl/crypto/threads/mttest.c
similarity index 100%
rename from jni/openssl/crypto/threads/mttest.c
rename to src/main/jni/openssl/crypto/threads/mttest.c
diff --git a/jni/openssl/crypto/threads/netware.bat b/src/main/jni/openssl/crypto/threads/netware.bat
similarity index 100%
rename from jni/openssl/crypto/threads/netware.bat
rename to src/main/jni/openssl/crypto/threads/netware.bat
diff --git a/jni/openssl/crypto/threads/profile.sh b/src/main/jni/openssl/crypto/threads/profile.sh
similarity index 100%
rename from jni/openssl/crypto/threads/profile.sh
rename to src/main/jni/openssl/crypto/threads/profile.sh
diff --git a/jni/openssl/crypto/threads/ptest.bat b/src/main/jni/openssl/crypto/threads/ptest.bat
similarity index 100%
rename from jni/openssl/crypto/threads/ptest.bat
rename to src/main/jni/openssl/crypto/threads/ptest.bat
diff --git a/jni/openssl/crypto/threads/pthread.sh b/src/main/jni/openssl/crypto/threads/pthread.sh
similarity index 100%
rename from jni/openssl/crypto/threads/pthread.sh
rename to src/main/jni/openssl/crypto/threads/pthread.sh
diff --git a/jni/openssl/crypto/threads/pthread2.sh b/src/main/jni/openssl/crypto/threads/pthread2.sh
similarity index 100%
rename from jni/openssl/crypto/threads/pthread2.sh
rename to src/main/jni/openssl/crypto/threads/pthread2.sh
diff --git a/jni/openssl/crypto/threads/pthreads-vms.com b/src/main/jni/openssl/crypto/threads/pthreads-vms.com
similarity index 100%
rename from jni/openssl/crypto/threads/pthreads-vms.com
rename to src/main/jni/openssl/crypto/threads/pthreads-vms.com
diff --git a/jni/openssl/crypto/threads/purify.sh b/src/main/jni/openssl/crypto/threads/purify.sh
similarity index 100%
rename from jni/openssl/crypto/threads/purify.sh
rename to src/main/jni/openssl/crypto/threads/purify.sh
diff --git a/jni/openssl/crypto/threads/solaris.sh b/src/main/jni/openssl/crypto/threads/solaris.sh
similarity index 100%
rename from jni/openssl/crypto/threads/solaris.sh
rename to src/main/jni/openssl/crypto/threads/solaris.sh
diff --git a/jni/openssl/crypto/threads/th-lock.c b/src/main/jni/openssl/crypto/threads/th-lock.c
similarity index 100%
rename from jni/openssl/crypto/threads/th-lock.c
rename to src/main/jni/openssl/crypto/threads/th-lock.c
diff --git a/jni/openssl/crypto/threads/win32.bat b/src/main/jni/openssl/crypto/threads/win32.bat
similarity index 100%
rename from jni/openssl/crypto/threads/win32.bat
rename to src/main/jni/openssl/crypto/threads/win32.bat
diff --git a/jni/openssl/crypto/ts/Makefile b/src/main/jni/openssl/crypto/ts/Makefile
similarity index 100%
rename from jni/openssl/crypto/ts/Makefile
rename to src/main/jni/openssl/crypto/ts/Makefile
diff --git a/jni/openssl/crypto/ts/ts.h b/src/main/jni/openssl/crypto/ts/ts.h
similarity index 100%
rename from jni/openssl/crypto/ts/ts.h
rename to src/main/jni/openssl/crypto/ts/ts.h
diff --git a/jni/openssl/crypto/ts/ts_asn1.c b/src/main/jni/openssl/crypto/ts/ts_asn1.c
similarity index 100%
rename from jni/openssl/crypto/ts/ts_asn1.c
rename to src/main/jni/openssl/crypto/ts/ts_asn1.c
diff --git a/jni/openssl/crypto/ts/ts_conf.c b/src/main/jni/openssl/crypto/ts/ts_conf.c
similarity index 100%
rename from jni/openssl/crypto/ts/ts_conf.c
rename to src/main/jni/openssl/crypto/ts/ts_conf.c
diff --git a/jni/openssl/crypto/ts/ts_err.c b/src/main/jni/openssl/crypto/ts/ts_err.c
similarity index 100%
rename from jni/openssl/crypto/ts/ts_err.c
rename to src/main/jni/openssl/crypto/ts/ts_err.c
diff --git a/jni/openssl/crypto/ts/ts_lib.c b/src/main/jni/openssl/crypto/ts/ts_lib.c
similarity index 100%
rename from jni/openssl/crypto/ts/ts_lib.c
rename to src/main/jni/openssl/crypto/ts/ts_lib.c
diff --git a/jni/openssl/crypto/ts/ts_req_print.c b/src/main/jni/openssl/crypto/ts/ts_req_print.c
similarity index 100%
rename from jni/openssl/crypto/ts/ts_req_print.c
rename to src/main/jni/openssl/crypto/ts/ts_req_print.c
diff --git a/jni/openssl/crypto/ts/ts_req_utils.c b/src/main/jni/openssl/crypto/ts/ts_req_utils.c
similarity index 100%
rename from jni/openssl/crypto/ts/ts_req_utils.c
rename to src/main/jni/openssl/crypto/ts/ts_req_utils.c
diff --git a/jni/openssl/crypto/ts/ts_rsp_print.c b/src/main/jni/openssl/crypto/ts/ts_rsp_print.c
similarity index 100%
rename from jni/openssl/crypto/ts/ts_rsp_print.c
rename to src/main/jni/openssl/crypto/ts/ts_rsp_print.c
diff --git a/jni/openssl/crypto/ts/ts_rsp_sign.c b/src/main/jni/openssl/crypto/ts/ts_rsp_sign.c
similarity index 100%
rename from jni/openssl/crypto/ts/ts_rsp_sign.c
rename to src/main/jni/openssl/crypto/ts/ts_rsp_sign.c
diff --git a/jni/openssl/crypto/ts/ts_rsp_utils.c b/src/main/jni/openssl/crypto/ts/ts_rsp_utils.c
similarity index 100%
rename from jni/openssl/crypto/ts/ts_rsp_utils.c
rename to src/main/jni/openssl/crypto/ts/ts_rsp_utils.c
diff --git a/jni/openssl/crypto/ts/ts_rsp_verify.c b/src/main/jni/openssl/crypto/ts/ts_rsp_verify.c
similarity index 100%
rename from jni/openssl/crypto/ts/ts_rsp_verify.c
rename to src/main/jni/openssl/crypto/ts/ts_rsp_verify.c
diff --git a/jni/openssl/crypto/ts/ts_verify_ctx.c b/src/main/jni/openssl/crypto/ts/ts_verify_ctx.c
similarity index 100%
rename from jni/openssl/crypto/ts/ts_verify_ctx.c
rename to src/main/jni/openssl/crypto/ts/ts_verify_ctx.c
diff --git a/jni/openssl/crypto/txt_db/Makefile b/src/main/jni/openssl/crypto/txt_db/Makefile
similarity index 100%
rename from jni/openssl/crypto/txt_db/Makefile
rename to src/main/jni/openssl/crypto/txt_db/Makefile
diff --git a/jni/openssl/crypto/txt_db/txt_db.c b/src/main/jni/openssl/crypto/txt_db/txt_db.c
similarity index 100%
rename from jni/openssl/crypto/txt_db/txt_db.c
rename to src/main/jni/openssl/crypto/txt_db/txt_db.c
diff --git a/jni/openssl/crypto/txt_db/txt_db.h b/src/main/jni/openssl/crypto/txt_db/txt_db.h
similarity index 100%
rename from jni/openssl/crypto/txt_db/txt_db.h
rename to src/main/jni/openssl/crypto/txt_db/txt_db.h
diff --git a/jni/openssl/crypto/ui/Makefile b/src/main/jni/openssl/crypto/ui/Makefile
similarity index 100%
rename from jni/openssl/crypto/ui/Makefile
rename to src/main/jni/openssl/crypto/ui/Makefile
diff --git a/jni/openssl/crypto/ui/ui.h b/src/main/jni/openssl/crypto/ui/ui.h
similarity index 100%
rename from jni/openssl/crypto/ui/ui.h
rename to src/main/jni/openssl/crypto/ui/ui.h
diff --git a/jni/openssl/crypto/ui/ui_compat.c b/src/main/jni/openssl/crypto/ui/ui_compat.c
similarity index 100%
rename from jni/openssl/crypto/ui/ui_compat.c
rename to src/main/jni/openssl/crypto/ui/ui_compat.c
diff --git a/jni/openssl/crypto/ui/ui_compat.h b/src/main/jni/openssl/crypto/ui/ui_compat.h
similarity index 100%
rename from jni/openssl/crypto/ui/ui_compat.h
rename to src/main/jni/openssl/crypto/ui/ui_compat.h
diff --git a/jni/openssl/crypto/ui/ui_err.c b/src/main/jni/openssl/crypto/ui/ui_err.c
similarity index 100%
rename from jni/openssl/crypto/ui/ui_err.c
rename to src/main/jni/openssl/crypto/ui/ui_err.c
diff --git a/jni/openssl/crypto/ui/ui_lib.c b/src/main/jni/openssl/crypto/ui/ui_lib.c
similarity index 100%
rename from jni/openssl/crypto/ui/ui_lib.c
rename to src/main/jni/openssl/crypto/ui/ui_lib.c
diff --git a/jni/openssl/crypto/ui/ui_locl.h b/src/main/jni/openssl/crypto/ui/ui_locl.h
similarity index 100%
rename from jni/openssl/crypto/ui/ui_locl.h
rename to src/main/jni/openssl/crypto/ui/ui_locl.h
diff --git a/jni/openssl/crypto/ui/ui_openssl.c b/src/main/jni/openssl/crypto/ui/ui_openssl.c
similarity index 100%
rename from jni/openssl/crypto/ui/ui_openssl.c
rename to src/main/jni/openssl/crypto/ui/ui_openssl.c
diff --git a/jni/openssl/crypto/ui/ui_util.c b/src/main/jni/openssl/crypto/ui/ui_util.c
similarity index 100%
rename from jni/openssl/crypto/ui/ui_util.c
rename to src/main/jni/openssl/crypto/ui/ui_util.c
diff --git a/jni/openssl/crypto/uid.c b/src/main/jni/openssl/crypto/uid.c
similarity index 100%
rename from jni/openssl/crypto/uid.c
rename to src/main/jni/openssl/crypto/uid.c
diff --git a/jni/openssl/crypto/vms_rms.h b/src/main/jni/openssl/crypto/vms_rms.h
similarity index 100%
rename from jni/openssl/crypto/vms_rms.h
rename to src/main/jni/openssl/crypto/vms_rms.h
diff --git a/jni/openssl/crypto/whrlpool/Makefile b/src/main/jni/openssl/crypto/whrlpool/Makefile
similarity index 100%
rename from jni/openssl/crypto/whrlpool/Makefile
rename to src/main/jni/openssl/crypto/whrlpool/Makefile
diff --git a/jni/openssl/crypto/whrlpool/asm/wp-mmx.pl b/src/main/jni/openssl/crypto/whrlpool/asm/wp-mmx.pl
similarity index 100%
rename from jni/openssl/crypto/whrlpool/asm/wp-mmx.pl
rename to src/main/jni/openssl/crypto/whrlpool/asm/wp-mmx.pl
diff --git a/jni/openssl/crypto/whrlpool/asm/wp-x86_64.pl b/src/main/jni/openssl/crypto/whrlpool/asm/wp-x86_64.pl
similarity index 100%
rename from jni/openssl/crypto/whrlpool/asm/wp-x86_64.pl
rename to src/main/jni/openssl/crypto/whrlpool/asm/wp-x86_64.pl
diff --git a/jni/openssl/crypto/whrlpool/whrlpool.h b/src/main/jni/openssl/crypto/whrlpool/whrlpool.h
similarity index 100%
rename from jni/openssl/crypto/whrlpool/whrlpool.h
rename to src/main/jni/openssl/crypto/whrlpool/whrlpool.h
diff --git a/jni/openssl/crypto/whrlpool/wp_block.c b/src/main/jni/openssl/crypto/whrlpool/wp_block.c
similarity index 100%
rename from jni/openssl/crypto/whrlpool/wp_block.c
rename to src/main/jni/openssl/crypto/whrlpool/wp_block.c
diff --git a/jni/openssl/crypto/whrlpool/wp_dgst.c b/src/main/jni/openssl/crypto/whrlpool/wp_dgst.c
similarity index 100%
rename from jni/openssl/crypto/whrlpool/wp_dgst.c
rename to src/main/jni/openssl/crypto/whrlpool/wp_dgst.c
diff --git a/jni/openssl/crypto/whrlpool/wp_locl.h b/src/main/jni/openssl/crypto/whrlpool/wp_locl.h
similarity index 100%
rename from jni/openssl/crypto/whrlpool/wp_locl.h
rename to src/main/jni/openssl/crypto/whrlpool/wp_locl.h
diff --git a/jni/openssl/crypto/whrlpool/wp_test.c b/src/main/jni/openssl/crypto/whrlpool/wp_test.c
similarity index 100%
rename from jni/openssl/crypto/whrlpool/wp_test.c
rename to src/main/jni/openssl/crypto/whrlpool/wp_test.c
diff --git a/jni/openssl/crypto/x509/Makefile b/src/main/jni/openssl/crypto/x509/Makefile
similarity index 100%
rename from jni/openssl/crypto/x509/Makefile
rename to src/main/jni/openssl/crypto/x509/Makefile
diff --git a/jni/openssl/crypto/x509/by_dir.c b/src/main/jni/openssl/crypto/x509/by_dir.c
similarity index 100%
rename from jni/openssl/crypto/x509/by_dir.c
rename to src/main/jni/openssl/crypto/x509/by_dir.c
diff --git a/jni/openssl/crypto/x509/by_file.c b/src/main/jni/openssl/crypto/x509/by_file.c
similarity index 100%
rename from jni/openssl/crypto/x509/by_file.c
rename to src/main/jni/openssl/crypto/x509/by_file.c
diff --git a/jni/openssl/crypto/x509/x509.h b/src/main/jni/openssl/crypto/x509/x509.h
similarity index 100%
rename from jni/openssl/crypto/x509/x509.h
rename to src/main/jni/openssl/crypto/x509/x509.h
diff --git a/jni/openssl/crypto/x509/x509_att.c b/src/main/jni/openssl/crypto/x509/x509_att.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509_att.c
rename to src/main/jni/openssl/crypto/x509/x509_att.c
diff --git a/jni/openssl/crypto/x509/x509_cmp.c b/src/main/jni/openssl/crypto/x509/x509_cmp.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509_cmp.c
rename to src/main/jni/openssl/crypto/x509/x509_cmp.c
diff --git a/jni/openssl/crypto/x509/x509_d2.c b/src/main/jni/openssl/crypto/x509/x509_d2.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509_d2.c
rename to src/main/jni/openssl/crypto/x509/x509_d2.c
diff --git a/jni/openssl/crypto/x509/x509_def.c b/src/main/jni/openssl/crypto/x509/x509_def.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509_def.c
rename to src/main/jni/openssl/crypto/x509/x509_def.c
diff --git a/jni/openssl/crypto/x509/x509_err.c b/src/main/jni/openssl/crypto/x509/x509_err.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509_err.c
rename to src/main/jni/openssl/crypto/x509/x509_err.c
diff --git a/jni/openssl/crypto/x509/x509_ext.c b/src/main/jni/openssl/crypto/x509/x509_ext.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509_ext.c
rename to src/main/jni/openssl/crypto/x509/x509_ext.c
diff --git a/jni/openssl/crypto/x509/x509_lu.c b/src/main/jni/openssl/crypto/x509/x509_lu.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509_lu.c
rename to src/main/jni/openssl/crypto/x509/x509_lu.c
diff --git a/jni/openssl/crypto/x509/x509_obj.c b/src/main/jni/openssl/crypto/x509/x509_obj.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509_obj.c
rename to src/main/jni/openssl/crypto/x509/x509_obj.c
diff --git a/jni/openssl/crypto/x509/x509_r2x.c b/src/main/jni/openssl/crypto/x509/x509_r2x.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509_r2x.c
rename to src/main/jni/openssl/crypto/x509/x509_r2x.c
diff --git a/jni/openssl/crypto/x509/x509_req.c b/src/main/jni/openssl/crypto/x509/x509_req.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509_req.c
rename to src/main/jni/openssl/crypto/x509/x509_req.c
diff --git a/jni/openssl/crypto/x509/x509_set.c b/src/main/jni/openssl/crypto/x509/x509_set.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509_set.c
rename to src/main/jni/openssl/crypto/x509/x509_set.c
diff --git a/jni/openssl/crypto/x509/x509_trs.c b/src/main/jni/openssl/crypto/x509/x509_trs.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509_trs.c
rename to src/main/jni/openssl/crypto/x509/x509_trs.c
diff --git a/jni/openssl/crypto/x509/x509_txt.c b/src/main/jni/openssl/crypto/x509/x509_txt.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509_txt.c
rename to src/main/jni/openssl/crypto/x509/x509_txt.c
diff --git a/jni/openssl/crypto/x509/x509_v3.c b/src/main/jni/openssl/crypto/x509/x509_v3.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509_v3.c
rename to src/main/jni/openssl/crypto/x509/x509_v3.c
diff --git a/jni/openssl/crypto/x509/x509_vfy.c b/src/main/jni/openssl/crypto/x509/x509_vfy.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509_vfy.c
rename to src/main/jni/openssl/crypto/x509/x509_vfy.c
diff --git a/jni/openssl/crypto/x509/x509_vfy.h b/src/main/jni/openssl/crypto/x509/x509_vfy.h
similarity index 100%
rename from jni/openssl/crypto/x509/x509_vfy.h
rename to src/main/jni/openssl/crypto/x509/x509_vfy.h
diff --git a/jni/openssl/crypto/x509/x509_vpm.c b/src/main/jni/openssl/crypto/x509/x509_vpm.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509_vpm.c
rename to src/main/jni/openssl/crypto/x509/x509_vpm.c
diff --git a/jni/openssl/crypto/x509/x509cset.c b/src/main/jni/openssl/crypto/x509/x509cset.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509cset.c
rename to src/main/jni/openssl/crypto/x509/x509cset.c
diff --git a/jni/openssl/crypto/x509/x509name.c b/src/main/jni/openssl/crypto/x509/x509name.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509name.c
rename to src/main/jni/openssl/crypto/x509/x509name.c
diff --git a/jni/openssl/crypto/x509/x509rset.c b/src/main/jni/openssl/crypto/x509/x509rset.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509rset.c
rename to src/main/jni/openssl/crypto/x509/x509rset.c
diff --git a/jni/openssl/crypto/x509/x509spki.c b/src/main/jni/openssl/crypto/x509/x509spki.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509spki.c
rename to src/main/jni/openssl/crypto/x509/x509spki.c
diff --git a/jni/openssl/crypto/x509/x509type.c b/src/main/jni/openssl/crypto/x509/x509type.c
similarity index 100%
rename from jni/openssl/crypto/x509/x509type.c
rename to src/main/jni/openssl/crypto/x509/x509type.c
diff --git a/jni/openssl/crypto/x509/x_all.c b/src/main/jni/openssl/crypto/x509/x_all.c
similarity index 100%
rename from jni/openssl/crypto/x509/x_all.c
rename to src/main/jni/openssl/crypto/x509/x_all.c
diff --git a/jni/openssl/crypto/x509v3/Makefile b/src/main/jni/openssl/crypto/x509v3/Makefile
similarity index 100%
rename from jni/openssl/crypto/x509v3/Makefile
rename to src/main/jni/openssl/crypto/x509v3/Makefile
diff --git a/jni/openssl/crypto/x509v3/ext_dat.h b/src/main/jni/openssl/crypto/x509v3/ext_dat.h
similarity index 100%
rename from jni/openssl/crypto/x509v3/ext_dat.h
rename to src/main/jni/openssl/crypto/x509v3/ext_dat.h
diff --git a/jni/openssl/crypto/x509v3/pcy_cache.c b/src/main/jni/openssl/crypto/x509v3/pcy_cache.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/pcy_cache.c
rename to src/main/jni/openssl/crypto/x509v3/pcy_cache.c
diff --git a/jni/openssl/crypto/x509v3/pcy_data.c b/src/main/jni/openssl/crypto/x509v3/pcy_data.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/pcy_data.c
rename to src/main/jni/openssl/crypto/x509v3/pcy_data.c
diff --git a/jni/openssl/crypto/x509v3/pcy_int.h b/src/main/jni/openssl/crypto/x509v3/pcy_int.h
similarity index 100%
rename from jni/openssl/crypto/x509v3/pcy_int.h
rename to src/main/jni/openssl/crypto/x509v3/pcy_int.h
diff --git a/jni/openssl/crypto/x509v3/pcy_lib.c b/src/main/jni/openssl/crypto/x509v3/pcy_lib.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/pcy_lib.c
rename to src/main/jni/openssl/crypto/x509v3/pcy_lib.c
diff --git a/jni/openssl/crypto/x509v3/pcy_map.c b/src/main/jni/openssl/crypto/x509v3/pcy_map.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/pcy_map.c
rename to src/main/jni/openssl/crypto/x509v3/pcy_map.c
diff --git a/jni/openssl/crypto/x509v3/pcy_node.c b/src/main/jni/openssl/crypto/x509v3/pcy_node.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/pcy_node.c
rename to src/main/jni/openssl/crypto/x509v3/pcy_node.c
diff --git a/jni/openssl/crypto/x509v3/pcy_tree.c b/src/main/jni/openssl/crypto/x509v3/pcy_tree.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/pcy_tree.c
rename to src/main/jni/openssl/crypto/x509v3/pcy_tree.c
diff --git a/jni/openssl/crypto/x509v3/tabtest.c b/src/main/jni/openssl/crypto/x509v3/tabtest.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/tabtest.c
rename to src/main/jni/openssl/crypto/x509v3/tabtest.c
diff --git a/jni/openssl/crypto/x509v3/v3_addr.c b/src/main/jni/openssl/crypto/x509v3/v3_addr.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_addr.c
rename to src/main/jni/openssl/crypto/x509v3/v3_addr.c
diff --git a/jni/openssl/crypto/x509v3/v3_akey.c b/src/main/jni/openssl/crypto/x509v3/v3_akey.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_akey.c
rename to src/main/jni/openssl/crypto/x509v3/v3_akey.c
diff --git a/jni/openssl/crypto/x509v3/v3_akeya.c b/src/main/jni/openssl/crypto/x509v3/v3_akeya.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_akeya.c
rename to src/main/jni/openssl/crypto/x509v3/v3_akeya.c
diff --git a/jni/openssl/crypto/x509v3/v3_alt.c b/src/main/jni/openssl/crypto/x509v3/v3_alt.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_alt.c
rename to src/main/jni/openssl/crypto/x509v3/v3_alt.c
diff --git a/jni/openssl/crypto/x509v3/v3_asid.c b/src/main/jni/openssl/crypto/x509v3/v3_asid.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_asid.c
rename to src/main/jni/openssl/crypto/x509v3/v3_asid.c
diff --git a/jni/openssl/crypto/x509v3/v3_bcons.c b/src/main/jni/openssl/crypto/x509v3/v3_bcons.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_bcons.c
rename to src/main/jni/openssl/crypto/x509v3/v3_bcons.c
diff --git a/jni/openssl/crypto/x509v3/v3_bitst.c b/src/main/jni/openssl/crypto/x509v3/v3_bitst.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_bitst.c
rename to src/main/jni/openssl/crypto/x509v3/v3_bitst.c
diff --git a/jni/openssl/crypto/x509v3/v3_conf.c b/src/main/jni/openssl/crypto/x509v3/v3_conf.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_conf.c
rename to src/main/jni/openssl/crypto/x509v3/v3_conf.c
diff --git a/jni/openssl/crypto/x509v3/v3_cpols.c b/src/main/jni/openssl/crypto/x509v3/v3_cpols.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_cpols.c
rename to src/main/jni/openssl/crypto/x509v3/v3_cpols.c
diff --git a/jni/openssl/crypto/x509v3/v3_crld.c b/src/main/jni/openssl/crypto/x509v3/v3_crld.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_crld.c
rename to src/main/jni/openssl/crypto/x509v3/v3_crld.c
diff --git a/jni/openssl/crypto/x509v3/v3_enum.c b/src/main/jni/openssl/crypto/x509v3/v3_enum.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_enum.c
rename to src/main/jni/openssl/crypto/x509v3/v3_enum.c
diff --git a/jni/openssl/crypto/x509v3/v3_extku.c b/src/main/jni/openssl/crypto/x509v3/v3_extku.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_extku.c
rename to src/main/jni/openssl/crypto/x509v3/v3_extku.c
diff --git a/jni/openssl/crypto/x509v3/v3_genn.c b/src/main/jni/openssl/crypto/x509v3/v3_genn.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_genn.c
rename to src/main/jni/openssl/crypto/x509v3/v3_genn.c
diff --git a/jni/openssl/crypto/x509v3/v3_ia5.c b/src/main/jni/openssl/crypto/x509v3/v3_ia5.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_ia5.c
rename to src/main/jni/openssl/crypto/x509v3/v3_ia5.c
diff --git a/jni/openssl/crypto/x509v3/v3_info.c b/src/main/jni/openssl/crypto/x509v3/v3_info.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_info.c
rename to src/main/jni/openssl/crypto/x509v3/v3_info.c
diff --git a/jni/openssl/crypto/x509v3/v3_int.c b/src/main/jni/openssl/crypto/x509v3/v3_int.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_int.c
rename to src/main/jni/openssl/crypto/x509v3/v3_int.c
diff --git a/jni/openssl/crypto/x509v3/v3_lib.c b/src/main/jni/openssl/crypto/x509v3/v3_lib.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_lib.c
rename to src/main/jni/openssl/crypto/x509v3/v3_lib.c
diff --git a/jni/openssl/crypto/x509v3/v3_ncons.c b/src/main/jni/openssl/crypto/x509v3/v3_ncons.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_ncons.c
rename to src/main/jni/openssl/crypto/x509v3/v3_ncons.c
diff --git a/jni/openssl/crypto/x509v3/v3_ocsp.c b/src/main/jni/openssl/crypto/x509v3/v3_ocsp.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_ocsp.c
rename to src/main/jni/openssl/crypto/x509v3/v3_ocsp.c
diff --git a/jni/openssl/crypto/x509v3/v3_pci.c b/src/main/jni/openssl/crypto/x509v3/v3_pci.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_pci.c
rename to src/main/jni/openssl/crypto/x509v3/v3_pci.c
diff --git a/jni/openssl/crypto/x509v3/v3_pcia.c b/src/main/jni/openssl/crypto/x509v3/v3_pcia.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_pcia.c
rename to src/main/jni/openssl/crypto/x509v3/v3_pcia.c
diff --git a/jni/openssl/crypto/x509v3/v3_pcons.c b/src/main/jni/openssl/crypto/x509v3/v3_pcons.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_pcons.c
rename to src/main/jni/openssl/crypto/x509v3/v3_pcons.c
diff --git a/jni/openssl/crypto/x509v3/v3_pku.c b/src/main/jni/openssl/crypto/x509v3/v3_pku.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_pku.c
rename to src/main/jni/openssl/crypto/x509v3/v3_pku.c
diff --git a/jni/openssl/crypto/x509v3/v3_pmaps.c b/src/main/jni/openssl/crypto/x509v3/v3_pmaps.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_pmaps.c
rename to src/main/jni/openssl/crypto/x509v3/v3_pmaps.c
diff --git a/jni/openssl/crypto/x509v3/v3_prn.c b/src/main/jni/openssl/crypto/x509v3/v3_prn.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_prn.c
rename to src/main/jni/openssl/crypto/x509v3/v3_prn.c
diff --git a/jni/openssl/crypto/x509v3/v3_purp.c b/src/main/jni/openssl/crypto/x509v3/v3_purp.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_purp.c
rename to src/main/jni/openssl/crypto/x509v3/v3_purp.c
diff --git a/jni/openssl/crypto/x509v3/v3_skey.c b/src/main/jni/openssl/crypto/x509v3/v3_skey.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_skey.c
rename to src/main/jni/openssl/crypto/x509v3/v3_skey.c
diff --git a/jni/openssl/crypto/x509v3/v3_sxnet.c b/src/main/jni/openssl/crypto/x509v3/v3_sxnet.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_sxnet.c
rename to src/main/jni/openssl/crypto/x509v3/v3_sxnet.c
diff --git a/jni/openssl/crypto/x509v3/v3_utl.c b/src/main/jni/openssl/crypto/x509v3/v3_utl.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3_utl.c
rename to src/main/jni/openssl/crypto/x509v3/v3_utl.c
diff --git a/jni/openssl/crypto/x509v3/v3conf.c b/src/main/jni/openssl/crypto/x509v3/v3conf.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3conf.c
rename to src/main/jni/openssl/crypto/x509v3/v3conf.c
diff --git a/jni/openssl/crypto/x509v3/v3err.c b/src/main/jni/openssl/crypto/x509v3/v3err.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3err.c
rename to src/main/jni/openssl/crypto/x509v3/v3err.c
diff --git a/jni/openssl/crypto/x509v3/v3prin.c b/src/main/jni/openssl/crypto/x509v3/v3prin.c
similarity index 100%
rename from jni/openssl/crypto/x509v3/v3prin.c
rename to src/main/jni/openssl/crypto/x509v3/v3prin.c
diff --git a/jni/openssl/crypto/x509v3/x509v3.h b/src/main/jni/openssl/crypto/x509v3/x509v3.h
similarity index 100%
rename from jni/openssl/crypto/x509v3/x509v3.h
rename to src/main/jni/openssl/crypto/x509v3/x509v3.h
diff --git a/jni/openssl/crypto/x86_64cpuid.pl b/src/main/jni/openssl/crypto/x86_64cpuid.pl
similarity index 100%
rename from jni/openssl/crypto/x86_64cpuid.pl
rename to src/main/jni/openssl/crypto/x86_64cpuid.pl
diff --git a/jni/openssl/crypto/x86cpuid.pl b/src/main/jni/openssl/crypto/x86cpuid.pl
similarity index 100%
rename from jni/openssl/crypto/x86cpuid.pl
rename to src/main/jni/openssl/crypto/x86cpuid.pl
diff --git a/jni/openssl/e_os.h b/src/main/jni/openssl/e_os.h
similarity index 100%
rename from jni/openssl/e_os.h
rename to src/main/jni/openssl/e_os.h
diff --git a/jni/openssl/e_os2.h b/src/main/jni/openssl/e_os2.h
similarity index 100%
rename from jni/openssl/e_os2.h
rename to src/main/jni/openssl/e_os2.h
diff --git a/jni/openssl/include/openssl/aes.h b/src/main/jni/openssl/include/openssl/aes.h
similarity index 100%
rename from jni/openssl/include/openssl/aes.h
rename to src/main/jni/openssl/include/openssl/aes.h
diff --git a/jni/openssl/include/openssl/asn1.h b/src/main/jni/openssl/include/openssl/asn1.h
similarity index 100%
rename from jni/openssl/include/openssl/asn1.h
rename to src/main/jni/openssl/include/openssl/asn1.h
diff --git a/jni/openssl/include/openssl/asn1_mac.h b/src/main/jni/openssl/include/openssl/asn1_mac.h
similarity index 100%
rename from jni/openssl/include/openssl/asn1_mac.h
rename to src/main/jni/openssl/include/openssl/asn1_mac.h
diff --git a/jni/openssl/include/openssl/asn1t.h b/src/main/jni/openssl/include/openssl/asn1t.h
similarity index 100%
rename from jni/openssl/include/openssl/asn1t.h
rename to src/main/jni/openssl/include/openssl/asn1t.h
diff --git a/jni/openssl/include/openssl/bio.h b/src/main/jni/openssl/include/openssl/bio.h
similarity index 100%
rename from jni/openssl/include/openssl/bio.h
rename to src/main/jni/openssl/include/openssl/bio.h
diff --git a/jni/openssl/include/openssl/blowfish.h b/src/main/jni/openssl/include/openssl/blowfish.h
similarity index 100%
rename from jni/openssl/include/openssl/blowfish.h
rename to src/main/jni/openssl/include/openssl/blowfish.h
diff --git a/jni/openssl/include/openssl/bn.h b/src/main/jni/openssl/include/openssl/bn.h
similarity index 100%
rename from jni/openssl/include/openssl/bn.h
rename to src/main/jni/openssl/include/openssl/bn.h
diff --git a/jni/openssl/include/openssl/buffer.h b/src/main/jni/openssl/include/openssl/buffer.h
similarity index 100%
rename from jni/openssl/include/openssl/buffer.h
rename to src/main/jni/openssl/include/openssl/buffer.h
diff --git a/jni/openssl/include/openssl/camellia.h b/src/main/jni/openssl/include/openssl/camellia.h
similarity index 100%
rename from jni/openssl/include/openssl/camellia.h
rename to src/main/jni/openssl/include/openssl/camellia.h
diff --git a/jni/openssl/include/openssl/cast.h b/src/main/jni/openssl/include/openssl/cast.h
similarity index 100%
rename from jni/openssl/include/openssl/cast.h
rename to src/main/jni/openssl/include/openssl/cast.h
diff --git a/jni/openssl/include/openssl/cmac.h b/src/main/jni/openssl/include/openssl/cmac.h
similarity index 100%
rename from jni/openssl/include/openssl/cmac.h
rename to src/main/jni/openssl/include/openssl/cmac.h
diff --git a/jni/openssl/include/openssl/comp.h b/src/main/jni/openssl/include/openssl/comp.h
similarity index 100%
rename from jni/openssl/include/openssl/comp.h
rename to src/main/jni/openssl/include/openssl/comp.h
diff --git a/jni/openssl/include/openssl/conf.h b/src/main/jni/openssl/include/openssl/conf.h
similarity index 100%
rename from jni/openssl/include/openssl/conf.h
rename to src/main/jni/openssl/include/openssl/conf.h
diff --git a/jni/openssl/include/openssl/conf_api.h b/src/main/jni/openssl/include/openssl/conf_api.h
similarity index 100%
rename from jni/openssl/include/openssl/conf_api.h
rename to src/main/jni/openssl/include/openssl/conf_api.h
diff --git a/jni/openssl/include/openssl/crypto.h b/src/main/jni/openssl/include/openssl/crypto.h
similarity index 100%
rename from jni/openssl/include/openssl/crypto.h
rename to src/main/jni/openssl/include/openssl/crypto.h
diff --git a/jni/openssl/include/openssl/des.h b/src/main/jni/openssl/include/openssl/des.h
similarity index 100%
rename from jni/openssl/include/openssl/des.h
rename to src/main/jni/openssl/include/openssl/des.h
diff --git a/jni/openssl/include/openssl/des_old.h b/src/main/jni/openssl/include/openssl/des_old.h
similarity index 100%
rename from jni/openssl/include/openssl/des_old.h
rename to src/main/jni/openssl/include/openssl/des_old.h
diff --git a/jni/openssl/include/openssl/dh.h b/src/main/jni/openssl/include/openssl/dh.h
similarity index 100%
rename from jni/openssl/include/openssl/dh.h
rename to src/main/jni/openssl/include/openssl/dh.h
diff --git a/jni/openssl/include/openssl/dsa.h b/src/main/jni/openssl/include/openssl/dsa.h
similarity index 100%
rename from jni/openssl/include/openssl/dsa.h
rename to src/main/jni/openssl/include/openssl/dsa.h
diff --git a/jni/openssl/include/openssl/dso.h b/src/main/jni/openssl/include/openssl/dso.h
similarity index 100%
rename from jni/openssl/include/openssl/dso.h
rename to src/main/jni/openssl/include/openssl/dso.h
diff --git a/jni/openssl/include/openssl/dtls1.h b/src/main/jni/openssl/include/openssl/dtls1.h
similarity index 100%
rename from jni/openssl/include/openssl/dtls1.h
rename to src/main/jni/openssl/include/openssl/dtls1.h
diff --git a/jni/openssl/include/openssl/e_os2.h b/src/main/jni/openssl/include/openssl/e_os2.h
similarity index 100%
rename from jni/openssl/include/openssl/e_os2.h
rename to src/main/jni/openssl/include/openssl/e_os2.h
diff --git a/jni/openssl/include/openssl/ebcdic.h b/src/main/jni/openssl/include/openssl/ebcdic.h
similarity index 100%
rename from jni/openssl/include/openssl/ebcdic.h
rename to src/main/jni/openssl/include/openssl/ebcdic.h
diff --git a/jni/openssl/include/openssl/ec.h b/src/main/jni/openssl/include/openssl/ec.h
similarity index 100%
rename from jni/openssl/include/openssl/ec.h
rename to src/main/jni/openssl/include/openssl/ec.h
diff --git a/jni/openssl/include/openssl/ecdh.h b/src/main/jni/openssl/include/openssl/ecdh.h
similarity index 100%
rename from jni/openssl/include/openssl/ecdh.h
rename to src/main/jni/openssl/include/openssl/ecdh.h
diff --git a/jni/openssl/include/openssl/ecdsa.h b/src/main/jni/openssl/include/openssl/ecdsa.h
similarity index 100%
rename from jni/openssl/include/openssl/ecdsa.h
rename to src/main/jni/openssl/include/openssl/ecdsa.h
diff --git a/jni/openssl/include/openssl/engine.h b/src/main/jni/openssl/include/openssl/engine.h
similarity index 100%
rename from jni/openssl/include/openssl/engine.h
rename to src/main/jni/openssl/include/openssl/engine.h
diff --git a/jni/openssl/include/openssl/err.h b/src/main/jni/openssl/include/openssl/err.h
similarity index 100%
rename from jni/openssl/include/openssl/err.h
rename to src/main/jni/openssl/include/openssl/err.h
diff --git a/jni/openssl/include/openssl/evp.h b/src/main/jni/openssl/include/openssl/evp.h
similarity index 100%
rename from jni/openssl/include/openssl/evp.h
rename to src/main/jni/openssl/include/openssl/evp.h
diff --git a/jni/openssl/include/openssl/hmac.h b/src/main/jni/openssl/include/openssl/hmac.h
similarity index 100%
rename from jni/openssl/include/openssl/hmac.h
rename to src/main/jni/openssl/include/openssl/hmac.h
diff --git a/jni/openssl/include/openssl/idea.h b/src/main/jni/openssl/include/openssl/idea.h
similarity index 100%
rename from jni/openssl/include/openssl/idea.h
rename to src/main/jni/openssl/include/openssl/idea.h
diff --git a/jni/openssl/include/openssl/krb5_asn.h b/src/main/jni/openssl/include/openssl/krb5_asn.h
similarity index 100%
rename from jni/openssl/include/openssl/krb5_asn.h
rename to src/main/jni/openssl/include/openssl/krb5_asn.h
diff --git a/jni/openssl/include/openssl/kssl.h b/src/main/jni/openssl/include/openssl/kssl.h
similarity index 100%
rename from jni/openssl/include/openssl/kssl.h
rename to src/main/jni/openssl/include/openssl/kssl.h
diff --git a/jni/openssl/include/openssl/lhash.h b/src/main/jni/openssl/include/openssl/lhash.h
similarity index 100%
rename from jni/openssl/include/openssl/lhash.h
rename to src/main/jni/openssl/include/openssl/lhash.h
diff --git a/jni/openssl/include/openssl/md4.h b/src/main/jni/openssl/include/openssl/md4.h
similarity index 100%
rename from jni/openssl/include/openssl/md4.h
rename to src/main/jni/openssl/include/openssl/md4.h
diff --git a/jni/openssl/include/openssl/md5.h b/src/main/jni/openssl/include/openssl/md5.h
similarity index 100%
rename from jni/openssl/include/openssl/md5.h
rename to src/main/jni/openssl/include/openssl/md5.h
diff --git a/jni/openssl/include/openssl/mdc2.h b/src/main/jni/openssl/include/openssl/mdc2.h
similarity index 100%
rename from jni/openssl/include/openssl/mdc2.h
rename to src/main/jni/openssl/include/openssl/mdc2.h
diff --git a/jni/openssl/include/openssl/modes.h b/src/main/jni/openssl/include/openssl/modes.h
similarity index 100%
rename from jni/openssl/include/openssl/modes.h
rename to src/main/jni/openssl/include/openssl/modes.h
diff --git a/jni/openssl/include/openssl/obj_mac.h b/src/main/jni/openssl/include/openssl/obj_mac.h
similarity index 100%
rename from jni/openssl/include/openssl/obj_mac.h
rename to src/main/jni/openssl/include/openssl/obj_mac.h
diff --git a/jni/openssl/include/openssl/objects.h b/src/main/jni/openssl/include/openssl/objects.h
similarity index 100%
rename from jni/openssl/include/openssl/objects.h
rename to src/main/jni/openssl/include/openssl/objects.h
diff --git a/jni/openssl/include/openssl/ocsp.h b/src/main/jni/openssl/include/openssl/ocsp.h
similarity index 100%
rename from jni/openssl/include/openssl/ocsp.h
rename to src/main/jni/openssl/include/openssl/ocsp.h
diff --git a/jni/openssl/include/openssl/opensslconf.h b/src/main/jni/openssl/include/openssl/opensslconf.h
similarity index 100%
rename from jni/openssl/include/openssl/opensslconf.h
rename to src/main/jni/openssl/include/openssl/opensslconf.h
diff --git a/jni/openssl/include/openssl/opensslv.h b/src/main/jni/openssl/include/openssl/opensslv.h
similarity index 100%
rename from jni/openssl/include/openssl/opensslv.h
rename to src/main/jni/openssl/include/openssl/opensslv.h
diff --git a/jni/openssl/include/openssl/ossl_typ.h b/src/main/jni/openssl/include/openssl/ossl_typ.h
similarity index 100%
rename from jni/openssl/include/openssl/ossl_typ.h
rename to src/main/jni/openssl/include/openssl/ossl_typ.h
diff --git a/jni/openssl/include/openssl/pem.h b/src/main/jni/openssl/include/openssl/pem.h
similarity index 100%
rename from jni/openssl/include/openssl/pem.h
rename to src/main/jni/openssl/include/openssl/pem.h
diff --git a/jni/openssl/include/openssl/pem2.h b/src/main/jni/openssl/include/openssl/pem2.h
similarity index 100%
rename from jni/openssl/include/openssl/pem2.h
rename to src/main/jni/openssl/include/openssl/pem2.h
diff --git a/jni/openssl/include/openssl/pkcs12.h b/src/main/jni/openssl/include/openssl/pkcs12.h
similarity index 100%
rename from jni/openssl/include/openssl/pkcs12.h
rename to src/main/jni/openssl/include/openssl/pkcs12.h
diff --git a/jni/openssl/include/openssl/pkcs7.h b/src/main/jni/openssl/include/openssl/pkcs7.h
similarity index 100%
rename from jni/openssl/include/openssl/pkcs7.h
rename to src/main/jni/openssl/include/openssl/pkcs7.h
diff --git a/jni/openssl/include/openssl/pqueue.h b/src/main/jni/openssl/include/openssl/pqueue.h
similarity index 100%
rename from jni/openssl/include/openssl/pqueue.h
rename to src/main/jni/openssl/include/openssl/pqueue.h
diff --git a/jni/openssl/include/openssl/rand.h b/src/main/jni/openssl/include/openssl/rand.h
similarity index 100%
rename from jni/openssl/include/openssl/rand.h
rename to src/main/jni/openssl/include/openssl/rand.h
diff --git a/jni/openssl/include/openssl/rc2.h b/src/main/jni/openssl/include/openssl/rc2.h
similarity index 100%
rename from jni/openssl/include/openssl/rc2.h
rename to src/main/jni/openssl/include/openssl/rc2.h
diff --git a/jni/openssl/include/openssl/rc4.h b/src/main/jni/openssl/include/openssl/rc4.h
similarity index 100%
rename from jni/openssl/include/openssl/rc4.h
rename to src/main/jni/openssl/include/openssl/rc4.h
diff --git a/jni/openssl/include/openssl/ripemd.h b/src/main/jni/openssl/include/openssl/ripemd.h
similarity index 100%
rename from jni/openssl/include/openssl/ripemd.h
rename to src/main/jni/openssl/include/openssl/ripemd.h
diff --git a/jni/openssl/include/openssl/rsa.h b/src/main/jni/openssl/include/openssl/rsa.h
similarity index 100%
rename from jni/openssl/include/openssl/rsa.h
rename to src/main/jni/openssl/include/openssl/rsa.h
diff --git a/jni/openssl/include/openssl/safestack.h b/src/main/jni/openssl/include/openssl/safestack.h
similarity index 100%
rename from jni/openssl/include/openssl/safestack.h
rename to src/main/jni/openssl/include/openssl/safestack.h
diff --git a/jni/openssl/include/openssl/seed.h b/src/main/jni/openssl/include/openssl/seed.h
similarity index 100%
rename from jni/openssl/include/openssl/seed.h
rename to src/main/jni/openssl/include/openssl/seed.h
diff --git a/jni/openssl/include/openssl/sha.h b/src/main/jni/openssl/include/openssl/sha.h
similarity index 100%
rename from jni/openssl/include/openssl/sha.h
rename to src/main/jni/openssl/include/openssl/sha.h
diff --git a/jni/openssl/include/openssl/srp.h b/src/main/jni/openssl/include/openssl/srp.h
similarity index 100%
rename from jni/openssl/include/openssl/srp.h
rename to src/main/jni/openssl/include/openssl/srp.h
diff --git a/jni/openssl/include/openssl/srtp.h b/src/main/jni/openssl/include/openssl/srtp.h
similarity index 100%
rename from jni/openssl/include/openssl/srtp.h
rename to src/main/jni/openssl/include/openssl/srtp.h
diff --git a/jni/openssl/include/openssl/ssl.h b/src/main/jni/openssl/include/openssl/ssl.h
similarity index 100%
rename from jni/openssl/include/openssl/ssl.h
rename to src/main/jni/openssl/include/openssl/ssl.h
diff --git a/jni/openssl/include/openssl/ssl2.h b/src/main/jni/openssl/include/openssl/ssl2.h
similarity index 100%
rename from jni/openssl/include/openssl/ssl2.h
rename to src/main/jni/openssl/include/openssl/ssl2.h
diff --git a/jni/openssl/include/openssl/ssl23.h b/src/main/jni/openssl/include/openssl/ssl23.h
similarity index 100%
rename from jni/openssl/include/openssl/ssl23.h
rename to src/main/jni/openssl/include/openssl/ssl23.h
diff --git a/jni/openssl/include/openssl/ssl3.h b/src/main/jni/openssl/include/openssl/ssl3.h
similarity index 100%
rename from jni/openssl/include/openssl/ssl3.h
rename to src/main/jni/openssl/include/openssl/ssl3.h
diff --git a/jni/openssl/include/openssl/stack.h b/src/main/jni/openssl/include/openssl/stack.h
similarity index 100%
rename from jni/openssl/include/openssl/stack.h
rename to src/main/jni/openssl/include/openssl/stack.h
diff --git a/jni/openssl/include/openssl/symhacks.h b/src/main/jni/openssl/include/openssl/symhacks.h
similarity index 100%
rename from jni/openssl/include/openssl/symhacks.h
rename to src/main/jni/openssl/include/openssl/symhacks.h
diff --git a/jni/openssl/include/openssl/tls1.h b/src/main/jni/openssl/include/openssl/tls1.h
similarity index 100%
rename from jni/openssl/include/openssl/tls1.h
rename to src/main/jni/openssl/include/openssl/tls1.h
diff --git a/jni/openssl/include/openssl/ts.h b/src/main/jni/openssl/include/openssl/ts.h
similarity index 100%
rename from jni/openssl/include/openssl/ts.h
rename to src/main/jni/openssl/include/openssl/ts.h
diff --git a/jni/openssl/include/openssl/txt_db.h b/src/main/jni/openssl/include/openssl/txt_db.h
similarity index 100%
rename from jni/openssl/include/openssl/txt_db.h
rename to src/main/jni/openssl/include/openssl/txt_db.h
diff --git a/jni/openssl/include/openssl/ui.h b/src/main/jni/openssl/include/openssl/ui.h
similarity index 100%
rename from jni/openssl/include/openssl/ui.h
rename to src/main/jni/openssl/include/openssl/ui.h
diff --git a/jni/openssl/include/openssl/ui_compat.h b/src/main/jni/openssl/include/openssl/ui_compat.h
similarity index 100%
rename from jni/openssl/include/openssl/ui_compat.h
rename to src/main/jni/openssl/include/openssl/ui_compat.h
diff --git a/jni/openssl/include/openssl/whrlpool.h b/src/main/jni/openssl/include/openssl/whrlpool.h
similarity index 100%
rename from jni/openssl/include/openssl/whrlpool.h
rename to src/main/jni/openssl/include/openssl/whrlpool.h
diff --git a/jni/openssl/include/openssl/x509.h b/src/main/jni/openssl/include/openssl/x509.h
similarity index 100%
rename from jni/openssl/include/openssl/x509.h
rename to src/main/jni/openssl/include/openssl/x509.h
diff --git a/jni/openssl/include/openssl/x509_vfy.h b/src/main/jni/openssl/include/openssl/x509_vfy.h
similarity index 100%
rename from jni/openssl/include/openssl/x509_vfy.h
rename to src/main/jni/openssl/include/openssl/x509_vfy.h
diff --git a/jni/openssl/include/openssl/x509v3.h b/src/main/jni/openssl/include/openssl/x509v3.h
similarity index 100%
rename from jni/openssl/include/openssl/x509v3.h
rename to src/main/jni/openssl/include/openssl/x509v3.h
diff --git a/jni/openssl/ssl/Android.mk b/src/main/jni/openssl/ssl/Android.mk
similarity index 100%
rename from jni/openssl/ssl/Android.mk
rename to src/main/jni/openssl/ssl/Android.mk
diff --git a/jni/openssl/ssl/Makefile b/src/main/jni/openssl/ssl/Makefile
similarity index 100%
rename from jni/openssl/ssl/Makefile
rename to src/main/jni/openssl/ssl/Makefile
diff --git a/jni/openssl/ssl/bio_ssl.c b/src/main/jni/openssl/ssl/bio_ssl.c
similarity index 100%
rename from jni/openssl/ssl/bio_ssl.c
rename to src/main/jni/openssl/ssl/bio_ssl.c
diff --git a/jni/openssl/ssl/d1_both.c b/src/main/jni/openssl/ssl/d1_both.c
similarity index 100%
rename from jni/openssl/ssl/d1_both.c
rename to src/main/jni/openssl/ssl/d1_both.c
diff --git a/jni/openssl/ssl/d1_clnt.c b/src/main/jni/openssl/ssl/d1_clnt.c
similarity index 100%
rename from jni/openssl/ssl/d1_clnt.c
rename to src/main/jni/openssl/ssl/d1_clnt.c
diff --git a/jni/openssl/ssl/d1_enc.c b/src/main/jni/openssl/ssl/d1_enc.c
similarity index 100%
rename from jni/openssl/ssl/d1_enc.c
rename to src/main/jni/openssl/ssl/d1_enc.c
diff --git a/jni/openssl/ssl/d1_lib.c b/src/main/jni/openssl/ssl/d1_lib.c
similarity index 100%
rename from jni/openssl/ssl/d1_lib.c
rename to src/main/jni/openssl/ssl/d1_lib.c
diff --git a/jni/openssl/ssl/d1_meth.c b/src/main/jni/openssl/ssl/d1_meth.c
similarity index 100%
rename from jni/openssl/ssl/d1_meth.c
rename to src/main/jni/openssl/ssl/d1_meth.c
diff --git a/jni/openssl/ssl/d1_pkt.c b/src/main/jni/openssl/ssl/d1_pkt.c
similarity index 100%
rename from jni/openssl/ssl/d1_pkt.c
rename to src/main/jni/openssl/ssl/d1_pkt.c
diff --git a/jni/openssl/ssl/d1_srtp.c b/src/main/jni/openssl/ssl/d1_srtp.c
similarity index 100%
rename from jni/openssl/ssl/d1_srtp.c
rename to src/main/jni/openssl/ssl/d1_srtp.c
diff --git a/jni/openssl/ssl/d1_srvr.c b/src/main/jni/openssl/ssl/d1_srvr.c
similarity index 100%
rename from jni/openssl/ssl/d1_srvr.c
rename to src/main/jni/openssl/ssl/d1_srvr.c
diff --git a/jni/openssl/ssl/dtls1.h b/src/main/jni/openssl/ssl/dtls1.h
similarity index 100%
rename from jni/openssl/ssl/dtls1.h
rename to src/main/jni/openssl/ssl/dtls1.h
diff --git a/jni/openssl/ssl/install-ssl.com b/src/main/jni/openssl/ssl/install-ssl.com
similarity index 100%
rename from jni/openssl/ssl/install-ssl.com
rename to src/main/jni/openssl/ssl/install-ssl.com
diff --git a/jni/openssl/ssl/kssl.c b/src/main/jni/openssl/ssl/kssl.c
similarity index 100%
rename from jni/openssl/ssl/kssl.c
rename to src/main/jni/openssl/ssl/kssl.c
diff --git a/jni/openssl/ssl/kssl.h b/src/main/jni/openssl/ssl/kssl.h
similarity index 100%
rename from jni/openssl/ssl/kssl.h
rename to src/main/jni/openssl/ssl/kssl.h
diff --git a/jni/openssl/ssl/kssl_lcl.h b/src/main/jni/openssl/ssl/kssl_lcl.h
similarity index 100%
rename from jni/openssl/ssl/kssl_lcl.h
rename to src/main/jni/openssl/ssl/kssl_lcl.h
diff --git a/jni/openssl/ssl/s23_clnt.c b/src/main/jni/openssl/ssl/s23_clnt.c
similarity index 100%
rename from jni/openssl/ssl/s23_clnt.c
rename to src/main/jni/openssl/ssl/s23_clnt.c
diff --git a/jni/openssl/ssl/s23_lib.c b/src/main/jni/openssl/ssl/s23_lib.c
similarity index 100%
rename from jni/openssl/ssl/s23_lib.c
rename to src/main/jni/openssl/ssl/s23_lib.c
diff --git a/jni/openssl/ssl/s23_meth.c b/src/main/jni/openssl/ssl/s23_meth.c
similarity index 100%
rename from jni/openssl/ssl/s23_meth.c
rename to src/main/jni/openssl/ssl/s23_meth.c
diff --git a/jni/openssl/ssl/s23_pkt.c b/src/main/jni/openssl/ssl/s23_pkt.c
similarity index 100%
rename from jni/openssl/ssl/s23_pkt.c
rename to src/main/jni/openssl/ssl/s23_pkt.c
diff --git a/jni/openssl/ssl/s23_srvr.c b/src/main/jni/openssl/ssl/s23_srvr.c
similarity index 100%
rename from jni/openssl/ssl/s23_srvr.c
rename to src/main/jni/openssl/ssl/s23_srvr.c
diff --git a/jni/openssl/ssl/s2_clnt.c b/src/main/jni/openssl/ssl/s2_clnt.c
similarity index 100%
rename from jni/openssl/ssl/s2_clnt.c
rename to src/main/jni/openssl/ssl/s2_clnt.c
diff --git a/jni/openssl/ssl/s2_enc.c b/src/main/jni/openssl/ssl/s2_enc.c
similarity index 100%
rename from jni/openssl/ssl/s2_enc.c
rename to src/main/jni/openssl/ssl/s2_enc.c
diff --git a/jni/openssl/ssl/s2_lib.c b/src/main/jni/openssl/ssl/s2_lib.c
similarity index 100%
rename from jni/openssl/ssl/s2_lib.c
rename to src/main/jni/openssl/ssl/s2_lib.c
diff --git a/jni/openssl/ssl/s2_meth.c b/src/main/jni/openssl/ssl/s2_meth.c
similarity index 100%
rename from jni/openssl/ssl/s2_meth.c
rename to src/main/jni/openssl/ssl/s2_meth.c
diff --git a/jni/openssl/ssl/s2_pkt.c b/src/main/jni/openssl/ssl/s2_pkt.c
similarity index 100%
rename from jni/openssl/ssl/s2_pkt.c
rename to src/main/jni/openssl/ssl/s2_pkt.c
diff --git a/jni/openssl/ssl/s2_srvr.c b/src/main/jni/openssl/ssl/s2_srvr.c
similarity index 100%
rename from jni/openssl/ssl/s2_srvr.c
rename to src/main/jni/openssl/ssl/s2_srvr.c
diff --git a/jni/openssl/ssl/s3_both.c b/src/main/jni/openssl/ssl/s3_both.c
similarity index 100%
rename from jni/openssl/ssl/s3_both.c
rename to src/main/jni/openssl/ssl/s3_both.c
diff --git a/jni/openssl/ssl/s3_clnt.c b/src/main/jni/openssl/ssl/s3_clnt.c
similarity index 100%
rename from jni/openssl/ssl/s3_clnt.c
rename to src/main/jni/openssl/ssl/s3_clnt.c
diff --git a/jni/openssl/ssl/s3_enc.c b/src/main/jni/openssl/ssl/s3_enc.c
similarity index 100%
rename from jni/openssl/ssl/s3_enc.c
rename to src/main/jni/openssl/ssl/s3_enc.c
diff --git a/jni/openssl/ssl/s3_lib.c b/src/main/jni/openssl/ssl/s3_lib.c
similarity index 100%
rename from jni/openssl/ssl/s3_lib.c
rename to src/main/jni/openssl/ssl/s3_lib.c
diff --git a/jni/openssl/ssl/s3_meth.c b/src/main/jni/openssl/ssl/s3_meth.c
similarity index 100%
rename from jni/openssl/ssl/s3_meth.c
rename to src/main/jni/openssl/ssl/s3_meth.c
diff --git a/jni/openssl/ssl/s3_pkt.c b/src/main/jni/openssl/ssl/s3_pkt.c
similarity index 100%
rename from jni/openssl/ssl/s3_pkt.c
rename to src/main/jni/openssl/ssl/s3_pkt.c
diff --git a/jni/openssl/ssl/s3_srvr.c b/src/main/jni/openssl/ssl/s3_srvr.c
similarity index 100%
rename from jni/openssl/ssl/s3_srvr.c
rename to src/main/jni/openssl/ssl/s3_srvr.c
diff --git a/jni/openssl/ssl/srtp.h b/src/main/jni/openssl/ssl/srtp.h
similarity index 100%
rename from jni/openssl/ssl/srtp.h
rename to src/main/jni/openssl/ssl/srtp.h
diff --git a/jni/openssl/ssl/ssl-lib.com b/src/main/jni/openssl/ssl/ssl-lib.com
similarity index 100%
rename from jni/openssl/ssl/ssl-lib.com
rename to src/main/jni/openssl/ssl/ssl-lib.com
diff --git a/jni/openssl/ssl/ssl.h b/src/main/jni/openssl/ssl/ssl.h
similarity index 100%
rename from jni/openssl/ssl/ssl.h
rename to src/main/jni/openssl/ssl/ssl.h
diff --git a/jni/openssl/ssl/ssl2.h b/src/main/jni/openssl/ssl/ssl2.h
similarity index 100%
rename from jni/openssl/ssl/ssl2.h
rename to src/main/jni/openssl/ssl/ssl2.h
diff --git a/jni/openssl/ssl/ssl23.h b/src/main/jni/openssl/ssl/ssl23.h
similarity index 100%
rename from jni/openssl/ssl/ssl23.h
rename to src/main/jni/openssl/ssl/ssl23.h
diff --git a/jni/openssl/ssl/ssl3.h b/src/main/jni/openssl/ssl/ssl3.h
similarity index 100%
rename from jni/openssl/ssl/ssl3.h
rename to src/main/jni/openssl/ssl/ssl3.h
diff --git a/jni/openssl/ssl/ssl_algs.c b/src/main/jni/openssl/ssl/ssl_algs.c
similarity index 100%
rename from jni/openssl/ssl/ssl_algs.c
rename to src/main/jni/openssl/ssl/ssl_algs.c
diff --git a/jni/openssl/ssl/ssl_asn1.c b/src/main/jni/openssl/ssl/ssl_asn1.c
similarity index 100%
rename from jni/openssl/ssl/ssl_asn1.c
rename to src/main/jni/openssl/ssl/ssl_asn1.c
diff --git a/jni/openssl/ssl/ssl_cert.c b/src/main/jni/openssl/ssl/ssl_cert.c
similarity index 100%
rename from jni/openssl/ssl/ssl_cert.c
rename to src/main/jni/openssl/ssl/ssl_cert.c
diff --git a/jni/openssl/ssl/ssl_ciph.c b/src/main/jni/openssl/ssl/ssl_ciph.c
similarity index 100%
rename from jni/openssl/ssl/ssl_ciph.c
rename to src/main/jni/openssl/ssl/ssl_ciph.c
diff --git a/jni/openssl/ssl/ssl_err.c b/src/main/jni/openssl/ssl/ssl_err.c
similarity index 100%
rename from jni/openssl/ssl/ssl_err.c
rename to src/main/jni/openssl/ssl/ssl_err.c
diff --git a/jni/openssl/ssl/ssl_err2.c b/src/main/jni/openssl/ssl/ssl_err2.c
similarity index 100%
rename from jni/openssl/ssl/ssl_err2.c
rename to src/main/jni/openssl/ssl/ssl_err2.c
diff --git a/jni/openssl/ssl/ssl_lib.c b/src/main/jni/openssl/ssl/ssl_lib.c
similarity index 100%
rename from jni/openssl/ssl/ssl_lib.c
rename to src/main/jni/openssl/ssl/ssl_lib.c
diff --git a/jni/openssl/ssl/ssl_locl.h b/src/main/jni/openssl/ssl/ssl_locl.h
similarity index 100%
rename from jni/openssl/ssl/ssl_locl.h
rename to src/main/jni/openssl/ssl/ssl_locl.h
diff --git a/jni/openssl/ssl/ssl_rsa.c b/src/main/jni/openssl/ssl/ssl_rsa.c
similarity index 100%
rename from jni/openssl/ssl/ssl_rsa.c
rename to src/main/jni/openssl/ssl/ssl_rsa.c
diff --git a/jni/openssl/ssl/ssl_sess.c b/src/main/jni/openssl/ssl/ssl_sess.c
similarity index 100%
rename from jni/openssl/ssl/ssl_sess.c
rename to src/main/jni/openssl/ssl/ssl_sess.c
diff --git a/jni/openssl/ssl/ssl_stat.c b/src/main/jni/openssl/ssl/ssl_stat.c
similarity index 100%
rename from jni/openssl/ssl/ssl_stat.c
rename to src/main/jni/openssl/ssl/ssl_stat.c
diff --git a/jni/openssl/ssl/ssl_task.c b/src/main/jni/openssl/ssl/ssl_task.c
similarity index 100%
rename from jni/openssl/ssl/ssl_task.c
rename to src/main/jni/openssl/ssl/ssl_task.c
diff --git a/jni/openssl/ssl/ssl_txt.c b/src/main/jni/openssl/ssl/ssl_txt.c
similarity index 100%
rename from jni/openssl/ssl/ssl_txt.c
rename to src/main/jni/openssl/ssl/ssl_txt.c
diff --git a/jni/openssl/ssl/ssltest.c b/src/main/jni/openssl/ssl/ssltest.c
similarity index 100%
rename from jni/openssl/ssl/ssltest.c
rename to src/main/jni/openssl/ssl/ssltest.c
diff --git a/jni/openssl/ssl/t1_clnt.c b/src/main/jni/openssl/ssl/t1_clnt.c
similarity index 100%
rename from jni/openssl/ssl/t1_clnt.c
rename to src/main/jni/openssl/ssl/t1_clnt.c
diff --git a/jni/openssl/ssl/t1_enc.c b/src/main/jni/openssl/ssl/t1_enc.c
similarity index 100%
rename from jni/openssl/ssl/t1_enc.c
rename to src/main/jni/openssl/ssl/t1_enc.c
diff --git a/jni/openssl/ssl/t1_lib.c b/src/main/jni/openssl/ssl/t1_lib.c
similarity index 100%
rename from jni/openssl/ssl/t1_lib.c
rename to src/main/jni/openssl/ssl/t1_lib.c
diff --git a/jni/openssl/ssl/t1_meth.c b/src/main/jni/openssl/ssl/t1_meth.c
similarity index 100%
rename from jni/openssl/ssl/t1_meth.c
rename to src/main/jni/openssl/ssl/t1_meth.c
diff --git a/jni/openssl/ssl/t1_reneg.c b/src/main/jni/openssl/ssl/t1_reneg.c
similarity index 100%
rename from jni/openssl/ssl/t1_reneg.c
rename to src/main/jni/openssl/ssl/t1_reneg.c
diff --git a/jni/openssl/ssl/t1_srvr.c b/src/main/jni/openssl/ssl/t1_srvr.c
similarity index 100%
rename from jni/openssl/ssl/t1_srvr.c
rename to src/main/jni/openssl/ssl/t1_srvr.c
diff --git a/jni/openssl/ssl/tls1.h b/src/main/jni/openssl/ssl/tls1.h
similarity index 100%
rename from jni/openssl/ssl/tls1.h
rename to src/main/jni/openssl/ssl/tls1.h
diff --git a/jni/openssl/ssl/tls_srp.c b/src/main/jni/openssl/ssl/tls_srp.c
similarity index 100%
rename from jni/openssl/ssl/tls_srp.c
rename to src/main/jni/openssl/ssl/tls_srp.c
diff --git a/jni/pdnsd/Makefile b/src/main/jni/pdnsd/Makefile
similarity index 100%
rename from jni/pdnsd/Makefile
rename to src/main/jni/pdnsd/Makefile
diff --git a/jni/pdnsd/Makefile.am b/src/main/jni/pdnsd/Makefile.am
similarity index 100%
rename from jni/pdnsd/Makefile.am
rename to src/main/jni/pdnsd/Makefile.am
diff --git a/jni/pdnsd/Makefile.in b/src/main/jni/pdnsd/Makefile.in
similarity index 100%
rename from jni/pdnsd/Makefile.in
rename to src/main/jni/pdnsd/Makefile.in
diff --git a/jni/pdnsd/cache.c b/src/main/jni/pdnsd/cache.c
similarity index 100%
rename from jni/pdnsd/cache.c
rename to src/main/jni/pdnsd/cache.c
diff --git a/jni/pdnsd/cache.h b/src/main/jni/pdnsd/cache.h
similarity index 100%
rename from jni/pdnsd/cache.h
rename to src/main/jni/pdnsd/cache.h
diff --git a/jni/pdnsd/conf-keywords.h b/src/main/jni/pdnsd/conf-keywords.h
similarity index 100%
rename from jni/pdnsd/conf-keywords.h
rename to src/main/jni/pdnsd/conf-keywords.h
diff --git a/jni/pdnsd/conf-parser.c b/src/main/jni/pdnsd/conf-parser.c
similarity index 100%
rename from jni/pdnsd/conf-parser.c
rename to src/main/jni/pdnsd/conf-parser.c
diff --git a/jni/pdnsd/conf-parser.h b/src/main/jni/pdnsd/conf-parser.h
similarity index 100%
rename from jni/pdnsd/conf-parser.h
rename to src/main/jni/pdnsd/conf-parser.h
diff --git a/jni/pdnsd/conff.c b/src/main/jni/pdnsd/conff.c
similarity index 100%
rename from jni/pdnsd/conff.c
rename to src/main/jni/pdnsd/conff.c
diff --git a/jni/pdnsd/conff.h b/src/main/jni/pdnsd/conff.h
similarity index 100%
rename from jni/pdnsd/conff.h
rename to src/main/jni/pdnsd/conff.h
diff --git a/jni/pdnsd/config.h b/src/main/jni/pdnsd/config.h
similarity index 100%
rename from jni/pdnsd/config.h
rename to src/main/jni/pdnsd/config.h
diff --git a/jni/pdnsd/consts.c b/src/main/jni/pdnsd/consts.c
similarity index 100%
rename from jni/pdnsd/consts.c
rename to src/main/jni/pdnsd/consts.c
diff --git a/jni/pdnsd/consts.h b/src/main/jni/pdnsd/consts.h
similarity index 100%
rename from jni/pdnsd/consts.h
rename to src/main/jni/pdnsd/consts.h
diff --git a/jni/pdnsd/debug.c b/src/main/jni/pdnsd/debug.c
similarity index 100%
rename from jni/pdnsd/debug.c
rename to src/main/jni/pdnsd/debug.c
diff --git a/jni/pdnsd/debug.h b/src/main/jni/pdnsd/debug.h
similarity index 100%
rename from jni/pdnsd/debug.h
rename to src/main/jni/pdnsd/debug.h
diff --git a/jni/pdnsd/dns.c b/src/main/jni/pdnsd/dns.c
similarity index 100%
rename from jni/pdnsd/dns.c
rename to src/main/jni/pdnsd/dns.c
diff --git a/jni/pdnsd/dns.h b/src/main/jni/pdnsd/dns.h
similarity index 100%
rename from jni/pdnsd/dns.h
rename to src/main/jni/pdnsd/dns.h
diff --git a/jni/pdnsd/dns_answer.c b/src/main/jni/pdnsd/dns_answer.c
similarity index 100%
rename from jni/pdnsd/dns_answer.c
rename to src/main/jni/pdnsd/dns_answer.c
diff --git a/jni/pdnsd/dns_answer.h b/src/main/jni/pdnsd/dns_answer.h
similarity index 100%
rename from jni/pdnsd/dns_answer.h
rename to src/main/jni/pdnsd/dns_answer.h
diff --git a/jni/pdnsd/dns_query.c b/src/main/jni/pdnsd/dns_query.c
similarity index 100%
rename from jni/pdnsd/dns_query.c
rename to src/main/jni/pdnsd/dns_query.c
diff --git a/jni/pdnsd/dns_query.h b/src/main/jni/pdnsd/dns_query.h
similarity index 100%
rename from jni/pdnsd/dns_query.h
rename to src/main/jni/pdnsd/dns_query.h
diff --git a/jni/pdnsd/error.c b/src/main/jni/pdnsd/error.c
similarity index 100%
rename from jni/pdnsd/error.c
rename to src/main/jni/pdnsd/error.c
diff --git a/jni/pdnsd/error.h b/src/main/jni/pdnsd/error.h
similarity index 100%
rename from jni/pdnsd/error.h
rename to src/main/jni/pdnsd/error.h
diff --git a/jni/pdnsd/freebsd_netinet_ip_icmp.h b/src/main/jni/pdnsd/freebsd_netinet_ip_icmp.h
similarity index 100%
rename from jni/pdnsd/freebsd_netinet_ip_icmp.h
rename to src/main/jni/pdnsd/freebsd_netinet_ip_icmp.h
diff --git a/jni/pdnsd/hash.c b/src/main/jni/pdnsd/hash.c
similarity index 100%
rename from jni/pdnsd/hash.c
rename to src/main/jni/pdnsd/hash.c
diff --git a/jni/pdnsd/hash.h b/src/main/jni/pdnsd/hash.h
similarity index 100%
rename from jni/pdnsd/hash.h
rename to src/main/jni/pdnsd/hash.h
diff --git a/jni/pdnsd/helpers.c b/src/main/jni/pdnsd/helpers.c
similarity index 100%
rename from jni/pdnsd/helpers.c
rename to src/main/jni/pdnsd/helpers.c
diff --git a/jni/pdnsd/helpers.h b/src/main/jni/pdnsd/helpers.h
similarity index 100%
rename from jni/pdnsd/helpers.h
rename to src/main/jni/pdnsd/helpers.h
diff --git a/jni/pdnsd/icmp.c b/src/main/jni/pdnsd/icmp.c
similarity index 100%
rename from jni/pdnsd/icmp.c
rename to src/main/jni/pdnsd/icmp.c
diff --git a/jni/pdnsd/icmp.h b/src/main/jni/pdnsd/icmp.h
similarity index 100%
rename from jni/pdnsd/icmp.h
rename to src/main/jni/pdnsd/icmp.h
diff --git a/jni/pdnsd/ipvers.h b/src/main/jni/pdnsd/ipvers.h
similarity index 100%
rename from jni/pdnsd/ipvers.h
rename to src/main/jni/pdnsd/ipvers.h
diff --git a/jni/pdnsd/list.c b/src/main/jni/pdnsd/list.c
similarity index 100%
rename from jni/pdnsd/list.c
rename to src/main/jni/pdnsd/list.c
diff --git a/jni/pdnsd/list.h b/src/main/jni/pdnsd/list.h
similarity index 100%
rename from jni/pdnsd/list.h
rename to src/main/jni/pdnsd/list.h
diff --git a/jni/pdnsd/main.c b/src/main/jni/pdnsd/main.c
similarity index 100%
rename from jni/pdnsd/main.c
rename to src/main/jni/pdnsd/main.c
diff --git a/jni/pdnsd/make_rr_types_h.pl b/src/main/jni/pdnsd/make_rr_types_h.pl
similarity index 100%
rename from jni/pdnsd/make_rr_types_h.pl
rename to src/main/jni/pdnsd/make_rr_types_h.pl
diff --git a/jni/pdnsd/netdev.c b/src/main/jni/pdnsd/netdev.c
similarity index 100%
rename from jni/pdnsd/netdev.c
rename to src/main/jni/pdnsd/netdev.c
diff --git a/jni/pdnsd/netdev.h b/src/main/jni/pdnsd/netdev.h
similarity index 100%
rename from jni/pdnsd/netdev.h
rename to src/main/jni/pdnsd/netdev.h
diff --git a/jni/pdnsd/pdnsd-ctl/.deps/pdnsd-ctl.Po b/src/main/jni/pdnsd/pdnsd-ctl/.deps/pdnsd-ctl.Po
similarity index 100%
rename from jni/pdnsd/pdnsd-ctl/.deps/pdnsd-ctl.Po
rename to src/main/jni/pdnsd/pdnsd-ctl/.deps/pdnsd-ctl.Po
diff --git a/jni/pdnsd/pdnsd-ctl/Makefile b/src/main/jni/pdnsd/pdnsd-ctl/Makefile
similarity index 100%
rename from jni/pdnsd/pdnsd-ctl/Makefile
rename to src/main/jni/pdnsd/pdnsd-ctl/Makefile
diff --git a/jni/pdnsd/pdnsd-ctl/Makefile.am b/src/main/jni/pdnsd/pdnsd-ctl/Makefile.am
similarity index 100%
rename from jni/pdnsd/pdnsd-ctl/Makefile.am
rename to src/main/jni/pdnsd/pdnsd-ctl/Makefile.am
diff --git a/jni/pdnsd/pdnsd-ctl/Makefile.in b/src/main/jni/pdnsd/pdnsd-ctl/Makefile.in
similarity index 100%
rename from jni/pdnsd/pdnsd-ctl/Makefile.in
rename to src/main/jni/pdnsd/pdnsd-ctl/Makefile.in
diff --git a/jni/pdnsd/pdnsd-ctl/pdnsd-ctl.c b/src/main/jni/pdnsd/pdnsd-ctl/pdnsd-ctl.c
similarity index 100%
rename from jni/pdnsd/pdnsd-ctl/pdnsd-ctl.c
rename to src/main/jni/pdnsd/pdnsd-ctl/pdnsd-ctl.c
diff --git a/jni/pdnsd/pdnsd_assert.h b/src/main/jni/pdnsd/pdnsd_assert.h
similarity index 100%
rename from jni/pdnsd/pdnsd_assert.h
rename to src/main/jni/pdnsd/pdnsd_assert.h
diff --git a/jni/pdnsd/rc/ArchLinux/Makefile b/src/main/jni/pdnsd/rc/ArchLinux/Makefile
similarity index 100%
rename from jni/pdnsd/rc/ArchLinux/Makefile
rename to src/main/jni/pdnsd/rc/ArchLinux/Makefile
diff --git a/jni/pdnsd/rc/ArchLinux/Makefile.am b/src/main/jni/pdnsd/rc/ArchLinux/Makefile.am
similarity index 100%
rename from jni/pdnsd/rc/ArchLinux/Makefile.am
rename to src/main/jni/pdnsd/rc/ArchLinux/Makefile.am
diff --git a/jni/pdnsd/rc/ArchLinux/Makefile.in b/src/main/jni/pdnsd/rc/ArchLinux/Makefile.in
similarity index 100%
rename from jni/pdnsd/rc/ArchLinux/Makefile.in
rename to src/main/jni/pdnsd/rc/ArchLinux/Makefile.in
diff --git a/jni/pdnsd/rc/ArchLinux/pdnsd b/src/main/jni/pdnsd/rc/ArchLinux/pdnsd
similarity index 100%
rename from jni/pdnsd/rc/ArchLinux/pdnsd
rename to src/main/jni/pdnsd/rc/ArchLinux/pdnsd
diff --git a/jni/pdnsd/rc/ArchLinux/pdnsd.in b/src/main/jni/pdnsd/rc/ArchLinux/pdnsd.in
similarity index 100%
rename from jni/pdnsd/rc/ArchLinux/pdnsd.in
rename to src/main/jni/pdnsd/rc/ArchLinux/pdnsd.in
diff --git a/jni/pdnsd/rc/Debian/Makefile b/src/main/jni/pdnsd/rc/Debian/Makefile
similarity index 100%
rename from jni/pdnsd/rc/Debian/Makefile
rename to src/main/jni/pdnsd/rc/Debian/Makefile
diff --git a/jni/pdnsd/rc/Debian/Makefile.am b/src/main/jni/pdnsd/rc/Debian/Makefile.am
similarity index 100%
rename from jni/pdnsd/rc/Debian/Makefile.am
rename to src/main/jni/pdnsd/rc/Debian/Makefile.am
diff --git a/jni/pdnsd/rc/Debian/Makefile.in b/src/main/jni/pdnsd/rc/Debian/Makefile.in
similarity index 100%
rename from jni/pdnsd/rc/Debian/Makefile.in
rename to src/main/jni/pdnsd/rc/Debian/Makefile.in
diff --git a/jni/pdnsd/rc/Debian/pdnsd b/src/main/jni/pdnsd/rc/Debian/pdnsd
similarity index 100%
rename from jni/pdnsd/rc/Debian/pdnsd
rename to src/main/jni/pdnsd/rc/Debian/pdnsd
diff --git a/jni/pdnsd/rc/Debian/pdnsd.in b/src/main/jni/pdnsd/rc/Debian/pdnsd.in
similarity index 100%
rename from jni/pdnsd/rc/Debian/pdnsd.in
rename to src/main/jni/pdnsd/rc/Debian/pdnsd.in
diff --git a/jni/pdnsd/rc/Makefile b/src/main/jni/pdnsd/rc/Makefile
similarity index 100%
rename from jni/pdnsd/rc/Makefile
rename to src/main/jni/pdnsd/rc/Makefile
diff --git a/jni/pdnsd/rc/Makefile.am b/src/main/jni/pdnsd/rc/Makefile.am
similarity index 100%
rename from jni/pdnsd/rc/Makefile.am
rename to src/main/jni/pdnsd/rc/Makefile.am
diff --git a/jni/pdnsd/rc/Makefile.in b/src/main/jni/pdnsd/rc/Makefile.in
similarity index 100%
rename from jni/pdnsd/rc/Makefile.in
rename to src/main/jni/pdnsd/rc/Makefile.in
diff --git a/jni/pdnsd/rc/README b/src/main/jni/pdnsd/rc/README
similarity index 100%
rename from jni/pdnsd/rc/README
rename to src/main/jni/pdnsd/rc/README
diff --git a/jni/pdnsd/rc/RedHat/Makefile b/src/main/jni/pdnsd/rc/RedHat/Makefile
similarity index 100%
rename from jni/pdnsd/rc/RedHat/Makefile
rename to src/main/jni/pdnsd/rc/RedHat/Makefile
diff --git a/jni/pdnsd/rc/RedHat/Makefile.am b/src/main/jni/pdnsd/rc/RedHat/Makefile.am
similarity index 100%
rename from jni/pdnsd/rc/RedHat/Makefile.am
rename to src/main/jni/pdnsd/rc/RedHat/Makefile.am
diff --git a/jni/pdnsd/rc/RedHat/Makefile.in b/src/main/jni/pdnsd/rc/RedHat/Makefile.in
similarity index 100%
rename from jni/pdnsd/rc/RedHat/Makefile.in
rename to src/main/jni/pdnsd/rc/RedHat/Makefile.in
diff --git a/jni/pdnsd/rc/RedHat/pdnsd b/src/main/jni/pdnsd/rc/RedHat/pdnsd
similarity index 100%
rename from jni/pdnsd/rc/RedHat/pdnsd
rename to src/main/jni/pdnsd/rc/RedHat/pdnsd
diff --git a/jni/pdnsd/rc/RedHat/pdnsd.in b/src/main/jni/pdnsd/rc/RedHat/pdnsd.in
similarity index 100%
rename from jni/pdnsd/rc/RedHat/pdnsd.in
rename to src/main/jni/pdnsd/rc/RedHat/pdnsd.in
diff --git a/jni/pdnsd/rc/Slackware/Makefile b/src/main/jni/pdnsd/rc/Slackware/Makefile
similarity index 100%
rename from jni/pdnsd/rc/Slackware/Makefile
rename to src/main/jni/pdnsd/rc/Slackware/Makefile
diff --git a/jni/pdnsd/rc/Slackware/Makefile.am b/src/main/jni/pdnsd/rc/Slackware/Makefile.am
similarity index 100%
rename from jni/pdnsd/rc/Slackware/Makefile.am
rename to src/main/jni/pdnsd/rc/Slackware/Makefile.am
diff --git a/jni/pdnsd/rc/Slackware/Makefile.in b/src/main/jni/pdnsd/rc/Slackware/Makefile.in
similarity index 100%
rename from jni/pdnsd/rc/Slackware/Makefile.in
rename to src/main/jni/pdnsd/rc/Slackware/Makefile.in
diff --git a/jni/pdnsd/rc/Slackware/rc.pdnsd b/src/main/jni/pdnsd/rc/Slackware/rc.pdnsd
similarity index 100%
rename from jni/pdnsd/rc/Slackware/rc.pdnsd
rename to src/main/jni/pdnsd/rc/Slackware/rc.pdnsd
diff --git a/jni/pdnsd/rc/Slackware/rc.pdnsd.in b/src/main/jni/pdnsd/rc/Slackware/rc.pdnsd.in
similarity index 100%
rename from jni/pdnsd/rc/Slackware/rc.pdnsd.in
rename to src/main/jni/pdnsd/rc/Slackware/rc.pdnsd.in
diff --git a/jni/pdnsd/rc/SuSE/Makefile b/src/main/jni/pdnsd/rc/SuSE/Makefile
similarity index 100%
rename from jni/pdnsd/rc/SuSE/Makefile
rename to src/main/jni/pdnsd/rc/SuSE/Makefile
diff --git a/jni/pdnsd/rc/SuSE/Makefile.am b/src/main/jni/pdnsd/rc/SuSE/Makefile.am
similarity index 100%
rename from jni/pdnsd/rc/SuSE/Makefile.am
rename to src/main/jni/pdnsd/rc/SuSE/Makefile.am
diff --git a/jni/pdnsd/rc/SuSE/Makefile.in b/src/main/jni/pdnsd/rc/SuSE/Makefile.in
similarity index 100%
rename from jni/pdnsd/rc/SuSE/Makefile.in
rename to src/main/jni/pdnsd/rc/SuSE/Makefile.in
diff --git a/jni/pdnsd/rc/SuSE/pdnsd b/src/main/jni/pdnsd/rc/SuSE/pdnsd
similarity index 100%
rename from jni/pdnsd/rc/SuSE/pdnsd
rename to src/main/jni/pdnsd/rc/SuSE/pdnsd
diff --git a/jni/pdnsd/rc/SuSE/pdnsd.in b/src/main/jni/pdnsd/rc/SuSE/pdnsd.in
similarity index 100%
rename from jni/pdnsd/rc/SuSE/pdnsd.in
rename to src/main/jni/pdnsd/rc/SuSE/pdnsd.in
diff --git a/jni/pdnsd/rr_types.c b/src/main/jni/pdnsd/rr_types.c
similarity index 100%
rename from jni/pdnsd/rr_types.c
rename to src/main/jni/pdnsd/rr_types.c
diff --git a/jni/pdnsd/rr_types.h b/src/main/jni/pdnsd/rr_types.h
similarity index 100%
rename from jni/pdnsd/rr_types.h
rename to src/main/jni/pdnsd/rr_types.h
diff --git a/jni/pdnsd/rr_types.in b/src/main/jni/pdnsd/rr_types.in
similarity index 100%
rename from jni/pdnsd/rr_types.in
rename to src/main/jni/pdnsd/rr_types.in
diff --git a/jni/pdnsd/servers.c b/src/main/jni/pdnsd/servers.c
similarity index 100%
rename from jni/pdnsd/servers.c
rename to src/main/jni/pdnsd/servers.c
diff --git a/jni/pdnsd/servers.h b/src/main/jni/pdnsd/servers.h
similarity index 100%
rename from jni/pdnsd/servers.h
rename to src/main/jni/pdnsd/servers.h
diff --git a/jni/pdnsd/status.c b/src/main/jni/pdnsd/status.c
similarity index 100%
rename from jni/pdnsd/status.c
rename to src/main/jni/pdnsd/status.c
diff --git a/jni/pdnsd/status.h b/src/main/jni/pdnsd/status.h
similarity index 100%
rename from jni/pdnsd/status.h
rename to src/main/jni/pdnsd/status.h
diff --git a/jni/pdnsd/test/.deps/if_up.Po b/src/main/jni/pdnsd/test/.deps/if_up.Po
similarity index 100%
rename from jni/pdnsd/test/.deps/if_up.Po
rename to src/main/jni/pdnsd/test/.deps/if_up.Po
diff --git a/jni/pdnsd/test/.deps/is_local_addr.Po b/src/main/jni/pdnsd/test/.deps/is_local_addr.Po
similarity index 100%
rename from jni/pdnsd/test/.deps/is_local_addr.Po
rename to src/main/jni/pdnsd/test/.deps/is_local_addr.Po
diff --git a/jni/pdnsd/test/.deps/random.Po b/src/main/jni/pdnsd/test/.deps/random.Po
similarity index 100%
rename from jni/pdnsd/test/.deps/random.Po
rename to src/main/jni/pdnsd/test/.deps/random.Po
diff --git a/jni/pdnsd/test/.deps/tping.Po b/src/main/jni/pdnsd/test/.deps/tping.Po
similarity index 100%
rename from jni/pdnsd/test/.deps/tping.Po
rename to src/main/jni/pdnsd/test/.deps/tping.Po
diff --git a/jni/pdnsd/test/Makefile b/src/main/jni/pdnsd/test/Makefile
similarity index 100%
rename from jni/pdnsd/test/Makefile
rename to src/main/jni/pdnsd/test/Makefile
diff --git a/jni/pdnsd/test/Makefile.am b/src/main/jni/pdnsd/test/Makefile.am
similarity index 100%
rename from jni/pdnsd/test/Makefile.am
rename to src/main/jni/pdnsd/test/Makefile.am
diff --git a/jni/pdnsd/test/Makefile.in b/src/main/jni/pdnsd/test/Makefile.in
similarity index 100%
rename from jni/pdnsd/test/Makefile.in
rename to src/main/jni/pdnsd/test/Makefile.in
diff --git a/jni/pdnsd/test/if_up.c b/src/main/jni/pdnsd/test/if_up.c
similarity index 100%
rename from jni/pdnsd/test/if_up.c
rename to src/main/jni/pdnsd/test/if_up.c
diff --git a/jni/pdnsd/test/is_local_addr.c b/src/main/jni/pdnsd/test/is_local_addr.c
similarity index 100%
rename from jni/pdnsd/test/is_local_addr.c
rename to src/main/jni/pdnsd/test/is_local_addr.c
diff --git a/jni/pdnsd/test/random.c b/src/main/jni/pdnsd/test/random.c
similarity index 100%
rename from jni/pdnsd/test/random.c
rename to src/main/jni/pdnsd/test/random.c
diff --git a/jni/pdnsd/test/tping.c b/src/main/jni/pdnsd/test/tping.c
similarity index 100%
rename from jni/pdnsd/test/tping.c
rename to src/main/jni/pdnsd/test/tping.c
diff --git a/jni/pdnsd/thread.c b/src/main/jni/pdnsd/thread.c
similarity index 100%
rename from jni/pdnsd/thread.c
rename to src/main/jni/pdnsd/thread.c
diff --git a/jni/pdnsd/thread.h b/src/main/jni/pdnsd/thread.h
similarity index 100%
rename from jni/pdnsd/thread.h
rename to src/main/jni/pdnsd/thread.h
diff --git a/jni/polipo/atom.c b/src/main/jni/polipo/atom.c
similarity index 100%
rename from jni/polipo/atom.c
rename to src/main/jni/polipo/atom.c
diff --git a/jni/polipo/atom.h b/src/main/jni/polipo/atom.h
similarity index 100%
rename from jni/polipo/atom.h
rename to src/main/jni/polipo/atom.h
diff --git a/jni/polipo/auth.c b/src/main/jni/polipo/auth.c
similarity index 100%
rename from jni/polipo/auth.c
rename to src/main/jni/polipo/auth.c
diff --git a/jni/polipo/auth.h b/src/main/jni/polipo/auth.h
similarity index 100%
rename from jni/polipo/auth.h
rename to src/main/jni/polipo/auth.h
diff --git a/jni/polipo/chunk.c b/src/main/jni/polipo/chunk.c
similarity index 100%
rename from jni/polipo/chunk.c
rename to src/main/jni/polipo/chunk.c
diff --git a/jni/polipo/chunk.h b/src/main/jni/polipo/chunk.h
similarity index 100%
rename from jni/polipo/chunk.h
rename to src/main/jni/polipo/chunk.h
diff --git a/jni/polipo/client.c b/src/main/jni/polipo/client.c
similarity index 100%
rename from jni/polipo/client.c
rename to src/main/jni/polipo/client.c
diff --git a/jni/polipo/client.h b/src/main/jni/polipo/client.h
similarity index 100%
rename from jni/polipo/client.h
rename to src/main/jni/polipo/client.h
diff --git a/jni/polipo/config.c b/src/main/jni/polipo/config.c
similarity index 100%
rename from jni/polipo/config.c
rename to src/main/jni/polipo/config.c
diff --git a/jni/polipo/config.h b/src/main/jni/polipo/config.h
similarity index 100%
rename from jni/polipo/config.h
rename to src/main/jni/polipo/config.h
diff --git a/jni/polipo/dirent_compat.c b/src/main/jni/polipo/dirent_compat.c
similarity index 100%
rename from jni/polipo/dirent_compat.c
rename to src/main/jni/polipo/dirent_compat.c
diff --git a/jni/polipo/dirent_compat.h b/src/main/jni/polipo/dirent_compat.h
similarity index 100%
rename from jni/polipo/dirent_compat.h
rename to src/main/jni/polipo/dirent_compat.h
diff --git a/jni/polipo/diskcache.c b/src/main/jni/polipo/diskcache.c
similarity index 100%
rename from jni/polipo/diskcache.c
rename to src/main/jni/polipo/diskcache.c
diff --git a/jni/polipo/diskcache.h b/src/main/jni/polipo/diskcache.h
similarity index 100%
rename from jni/polipo/diskcache.h
rename to src/main/jni/polipo/diskcache.h
diff --git a/jni/polipo/dns.c b/src/main/jni/polipo/dns.c
similarity index 100%
rename from jni/polipo/dns.c
rename to src/main/jni/polipo/dns.c
diff --git a/jni/polipo/dns.h b/src/main/jni/polipo/dns.h
similarity index 100%
rename from jni/polipo/dns.h
rename to src/main/jni/polipo/dns.h
diff --git a/jni/polipo/event.c b/src/main/jni/polipo/event.c
similarity index 100%
rename from jni/polipo/event.c
rename to src/main/jni/polipo/event.c
diff --git a/jni/polipo/event.h b/src/main/jni/polipo/event.h
similarity index 100%
rename from jni/polipo/event.h
rename to src/main/jni/polipo/event.h
diff --git a/jni/polipo/forbidden.c b/src/main/jni/polipo/forbidden.c
similarity index 100%
rename from jni/polipo/forbidden.c
rename to src/main/jni/polipo/forbidden.c
diff --git a/jni/polipo/forbidden.h b/src/main/jni/polipo/forbidden.h
similarity index 100%
rename from jni/polipo/forbidden.h
rename to src/main/jni/polipo/forbidden.h
diff --git a/jni/polipo/fts_compat.c b/src/main/jni/polipo/fts_compat.c
similarity index 100%
rename from jni/polipo/fts_compat.c
rename to src/main/jni/polipo/fts_compat.c
diff --git a/jni/polipo/fts_compat.h b/src/main/jni/polipo/fts_compat.h
similarity index 100%
rename from jni/polipo/fts_compat.h
rename to src/main/jni/polipo/fts_compat.h
diff --git a/jni/polipo/ftsimport.c b/src/main/jni/polipo/ftsimport.c
similarity index 100%
rename from jni/polipo/ftsimport.c
rename to src/main/jni/polipo/ftsimport.c
diff --git a/jni/polipo/ftsimport.h b/src/main/jni/polipo/ftsimport.h
similarity index 100%
rename from jni/polipo/ftsimport.h
rename to src/main/jni/polipo/ftsimport.h
diff --git a/jni/polipo/http.c b/src/main/jni/polipo/http.c
similarity index 100%
rename from jni/polipo/http.c
rename to src/main/jni/polipo/http.c
diff --git a/jni/polipo/http.h b/src/main/jni/polipo/http.h
similarity index 100%
rename from jni/polipo/http.h
rename to src/main/jni/polipo/http.h
diff --git a/jni/polipo/http_parse.c b/src/main/jni/polipo/http_parse.c
similarity index 100%
rename from jni/polipo/http_parse.c
rename to src/main/jni/polipo/http_parse.c
diff --git a/jni/polipo/http_parse.h b/src/main/jni/polipo/http_parse.h
similarity index 100%
rename from jni/polipo/http_parse.h
rename to src/main/jni/polipo/http_parse.h
diff --git a/jni/polipo/io.c b/src/main/jni/polipo/io.c
similarity index 100%
rename from jni/polipo/io.c
rename to src/main/jni/polipo/io.c
diff --git a/jni/polipo/io.h b/src/main/jni/polipo/io.h
similarity index 100%
rename from jni/polipo/io.h
rename to src/main/jni/polipo/io.h
diff --git a/jni/polipo/local.c b/src/main/jni/polipo/local.c
similarity index 100%
rename from jni/polipo/local.c
rename to src/main/jni/polipo/local.c
diff --git a/jni/polipo/local.h b/src/main/jni/polipo/local.h
similarity index 100%
rename from jni/polipo/local.h
rename to src/main/jni/polipo/local.h
diff --git a/jni/polipo/log.c b/src/main/jni/polipo/log.c
similarity index 100%
rename from jni/polipo/log.c
rename to src/main/jni/polipo/log.c
diff --git a/jni/polipo/log.h b/src/main/jni/polipo/log.h
similarity index 100%
rename from jni/polipo/log.h
rename to src/main/jni/polipo/log.h
diff --git a/jni/polipo/main.c b/src/main/jni/polipo/main.c
similarity index 100%
rename from jni/polipo/main.c
rename to src/main/jni/polipo/main.c
diff --git a/jni/polipo/md5.c b/src/main/jni/polipo/md5.c
similarity index 100%
rename from jni/polipo/md5.c
rename to src/main/jni/polipo/md5.c
diff --git a/jni/polipo/md5.h b/src/main/jni/polipo/md5.h
similarity index 100%
rename from jni/polipo/md5.h
rename to src/main/jni/polipo/md5.h
diff --git a/jni/polipo/md5import.c b/src/main/jni/polipo/md5import.c
similarity index 100%
rename from jni/polipo/md5import.c
rename to src/main/jni/polipo/md5import.c
diff --git a/jni/polipo/md5import.h b/src/main/jni/polipo/md5import.h
similarity index 100%
rename from jni/polipo/md5import.h
rename to src/main/jni/polipo/md5import.h
diff --git a/jni/polipo/mingw.c b/src/main/jni/polipo/mingw.c
similarity index 100%
rename from jni/polipo/mingw.c
rename to src/main/jni/polipo/mingw.c
diff --git a/jni/polipo/mingw.h b/src/main/jni/polipo/mingw.h
similarity index 100%
rename from jni/polipo/mingw.h
rename to src/main/jni/polipo/mingw.h
diff --git a/jni/polipo/object.c b/src/main/jni/polipo/object.c
similarity index 100%
rename from jni/polipo/object.c
rename to src/main/jni/polipo/object.c
diff --git a/jni/polipo/object.h b/src/main/jni/polipo/object.h
similarity index 100%
rename from jni/polipo/object.h
rename to src/main/jni/polipo/object.h
diff --git a/jni/polipo/parse_time.c b/src/main/jni/polipo/parse_time.c
similarity index 100%
rename from jni/polipo/parse_time.c
rename to src/main/jni/polipo/parse_time.c
diff --git a/jni/polipo/parse_time.h b/src/main/jni/polipo/parse_time.h
similarity index 100%
rename from jni/polipo/parse_time.h
rename to src/main/jni/polipo/parse_time.h
diff --git a/jni/polipo/polipo.h b/src/main/jni/polipo/polipo.h
similarity index 100%
rename from jni/polipo/polipo.h
rename to src/main/jni/polipo/polipo.h
diff --git a/jni/polipo/server.c b/src/main/jni/polipo/server.c
similarity index 100%
rename from jni/polipo/server.c
rename to src/main/jni/polipo/server.c
diff --git a/jni/polipo/server.h b/src/main/jni/polipo/server.h
similarity index 100%
rename from jni/polipo/server.h
rename to src/main/jni/polipo/server.h
diff --git a/jni/polipo/socks.c b/src/main/jni/polipo/socks.c
similarity index 100%
rename from jni/polipo/socks.c
rename to src/main/jni/polipo/socks.c
diff --git a/jni/polipo/socks.h b/src/main/jni/polipo/socks.h
similarity index 100%
rename from jni/polipo/socks.h
rename to src/main/jni/polipo/socks.h
diff --git a/jni/polipo/tunnel.c b/src/main/jni/polipo/tunnel.c
similarity index 100%
rename from jni/polipo/tunnel.c
rename to src/main/jni/polipo/tunnel.c
diff --git a/jni/polipo/tunnel.h b/src/main/jni/polipo/tunnel.h
similarity index 100%
rename from jni/polipo/tunnel.h
rename to src/main/jni/polipo/tunnel.h
diff --git a/jni/polipo/util.c b/src/main/jni/polipo/util.c
similarity index 100%
rename from jni/polipo/util.c
rename to src/main/jni/polipo/util.c
diff --git a/jni/polipo/util.h b/src/main/jni/polipo/util.h
similarity index 100%
rename from jni/polipo/util.h
rename to src/main/jni/polipo/util.h
diff --git a/jni/redsocks/base.c b/src/main/jni/redsocks/base.c
similarity index 100%
rename from jni/redsocks/base.c
rename to src/main/jni/redsocks/base.c
diff --git a/jni/redsocks/base.h b/src/main/jni/redsocks/base.h
similarity index 100%
rename from jni/redsocks/base.h
rename to src/main/jni/redsocks/base.h
diff --git a/jni/redsocks/base64.c b/src/main/jni/redsocks/base64.c
similarity index 100%
rename from jni/redsocks/base64.c
rename to src/main/jni/redsocks/base64.c
diff --git a/jni/redsocks/base64.h b/src/main/jni/redsocks/base64.h
similarity index 100%
rename from jni/redsocks/base64.h
rename to src/main/jni/redsocks/base64.h
diff --git a/jni/redsocks/config.h b/src/main/jni/redsocks/config.h
similarity index 100%
rename from jni/redsocks/config.h
rename to src/main/jni/redsocks/config.h
diff --git a/jni/redsocks/dnstc.c b/src/main/jni/redsocks/dnstc.c
similarity index 100%
rename from jni/redsocks/dnstc.c
rename to src/main/jni/redsocks/dnstc.c
diff --git a/jni/redsocks/dnstc.h b/src/main/jni/redsocks/dnstc.h
similarity index 100%
rename from jni/redsocks/dnstc.h
rename to src/main/jni/redsocks/dnstc.h
diff --git a/jni/redsocks/http-auth.c b/src/main/jni/redsocks/http-auth.c
similarity index 100%
rename from jni/redsocks/http-auth.c
rename to src/main/jni/redsocks/http-auth.c
diff --git a/jni/redsocks/http-auth.h b/src/main/jni/redsocks/http-auth.h
similarity index 100%
rename from jni/redsocks/http-auth.h
rename to src/main/jni/redsocks/http-auth.h
diff --git a/jni/redsocks/http-connect.c b/src/main/jni/redsocks/http-connect.c
similarity index 100%
rename from jni/redsocks/http-connect.c
rename to src/main/jni/redsocks/http-connect.c
diff --git a/jni/redsocks/http-relay.c b/src/main/jni/redsocks/http-relay.c
similarity index 100%
rename from jni/redsocks/http-relay.c
rename to src/main/jni/redsocks/http-relay.c
diff --git a/jni/redsocks/libc-compat.h b/src/main/jni/redsocks/libc-compat.h
similarity index 100%
rename from jni/redsocks/libc-compat.h
rename to src/main/jni/redsocks/libc-compat.h
diff --git a/jni/redsocks/libevent-compat.h b/src/main/jni/redsocks/libevent-compat.h
similarity index 100%
rename from jni/redsocks/libevent-compat.h
rename to src/main/jni/redsocks/libevent-compat.h
diff --git a/jni/redsocks/list.h b/src/main/jni/redsocks/list.h
similarity index 100%
rename from jni/redsocks/list.h
rename to src/main/jni/redsocks/list.h
diff --git a/jni/redsocks/log.c b/src/main/jni/redsocks/log.c
similarity index 100%
rename from jni/redsocks/log.c
rename to src/main/jni/redsocks/log.c
diff --git a/jni/redsocks/log.h b/src/main/jni/redsocks/log.h
similarity index 100%
rename from jni/redsocks/log.h
rename to src/main/jni/redsocks/log.h
diff --git a/jni/redsocks/main.c b/src/main/jni/redsocks/main.c
similarity index 100%
rename from jni/redsocks/main.c
rename to src/main/jni/redsocks/main.c
diff --git a/jni/redsocks/main.h b/src/main/jni/redsocks/main.h
similarity index 100%
rename from jni/redsocks/main.h
rename to src/main/jni/redsocks/main.h
diff --git a/jni/redsocks/md5.c b/src/main/jni/redsocks/md5.c
similarity index 100%
rename from jni/redsocks/md5.c
rename to src/main/jni/redsocks/md5.c
diff --git a/jni/redsocks/md5.h b/src/main/jni/redsocks/md5.h
similarity index 100%
rename from jni/redsocks/md5.h
rename to src/main/jni/redsocks/md5.h
diff --git a/jni/redsocks/parser.c b/src/main/jni/redsocks/parser.c
similarity index 100%
rename from jni/redsocks/parser.c
rename to src/main/jni/redsocks/parser.c
diff --git a/jni/redsocks/parser.h b/src/main/jni/redsocks/parser.h
similarity index 100%
rename from jni/redsocks/parser.h
rename to src/main/jni/redsocks/parser.h
diff --git a/jni/redsocks/reddns.c b/src/main/jni/redsocks/reddns.c
similarity index 100%
rename from jni/redsocks/reddns.c
rename to src/main/jni/redsocks/reddns.c
diff --git a/jni/redsocks/redsocks.c b/src/main/jni/redsocks/redsocks.c
similarity index 100%
rename from jni/redsocks/redsocks.c
rename to src/main/jni/redsocks/redsocks.c
diff --git a/jni/redsocks/redsocks.h b/src/main/jni/redsocks/redsocks.h
similarity index 100%
rename from jni/redsocks/redsocks.h
rename to src/main/jni/redsocks/redsocks.h
diff --git a/jni/redsocks/redudp.c b/src/main/jni/redsocks/redudp.c
similarity index 100%
rename from jni/redsocks/redudp.c
rename to src/main/jni/redsocks/redudp.c
diff --git a/jni/redsocks/redudp.h b/src/main/jni/redsocks/redudp.h
similarity index 100%
rename from jni/redsocks/redudp.h
rename to src/main/jni/redsocks/redudp.h
diff --git a/jni/redsocks/socks4.c b/src/main/jni/redsocks/socks4.c
similarity index 100%
rename from jni/redsocks/socks4.c
rename to src/main/jni/redsocks/socks4.c
diff --git a/jni/redsocks/socks5.c b/src/main/jni/redsocks/socks5.c
similarity index 100%
rename from jni/redsocks/socks5.c
rename to src/main/jni/redsocks/socks5.c
diff --git a/jni/redsocks/socks5.h b/src/main/jni/redsocks/socks5.h
similarity index 100%
rename from jni/redsocks/socks5.h
rename to src/main/jni/redsocks/socks5.h
diff --git a/jni/redsocks/utils.c b/src/main/jni/redsocks/utils.c
similarity index 100%
rename from jni/redsocks/utils.c
rename to src/main/jni/redsocks/utils.c
diff --git a/jni/redsocks/utils.h b/src/main/jni/redsocks/utils.h
similarity index 100%
rename from jni/redsocks/utils.h
rename to src/main/jni/redsocks/utils.h
diff --git a/jni/redsocks/version.h b/src/main/jni/redsocks/version.h
similarity index 100%
rename from jni/redsocks/version.h
rename to src/main/jni/redsocks/version.h
diff --git a/jni/system.cpp b/src/main/jni/system.cpp
similarity index 100%
rename from jni/system.cpp
rename to src/main/jni/system.cpp
diff --git a/jni/termExec.cpp b/src/main/jni/termExec.cpp
similarity index 100%
rename from jni/termExec.cpp
rename to src/main/jni/termExec.cpp
diff --git a/libs/armeabi/libexec.so b/src/main/libs/armeabi/libexec.so
similarity index 100%
rename from libs/armeabi/libexec.so
rename to src/main/libs/armeabi/libexec.so
diff --git a/libs/armeabi/libsystem.so b/src/main/libs/armeabi/libsystem.so
similarity index 100%
rename from libs/armeabi/libsystem.so
rename to src/main/libs/armeabi/libsystem.so
diff --git a/libs/x86/libexec.so b/src/main/libs/x86/libexec.so
similarity index 100%
rename from libs/x86/libexec.so
rename to src/main/libs/x86/libexec.so
diff --git a/libs/x86/libsystem.so b/src/main/libs/x86/libsystem.so
similarity index 100%
rename from libs/x86/libsystem.so
rename to src/main/libs/x86/libsystem.so
diff --git a/res/drawable-hdpi-v11/ic_stat_shadowsocks.png b/src/main/res/drawable-hdpi-v11/ic_stat_shadowsocks.png
similarity index 100%
rename from res/drawable-hdpi-v11/ic_stat_shadowsocks.png
rename to src/main/res/drawable-hdpi-v11/ic_stat_shadowsocks.png
diff --git a/res/drawable-hdpi-v9/ic_stat_shadowsocks.png b/src/main/res/drawable-hdpi-v9/ic_stat_shadowsocks.png
similarity index 100%
rename from res/drawable-hdpi-v9/ic_stat_shadowsocks.png
rename to src/main/res/drawable-hdpi-v9/ic_stat_shadowsocks.png
diff --git a/res/drawable-hdpi/ab_bottom_solid_shadow.9.png b/src/main/res/drawable-hdpi/ab_bottom_solid_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/ab_bottom_solid_shadow.9.png
rename to src/main/res/drawable-hdpi/ab_bottom_solid_shadow.9.png
diff --git a/res/drawable-hdpi/ab_solid_shadow.9.png b/src/main/res/drawable-hdpi/ab_solid_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/ab_solid_shadow.9.png
rename to src/main/res/drawable-hdpi/ab_solid_shadow.9.png
diff --git a/res/drawable-hdpi/ab_stacked_solid_shadow.9.png b/src/main/res/drawable-hdpi/ab_stacked_solid_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/ab_stacked_solid_shadow.9.png
rename to src/main/res/drawable-hdpi/ab_stacked_solid_shadow.9.png
diff --git a/res/drawable-hdpi/ab_transparent_shadow.9.png b/src/main/res/drawable-hdpi/ab_transparent_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/ab_transparent_shadow.9.png
rename to src/main/res/drawable-hdpi/ab_transparent_shadow.9.png
diff --git a/res/drawable-hdpi/btn_cab_done_default_shadow.9.png b/src/main/res/drawable-hdpi/btn_cab_done_default_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/btn_cab_done_default_shadow.9.png
rename to src/main/res/drawable-hdpi/btn_cab_done_default_shadow.9.png
diff --git a/res/drawable-hdpi/btn_cab_done_focused_shadow.9.png b/src/main/res/drawable-hdpi/btn_cab_done_focused_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/btn_cab_done_focused_shadow.9.png
rename to src/main/res/drawable-hdpi/btn_cab_done_focused_shadow.9.png
diff --git a/res/drawable-hdpi/btn_cab_done_pressed_shadow.9.png b/src/main/res/drawable-hdpi/btn_cab_done_pressed_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/btn_cab_done_pressed_shadow.9.png
rename to src/main/res/drawable-hdpi/btn_cab_done_pressed_shadow.9.png
diff --git a/res/drawable-hdpi/cab_background_bottom_shadow.9.png b/src/main/res/drawable-hdpi/cab_background_bottom_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/cab_background_bottom_shadow.9.png
rename to src/main/res/drawable-hdpi/cab_background_bottom_shadow.9.png
diff --git a/res/drawable-hdpi/cab_background_top_shadow.9.png b/src/main/res/drawable-hdpi/cab_background_top_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/cab_background_top_shadow.9.png
rename to src/main/res/drawable-hdpi/cab_background_top_shadow.9.png
diff --git a/res/drawable-hdpi/ic_launcher.png b/src/main/res/drawable-hdpi/ic_launcher.png
similarity index 100%
rename from res/drawable-hdpi/ic_launcher.png
rename to src/main/res/drawable-hdpi/ic_launcher.png
diff --git a/res/drawable-hdpi/ic_stat_large.png b/src/main/res/drawable-hdpi/ic_stat_large.png
similarity index 100%
rename from res/drawable-hdpi/ic_stat_large.png
rename to src/main/res/drawable-hdpi/ic_stat_large.png
diff --git a/res/drawable-hdpi/ic_stat_shadowsocks.png b/src/main/res/drawable-hdpi/ic_stat_shadowsocks.png
similarity index 100%
rename from res/drawable-hdpi/ic_stat_shadowsocks.png
rename to src/main/res/drawable-hdpi/ic_stat_shadowsocks.png
diff --git a/res/drawable-hdpi/ing.png b/src/main/res/drawable-hdpi/ing.png
similarity index 100%
rename from res/drawable-hdpi/ing.png
rename to src/main/res/drawable-hdpi/ing.png
diff --git a/res/drawable-hdpi/list_focused_shadow.9.png b/src/main/res/drawable-hdpi/list_focused_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/list_focused_shadow.9.png
rename to src/main/res/drawable-hdpi/list_focused_shadow.9.png
diff --git a/res/drawable-hdpi/menu_dropdown_panel_shadow.9.png b/src/main/res/drawable-hdpi/menu_dropdown_panel_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/menu_dropdown_panel_shadow.9.png
rename to src/main/res/drawable-hdpi/menu_dropdown_panel_shadow.9.png
diff --git a/res/drawable-hdpi/off.png b/src/main/res/drawable-hdpi/off.png
similarity index 100%
rename from res/drawable-hdpi/off.png
rename to src/main/res/drawable-hdpi/off.png
diff --git a/res/drawable-hdpi/on.png b/src/main/res/drawable-hdpi/on.png
similarity index 100%
rename from res/drawable-hdpi/on.png
rename to src/main/res/drawable-hdpi/on.png
diff --git a/res/drawable-hdpi/progress_bg_shadow.9.png b/src/main/res/drawable-hdpi/progress_bg_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/progress_bg_shadow.9.png
rename to src/main/res/drawable-hdpi/progress_bg_shadow.9.png
diff --git a/res/drawable-hdpi/progress_primary_shadow.9.png b/src/main/res/drawable-hdpi/progress_primary_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/progress_primary_shadow.9.png
rename to src/main/res/drawable-hdpi/progress_primary_shadow.9.png
diff --git a/res/drawable-hdpi/progress_secondary_shadow.9.png b/src/main/res/drawable-hdpi/progress_secondary_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/progress_secondary_shadow.9.png
rename to src/main/res/drawable-hdpi/progress_secondary_shadow.9.png
diff --git a/res/drawable-hdpi/spinner_ab_default_shadow.9.png b/src/main/res/drawable-hdpi/spinner_ab_default_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/spinner_ab_default_shadow.9.png
rename to src/main/res/drawable-hdpi/spinner_ab_default_shadow.9.png
diff --git a/res/drawable-hdpi/spinner_ab_disabled_shadow.9.png b/src/main/res/drawable-hdpi/spinner_ab_disabled_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/spinner_ab_disabled_shadow.9.png
rename to src/main/res/drawable-hdpi/spinner_ab_disabled_shadow.9.png
diff --git a/res/drawable-hdpi/spinner_ab_focused_shadow.9.png b/src/main/res/drawable-hdpi/spinner_ab_focused_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/spinner_ab_focused_shadow.9.png
rename to src/main/res/drawable-hdpi/spinner_ab_focused_shadow.9.png
diff --git a/res/drawable-hdpi/spinner_ab_pressed_shadow.9.png b/src/main/res/drawable-hdpi/spinner_ab_pressed_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/spinner_ab_pressed_shadow.9.png
rename to src/main/res/drawable-hdpi/spinner_ab_pressed_shadow.9.png
diff --git a/res/drawable-hdpi/tab_selected_focused_shadow.9.png b/src/main/res/drawable-hdpi/tab_selected_focused_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/tab_selected_focused_shadow.9.png
rename to src/main/res/drawable-hdpi/tab_selected_focused_shadow.9.png
diff --git a/res/drawable-hdpi/tab_selected_pressed_shadow.9.png b/src/main/res/drawable-hdpi/tab_selected_pressed_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/tab_selected_pressed_shadow.9.png
rename to src/main/res/drawable-hdpi/tab_selected_pressed_shadow.9.png
diff --git a/res/drawable-hdpi/tab_selected_shadow.9.png b/src/main/res/drawable-hdpi/tab_selected_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/tab_selected_shadow.9.png
rename to src/main/res/drawable-hdpi/tab_selected_shadow.9.png
diff --git a/res/drawable-hdpi/tab_unselected_focused_shadow.9.png b/src/main/res/drawable-hdpi/tab_unselected_focused_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/tab_unselected_focused_shadow.9.png
rename to src/main/res/drawable-hdpi/tab_unselected_focused_shadow.9.png
diff --git a/res/drawable-hdpi/tab_unselected_pressed_shadow.9.png b/src/main/res/drawable-hdpi/tab_unselected_pressed_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi/tab_unselected_pressed_shadow.9.png
rename to src/main/res/drawable-hdpi/tab_unselected_pressed_shadow.9.png
diff --git a/res/drawable-ldpi-v11/ic_stat_shadowsocks.png b/src/main/res/drawable-ldpi-v11/ic_stat_shadowsocks.png
similarity index 100%
rename from res/drawable-ldpi-v11/ic_stat_shadowsocks.png
rename to src/main/res/drawable-ldpi-v11/ic_stat_shadowsocks.png
diff --git a/res/drawable-ldpi-v9/ic_stat_shadowsocks.png b/src/main/res/drawable-ldpi-v9/ic_stat_shadowsocks.png
similarity index 100%
rename from res/drawable-ldpi-v9/ic_stat_shadowsocks.png
rename to src/main/res/drawable-ldpi-v9/ic_stat_shadowsocks.png
diff --git a/res/drawable-ldpi/ing.png b/src/main/res/drawable-ldpi/ing.png
similarity index 100%
rename from res/drawable-ldpi/ing.png
rename to src/main/res/drawable-ldpi/ing.png
diff --git a/res/drawable-ldpi/off.png b/src/main/res/drawable-ldpi/off.png
similarity index 100%
rename from res/drawable-ldpi/off.png
rename to src/main/res/drawable-ldpi/off.png
diff --git a/res/drawable-ldpi/on.png b/src/main/res/drawable-ldpi/on.png
similarity index 100%
rename from res/drawable-ldpi/on.png
rename to src/main/res/drawable-ldpi/on.png
diff --git a/res/drawable-mdpi-v11/ic_stat_shadowsocks.png b/src/main/res/drawable-mdpi-v11/ic_stat_shadowsocks.png
similarity index 100%
rename from res/drawable-mdpi-v11/ic_stat_shadowsocks.png
rename to src/main/res/drawable-mdpi-v11/ic_stat_shadowsocks.png
diff --git a/res/drawable-mdpi-v9/ic_stat_shadowsocks.png b/src/main/res/drawable-mdpi-v9/ic_stat_shadowsocks.png
similarity index 100%
rename from res/drawable-mdpi-v9/ic_stat_shadowsocks.png
rename to src/main/res/drawable-mdpi-v9/ic_stat_shadowsocks.png
diff --git a/res/drawable-mdpi/ab_bottom_solid_shadow.9.png b/src/main/res/drawable-mdpi/ab_bottom_solid_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/ab_bottom_solid_shadow.9.png
rename to src/main/res/drawable-mdpi/ab_bottom_solid_shadow.9.png
diff --git a/res/drawable-mdpi/ab_solid_shadow.9.png b/src/main/res/drawable-mdpi/ab_solid_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/ab_solid_shadow.9.png
rename to src/main/res/drawable-mdpi/ab_solid_shadow.9.png
diff --git a/res/drawable-mdpi/ab_stacked_solid_shadow.9.png b/src/main/res/drawable-mdpi/ab_stacked_solid_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/ab_stacked_solid_shadow.9.png
rename to src/main/res/drawable-mdpi/ab_stacked_solid_shadow.9.png
diff --git a/res/drawable-mdpi/ab_transparent_shadow.9.png b/src/main/res/drawable-mdpi/ab_transparent_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/ab_transparent_shadow.9.png
rename to src/main/res/drawable-mdpi/ab_transparent_shadow.9.png
diff --git a/res/drawable-mdpi/btn_cab_done_default_shadow.9.png b/src/main/res/drawable-mdpi/btn_cab_done_default_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/btn_cab_done_default_shadow.9.png
rename to src/main/res/drawable-mdpi/btn_cab_done_default_shadow.9.png
diff --git a/res/drawable-mdpi/btn_cab_done_focused_shadow.9.png b/src/main/res/drawable-mdpi/btn_cab_done_focused_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/btn_cab_done_focused_shadow.9.png
rename to src/main/res/drawable-mdpi/btn_cab_done_focused_shadow.9.png
diff --git a/res/drawable-mdpi/btn_cab_done_pressed_shadow.9.png b/src/main/res/drawable-mdpi/btn_cab_done_pressed_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/btn_cab_done_pressed_shadow.9.png
rename to src/main/res/drawable-mdpi/btn_cab_done_pressed_shadow.9.png
diff --git a/res/drawable-mdpi/cab_background_bottom_shadow.9.png b/src/main/res/drawable-mdpi/cab_background_bottom_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/cab_background_bottom_shadow.9.png
rename to src/main/res/drawable-mdpi/cab_background_bottom_shadow.9.png
diff --git a/res/drawable-mdpi/cab_background_top_shadow.9.png b/src/main/res/drawable-mdpi/cab_background_top_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/cab_background_top_shadow.9.png
rename to src/main/res/drawable-mdpi/cab_background_top_shadow.9.png
diff --git a/res/drawable-mdpi/ic_launcher.png b/src/main/res/drawable-mdpi/ic_launcher.png
similarity index 100%
rename from res/drawable-mdpi/ic_launcher.png
rename to src/main/res/drawable-mdpi/ic_launcher.png
diff --git a/res/drawable-mdpi/ic_stat_large.png b/src/main/res/drawable-mdpi/ic_stat_large.png
similarity index 100%
rename from res/drawable-mdpi/ic_stat_large.png
rename to src/main/res/drawable-mdpi/ic_stat_large.png
diff --git a/res/drawable-mdpi/ic_stat_shadowsocks.png b/src/main/res/drawable-mdpi/ic_stat_shadowsocks.png
similarity index 100%
rename from res/drawable-mdpi/ic_stat_shadowsocks.png
rename to src/main/res/drawable-mdpi/ic_stat_shadowsocks.png
diff --git a/res/drawable-mdpi/ing.png b/src/main/res/drawable-mdpi/ing.png
similarity index 100%
rename from res/drawable-mdpi/ing.png
rename to src/main/res/drawable-mdpi/ing.png
diff --git a/res/drawable-mdpi/list_focused_shadow.9.png b/src/main/res/drawable-mdpi/list_focused_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/list_focused_shadow.9.png
rename to src/main/res/drawable-mdpi/list_focused_shadow.9.png
diff --git a/res/drawable-mdpi/menu_dropdown_panel_shadow.9.png b/src/main/res/drawable-mdpi/menu_dropdown_panel_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/menu_dropdown_panel_shadow.9.png
rename to src/main/res/drawable-mdpi/menu_dropdown_panel_shadow.9.png
diff --git a/res/drawable-mdpi/off.png b/src/main/res/drawable-mdpi/off.png
similarity index 100%
rename from res/drawable-mdpi/off.png
rename to src/main/res/drawable-mdpi/off.png
diff --git a/res/drawable-mdpi/on.png b/src/main/res/drawable-mdpi/on.png
similarity index 100%
rename from res/drawable-mdpi/on.png
rename to src/main/res/drawable-mdpi/on.png
diff --git a/res/drawable-mdpi/progress_bg_shadow.9.png b/src/main/res/drawable-mdpi/progress_bg_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/progress_bg_shadow.9.png
rename to src/main/res/drawable-mdpi/progress_bg_shadow.9.png
diff --git a/res/drawable-mdpi/progress_primary_shadow.9.png b/src/main/res/drawable-mdpi/progress_primary_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/progress_primary_shadow.9.png
rename to src/main/res/drawable-mdpi/progress_primary_shadow.9.png
diff --git a/res/drawable-mdpi/progress_secondary_shadow.9.png b/src/main/res/drawable-mdpi/progress_secondary_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/progress_secondary_shadow.9.png
rename to src/main/res/drawable-mdpi/progress_secondary_shadow.9.png
diff --git a/res/drawable-mdpi/spinner_ab_default_shadow.9.png b/src/main/res/drawable-mdpi/spinner_ab_default_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/spinner_ab_default_shadow.9.png
rename to src/main/res/drawable-mdpi/spinner_ab_default_shadow.9.png
diff --git a/res/drawable-mdpi/spinner_ab_disabled_shadow.9.png b/src/main/res/drawable-mdpi/spinner_ab_disabled_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/spinner_ab_disabled_shadow.9.png
rename to src/main/res/drawable-mdpi/spinner_ab_disabled_shadow.9.png
diff --git a/res/drawable-mdpi/spinner_ab_focused_shadow.9.png b/src/main/res/drawable-mdpi/spinner_ab_focused_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/spinner_ab_focused_shadow.9.png
rename to src/main/res/drawable-mdpi/spinner_ab_focused_shadow.9.png
diff --git a/res/drawable-mdpi/spinner_ab_pressed_shadow.9.png b/src/main/res/drawable-mdpi/spinner_ab_pressed_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/spinner_ab_pressed_shadow.9.png
rename to src/main/res/drawable-mdpi/spinner_ab_pressed_shadow.9.png
diff --git a/res/drawable-mdpi/tab_selected_focused_shadow.9.png b/src/main/res/drawable-mdpi/tab_selected_focused_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/tab_selected_focused_shadow.9.png
rename to src/main/res/drawable-mdpi/tab_selected_focused_shadow.9.png
diff --git a/res/drawable-mdpi/tab_selected_pressed_shadow.9.png b/src/main/res/drawable-mdpi/tab_selected_pressed_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/tab_selected_pressed_shadow.9.png
rename to src/main/res/drawable-mdpi/tab_selected_pressed_shadow.9.png
diff --git a/res/drawable-mdpi/tab_selected_shadow.9.png b/src/main/res/drawable-mdpi/tab_selected_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/tab_selected_shadow.9.png
rename to src/main/res/drawable-mdpi/tab_selected_shadow.9.png
diff --git a/res/drawable-mdpi/tab_unselected_focused_shadow.9.png b/src/main/res/drawable-mdpi/tab_unselected_focused_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/tab_unselected_focused_shadow.9.png
rename to src/main/res/drawable-mdpi/tab_unselected_focused_shadow.9.png
diff --git a/res/drawable-mdpi/tab_unselected_pressed_shadow.9.png b/src/main/res/drawable-mdpi/tab_unselected_pressed_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi/tab_unselected_pressed_shadow.9.png
rename to src/main/res/drawable-mdpi/tab_unselected_pressed_shadow.9.png
diff --git a/res/drawable-xhdpi-v11/ic_stat_shadowsocks.png b/src/main/res/drawable-xhdpi-v11/ic_stat_shadowsocks.png
similarity index 100%
rename from res/drawable-xhdpi-v11/ic_stat_shadowsocks.png
rename to src/main/res/drawable-xhdpi-v11/ic_stat_shadowsocks.png
diff --git a/res/drawable-xhdpi-v9/ic_stat_shadowsocks.png b/src/main/res/drawable-xhdpi-v9/ic_stat_shadowsocks.png
similarity index 100%
rename from res/drawable-xhdpi-v9/ic_stat_shadowsocks.png
rename to src/main/res/drawable-xhdpi-v9/ic_stat_shadowsocks.png
diff --git a/res/drawable-xhdpi/ab_bottom_solid_shadow.9.png b/src/main/res/drawable-xhdpi/ab_bottom_solid_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/ab_bottom_solid_shadow.9.png
rename to src/main/res/drawable-xhdpi/ab_bottom_solid_shadow.9.png
diff --git a/res/drawable-xhdpi/ab_solid_shadow.9.png b/src/main/res/drawable-xhdpi/ab_solid_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/ab_solid_shadow.9.png
rename to src/main/res/drawable-xhdpi/ab_solid_shadow.9.png
diff --git a/res/drawable-xhdpi/ab_stacked_solid_shadow.9.png b/src/main/res/drawable-xhdpi/ab_stacked_solid_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/ab_stacked_solid_shadow.9.png
rename to src/main/res/drawable-xhdpi/ab_stacked_solid_shadow.9.png
diff --git a/res/drawable-xhdpi/ab_transparent_shadow.9.png b/src/main/res/drawable-xhdpi/ab_transparent_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/ab_transparent_shadow.9.png
rename to src/main/res/drawable-xhdpi/ab_transparent_shadow.9.png
diff --git a/res/drawable-xhdpi/btn_cab_done_default_shadow.9.png b/src/main/res/drawable-xhdpi/btn_cab_done_default_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/btn_cab_done_default_shadow.9.png
rename to src/main/res/drawable-xhdpi/btn_cab_done_default_shadow.9.png
diff --git a/res/drawable-xhdpi/btn_cab_done_focused_shadow.9.png b/src/main/res/drawable-xhdpi/btn_cab_done_focused_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/btn_cab_done_focused_shadow.9.png
rename to src/main/res/drawable-xhdpi/btn_cab_done_focused_shadow.9.png
diff --git a/res/drawable-xhdpi/btn_cab_done_pressed_shadow.9.png b/src/main/res/drawable-xhdpi/btn_cab_done_pressed_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/btn_cab_done_pressed_shadow.9.png
rename to src/main/res/drawable-xhdpi/btn_cab_done_pressed_shadow.9.png
diff --git a/res/drawable-xhdpi/cab_background_bottom_shadow.9.png b/src/main/res/drawable-xhdpi/cab_background_bottom_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/cab_background_bottom_shadow.9.png
rename to src/main/res/drawable-xhdpi/cab_background_bottom_shadow.9.png
diff --git a/res/drawable-xhdpi/cab_background_top_shadow.9.png b/src/main/res/drawable-xhdpi/cab_background_top_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/cab_background_top_shadow.9.png
rename to src/main/res/drawable-xhdpi/cab_background_top_shadow.9.png
diff --git a/res/drawable-xhdpi/ic_launcher.png b/src/main/res/drawable-xhdpi/ic_launcher.png
similarity index 100%
rename from res/drawable-xhdpi/ic_launcher.png
rename to src/main/res/drawable-xhdpi/ic_launcher.png
diff --git a/res/drawable-xhdpi/ic_stat_large.png b/src/main/res/drawable-xhdpi/ic_stat_large.png
similarity index 100%
rename from res/drawable-xhdpi/ic_stat_large.png
rename to src/main/res/drawable-xhdpi/ic_stat_large.png
diff --git a/res/drawable-xhdpi/ic_stat_shadowsocks.png b/src/main/res/drawable-xhdpi/ic_stat_shadowsocks.png
similarity index 100%
rename from res/drawable-xhdpi/ic_stat_shadowsocks.png
rename to src/main/res/drawable-xhdpi/ic_stat_shadowsocks.png
diff --git a/res/drawable-xhdpi/list_focused_shadow.9.png b/src/main/res/drawable-xhdpi/list_focused_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/list_focused_shadow.9.png
rename to src/main/res/drawable-xhdpi/list_focused_shadow.9.png
diff --git a/res/drawable-xhdpi/menu_dropdown_panel_shadow.9.png b/src/main/res/drawable-xhdpi/menu_dropdown_panel_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/menu_dropdown_panel_shadow.9.png
rename to src/main/res/drawable-xhdpi/menu_dropdown_panel_shadow.9.png
diff --git a/res/drawable-xhdpi/progress_bg_shadow.9.png b/src/main/res/drawable-xhdpi/progress_bg_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/progress_bg_shadow.9.png
rename to src/main/res/drawable-xhdpi/progress_bg_shadow.9.png
diff --git a/res/drawable-xhdpi/progress_primary_shadow.9.png b/src/main/res/drawable-xhdpi/progress_primary_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/progress_primary_shadow.9.png
rename to src/main/res/drawable-xhdpi/progress_primary_shadow.9.png
diff --git a/res/drawable-xhdpi/progress_secondary_shadow.9.png b/src/main/res/drawable-xhdpi/progress_secondary_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/progress_secondary_shadow.9.png
rename to src/main/res/drawable-xhdpi/progress_secondary_shadow.9.png
diff --git a/res/drawable-xhdpi/spinner_ab_default_shadow.9.png b/src/main/res/drawable-xhdpi/spinner_ab_default_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/spinner_ab_default_shadow.9.png
rename to src/main/res/drawable-xhdpi/spinner_ab_default_shadow.9.png
diff --git a/res/drawable-xhdpi/spinner_ab_disabled_shadow.9.png b/src/main/res/drawable-xhdpi/spinner_ab_disabled_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/spinner_ab_disabled_shadow.9.png
rename to src/main/res/drawable-xhdpi/spinner_ab_disabled_shadow.9.png
diff --git a/res/drawable-xhdpi/spinner_ab_focused_shadow.9.png b/src/main/res/drawable-xhdpi/spinner_ab_focused_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/spinner_ab_focused_shadow.9.png
rename to src/main/res/drawable-xhdpi/spinner_ab_focused_shadow.9.png
diff --git a/res/drawable-xhdpi/spinner_ab_pressed_shadow.9.png b/src/main/res/drawable-xhdpi/spinner_ab_pressed_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/spinner_ab_pressed_shadow.9.png
rename to src/main/res/drawable-xhdpi/spinner_ab_pressed_shadow.9.png
diff --git a/res/drawable-xhdpi/tab_selected_focused_shadow.9.png b/src/main/res/drawable-xhdpi/tab_selected_focused_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/tab_selected_focused_shadow.9.png
rename to src/main/res/drawable-xhdpi/tab_selected_focused_shadow.9.png
diff --git a/res/drawable-xhdpi/tab_selected_pressed_shadow.9.png b/src/main/res/drawable-xhdpi/tab_selected_pressed_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/tab_selected_pressed_shadow.9.png
rename to src/main/res/drawable-xhdpi/tab_selected_pressed_shadow.9.png
diff --git a/res/drawable-xhdpi/tab_selected_shadow.9.png b/src/main/res/drawable-xhdpi/tab_selected_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/tab_selected_shadow.9.png
rename to src/main/res/drawable-xhdpi/tab_selected_shadow.9.png
diff --git a/res/drawable-xhdpi/tab_unselected_focused_shadow.9.png b/src/main/res/drawable-xhdpi/tab_unselected_focused_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/tab_unselected_focused_shadow.9.png
rename to src/main/res/drawable-xhdpi/tab_unselected_focused_shadow.9.png
diff --git a/res/drawable-xhdpi/tab_unselected_pressed_shadow.9.png b/src/main/res/drawable-xhdpi/tab_unselected_pressed_shadow.9.png
similarity index 100%
rename from res/drawable-xhdpi/tab_unselected_pressed_shadow.9.png
rename to src/main/res/drawable-xhdpi/tab_unselected_pressed_shadow.9.png
diff --git a/res/drawable-xxhdpi/ic_launcher.png b/src/main/res/drawable-xxhdpi/ic_launcher.png
similarity index 100%
rename from res/drawable-xxhdpi/ic_launcher.png
rename to src/main/res/drawable-xxhdpi/ic_launcher.png
diff --git a/res/drawable/btn_cab_done_shadow.xml b/src/main/res/drawable/btn_cab_done_shadow.xml
similarity index 100%
rename from res/drawable/btn_cab_done_shadow.xml
rename to src/main/res/drawable/btn_cab_done_shadow.xml
diff --git a/res/drawable/pressed_background_shadow.xml b/src/main/res/drawable/pressed_background_shadow.xml
similarity index 100%
rename from res/drawable/pressed_background_shadow.xml
rename to src/main/res/drawable/pressed_background_shadow.xml
diff --git a/res/drawable/progress_horizontal_shadow.xml b/src/main/res/drawable/progress_horizontal_shadow.xml
similarity index 100%
rename from res/drawable/progress_horizontal_shadow.xml
rename to src/main/res/drawable/progress_horizontal_shadow.xml
diff --git a/res/drawable/selectable_background_shadow.xml b/src/main/res/drawable/selectable_background_shadow.xml
similarity index 100%
rename from res/drawable/selectable_background_shadow.xml
rename to src/main/res/drawable/selectable_background_shadow.xml
diff --git a/res/drawable/spinner_background_ab_shadow.xml b/src/main/res/drawable/spinner_background_ab_shadow.xml
similarity index 100%
rename from res/drawable/spinner_background_ab_shadow.xml
rename to src/main/res/drawable/spinner_background_ab_shadow.xml
diff --git a/res/drawable/tab_indicator_ab_shadow.xml b/src/main/res/drawable/tab_indicator_ab_shadow.xml
similarity index 100%
rename from res/drawable/tab_indicator_ab_shadow.xml
rename to src/main/res/drawable/tab_indicator_ab_shadow.xml
diff --git a/res/layout/layout_apps.xml b/src/main/res/layout/layout_apps.xml
similarity index 100%
rename from res/layout/layout_apps.xml
rename to src/main/res/layout/layout_apps.xml
diff --git a/res/layout/layout_apps_item.xml b/src/main/res/layout/layout_apps_item.xml
similarity index 100%
rename from res/layout/layout_apps_item.xml
rename to src/main/res/layout/layout_apps_item.xml
diff --git a/res/layout/layout_switch.xml b/src/main/res/layout/layout_switch.xml
similarity index 100%
rename from res/layout/layout_switch.xml
rename to src/main/res/layout/layout_switch.xml
diff --git a/src/main/res/layout/main.xml b/src/main/res/layout/main.xml
new file mode 100644
index 00000000..a4e6a136
--- /dev/null
+++ b/src/main/res/layout/main.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
diff --git a/res/layout/overlay.xml b/src/main/res/layout/overlay.xml
similarity index 100%
rename from res/layout/overlay.xml
rename to src/main/res/layout/overlay.xml
diff --git a/res/values-v14/styles_shadow.xml b/src/main/res/values-v14/styles_shadow.xml
similarity index 100%
rename from res/values-v14/styles_shadow.xml
rename to src/main/res/values-v14/styles_shadow.xml
diff --git a/res/values/analytics.xml b/src/main/res/values/analytics.xml
similarity index 100%
rename from res/values/analytics.xml
rename to src/main/res/values/analytics.xml
diff --git a/res/values/colors.xml b/src/main/res/values/colors.xml
similarity index 100%
rename from res/values/colors.xml
rename to src/main/res/values/colors.xml
diff --git a/res/values/colors_shadow.xml b/src/main/res/values/colors_shadow.xml
similarity index 100%
rename from res/values/colors_shadow.xml
rename to src/main/res/values/colors_shadow.xml
diff --git a/res/values/strings.xml b/src/main/res/values/strings.xml
similarity index 100%
rename from res/values/strings.xml
rename to src/main/res/values/strings.xml
diff --git a/res/values/styles.xml b/src/main/res/values/styles.xml
similarity index 100%
rename from res/values/styles.xml
rename to src/main/res/values/styles.xml
diff --git a/res/values/styles_shadow.xml b/src/main/res/values/styles_shadow.xml
similarity index 100%
rename from res/values/styles_shadow.xml
rename to src/main/res/values/styles_shadow.xml
diff --git a/res/xml/pref_feature.xml b/src/main/res/xml/pref_feature.xml
similarity index 100%
rename from res/xml/pref_feature.xml
rename to src/main/res/xml/pref_feature.xml
diff --git a/res/xml/pref_proxy.xml b/src/main/res/xml/pref_proxy.xml
similarity index 100%
rename from res/xml/pref_proxy.xml
rename to src/main/res/xml/pref_proxy.xml
diff --git a/res/xml/shadowsocks_headers.xml b/src/main/res/xml/shadowsocks_headers.xml
similarity index 100%
rename from res/xml/shadowsocks_headers.xml
rename to src/main/res/xml/shadowsocks_headers.xml
diff --git a/src/main/scala/com/github/shadowsocks/AppManager.scala b/src/main/scala/com/github/shadowsocks/AppManager.scala
new file mode 100644
index 00000000..be5b963a
--- /dev/null
+++ b/src/main/scala/com/github/shadowsocks/AppManager.scala
@@ -0,0 +1,320 @@
+/* Shadowsocks - A shadowsocks client for Android
+ * Copyright (C) 2012
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ *
+ * ___====-_ _-====___
+ * _--^^^#####// \\#####^^^--_
+ * _-^##########// ( ) \\##########^-_
+ * -############// |\^^/| \\############-
+ * _/############// (@::@) \\############\_
+ * /#############(( \\// ))#############\
+ * -###############\\ (oo) //###############-
+ * -#################\\ / VV \ //#################-
+ * -###################\\/ \//###################-
+ * _#/|##########/\######( /\ )######/\##########|\#_
+ * |/ |#/\#/\#/\/ \#/\##\ | | /##/\#/ \/\#/\#/\#| \|
+ * ` |/ V V ` V \#\| | | |/#/ V ' V V \| '
+ * ` ` ` ` / | | | | \ ' ' ' '
+ * ( | | | | )
+ * __\ | | | | /__
+ * (vvv(VVV)(VVV)vvv)
+ *
+ * HERE BE DRAGONS
+ *
+ */
+
+package com.github.shadowsocks
+
+import android.app.Activity
+import android.app.ProgressDialog
+import android.content.Context
+import android.content.SharedPreferences
+import android.content.pm.ApplicationInfo
+import android.content.pm.PackageManager
+import android.graphics.PixelFormat
+import android.os.Bundle
+import android.os.Handler
+import android.os.Message
+import android.preference.PreferenceManager
+import android.view.LayoutInflater
+import android.view.View
+import android.view.View.OnClickListener
+import android.view.ViewGroup
+import android.view.ViewGroup.LayoutParams
+import android.view.WindowManager
+import android.widget.AbsListView
+import android.widget.AbsListView.OnScrollListener
+import android.widget.ArrayAdapter
+import android.widget.CheckBox
+import android.widget.CompoundButton
+import android.widget.CompoundButton.OnCheckedChangeListener
+import android.widget.ImageView
+import android.widget.ListAdapter
+import android.widget.ListView
+import android.widget.TextView
+import com.actionbarsherlock.app.SherlockActivity
+import java.util.StringTokenizer
+import scala.collection.mutable.ArrayBuffer
+
+object AppManager {
+
+ val PREFS_KEY_PROXYED = "Proxyed"
+
+ class ObjectArrayTools[T <: AnyRef](a: Array[T]) {
+ def binarySearch(key: T) = {
+ java.util.Arrays.binarySearch(a.asInstanceOf[Array[AnyRef]], key)
+ }
+ }
+
+ implicit def anyrefarray_tools[T <: AnyRef](a: Array[T]) = new ObjectArrayTools(a)
+
+ def getProxiedApps(context: Context): Array[ProxiedApp] = {
+ val prefs: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
+ val proxiedAppString = prefs.getString(PREFS_KEY_PROXYED, "")
+ val st: StringTokenizer = new StringTokenizer(proxiedAppString, "|")
+ val proxiedApps = new Array[String](st.countTokens)
+ var idx = 0
+ while (st.hasMoreTokens) {
+ proxiedApps(idx) = st.nextToken()
+ idx += 1
+ }
+ proxiedApps.sortWith(_ < _)
+ val pMgr: PackageManager = context.getPackageManager
+ val lAppInfo = pMgr.getInstalledApplications(0)
+ val itAppInfo = lAppInfo.iterator
+ val result = new ArrayBuffer[ProxiedApp]
+ var aInfo: ApplicationInfo = null
+ while (itAppInfo.hasNext) {
+ aInfo = itAppInfo.next
+ if (aInfo.uid >= 10000) {
+ val app: ProxiedApp = new ProxiedApp
+ app.setUid(aInfo.uid)
+ app.setUsername(pMgr.getNameForUid(app.getUid))
+ if (aInfo.packageName != null && (aInfo.packageName == "com.github.shadowsocks")) {
+ app.setProxyed(true)
+ } else if (proxiedApps.binarySearch(app.getUsername) >= 0) {
+ app.setProxyed(true)
+ } else {
+ app.setProxyed(false)
+ }
+ result += app
+ }
+ }
+ result.toArray
+ }
+
+ class ListEntry {
+ var box: CheckBox = null
+ var text: TextView = null
+ var icon: ImageView = null
+ }
+
+}
+
+class AppManager extends SherlockActivity with OnCheckedChangeListener with OnClickListener {
+
+ implicit def anyrefarray_tools[T <: AnyRef](a: Array[T]) = new AppManager.ObjectArrayTools(a)
+
+ val MSG_LOAD_START = 1
+ val MSG_LOAD_FINISH = 2
+
+ def initApps(context: Context) {
+ val prefs: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
+ val proxiedAppString = prefs.getString(AppManager.PREFS_KEY_PROXYED, "")
+ val st: StringTokenizer = new StringTokenizer(proxiedAppString, "|")
+ var proxiedApps = new Array[String](st.countTokens)
+ var idx = 0
+ while (st.hasMoreTokens) {
+ proxiedApps(idx) = st.nextToken()
+ idx += 1
+ }
+ proxiedApps = proxiedApps.sortWith(_ < _)
+ val pMgr: PackageManager = context.getPackageManager
+ val lAppInfo = pMgr.getInstalledApplications(0)
+ val itAppInfo = lAppInfo.iterator
+ val result = new ArrayBuffer[ProxiedApp]
+ var aInfo: ApplicationInfo = null
+
+ while (itAppInfo.hasNext) {
+ aInfo = itAppInfo.next
+ aInfo match {
+ case null => {}
+ case a if a.uid < 10000 => {}
+ case a if a.processName == null => {}
+ case a if pMgr.getApplicationLabel(a) == null => {}
+ case a if (pMgr.getApplicationLabel(aInfo).toString == "") => {}
+ case a if pMgr.getApplicationIcon(aInfo) == null => {}
+ case _ => {
+ val tApp: ProxiedApp = new ProxiedApp
+ tApp.setEnabled(aInfo.enabled)
+ tApp.setUid(aInfo.uid)
+ tApp.setUsername(pMgr.getNameForUid(tApp.getUid))
+ tApp.setProcname(aInfo.processName)
+ tApp.setName(pMgr.getApplicationLabel(aInfo).toString)
+ tApp.setProxyed((proxiedApps binarySearch tApp.getUsername) >= 0)
+ result += tApp
+ }
+ }
+ }
+ apps = result.toArray
+ }
+
+ def loadApps() {
+ initApps(this)
+ apps = apps.sortWith((a, b) => {
+ if (a == null || b == null || a.getName == null || b.getName == null) true
+ else if (a.isProxied == b.isProxied) a.getName < b.getName
+ else if (a.isProxied) true
+ else false
+ })
+ val inflater: LayoutInflater = getLayoutInflater
+ adapter = new ArrayAdapter[ProxiedApp](this, R.layout.layout_apps_item, R.id.itemtext, apps) {
+ override def getView(position: Int, view: View, parent: ViewGroup): View = {
+ var convertView = view
+ var entry: AppManager.ListEntry = null
+ if (convertView == null) {
+ convertView = inflater.inflate(R.layout.layout_apps_item, parent, false)
+ entry = new AppManager.ListEntry
+ entry.icon = convertView.findViewById(R.id.itemicon).asInstanceOf[ImageView]
+ entry.box = convertView.findViewById(R.id.itemcheck).asInstanceOf[CheckBox]
+ entry.text = convertView.findViewById(R.id.itemtext).asInstanceOf[TextView]
+ entry.text.setOnClickListener(AppManager.this)
+ entry.text.setOnClickListener(AppManager.this)
+ convertView.setTag(entry)
+ entry.box.setOnCheckedChangeListener(AppManager.this)
+ }
+ else {
+ entry = convertView.getTag.asInstanceOf[AppManager.ListEntry]
+ }
+ val app: ProxiedApp = apps(position)
+ entry.icon.setTag(app.getUid)
+ imageLoader.DisplayImage(app.getUid, convertView.getContext.asInstanceOf[Activity], entry.icon)
+ entry.text.setText(app.getName)
+ val box: CheckBox = entry.box
+ box.setTag(app)
+ box.setChecked(app.isProxied)
+ entry.text.setTag(box)
+ convertView
+ }
+ }
+ appsLoaded = true
+ }
+
+ /** Called an application is check/unchecked */
+ def onCheckedChanged(buttonView: CompoundButton, isChecked: Boolean) {
+ val app: ProxiedApp = buttonView.getTag.asInstanceOf[ProxiedApp]
+ if (app != null) {
+ app.setProxyed(isChecked)
+ }
+ saveAppSettings(this)
+ }
+
+ def onClick(v: View) {
+ val cbox: CheckBox = v.getTag.asInstanceOf[CheckBox]
+ val app: ProxiedApp = cbox.getTag.asInstanceOf[ProxiedApp]
+ if (app != null) {
+ app.setProxyed(!app.isProxied)
+ cbox.setChecked(app.isProxied)
+ }
+ saveAppSettings(this)
+ }
+
+ protected override def onCreate(savedInstanceState: Bundle) {
+ super.onCreate(savedInstanceState)
+ this.setContentView(R.layout.layout_apps)
+ this.imageLoader = ImageLoader.getImageLoader(this)
+ this.overlay = View.inflate(this, R.layout.overlay, null).asInstanceOf[TextView]
+ getWindowManager.addView(overlay, new WindowManager.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_APPLICATION, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, PixelFormat.TRANSLUCENT))
+ }
+
+ protected override def onResume() {
+ super.onResume()
+ new Thread {
+ override def run() {
+ handler.sendEmptyMessage(MSG_LOAD_START)
+ appListView = findViewById(R.id.applistview).asInstanceOf[ListView]
+ if (!appsLoaded) loadApps()
+ handler.sendEmptyMessage(MSG_LOAD_FINISH)
+ }
+ }.start()
+ }
+
+ protected override def onStop() {
+ super.onStop()
+ }
+
+ def saveAppSettings(context: Context) {
+ if (apps == null) return
+ val prefs: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
+ val proxiedApps = new StringBuilder
+ apps.foreach(app => {
+ if (app.isProxied) {
+ proxiedApps ++= app.getUsername
+ proxiedApps += '|'
+ }
+ }
+ )
+ val edit: SharedPreferences.Editor = prefs.edit
+ edit.putString(AppManager.PREFS_KEY_PROXYED, proxiedApps.toString())
+ edit.commit
+ }
+
+ val handler: Handler = new Handler {
+ override def handleMessage(msg: Message) {
+ msg.what match {
+ case MSG_LOAD_START =>
+ progressDialog = ProgressDialog.show(AppManager.this, "", getString(R.string.loading), true, true)
+ case MSG_LOAD_FINISH =>
+ appListView.setAdapter(adapter)
+ appListView.setOnScrollListener(new AbsListView.OnScrollListener {
+ def onScroll(view: AbsListView, firstVisibleItem: Int, visibleItemCount: Int, totalItemCount: Int) {
+ if (visible) {
+ val name: String = apps(firstVisibleItem).getName
+ if (name != null && name.length > 1) {
+ overlay.setText(apps(firstVisibleItem).getName.substring(0, 1))
+ }
+ else {
+ overlay.setText("*")
+ }
+ overlay.setVisibility(View.VISIBLE)
+ }
+ }
+
+ def onScrollStateChanged(view: AbsListView, scrollState: Int) {
+ visible = true
+ if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
+ overlay.setVisibility(View.INVISIBLE)
+ }
+ }
+
+ var visible = false
+ })
+ if (progressDialog != null) {
+ progressDialog.dismiss()
+ progressDialog = null
+ }
+ }
+ super.handleMessage(msg)
+ }
+ }
+ var apps: Array[ProxiedApp] = null
+ var appListView: ListView = null
+ var overlay: TextView = null
+ var progressDialog: ProgressDialog = null
+ var adapter: ListAdapter = null
+ var imageLoader: ImageLoader = null
+ var appsLoaded: Boolean = false
+}
\ No newline at end of file
diff --git a/src/main/scala/com/github/shadowsocks/ImageLoader.scala b/src/main/scala/com/github/shadowsocks/ImageLoader.scala
new file mode 100644
index 00000000..a24baac4
--- /dev/null
+++ b/src/main/scala/com/github/shadowsocks/ImageLoader.scala
@@ -0,0 +1,215 @@
+/* Shadowsocks - A shadowsocks client for Android
+ * Copyright (C) 2012
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ *
+ * ___====-_ _-====___
+ * _--^^^#####// \\#####^^^--_
+ * _-^##########// ( ) \\##########^-_
+ * -############// |\^^/| \\############-
+ * _/############// (@::@) \\############\_
+ * /#############(( \\// ))#############\
+ * -###############\\ (oo) //###############-
+ * -#################\\ / VV \ //#################-
+ * -###################\\/ \//###################-
+ * _#/|##########/\######( /\ )######/\##########|\#_
+ * |/ |#/\#/\#/\/ \#/\##\ | | /##/\#/ \/\#/\#/\#| \|
+ * ` |/ V V ` V \#\| | | |/#/ V ' V V \| '
+ * ` ` ` ` / | | | | \ ' ' ' '
+ * ( | | | | )
+ * __\ | | | | /__
+ * (vvv(VVV)(VVV)vvv)
+ *
+ * HERE BE DRAGONS
+ *
+ */
+package com.github.shadowsocks
+
+import android.app.Activity
+import android.content.Context
+import android.graphics.Bitmap
+import android.graphics.BitmapFactory
+import android.graphics.drawable.BitmapDrawable
+import android.widget.ImageView
+import java.io.File
+import java.io.FileInputStream
+import java.io.FileNotFoundException
+import scala.collection.mutable
+
+object ImageLoader {
+ def getImageLoader(context: Context): ImageLoader = {
+ if (il == null) {
+ il = new ImageLoader(context)
+ }
+ il
+ }
+
+ class PhotosQueue {
+ def clean(image: ImageView) {
+ photosToLoad synchronized {
+ {
+ photosToLoad filterNot (photo => photo.imageView eq image)
+ }
+ }
+ }
+
+ val photosToLoad: mutable.Stack[PhotoToLoad] = new mutable.Stack[PhotoToLoad]
+ }
+
+ class PhotoToLoad {
+ def this(u: Int, i: ImageView) {
+ this()
+ uid = u
+ imageView = i
+ }
+
+ var uid: Int = 0
+ var imageView: ImageView = null
+ }
+
+ class BitmapDisplayer(bitmap: Bitmap, imageView: ImageView) extends Runnable {
+ def run() {
+ if (bitmap != null) {
+ imageView.setImageBitmap(bitmap)
+ }
+ else {
+ imageView.setImageResource(stub_id)
+ }
+ }
+ }
+
+ var il: ImageLoader = null
+ val stub_id: Int = android.R.drawable.sym_def_app_icon
+}
+
+class ImageLoader {
+ def this(c: Context) {
+ this()
+ photoLoaderThread.setPriority(Thread.NORM_PRIORITY - 1)
+ context = c
+ cacheDir = context.getCacheDir
+ }
+
+ def clearCache() {
+ cache.clear()
+ val files: Array[File] = cacheDir.listFiles
+ for (f <- files) f.delete
+ }
+
+ private def decodeFile(f: File): Bitmap = {
+ try {
+ val o: BitmapFactory.Options = new BitmapFactory.Options
+ o.inJustDecodeBounds = true
+ BitmapFactory.decodeStream(new FileInputStream(f), null, o)
+ val REQUIRED_SIZE: Int = 70
+ var width_tmp: Int = o.outWidth
+ var height_tmp: Int = o.outHeight
+ var scale: Int = 1
+ while (true) {
+ if (width_tmp / 2 >= REQUIRED_SIZE && height_tmp / 2 >= REQUIRED_SIZE) {
+ width_tmp /= 2
+ height_tmp /= 2
+ scale *= 2
+ }
+ }
+ val o2: BitmapFactory.Options = new BitmapFactory.Options
+ o2.inSampleSize = scale
+ return BitmapFactory.decodeStream(new FileInputStream(f), null, o2)
+ }
+ catch {
+ case ignored: FileNotFoundException => {
+ }
+ }
+ null
+ }
+
+ def DisplayImage(uid: Int, activity: Activity, imageView: ImageView) {
+ cache.get(uid) map {
+ bitmap => imageView.setImageBitmap(bitmap)
+ } getOrElse {
+ queuePhoto(uid, activity, imageView)
+ imageView.setImageResource(ImageLoader.stub_id)
+ }
+ }
+
+ private def getBitmap(uid: Int): Bitmap = {
+ val filename = String.valueOf(uid)
+ val f: File = new File(cacheDir, filename)
+ val b: Bitmap = decodeFile(f)
+ if (b != null) return b
+ try {
+ val icon: BitmapDrawable = Utils.getAppIcon(context, uid).asInstanceOf[BitmapDrawable]
+ icon.getBitmap
+ }
+ catch {
+ case ex: Exception => {
+ return null
+ }
+ }
+ }
+
+ def queuePhoto(uid: Int, activity: Activity, imageView: ImageView) {
+ photosQueue.clean(imageView)
+ val p: ImageLoader.PhotoToLoad = new ImageLoader.PhotoToLoad(uid, imageView)
+ photosQueue.photosToLoad synchronized {
+ photosQueue.photosToLoad.push(p)
+ photosQueue.photosToLoad.notifyAll()
+ }
+ if (photoLoaderThread.getState eq Thread.State.NEW) photoLoaderThread.start()
+ }
+
+ def stopThread() {
+ photoLoaderThread.interrupt()
+ }
+
+ val photosQueue: ImageLoader.PhotosQueue = new ImageLoader.PhotosQueue
+ val photoLoaderThread: PhotosLoader = new PhotosLoader
+ var cache: mutable.HashMap[Int, Bitmap] = new mutable.HashMap[Int, Bitmap]
+ var cacheDir: File = null
+ var context: Context = null
+
+ class PhotosLoader extends Thread {
+ override def run() {
+ try {
+ while (true) {
+ if (photosQueue.photosToLoad.size == 0) {
+ photosQueue.photosToLoad synchronized {
+ photosQueue.photosToLoad.wait()
+ }
+ }
+ if (photosQueue.photosToLoad.size != 0) {
+ var photoToLoad: ImageLoader.PhotoToLoad = null
+ photosQueue.photosToLoad synchronized {
+ photoToLoad = photosQueue.photosToLoad.pop()
+ }
+ val bmp: Bitmap = getBitmap(photoToLoad.uid)
+ cache.put(photoToLoad.uid, bmp)
+ val tag: AnyRef = photoToLoad.imageView.getTag
+ if (tag != null && tag.asInstanceOf[Int] == photoToLoad.uid) {
+ val bd: ImageLoader.BitmapDisplayer = new ImageLoader.BitmapDisplayer(bmp, photoToLoad.imageView)
+ val a: Activity = photoToLoad.imageView.getContext.asInstanceOf[Activity]
+ a.runOnUiThread(bd)
+ }
+ }
+ if (Thread.interrupted) return
+ }
+ }
+ catch {
+ case e: InterruptedException => {
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/com/github/shadowsocks/ProxyedApp.java b/src/main/scala/com/github/shadowsocks/ProxiedApp.scala
old mode 100755
new mode 100644
similarity index 68%
rename from src/com/github/shadowsocks/ProxyedApp.java
rename to src/main/scala/com/github/shadowsocks/ProxiedApp.scala
index 988c34f8..a30315d1
--- a/src/com/github/shadowsocks/ProxyedApp.java
+++ b/src/main/scala/com/github/shadowsocks/ProxiedApp.scala
@@ -35,75 +35,73 @@
* HERE BE DRAGONS
*
*/
+package com.github.shadowsocks
-package com.github.shadowsocks;
-
-public class ProxyedApp {
-
- private boolean enabled;
- private int uid;
- private String username;
- private String procname;
- private String name;
- private boolean proxyed = false;
-
+class ProxiedApp {
/** @return the name */
- public String getName() {
- return name;
+ def getName: String = {
+ name
}
/** @param name the name to set */
- public void setName(String name) {
- this.name = name;
+ def setName(name: String) {
+ this.name = name
}
/** @return the procname */
- public String getProcname() {
- return procname;
+ def getProcname: String = {
+ procname
}
/** @param procname the procname to set */
- public void setProcname(String procname) {
- this.procname = procname;
+ def setProcname(procname: String) {
+ this.procname = procname
}
/** @return the uid */
- public int getUid() {
- return uid;
+ def getUid: Int = {
+ uid
}
/** @param uid the uid to set */
- public void setUid(int uid) {
- this.uid = uid;
+ def setUid(uid: Int) {
+ this.uid = uid
}
/** @return the username */
- public String getUsername() {
- return username;
+ def getUsername: String = {
+ username
}
/** @param username the username to set */
- public void setUsername(String username) {
- this.username = username;
+ def setUsername(username: String) {
+ this.username = username
}
/** @return the enabled */
- public boolean isEnabled() {
- return enabled;
+ def isEnabled: Boolean = {
+ enabled
}
/** @param enabled the enabled to set */
- public void setEnabled(boolean enabled) {
- this.enabled = enabled;
+ def setEnabled(enabled: Boolean) {
+ this.enabled = enabled
}
- /** @return the proxyed */
- public boolean isProxyed() {
- return proxyed;
+ /** @return the proxied */
+ def isProxied: Boolean = {
+ proxied
}
- /** @param proxyed the proxyed to set */
- public void setProxyed(boolean proxyed) {
- this.proxyed = proxyed;
+ /** @param proxied the proxied to set */
+ def setProxyed(proxied: Boolean) {
+ this.proxied = proxied
}
-}
+
+ private var enabled: Boolean = false
+ private var uid: Int = 0
+ private var username: String = null
+ private var procname: String = null
+ private var name: String = null
+ private var proxied: Boolean = false
+}
\ No newline at end of file
diff --git a/src/main/scala/com/github/shadowsocks/Shadowsocks.scala b/src/main/scala/com/github/shadowsocks/Shadowsocks.scala
new file mode 100644
index 00000000..db792a40
--- /dev/null
+++ b/src/main/scala/com/github/shadowsocks/Shadowsocks.scala
@@ -0,0 +1,536 @@
+/* Shadowsocks - A shadowsocks client for Android
+ * Copyright (C) 2012
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ *
+ * ___====-_ _-====___
+ * _--^^^#####// \\#####^^^--_
+ * _-^##########// ( ) \\##########^-_
+ * -############// |\^^/| \\############-
+ * _/############// (@::@) \\############\_
+ * /#############(( \\// ))#############\
+ * -###############\\ (oo) //###############-
+ * -#################\\ / VV \ //#################-
+ * -###################\\/ \//###################-
+ * _#/|##########/\######( /\ )######/\##########|\#_
+ * |/ |#/\#/\#/\/ \#/\##\ | | /##/\#/ \/\#/\#/\#| \|
+ * ` |/ V V ` V \#\| | | |/#/ V ' V V \| '
+ * ` ` ` ` / | | | | \ ' ' ' '
+ * ( | | | | )
+ * __\ | | | | /__
+ * (vvv(VVV)(VVV)vvv)
+ *
+ * HERE BE DRAGONS
+ *
+ */
+package com.github.shadowsocks
+
+import android.app.AlertDialog
+import android.app.ProgressDialog
+import android.content.Context
+import android.content.DialogInterface
+import android.content.Intent
+import android.content.SharedPreferences
+import android.content.SharedPreferences.OnSharedPreferenceChangeListener
+import android.content.res.AssetManager
+import android.graphics.Typeface
+import android.os.Bundle
+import android.os.Handler
+import android.os.Message
+import android.preference.Preference
+import android.preference.PreferenceManager
+import android.util.Log
+import android.view.KeyEvent
+import android.widget.CompoundButton
+import android.widget.RelativeLayout
+import android.widget.TextView
+import com.actionbarsherlock.view.Menu
+import com.actionbarsherlock.view.MenuItem
+import com.google.analytics.tracking.android.EasyTracker
+import de.keyboardsurfer.android.widget.crouton.Crouton
+import de.keyboardsurfer.android.widget.crouton.Style
+import java.io.FileOutputStream
+import java.io.IOException
+import java.io.InputStream
+import java.io.OutputStream
+import java.util.Hashtable
+import net.saik0.android.unifiedpreference.UnifiedPreferenceFragment
+import net.saik0.android.unifiedpreference.UnifiedSherlockPreferenceActivity
+import org.jraf.android.backport.switchwidget.Switch
+import android.content.pm.PackageManager
+
+object Shadowsocks {
+ val PREFS_NAME = "Shadowsocks"
+ val PROXY_PREFS = Array("proxy", "remotePort", "port", "sitekey", "encMethod")
+ val FEATRUE_PREFS = Array("isHTTPProxy", "isDNSProxy", "isGFWList", "isGlobalProxy", "isBypassApps", "proxyedApps", "isAutoConnect")
+ val TAG = "Shadowsocks"
+
+ class ProxyFragment extends UnifiedPreferenceFragment with OnSharedPreferenceChangeListener {
+ private def setPreferenceEnabled() {
+ val settings: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity)
+ val enabled: Boolean = !settings.getBoolean("isRunning", false) && !settings.getBoolean("isConnecting", false)
+ for (name <- PROXY_PREFS) {
+ val pref: Preference = findPreference(name)
+ if (pref != null) {
+ pref.setEnabled(enabled)
+ }
+ }
+ }
+
+ override def onResume() {
+ super.onResume()
+ setPreferenceEnabled()
+ getPreferenceScreen.getSharedPreferences.registerOnSharedPreferenceChangeListener(this)
+ }
+
+ override def onPause() {
+ super.onPause()
+ getPreferenceScreen.getSharedPreferences.unregisterOnSharedPreferenceChangeListener(this)
+ }
+
+ def onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String) {
+ if ((key == "isRunning") || (key == "isGlobalProxy")) {
+ setPreferenceEnabled()
+ }
+ }
+ }
+
+ class FeatureFragment extends UnifiedPreferenceFragment with OnSharedPreferenceChangeListener {
+ private def setPreferenceEnabled() {
+ val settings: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity)
+ val enabled: Boolean = !settings.getBoolean("isRunning", false) && !settings.getBoolean("isConnecting", false)
+ for (name <- FEATRUE_PREFS) {
+ val pref: Preference = findPreference(name)
+ if (pref != null) {
+ if ((name == "isBypassApps") || (name == "proxyedApps")) {
+ val isGlobalProxy: Boolean = settings.getBoolean("isGlobalProxy", false)
+ pref.setEnabled(enabled && !isGlobalProxy)
+ }
+ else {
+ pref.setEnabled(enabled)
+ }
+ }
+ }
+ }
+
+ override def onResume() {
+ super.onResume()
+ setPreferenceEnabled()
+ getPreferenceScreen.getSharedPreferences.registerOnSharedPreferenceChangeListener(this)
+ }
+
+ override def onPause() {
+ super.onPause()
+ getPreferenceScreen.getSharedPreferences.unregisterOnSharedPreferenceChangeListener(this)
+ }
+
+ def onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String) {
+ if ((key == "isRunning") || (key == "isGlobalProxy")) {
+ setPreferenceEnabled()
+ }
+ }
+ }
+
+}
+
+object Typefaces {
+ def get(c: Context, assetPath: String): Typeface = {
+ cache synchronized {
+ if (!cache.containsKey(assetPath)) {
+ try {
+ val t: Typeface = Typeface.createFromAsset(c.getAssets, assetPath)
+ cache.put(assetPath, t)
+ }
+ catch {
+ case e: Exception => {
+ Log.e(TAG, "Could not get typeface '" + assetPath + "' because " + e.getMessage)
+ return null
+ }
+ }
+ }
+ return cache.get(assetPath)
+ }
+ }
+
+ private final val TAG: String = "Typefaces"
+ private final val cache: Hashtable[String, Typeface] = new Hashtable[String, Typeface]
+}
+
+class Shadowsocks extends UnifiedSherlockPreferenceActivity with CompoundButton.OnCheckedChangeListener with OnSharedPreferenceChangeListener {
+
+ private var progressDialog: ProgressDialog = null
+ private val MSG_CRASH_RECOVER: Int = 1
+ private val MSG_INITIAL_FINISH: Int = 2
+
+ private def copyAssets(path: String) {
+ val assetManager: AssetManager = getAssets
+ var files: Array[String] = null
+ try {
+ files = assetManager.list(path)
+ }
+ catch {
+ case e: IOException => {
+ Log.e(Shadowsocks.TAG, e.getMessage)
+ }
+ }
+ if (files != null) {
+ for (file <- files) {
+ var in: InputStream = null
+ var out: OutputStream = null
+ try {
+ if (path.length > 0) {
+ in = assetManager.open(path + "/" + file)
+ }
+ else {
+ in = assetManager.open(file)
+ }
+ out = new FileOutputStream("/data/data/com.github.shadowsocks/" + file)
+ copyFile(in, out)
+ in.close()
+ in = null
+ out.flush()
+ out.close()
+ out = null
+ }
+ catch {
+ case ex: Exception => {
+ Log.e(Shadowsocks.TAG, ex.getMessage)
+ }
+ }
+ }
+ }
+ }
+
+ private def copyFile(in: InputStream, out: OutputStream) {
+ val buffer: Array[Byte] = new Array[Byte](1024)
+ var read: Int = 0
+ while ((({
+ read = in.read(buffer)
+ read
+ })) != -1) {
+ out.write(buffer, 0, read)
+ }
+ }
+
+ private def crash_recovery() {
+ val sb = new StringBuilder
+ sb.append(Utils.getIptables).append(" -t nat -F OUTPUT").append("\n")
+ sb.append("kill -9 `cat /data/data/com.github.shadowsocks/pdnsd.pid`").append("\n")
+ sb.append("kill -9 `cat /data/data/com.github.shadowsocks/redsocks.pid`").append("\n")
+ sb.append("kill -9 `cat /data/data/com.github.shadowsocks/shadowsocks.pid`").append("\n")
+ sb.append("kill -9 `cat /data/data/com.github.shadowsocks/polipo.pid`").append("\n")
+ sb.append("killall -9 pdnsd").append("\n")
+ sb.append("killall -9 redsocks").append("\n")
+ sb.append("killall -9 shadowsocks").append("\n")
+ sb.append("killall -9 polipo").append("\n")
+ Utils.runRootCommand(sb.toString())
+ }
+
+ private def isTextEmpty(s: String, msg: String): Boolean = {
+ if (s == null || s.length <= 0) {
+ showAToast(msg)
+ return true
+ }
+ false
+ }
+
+ def onCheckedChanged(compoundButton: CompoundButton, b: Boolean) {
+ if (compoundButton eq switchButton) {
+ val settings: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(Shadowsocks.this)
+ settings.edit.putBoolean("isRunning", true).commit
+ if (!serviceStart) {
+ settings.edit.putBoolean("isRunning", false).commit
+ }
+ }
+ }
+
+ /** Called when the activity is first created. */
+ override def onCreate(savedInstanceState: Bundle) {
+ setHeaderRes(R.xml.shadowsocks_headers)
+ super.onCreate(savedInstanceState)
+ val switchLayout: RelativeLayout = getLayoutInflater.inflate(R.layout.layout_switch, null).asInstanceOf[RelativeLayout]
+ getSupportActionBar.setCustomView(switchLayout)
+ getSupportActionBar.setDisplayShowTitleEnabled(false)
+ getSupportActionBar.setDisplayShowCustomEnabled(true)
+ getSupportActionBar.setDisplayShowHomeEnabled(false)
+ switchButton = switchLayout.findViewById(R.id.switchButton).asInstanceOf[Switch]
+ val title: TextView = switchLayout.findViewById(R.id.title).asInstanceOf[TextView]
+ val tf: Typeface = Typefaces.get(this, "fonts/Iceland.ttf")
+ if (tf != null) title.setTypeface(tf)
+ title.setText(R.string.app_name)
+ val settings: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(Shadowsocks.this)
+ val init: Boolean = !settings.getBoolean("isRunning", false) && !settings.getBoolean("isConnecting", false)
+ if (init) {
+ if (progressDialog == null) {
+ progressDialog = ProgressDialog.show(this, "", getString(R.string.initializing), true, true)
+ }
+ new Thread {
+ override def run() {
+ Utils.getRoot
+ var versionName: String = null
+ try {
+ versionName = getPackageManager.getPackageInfo(getPackageName, 0).versionName
+ }
+ catch {
+ case e: PackageManager.NameNotFoundException => {
+ versionName = "NONE"
+ }
+ }
+ if (!settings.getBoolean(versionName, false)) {
+ val edit: SharedPreferences.Editor = settings.edit
+ edit.putBoolean(versionName, true)
+ edit.commit
+ reset()
+ }
+ handler.sendEmptyMessage(MSG_INITIAL_FINISH)
+ }
+ }.start()
+ }
+ }
+
+ override def onCreateOptionsMenu(menu: Menu): Boolean = {
+ menu.add(0, 0, 0, R.string.recovery).setIcon(android.R.drawable.ic_menu_revert).setShowAsAction(MenuItem.SHOW_AS_ACTION_WITH_TEXT)
+ menu.add(0, 1, 1, R.string.about).setIcon(android.R.drawable.ic_menu_info_details).setShowAsAction(MenuItem.SHOW_AS_ACTION_WITH_TEXT)
+ true
+ }
+
+ /** Called when the activity is closed. */
+ override def onDestroy() {
+ val settings: SharedPreferences = getSharedPreferences(Shadowsocks.PREFS_NAME, 0)
+ val editor: SharedPreferences.Editor = settings.edit
+ editor.putBoolean("isConnected", ShadowsocksService.isServiceStarted)
+ editor.commit
+ super.onDestroy()
+ }
+
+ override def onKeyDown(keyCode: Int, event: KeyEvent): Boolean = {
+ if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount == 0) {
+ try {
+ finish()
+ }
+ catch {
+ case ignore: Exception => {
+ }
+ }
+ return true
+ }
+ super.onKeyDown(keyCode, event)
+ }
+
+ override def onOptionsItemSelected(item: MenuItem): Boolean = {
+ item.getItemId match {
+ case 0 =>
+ recovery()
+ case 1 =>
+ var versionName = ""
+ try {
+ versionName = getPackageManager.getPackageInfo(getPackageName, 0).versionName
+ }
+ catch {
+ case ex: PackageManager.NameNotFoundException => {
+ versionName = ""
+ }
+ }
+ showAToast(getString(R.string.about) + " (" + versionName + ")\n\n" + getString(R.string.copy_rights))
+ }
+ super.onOptionsItemSelected(item)
+ }
+
+ protected override def onPause() {
+ super.onPause()
+ PreferenceManager.getDefaultSharedPreferences(this).unregisterOnSharedPreferenceChangeListener(this)
+ }
+
+ protected override def onResume() {
+ super.onResume()
+ val settings: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
+ val edit: SharedPreferences.Editor = settings.edit
+ if (ShadowsocksService.isServiceStarted) {
+ edit.putBoolean("isRunning", true)
+ switchButton.setChecked(true)
+ }
+ else {
+ if (settings.getBoolean("isRunning", false)) {
+ new Thread {
+ override def run() {
+ crash_recovery()
+ handler.sendEmptyMessage(MSG_CRASH_RECOVER)
+ }
+ }.start()
+ }
+ edit.putBoolean("isRunning", false)
+ switchButton.setChecked(false)
+ }
+ edit.commit
+ setPreferenceEnabled()
+ switchButton.setOnCheckedChangeListener(this)
+ PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this)
+ }
+
+ private def setPreferenceEnabled() {
+ val settings: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(Shadowsocks.this)
+ val enabled: Boolean = !settings.getBoolean("isRunning", false) && !settings.getBoolean("isConnecting", false)
+ for (name <- Shadowsocks.PROXY_PREFS) {
+ val pref: Preference = findPreference(name)
+ if (pref != null) {
+ pref.setEnabled(enabled)
+ }
+ }
+ for (name <- Shadowsocks.FEATRUE_PREFS) {
+ val pref: Preference = findPreference(name)
+ if (pref != null) {
+ if ((name == "isBypassApps") || (name == "proxyedApps")) {
+ val isGlobalProxy: Boolean = settings.getBoolean("isGlobalProxy", false)
+ pref.setEnabled(enabled && !isGlobalProxy)
+ }
+ else {
+ pref.setEnabled(enabled)
+ }
+ }
+ }
+ }
+
+ def onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String) {
+ val settings: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
+ if (key == "isRunning") {
+ if (settings.getBoolean("isRunning", false)) {
+ switchButton.setChecked(true)
+ }
+ else {
+ switchButton.setChecked(false)
+ }
+ }
+ if (key == "isConnecting") {
+ if (settings.getBoolean("isConnecting", false)) {
+ Log.d(Shadowsocks.TAG, "Connecting start")
+ if (progressDialog == null) {
+ progressDialog = ProgressDialog.show(this, "", getString(R.string.connecting), true, true)
+ }
+ }
+ else {
+ Log.d(Shadowsocks.TAG, "Connecting finish")
+ if (progressDialog != null) {
+ progressDialog.dismiss()
+ progressDialog = null
+ }
+ }
+ }
+ if ((key == "isRunning") || (key == "isGlobalProxy")) {
+ setPreferenceEnabled()
+ }
+ }
+
+ override def onStart() {
+ super.onStart()
+ EasyTracker.getInstance.activityStart(this)
+ }
+
+ override def onStop() {
+ super.onStop()
+ EasyTracker.getInstance.activityStop(this)
+ if (progressDialog != null) {
+ progressDialog.dismiss()
+ progressDialog = null
+ }
+ }
+
+ def reset() {
+ crash_recovery()
+ copyAssets("")
+ copyAssets(Utils.getABI)
+ Utils.runCommand("chmod 755 /data/data/com.github.shadowsocks/iptables\n" + "chmod 755 /data/data/com.github.shadowsocks/redsocks\n" + "chmod 755 /data/data/com.github.shadowsocks/pdnsd\n" + "chmod 755 /data/data/com.github.shadowsocks/shadowsocks\n" + "chmod 755 /data/data/com.github.shadowsocks/polipo\n")
+ }
+
+ private def recovery() {
+ if (progressDialog == null) {
+ progressDialog = ProgressDialog.show(this, "", getString(R.string.recovering), true, true)
+ }
+ val h: Handler = new Handler {
+ override def handleMessage(msg: Message) {
+ if (progressDialog != null) {
+ progressDialog.dismiss()
+ progressDialog = null
+ }
+ }
+ }
+ stopService(new Intent(this, classOf[ShadowsocksService]))
+ new Thread {
+ override def run() {
+ reset()
+ h.sendEmptyMessage(0)
+ }
+ }.start()
+ }
+
+ /** Called when connect button is clicked. */
+ def serviceStart: Boolean = {
+ if (ShadowsocksService.isServiceStarted) {
+ stopService(new Intent(this, classOf[ShadowsocksService]))
+ return false
+ }
+ val settings: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
+ val proxy = settings.getString("proxy", "")
+ if (isTextEmpty(proxy, getString(R.string.proxy_empty))) return false
+ val portText = settings.getString("port", "")
+ if (isTextEmpty(portText, getString(R.string.port_empty))) return false
+ try {
+ val port: Int = Integer.valueOf(portText)
+ if (port <= 1024) {
+ this.showAToast(getString(R.string.port_alert))
+ return false
+ }
+ }
+ catch {
+ case ex: Exception => {
+ this.showAToast(getString(R.string.port_alert))
+ return false
+ }
+ }
+ val it: Intent = new Intent(this, classOf[ShadowsocksService])
+ startService(it)
+ true
+ }
+
+ private def showAToast(msg: String) {
+ val builder: AlertDialog.Builder = new AlertDialog.Builder(this)
+ builder.setMessage(msg).setCancelable(false).setNegativeButton(getString(R.string.ok_iknow), new DialogInterface.OnClickListener {
+ def onClick(dialog: DialogInterface, id: Int) {
+ dialog.cancel()
+ }
+ })
+ val alert: AlertDialog = builder.create
+ alert.show()
+ }
+
+ private[shadowsocks] final val handler: Handler = new Handler {
+ override def handleMessage(msg: Message) {
+ val settings: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(Shadowsocks.this)
+ val ed: SharedPreferences.Editor = settings.edit
+ msg.what match {
+ case MSG_CRASH_RECOVER =>
+ Crouton.makeText(Shadowsocks.this, R.string.crash_alert, Style.ALERT).show()
+ ed.putBoolean("isRunning", false)
+ case MSG_INITIAL_FINISH =>
+ if (progressDialog != null) {
+ progressDialog.dismiss()
+ progressDialog = null
+ }
+ }
+ ed.commit
+ super.handleMessage(msg)
+ }
+ }
+ private var switchButton: Switch = null
+}
\ No newline at end of file
diff --git a/src/com/github/shadowsocks/ImageLoaderFactory.java b/src/main/scala/com/github/shadowsocks/ShadowsocksApplication.scala
old mode 100755
new mode 100644
similarity index 86%
rename from src/com/github/shadowsocks/ImageLoaderFactory.java
rename to src/main/scala/com/github/shadowsocks/ShadowsocksApplication.scala
index d9de221b..562b24ff
--- a/src/com/github/shadowsocks/ImageLoaderFactory.java
+++ b/src/main/scala/com/github/shadowsocks/ShadowsocksApplication.scala
@@ -35,19 +35,13 @@
* HERE BE DRAGONS
*
*/
+package com.github.shadowsocks
-package com.github.shadowsocks;
+import android.app.Application
+import com.google.analytics.tracking.android.EasyTracker
-import android.content.Context;
-
-public class ImageLoaderFactory {
-
- private static ImageLoader il = null;
-
- public static ImageLoader getImageLoader(Context context) {
- if (il == null) {
- il = new ImageLoader(context);
- }
- return il;
+class ShadowsocksApplication extends Application {
+ override def onCreate() {
+ EasyTracker.getInstance.setContext(this)
}
-}
+}
\ No newline at end of file
diff --git a/src/com/github/shadowsocks/ShadowsocksReceiver.java b/src/main/scala/com/github/shadowsocks/ShadowsocksReceiver.scala
similarity index 55%
rename from src/com/github/shadowsocks/ShadowsocksReceiver.java
rename to src/main/scala/com/github/shadowsocks/ShadowsocksReceiver.scala
index 5b7a7db6..47e0b659 100644
--- a/src/com/github/shadowsocks/ShadowsocksReceiver.java
+++ b/src/main/scala/com/github/shadowsocks/ShadowsocksReceiver.scala
@@ -35,62 +35,58 @@
* HERE BE DRAGONS
*
*/
+package com.github.shadowsocks
-package com.github.shadowsocks;
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import android.content.SharedPreferences
+import android.content.pm.PackageManager
+import android.preference.PreferenceManager
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.content.pm.PackageManager;
-import android.preference.PreferenceManager;
-public class ShadowsocksReceiver extends BroadcastReceiver {
+class ShadowsocksReceiver extends BroadcastReceiver {
- public static final String CLOSE_ACTION = "com.github.shadowsocks.ACTION_SHUTDOWN";
-
- private static final String TAG = "Shadowsocks";
-
- @Override
- public void onReceive(Context context, Intent intent) {
+ val TAG = "Shadowsocks"
+ def onReceive(context: Context, intent: Intent) {
if (intent != null) {
- final String action = intent.getAction();
- if (action.equals(Intent.ACTION_SHUTDOWN)
- || action.equals(CLOSE_ACTION)) {
- context.stopService(new Intent(context, ShadowsocksService.class));
- return;
+ val action = intent.getAction
+ if ((action == Intent.ACTION_SHUTDOWN) || (action == Utils.CLOSE_ACTION)) {
+ context.stopService(new Intent(context, classOf[ShadowsocksService]))
+ return
}
}
-
- SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
- String versionName;
+ val settings: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
+ var versionName: String = null
try {
- versionName =
- context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName;
- } catch (PackageManager.NameNotFoundException e) {
- versionName = "NONE";
+ versionName = context.getPackageManager.getPackageInfo(context.getPackageName, 0).versionName
}
-
- final boolean isAutoConnect = settings.getBoolean("isAutoConnect", false);
- final boolean isInstalled = settings.getBoolean(versionName, false);
-
+ catch {
+ case e: PackageManager.NameNotFoundException => {
+ versionName = "NONE"
+ }
+ }
+ val isAutoConnect: Boolean = settings.getBoolean("isAutoConnect", false)
+ val isInstalled: Boolean = settings.getBoolean(versionName, false)
if (isAutoConnect && isInstalled) {
- final String portText = settings.getString("port", "");
- if (portText == null || portText.length() <= 0) {
- return;
+ val portText: String = settings.getString("port", "")
+ if (portText == null || portText.length <= 0) {
+ return
}
try {
- int port = Integer.valueOf(portText);
+ val port: Int = Integer.valueOf(portText)
if (port <= 1024) {
- return;
+ return
}
- } catch (Exception e) {
- return;
}
-
- Intent it = new Intent(context, ShadowsocksService.class);
- context.startService(it);
+ catch {
+ case e: Exception => {
+ return
+ }
+ }
+ val it: Intent = new Intent(context, classOf[ShadowsocksService])
+ context.startService(it)
}
}
-}
+}
\ No newline at end of file
diff --git a/src/main/scala/com/github/shadowsocks/ShadowsocksService.scala b/src/main/scala/com/github/shadowsocks/ShadowsocksService.scala
new file mode 100644
index 00000000..8fdc135a
--- /dev/null
+++ b/src/main/scala/com/github/shadowsocks/ShadowsocksService.scala
@@ -0,0 +1,538 @@
+/* Shadowsocks - A shadowsocks client for Android
+ * Copyright (C) 2012
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ *
+ * ___====-_ _-====___
+ * _--^^^#####// \\#####^^^--_
+ * _-^##########// ( ) \\##########^-_
+ * -############// |\^^/| \\############-
+ * _/############// (@::@) \\############\_
+ * /#############(( \\// ))#############\
+ * -###############\\ (oo) //###############-
+ * -#################\\ / VV \ //#################-
+ * -###################\\/ \//###################-
+ * _#/|##########/\######( /\ )######/\##########|\#_
+ * |/ |#/\#/\#/\/ \#/\##\ | | /##/\#/ \/\#/\#/\#| \|
+ * ` |/ V V ` V \#\| | | |/#/ V ' V V \| '
+ * ` ` ` ` / | | | | \ ' ' ' '
+ * ( | | | | )
+ * __\ | | | | /__
+ * (vvv(VVV)(VVV)vvv)
+ *
+ * HERE BE DRAGONS
+ *
+ */
+package com.github.shadowsocks
+
+import android.app.Notification
+import android.app.NotificationManager
+import android.app.PendingIntent
+import android.app.Service
+import android.content.Context
+import android.content.Intent
+import android.content.SharedPreferences
+import android.content.pm.PackageInfo
+import android.content.pm.PackageManager
+import android.os.Handler
+import android.os.IBinder
+import android.os.Message
+import android.os.PowerManager
+import android.preference.PreferenceManager
+import android.support.v4.app.NotificationCompat
+import android.util.Log
+import com.google.analytics.tracking.android.EasyTracker
+import java.io.BufferedReader
+import java.io.FileNotFoundException
+import java.io.FileReader
+import java.io.IOException
+import java.lang.ref.WeakReference
+import java.lang.reflect.InvocationTargetException
+import java.lang.reflect.Method
+import java.net.Inet6Address
+import java.net.InetAddress
+import java.net.UnknownHostException
+import org.apache.http.conn.util.InetAddressUtils
+import scala.collection._
+
+object ShadowsocksService {
+ def isServiceStarted: Boolean = {
+ if (sRunningInstance == null) {
+ false
+ } else if (sRunningInstance.get == null) {
+ sRunningInstance = null
+ false
+ } else {
+ true
+ }
+ }
+
+ var sRunningInstance: WeakReference[ShadowsocksService] = null
+}
+
+class ShadowsocksService extends Service {
+
+ val TAG = "ShadowsocksService"
+ val BASE = "/data/data/com.github.shadowsocks/"
+ val REDSOCKS_CONF = "base {" + " log_debug = off;" + " log_info = off;" + " log = stderr;" + " daemon = on;" + " redirector = iptables;" + "}" + "redsocks {" + " local_ip = 127.0.0.1;" + " local_port = 8123;" + " ip = 127.0.0.1;" + " port = %d;" + " type = socks5;" + "}"
+ val SHADOWSOCKS_CONF = "{\"server\": [%s], \"server_port\": %d, \"local_port\": %d, \"password\": %s, \"timeout\": %d}"
+ val CMD_IPTABLES_RETURN = " -t nat -A OUTPUT -p tcp -d 0.0.0.0 -j RETURN\n"
+ val CMD_IPTABLES_REDIRECT_ADD_SOCKS = " -t nat -A OUTPUT -p tcp " + "-j REDIRECT --to 8123\n"
+ val CMD_IPTABLES_DNAT_ADD_SOCKS = " -t nat -A OUTPUT -p tcp " + "-j DNAT --to-destination 127.0.0.1:8123\n"
+ val MSG_CONNECT_START: Int = 0
+ val MSG_CONNECT_FINISH: Int = 1
+ val MSG_CONNECT_SUCCESS: Int = 2
+ val MSG_CONNECT_FAIL: Int = 3
+ val MSG_HOST_CHANGE: Int = 4
+ val MSG_STOP_SELF: Int = 5
+ val DNS_PORT: Int = 8153
+
+ val mStartForegroundSignature = Array[Class[_]](classOf[Int], classOf[Notification])
+ val mStopForegroundSignature = Array[Class[_]](classOf[Boolean])
+ val mSetForegroundSignature = Array[Class[_]](classOf[Boolean])
+
+ def getPid(name: String): Int = {
+ try {
+ val reader: BufferedReader = new BufferedReader(new FileReader(BASE + name + ".pid"))
+ val line = reader.readLine
+ return Integer.valueOf(line)
+ }
+ catch {
+ case e: FileNotFoundException => {
+ Log.e(TAG, "Cannot open pid file: " + name)
+ }
+ case e: IOException => {
+ Log.e(TAG, "Cannot read pid file: " + name)
+ }
+ case e: NumberFormatException => {
+ Log.e(TAG, "Invalid pid", e)
+ }
+ }
+ -1
+ }
+
+ def startShadowsocksDaemon() {
+ new Thread {
+ override def run() {
+ val cmd: String = (BASE + "shadowsocks -s \"%s\" -p \"%d\" -l \"%d\" -k \"%s\" -m \"%s\" -f " + BASE + "shadowsocks.pid")
+ .format(appHost, remotePort, localPort, sitekey, encMethod)
+ System.exec(cmd)
+ }
+ }.start()
+ }
+
+ def startPolipoDaemon() {
+ new Thread {
+ override def run() {
+ val cmd: String = (BASE + "polipo proxyPort=%d socksParentProxy=127.0.0.1:%d daemonise=true pidFile=\"%s\" logLevel=1 logFile=\"%s\"")
+ .format(localPort + 1, localPort, BASE + "polipo.pid", BASE + "polipo.log")
+ System.exec(cmd)
+ }
+ }.start()
+ }
+
+ def startDnsDaemon() {
+ val cmd: String = BASE + "pdnsd -c " + BASE + "pdnsd.conf"
+ Utils.runCommand(cmd)
+ }
+
+ def getVersionName: String = {
+ var version: String = null
+ try {
+ val pi: PackageInfo = getPackageManager.getPackageInfo(getPackageName, 0)
+ version = pi.versionName
+ }
+ catch {
+ case e: PackageManager.NameNotFoundException => {
+ version = "Package name not found"
+ }
+ }
+ version
+ }
+
+ def handleCommand(intent: Intent) {
+ if (intent == null) {
+ stopSelf()
+ return
+ }
+ appHost = settings.getString("proxy", "127.0.0.1")
+ sitekey = settings.getString("sitekey", "default")
+ encMethod = settings.getString("encMethod", "table")
+ try {
+ remotePort = Integer.valueOf(settings.getString("remotePort", "1984"))
+ }
+ catch {
+ case ex: NumberFormatException => {
+ remotePort = 1984
+ }
+ }
+ try {
+ localPort = Integer.valueOf(settings.getString("port", "1984"))
+ }
+ catch {
+ case ex: NumberFormatException => {
+ localPort = 1984
+ }
+ }
+ isGlobalProxy = settings.getBoolean("isGlobalProxy", false)
+ isGFWList = settings.getBoolean("isGFWList", false)
+ isBypassApps = settings.getBoolean("isBypassApps", false)
+ isDNSProxy = settings.getBoolean("isDNSProxy", false)
+ isHTTPProxy = settings.getBoolean("isHTTPProxy", false)
+ if (isHTTPProxy) {
+ localPort -= 1
+ }
+ new Thread(new Runnable {
+ def run() {
+ handler.sendEmptyMessage(MSG_CONNECT_START)
+ var resolved: Boolean = false
+ if (appHost != null) {
+ var addr: InetAddress = null
+ val isIPv6Support: Boolean = Utils.isIPv6Support
+
+ try {
+ val addrs = InetAddress.getAllByName(appHost)
+ for (a <- addrs) {
+ if (isIPv6Support && addr == null && a.isInstanceOf[Inet6Address]) {
+ addr = a
+ }
+ }
+ if (addr == null) addr = addrs(0)
+ } catch {
+ case ignored: UnknownHostException => {
+ addr = null
+ }
+ }
+ if (addr != null) {
+ appHost = addr.getHostAddress
+ resolved = true
+ }
+ }
+ Log.d(TAG, "IPTABLES: " + Utils.getIptables)
+ hasRedirectSupport = Utils.getHasRedirectSupport
+ if (resolved && handleConnection) {
+ notifyAlert(getString(R.string.forward_success), getString(R.string.service_running))
+ handler.sendEmptyMessageDelayed(MSG_CONNECT_SUCCESS, 500)
+ }
+ else {
+ notifyAlert(getString(R.string.forward_fail), getString(R.string.service_failed))
+ stopSelf()
+ handler.sendEmptyMessageDelayed(MSG_CONNECT_FAIL, 500)
+ }
+ handler.sendEmptyMessageDelayed(MSG_CONNECT_FINISH, 500)
+ }
+ }).start()
+ markServiceStarted()
+ }
+
+ def startRedsocksDaemon() {
+ val conf = REDSOCKS_CONF.format(localPort)
+ val cmd = "%sredsocks -p %sredsocks.pid -c %sredsocks.conf".format(BASE, BASE, BASE)
+ Utils.runRootCommand("echo \"" + conf + "\" > " + BASE + "redsocks.conf\n" + cmd)
+ }
+
+ def waitForProcess(name: String): Boolean = {
+ val pid: Int = getPid(name)
+ if (pid == -1) return false
+ Exec.hangupProcessGroup(-pid)
+ val t: Thread = new Thread {
+ override def run() {
+ Exec.waitFor(-pid)
+ Log.d(TAG, "Successfully exit pid: " + pid)
+ }
+ }
+ t.start()
+ try {
+ t.join(300)
+ }
+ catch {
+ case ignored: InterruptedException => {
+ }
+ }
+ !t.isAlive
+ }
+
+ /** Called when the activity is first created. */
+ def handleConnection: Boolean = {
+ if (isHTTPProxy) {
+ startPolipoDaemon()
+ }
+ startShadowsocksDaemon()
+ startDnsDaemon()
+ startRedsocksDaemon()
+ setupIptables
+ true
+ }
+
+ def initSoundVibrateLights(notification: Notification) {
+ notification.sound = null
+ notification.defaults |= Notification.DEFAULT_LIGHTS
+ }
+
+ def invokeMethod(method: Method, args: Array[AnyRef]) {
+ try {
+ method.invoke(this, mStartForegroundArgs: _*)
+ }
+ catch {
+ case e: InvocationTargetException => {
+ Log.w(TAG, "Unable to invoke method", e)
+ }
+ case e: IllegalAccessException => {
+ Log.w(TAG, "Unable to invoke method", e)
+ }
+ }
+ }
+
+ def markServiceStarted() {
+ ShadowsocksService.sRunningInstance = new WeakReference[ShadowsocksService](this)
+ }
+
+ def markServiceStopped() {
+ ShadowsocksService.sRunningInstance = null
+ }
+
+ def notifyAlert(title: String, info: String) {
+ val openIntent: Intent = new Intent(this, classOf[Shadowsocks])
+ openIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
+ val contentIntent: PendingIntent = PendingIntent.getActivity(this, 0, openIntent, 0)
+ val closeIntent: Intent = new Intent(Utils.CLOSE_ACTION)
+ val actionIntent: PendingIntent = PendingIntent.getBroadcast(this, 0, closeIntent, 0)
+ val builder: NotificationCompat.Builder = new NotificationCompat.Builder(this)
+ builder.setSmallIcon(R.drawable.ic_stat_shadowsocks).setWhen(0).setTicker(title).setContentTitle(getString(R.string.app_name)).setContentText(info).setContentIntent(contentIntent).addAction(android.R.drawable.ic_menu_close_clear_cancel, getString(R.string.stop), actionIntent)
+ startForegroundCompat(1, builder.build)
+ }
+
+ def onBind(intent: Intent): IBinder = {
+ null
+ }
+
+ override def onCreate() {
+ super.onCreate()
+ EasyTracker.getTracker.sendEvent("service", "start", getVersionName, 0L)
+ settings = PreferenceManager.getDefaultSharedPreferences(this)
+ notificationManager = this.getSystemService(Context.NOTIFICATION_SERVICE).asInstanceOf[NotificationManager]
+ try {
+ mStartForeground = getClass.getMethod("startForeground", mStartForegroundSignature: _*)
+ mStopForeground = getClass.getMethod("stopForeground", mStopForegroundSignature: _*)
+ }
+ catch {
+ case e: NoSuchMethodException => {
+ mStartForeground = ({
+ mStopForeground = null
+ mStopForeground
+ })
+ }
+ }
+ try {
+ mSetForeground = getClass.getMethod("setForeground", mSetForegroundSignature: _*)
+ }
+ catch {
+ case e: NoSuchMethodException => {
+ throw new IllegalStateException("OS doesn't have Service.startForeground OR Service.setForeground!")
+ }
+ }
+ }
+
+ /** Called when the activity is closed. */
+ override def onDestroy() {
+ EasyTracker.getTracker.sendEvent("service", "stop", getVersionName, 0L)
+ stopForegroundCompat(1)
+ new Thread {
+ override def run() {
+ onDisconnect()
+ }
+ }.start()
+ val ed: SharedPreferences.Editor = settings.edit
+ ed.putBoolean("isRunning", false)
+ ed.putBoolean("isConnecting", false)
+ ed.commit
+ try {
+ notificationManager.cancel(0)
+ }
+ catch {
+ case ignore: Exception => {
+ }
+ }
+ super.onDestroy()
+ markServiceStopped()
+ }
+
+ def onDisconnect() {
+ Utils.runRootCommand(Utils.getIptables + " -t nat -F OUTPUT")
+ val sb = new StringBuilder
+ sb.append("kill -9 `cat /data/data/com.github.shadowsocks/redsocks.pid`").append("\n")
+ if (!waitForProcess("pdnsd")) {
+ sb.append("kill -9 `cat /data/data/com.github.shadowsocks/pdnsd.pid`").append("\n")
+ }
+ if (!waitForProcess("shadowsocks")) {
+ sb.append("kill -9 `cat /data/data/com.github.shadowsocks/shadowsocks.pid`").append("\n")
+ }
+ if (isHTTPProxy) {
+ if (!waitForProcess("polipo")) {
+ sb.append("kill -9 `cat /data/data/com.github.shadowsocks/polipo.pid`").append("\n")
+ }
+ }
+ Utils.runRootCommand(sb.toString())
+ }
+
+ override def onStart(intent: Intent, startId: Int) {
+ handleCommand(intent)
+ }
+
+ override def onStartCommand(intent: Intent, flags: Int, startId: Int): Int = {
+ handleCommand(intent)
+ Service.START_STICKY
+ }
+
+ def setupIptables: Boolean = {
+ val init_sb = new StringBuilder
+ val http_sb = new StringBuilder
+ init_sb.append(Utils.getIptables).append(" -t nat -F OUTPUT\n")
+ val cmd_bypass = Utils.getIptables + CMD_IPTABLES_RETURN
+ if (!InetAddressUtils.isIPv6Address(appHost.toUpperCase)) {
+ init_sb.append(cmd_bypass.replace("-d 0.0.0.0", "-d " + appHost))
+ }
+ init_sb.append(cmd_bypass.replace("0.0.0.0", "127.0.0.1"))
+ if (!isDNSProxy) {
+ init_sb.append(cmd_bypass.replace("-d 0.0.0.0", "--dport " + 53))
+ init_sb.append(cmd_bypass.replace("-d 0.0.0.0", "-m owner --uid-owner " + getApplicationInfo.uid))
+ }
+ if (hasRedirectSupport) {
+ init_sb.append(Utils.getIptables).append(" -t nat -A OUTPUT -p udp --dport 53 -j REDIRECT --to ").append(DNS_PORT).append("\n")
+ }
+ else {
+ init_sb.append(Utils.getIptables).append(" -t nat -A OUTPUT -p udp --dport 53 -j DNAT --to-destination 127.0.0.1:").append(DNS_PORT).append("\n")
+ }
+ if (isGFWList) {
+ val chn_list: Array[String] = getResources.getStringArray(R.array.chn_list)
+ for (item <- chn_list) {
+ init_sb.append(cmd_bypass.replace("0.0.0.0", item))
+ }
+ }
+ if (isGlobalProxy || isBypassApps) {
+ http_sb.append(if (hasRedirectSupport) Utils.getIptables + CMD_IPTABLES_REDIRECT_ADD_SOCKS else Utils.getIptables + CMD_IPTABLES_DNAT_ADD_SOCKS)
+ }
+ if (!isGlobalProxy) {
+ if (apps == null || apps.length <= 0) apps = AppManager.getProxiedApps(this)
+ val uidSet: mutable.HashSet[Int] = new mutable.HashSet[Int]
+ for (app <- apps) {
+ if (app.isProxied) {
+ uidSet.add(app.getUid)
+ }
+ }
+ for (uid <- uidSet) {
+ if (!isBypassApps) {
+ http_sb.append((if (hasRedirectSupport) Utils.getIptables + CMD_IPTABLES_REDIRECT_ADD_SOCKS else Utils.getIptables + CMD_IPTABLES_DNAT_ADD_SOCKS).replace("-t nat", "-t nat -m owner --uid-owner " + uid))
+ }
+ else {
+ init_sb.append(cmd_bypass.replace("-d 0.0.0.0", "-m owner --uid-owner " + uid))
+ }
+ }
+ }
+ val init_rules: String = init_sb.toString()
+ Utils.runRootCommand(init_rules, 30 * 1000)
+ val redt_rules: String = http_sb.toString()
+ Utils.runRootCommand(redt_rules)
+ true
+ }
+
+ /**
+ * This is a wrapper around the new startForeground method, using the older
+ * APIs if it is not available.
+ */
+ def startForegroundCompat(id: Int, notification: Notification) {
+ if (mStartForeground != null) {
+ mStartForegroundArgs(0) = int2Integer(id)
+ mStartForegroundArgs(1) = notification
+ invokeMethod(mStartForeground, mStartForegroundArgs)
+ return
+ }
+ mSetForegroundArgs(0) = boolean2Boolean(x = true)
+ invokeMethod(mSetForeground, mSetForegroundArgs)
+ notificationManager.notify(id, notification)
+ }
+
+ /**
+ * This is a wrapper around the new stopForeground method, using the older
+ * APIs if it is not available.
+ */
+ def stopForegroundCompat(id: Int) {
+ if (mStopForeground != null) {
+ mStopForegroundArgs(0) = boolean2Boolean(x = true)
+ try {
+ mStopForeground.invoke(this, mStopForegroundArgs: _*)
+ }
+ catch {
+ case e: InvocationTargetException => {
+ Log.w(TAG, "Unable to invoke stopForeground", e)
+ }
+ case e: IllegalAccessException => {
+ Log.w(TAG, "Unable to invoke stopForeground", e)
+ }
+ }
+ return
+ }
+ notificationManager.cancel(id)
+ mSetForegroundArgs(0) = boolean2Boolean(x = false)
+ invokeMethod(mSetForeground, mSetForegroundArgs)
+ }
+
+ val handler: Handler = new Handler {
+ override def handleMessage(msg: Message) {
+ val ed: SharedPreferences.Editor = settings.edit
+ msg.what match {
+ case MSG_CONNECT_START =>
+ ed.putBoolean("isConnecting", true)
+ val pm: PowerManager = getSystemService(Context.POWER_SERVICE).asInstanceOf[PowerManager]
+ mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE, "GAEProxy")
+ mWakeLock.acquire()
+ case MSG_CONNECT_FINISH =>
+ ed.putBoolean("isConnecting", false)
+ if (mWakeLock != null && mWakeLock.isHeld) mWakeLock.release()
+ case MSG_CONNECT_SUCCESS =>
+ ed.putBoolean("isRunning", true)
+ case MSG_CONNECT_FAIL =>
+ ed.putBoolean("isRunning", false)
+ case MSG_HOST_CHANGE =>
+ ed.putString("appHost", appHost)
+ case MSG_STOP_SELF =>
+ stopSelf()
+ }
+ ed.commit
+ super.handleMessage(msg)
+ }
+ }
+ var notificationManager: NotificationManager = null
+ var mWakeLock: PowerManager#WakeLock = null
+ var appHost: String = null
+ var remotePort: Int = 0
+ var localPort: Int = 0
+ var sitekey: String = null
+ var settings: SharedPreferences = null
+ var hasRedirectSupport: Boolean = true
+ var isGlobalProxy: Boolean = false
+ var isGFWList: Boolean = false
+ var isBypassApps: Boolean = false
+ var isDNSProxy: Boolean = false
+ var isHTTPProxy: Boolean = false
+ var encMethod: String = null
+ var apps: Array[ProxiedApp] = null
+ var mSetForeground: Method = null
+ var mStartForeground: Method = null
+ var mStopForeground: Method = null
+ var mSetForegroundArgs = new Array[AnyRef](1)
+ var mStartForegroundArgs = new Array[AnyRef](2)
+ var mStopForegroundArgs = new Array[AnyRef](1)
+}
\ No newline at end of file
diff --git a/src/main/scala/com/github/shadowsocks/Utils.scala b/src/main/scala/com/github/shadowsocks/Utils.scala
new file mode 100644
index 00000000..8eddc422
--- /dev/null
+++ b/src/main/scala/com/github/shadowsocks/Utils.scala
@@ -0,0 +1,452 @@
+/* Shadowsocks - A shadowsocks client for Android
+ * Copyright (C) 2012
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ *
+ * ___====-_ _-====___
+ * _--^^^#####// \\#####^^^--_
+ * _-^##########// ( ) \\##########^-_
+ * -############// |\^^/| \\############-
+ * _/############// (@::@) \\############\_
+ * /#############(( \\// ))#############\
+ * -###############\\ (oo) //###############-
+ * -#################\\ / VV \ //#################-
+ * -###################\\/ \//###################-
+ * _#/|##########/\######( /\ )######/\##########|\#_
+ * |/ |#/\#/\#/\/ \#/\##\ | | /##/\#/ \/\#/\#/\#| \|
+ * ` |/ V V ` V \#\| | | |/#/ V ' V V \| '
+ * ` ` ` ` / | | | | \ ' ' ' '
+ * ( | | | | )
+ * __\ | | | | /__
+ * (vvv(VVV)(VVV)vvv)
+ *
+ * HERE BE DRAGONS
+ *
+ */
+package com.github.shadowsocks
+
+import android.content.Context
+import android.content.pm.ApplicationInfo
+import android.content.pm.PackageManager
+import android.graphics.drawable.Drawable
+import android.os.Environment
+import android.util.Log
+import java.io._
+import java.net.NetworkInterface
+import java.util.ArrayList
+import org.apache.http.conn.util.InetAddressUtils
+import scala.collection.mutable.ArrayBuffer
+
+object Utils {
+ /**
+ * If there exists a valid IPv6 interface
+ */
+ def isIPv6Support: Boolean = {
+ try {
+ val interfaces = NetworkInterface.getNetworkInterfaces
+ while (interfaces.hasMoreElements) {
+ val intf = interfaces.nextElement()
+ val addrs = intf.getInetAddresses
+ while (addrs.hasMoreElements) {
+ val addr = addrs.nextElement()
+ if (!addr.isLoopbackAddress && !addr.isLinkLocalAddress) {
+ val sAddr = addr.getHostAddress.toUpperCase
+ if (InetAddressUtils.isIPv6Address(sAddr)) {
+ Log.d(TAG, "IPv6 address detected")
+ return true
+ }
+ }
+ }
+ }
+ }
+ catch {
+ case ex: Exception => {
+ Log.e(TAG, "Failed to get interfaces' addresses.", ex)
+ }
+ }
+ false
+ }
+
+ /**
+ * Get the ABI of the device
+ * @return The ABI of the device, or ARM_ABI if not found
+ */
+ def getABI: String = {
+ val prop = getSystemProperty(ABI_PROP)
+ prop match {
+ case abi if abi.toLowerCase.contains(ARM_ABI) => ARM_ABI
+ case abi if abi.toLowerCase.contains(X86_ABI) => X86_ABI
+ case _ => ARM_ABI
+ }
+ }
+
+ /**
+ * Returns a SystemProperty
+ *
+ * @param propName The Property to retrieve
+ * @return The Property, or NULL if not found
+ */
+ def getSystemProperty(propName: String): String = {
+ var line: String = null
+ var input: BufferedReader = null
+ try {
+ val p: Process = Runtime.getRuntime.exec("getprop " + propName)
+ input = new BufferedReader(new InputStreamReader(p.getInputStream), 1024)
+ line = input.readLine
+ input.close()
+ }
+ catch {
+ case ex: IOException => {
+ Log.e(TAG, "Unable to read sysprop " + propName, ex)
+ return null
+ }
+ }
+ finally {
+ if (input != null) {
+ try {
+ input.close()
+ }
+ catch {
+ case ex: IOException => {
+ Log.e(TAG, "Exception while closing InputStream", ex)
+ }
+ }
+ }
+ }
+ line
+ }
+
+ /**
+ * Check the system's iptables
+ * Default to use the app's iptables
+ */
+ def checkIptables() {
+
+ if (!Utils.getRoot) {
+ iptables = DEFAULT_IPTABLES
+ return
+ }
+
+ iptables = DEFAULT_IPTABLES
+
+ var lines: String = null
+ var compatible: Boolean = false
+ var version: Boolean = false
+
+ val sb = new StringBuilder
+ val command = iptables + " --version\n" + iptables + " -L -t nat -n\n" + "exit\n"
+ val exitcode = runScript(command, sb, 10 * 1000, asroot = true)
+ if (exitcode == TIME_OUT) return
+
+ lines = sb.toString()
+ if (lines.contains("OUTPUT")) {
+ compatible = true
+ }
+ if (lines.contains("v1.4.")) {
+ version = true
+ }
+ if (!compatible || !version) {
+ iptables = ALTERNATIVE_IPTABLES
+ if (!new File(iptables).exists) iptables = "iptables"
+ }
+ }
+
+ def getAppIcon(c: Context, uid: Int): Drawable = {
+ val pm: PackageManager = c.getPackageManager
+ var appIcon: Drawable = c.getResources.getDrawable(android.R.drawable.sym_def_app_icon)
+ val packages: Array[String] = pm.getPackagesForUid(uid)
+ if (packages != null) {
+ if (packages.length == 1) {
+ try {
+ val appInfo: ApplicationInfo = pm.getApplicationInfo(packages(0), 0)
+ appIcon = pm.getApplicationIcon(appInfo)
+ }
+ catch {
+ case e: PackageManager.NameNotFoundException => {
+ Log.e(c.getPackageName, "No package found matching with the uid " + uid)
+ }
+ }
+ }
+ }
+ else {
+ Log.e(c.getPackageName, "Package not found for uid " + uid)
+ }
+ appIcon
+ }
+
+ def getDataPath(ctx: Context): String = {
+ if (data_path == null) {
+ if (Environment.MEDIA_MOUNTED == Environment.getExternalStorageState) {
+ data_path = Environment.getExternalStorageDirectory.getAbsolutePath
+ }
+ else {
+ data_path = ctx.getFilesDir.getAbsolutePath
+ }
+ Log.d(TAG, "Python Data Path: " + data_path)
+ }
+ data_path
+ }
+
+ def getHasRedirectSupport: Boolean = {
+ if (hasRedirectSupport == -1) initHasRedirectSupported()
+ hasRedirectSupport == 1
+ }
+
+ def getIptables: String = {
+ if (iptables == null) checkIptables()
+ iptables
+ }
+
+ def getShell: String = {
+ if (shell == null) {
+ shell = DEFAULT_SHELL
+ if (!new File(shell).exists) shell = "sh"
+ }
+ shell
+ }
+
+ def initHasRedirectSupported() {
+ if (!Utils.getRoot) return
+ hasRedirectSupport = 1
+
+ val sb = new StringBuilder
+ val command = Utils.getIptables + " -t nat -A OUTPUT -p udp --dport 54 -j REDIRECT --to 8154"
+ val exitcode: Int = runScript(command, sb, 10 * 1000, asroot = true)
+ val lines = sb.toString()
+
+ Utils.runRootCommand(command.replace("-A", "-D"))
+ if (exitcode == TIME_OUT) return
+ if (lines.contains("No chain/target/match")) {
+ hasRedirectSupport = 0
+ }
+ }
+
+ def isInitialized: Boolean = {
+ initialized match {
+ case true => true
+ case _ => {
+ initialized = true
+ false
+ }
+ }
+ }
+
+ def getRoot: Boolean = {
+ if (isRoot != -1) return isRoot == 1
+ if (new File(DEFAULT_ROOT).exists) {
+ root_shell = DEFAULT_ROOT
+ }
+ else if (new File(ALTERNATIVE_ROOT).exists) {
+ root_shell = ALTERNATIVE_ROOT
+ }
+ else {
+ root_shell = "su"
+ }
+ val sb = new StringBuilder
+ val command: String = "ls /\n exit\n"
+ val exitcode: Int = runScript(command, sb, 10 * 1000, asroot = true)
+ if (exitcode == TIME_OUT) {
+ return false
+ }
+ val lines = sb.toString()
+ if (lines.contains("system")) {
+ isRoot = 1
+ }
+ isRoot == 1
+ }
+
+ def runCommand(command: String): Boolean = {
+ runCommand(command, 10 * 1000)
+ }
+
+ def runCommand(command: String, timeout: Int): Boolean = {
+ Log.d(TAG, command)
+ runScript(command, null, timeout, asroot = false)
+ true
+ }
+
+ def runRootCommand(command: String): Boolean = {
+ runRootCommand(command, 10 * 1000)
+ }
+
+ def runRootCommand(command: String, timeout: Int): Boolean = {
+ if (!Utils.getRoot) {
+ Log.e(TAG, "Cannot get ROOT permission: " + root_shell)
+ return false
+ }
+ Log.d(TAG, command)
+ runScript(command, null, timeout, asroot = true)
+ true
+ }
+
+ def runScript(script: String, result: StringBuilder, timeout: Long, asroot: Boolean): Int = {
+ val runner: Utils.ScriptRunner = new Utils.ScriptRunner(script, result, asroot)
+ runner.start()
+ try {
+ if (timeout > 0) {
+ runner.join(timeout)
+ }
+ else {
+ runner.join()
+ }
+ if (runner.isAlive) {
+ runner.destroy
+ runner.join(1000)
+ return TIME_OUT
+ }
+ }
+ catch {
+ case ex: InterruptedException => {
+ return TIME_OUT
+ }
+ }
+ runner.exitcode
+ }
+
+ val CLOSE_ACTION = "com.github.shadowsocks.ACTION_SHUTDOWN"
+ val TAG: String = "Shadowsocks"
+ val ABI_PROP: String = "ro.product.cpu.abi"
+ val ABI2_PROP: String = "ro.product.cpu.abi2"
+ val ARM_ABI: String = "arm"
+ val X86_ABI: String = "x86"
+ val MIPS_ABI: String = "mips"
+ val DEFAULT_SHELL: String = "/system/bin/sh"
+ val DEFAULT_ROOT: String = "/system/bin/su"
+ val ALTERNATIVE_ROOT: String = "/system/xbin/su"
+ val DEFAULT_IPTABLES: String = "/data/data/com.github.shadowsocks/iptables"
+ val ALTERNATIVE_IPTABLES: String = "/system/bin/iptables"
+ val TIME_OUT: Int = -99
+ var initialized: Boolean = false
+ var hasRedirectSupport: Int = -1
+ var isRoot: Int = -1
+ var shell: String = null
+ var root_shell: String = null
+ var iptables: String = null
+ var data_path: String = null
+
+ /**
+ * Internal thread used to execute scripts (as root or not).
+ * Creates a new script runner.
+ *
+ * @param scripts script to run
+ * @param result result output
+ * @param asroot if true, executes the script as root
+ */
+ class ScriptRunner(val scripts: String,
+ val result: StringBuilder,
+ val asroot: Boolean) extends Thread {
+ override def destroy() {
+ if (pid(0) != -1) {
+ Exec.hangupProcessGroup(pid(0))
+ pid(0) = -1
+ }
+ if (pipe != null) {
+ Exec.close(pipe)
+ pipe = null
+ }
+ }
+
+ def createSubprocess(processId: Array[Int], cmd: String): FileDescriptor = {
+ val args = parse(cmd)
+ val arg0 = args(0)
+ Exec.createSubprocess(if (result != null) 1 else 0, arg0, args, null, scripts + "\nexit\n", processId)
+ }
+
+ def parse(cmd: String): Array[String] = {
+ val PLAIN = 0
+ val INQUOTE = 2
+ val SKIP = 3
+
+ var state = PLAIN
+ val result: ArrayBuffer[String] = new ArrayBuffer[String]
+ val builder = new StringBuilder()
+
+ cmd foreach {
+ ch => {
+ state match {
+ case PLAIN => {
+ ch match {
+ case c if Character.isWhitespace(c) => {
+ result += builder.toString
+ builder.clear()
+ }
+ case '"' => state = INQUOTE
+ case _ => builder += ch
+ }
+ }
+ case INQUOTE => {
+ ch match {
+ case '\\' => state = SKIP
+ case '"' => state = PLAIN
+ case _ => builder += ch
+ }
+ }
+ case SKIP => {
+ builder += ch
+ state = INQUOTE
+ }
+ }
+ }
+ }
+
+ if (builder.length > 0) {
+ result += builder.toString
+ }
+ result.toArray
+ }
+
+ override def run() {
+ pid(0) = -1
+ try {
+ if (this.asroot) {
+ pipe = createSubprocess(pid, root_shell)
+ }
+ else {
+ pipe = createSubprocess(pid, getShell)
+ }
+ if (pid(0) != -1) {
+ exitcode = Exec.waitFor(pid(0))
+ }
+ if (result == null || pipe == null) return
+ val stdout: InputStream = new FileInputStream(pipe)
+ val buf= new Array[Byte](8192)
+ var read: Int = 0
+ while (stdout.available > 0) {
+ read = stdout.read(buf)
+ result.append(new String(buf, 0, read))
+ }
+ }
+ catch {
+ case ex: Exception => {
+ Log.e(TAG, "Cannot execute command", ex)
+ if (result != null) result.append("\n").append(ex)
+ }
+ }
+ finally {
+ if (pipe != null) {
+ Exec.close(pipe)
+ }
+ if (pid(0) != -1) {
+ Exec.hangupProcessGroup(pid(0))
+ }
+ }
+ }
+
+ var exitcode: Int = -1
+ val pid: Array[Int] = new Array[Int](1)
+ var pipe: FileDescriptor = null
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/scala/com/github/shadowsocks/preferences/SummaryEditTextPreference.scala b/src/main/scala/com/github/shadowsocks/preferences/SummaryEditTextPreference.scala
new file mode 100644
index 00000000..0bb9941d
--- /dev/null
+++ b/src/main/scala/com/github/shadowsocks/preferences/SummaryEditTextPreference.scala
@@ -0,0 +1,25 @@
+package com.github.shadowsocks.preferences
+
+import android.content.Context
+import android.preference.EditTextPreference
+import android.util.AttributeSet
+
+class SummaryEditTextPreference(context: Context, attrs: AttributeSet, defStyle: Int)
+ extends EditTextPreference(context, attrs, defStyle) {
+
+ def this(context: Context, attrs: AttributeSet) = {
+ this (context, attrs, android.R.attr.editTextPreferenceStyle)
+ mDefaultSummary = getSummary
+ }
+
+ override def setSummary(summary: CharSequence) {
+ if (summary.toString.isEmpty) {
+ super.setSummary(mDefaultSummary)
+ }
+ else {
+ super.setSummary(summary)
+ }
+ }
+
+ private var mDefaultSummary: CharSequence = getSummary
+}
\ No newline at end of file
diff --git a/travis.keystore b/travis.keystore
deleted file mode 100755
index fb6d8520..00000000
Binary files a/travis.keystore and /dev/null differ