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