From 69c18e80669ac6c9245a3d0f749ba20fac78b639 Mon Sep 17 00:00:00 2001 From: Max Lv Date: Sat, 4 May 2013 19:47:39 +0800 Subject: [PATCH] update --- .gitignore | 33 +- .gitmodules | 3 - .travis.yml | 8 +- COPYING.txt | 674 ------------------ README.md | 52 +- assets/arm/iptables | Bin 182640 -> 0 bytes assets/x86/ip6tables | Bin 264764 -> 0 bytes assets/x86/iptables | Bin 273596 -> 0 bytes build-ndk.sh | 5 +- build.sbt | 16 + jni/shadowsocks | 1 - local.sbt.example | 3 + pom.xml | 261 ------- project/Build.scala | 63 ++ project/plugins.sbt | 7 + src/com/github/shadowsocks/AppManager.java | 382 ---------- src/com/github/shadowsocks/ImageLoader.java | 242 ------- src/com/github/shadowsocks/Shadowsocks.java | 618 ---------------- .../shadowsocks/ShadowsocksApplication.java | 57 -- .../shadowsocks/ShadowsocksService.java | 648 ----------------- src/com/github/shadowsocks/Utils.java | 495 ------------- .../SummaryEditTextPreference.java | 33 - .../main/AndroidManifest.xml | 18 +- {assets => src/main/assets}/arm/ip6tables | Bin 173836 -> 173836 bytes src/main/assets/arm/iptables | Bin 0 -> 182640 bytes {assets => src/main/assets}/arm/obfsproxy | Bin {assets => src/main/assets}/arm/pdnsd | Bin 153224 -> 153224 bytes {assets => src/main/assets}/arm/polipo | Bin {assets => src/main/assets}/arm/redsocks | Bin {assets => src/main/assets}/arm/shadowsocks | Bin {assets => src/main/assets}/fonts/Iceland.ttf | Bin {assets => src/main/assets}/pdnsd.conf | 0 src/main/assets/x86/ip6tables | Bin 0 -> 264764 bytes src/main/assets/x86/iptables | Bin 0 -> 273596 bytes {assets => src/main/assets}/x86/obfsproxy | Bin {assets => src/main/assets}/x86/pdnsd | Bin 206460 -> 206460 bytes {assets => src/main/assets}/x86/polipo | Bin {assets => src/main/assets}/x86/redsocks | Bin {assets => src/main/assets}/x86/shadowsocks | Bin .../java}/com/github/shadowsocks/Exec.java | 0 .../java}/com/github/shadowsocks/System.java | 0 {jni => src/main/jni}/Android.mk | 0 {jni => src/main/jni}/Application.mk | 0 {jni => src/main/jni}/iptables/Android.mk | 0 {jni => src/main/jni}/iptables/COMMIT_NOTES | 0 {jni => src/main/jni}/iptables/COPYING | 0 .../main/jni}/iptables/INCOMPATIBILITIES | 0 {jni => src/main/jni}/iptables/INSTALL | 0 {jni => src/main/jni}/iptables/Makefile.am | 0 {jni => src/main/jni}/iptables/autogen.sh | 0 {jni => src/main/jni}/iptables/configure.ac | 0 .../main/jni}/iptables/extensions/Android.mk | 0 .../jni}/iptables/extensions/GNUmakefile.in | 0 .../jni}/iptables/extensions/dscp_helper.c | 0 .../main/jni}/iptables/extensions/filter_init | 0 .../jni}/iptables/extensions/libip6t_LOG.c | 0 .../jni}/iptables/extensions/libip6t_LOG.man | 0 .../jni}/iptables/extensions/libip6t_REJECT.c | 0 .../iptables/extensions/libip6t_REJECT.man | 0 .../jni}/iptables/extensions/libip6t_ah.c | 0 .../jni}/iptables/extensions/libip6t_ah.man | 0 .../jni}/iptables/extensions/libip6t_dst.c | 0 .../jni}/iptables/extensions/libip6t_dst.man | 0 .../jni}/iptables/extensions/libip6t_eui64.c | 0 .../iptables/extensions/libip6t_eui64.man | 0 .../jni}/iptables/extensions/libip6t_frag.c | 0 .../jni}/iptables/extensions/libip6t_frag.man | 0 .../jni}/iptables/extensions/libip6t_hbh.c | 0 .../jni}/iptables/extensions/libip6t_hbh.man | 0 .../jni}/iptables/extensions/libip6t_hl.c | 0 .../jni}/iptables/extensions/libip6t_hl.man | 0 .../jni}/iptables/extensions/libip6t_icmp6.c | 0 .../iptables/extensions/libip6t_icmp6.man | 0 .../iptables/extensions/libip6t_ipv6header.c | 0 .../extensions/libip6t_ipv6header.man | 0 .../jni}/iptables/extensions/libip6t_mh.c | 0 .../jni}/iptables/extensions/libip6t_mh.man | 0 .../jni}/iptables/extensions/libip6t_rt.c | 0 .../jni}/iptables/extensions/libip6t_rt.man | 0 .../iptables/extensions/libipt_CLUSTERIP.c | 0 .../iptables/extensions/libipt_CLUSTERIP.man | 0 .../jni}/iptables/extensions/libipt_DNAT.c | 0 .../jni}/iptables/extensions/libipt_DNAT.man | 0 .../jni}/iptables/extensions/libipt_LOG.c | 0 .../jni}/iptables/extensions/libipt_LOG.man | 0 .../iptables/extensions/libipt_MASQUERADE.c | 0 .../iptables/extensions/libipt_MASQUERADE.man | 0 .../jni}/iptables/extensions/libipt_MIRROR.c | 0 .../iptables/extensions/libipt_MIRROR.man | 0 .../jni}/iptables/extensions/libipt_NETMAP.c | 0 .../iptables/extensions/libipt_NETMAP.man | 0 .../iptables/extensions/libipt_REDIRECT.c | 0 .../iptables/extensions/libipt_REDIRECT.man | 0 .../jni}/iptables/extensions/libipt_REJECT.c | 0 .../iptables/extensions/libipt_REJECT.man | 0 .../jni}/iptables/extensions/libipt_SAME.c | 0 .../jni}/iptables/extensions/libipt_SAME.man | 0 .../jni}/iptables/extensions/libipt_SNAT.c | 0 .../jni}/iptables/extensions/libipt_SNAT.man | 0 .../jni}/iptables/extensions/libipt_ULOG.c | 0 .../jni}/iptables/extensions/libipt_ULOG.man | 0 .../iptables/extensions/libipt_addrtype.c | 0 .../iptables/extensions/libipt_addrtype.man | 0 .../main/jni}/iptables/extensions/libipt_ah.c | 0 .../jni}/iptables/extensions/libipt_ah.man | 0 .../jni}/iptables/extensions/libipt_ecn.c | 0 .../jni}/iptables/extensions/libipt_ecn.man | 0 .../jni}/iptables/extensions/libipt_icmp.c | 0 .../jni}/iptables/extensions/libipt_icmp.man | 0 .../jni}/iptables/extensions/libipt_realm.c | 0 .../jni}/iptables/extensions/libipt_realm.man | 0 .../jni}/iptables/extensions/libipt_ttl.c | 0 .../jni}/iptables/extensions/libipt_ttl.man | 0 .../jni}/iptables/extensions/libipt_unclean.c | 0 .../iptables/extensions/libipt_unclean.man | 0 .../jni}/iptables/extensions/libxt_AUDIT.c | 0 .../jni}/iptables/extensions/libxt_AUDIT.man | 0 .../jni}/iptables/extensions/libxt_CHECKSUM.c | 0 .../iptables/extensions/libxt_CHECKSUM.man | 0 .../jni}/iptables/extensions/libxt_CLASSIFY.c | 0 .../iptables/extensions/libxt_CLASSIFY.man | 0 .../iptables/extensions/libxt_CONNSECMARK.c | 0 .../iptables/extensions/libxt_CONNSECMARK.man | 0 .../main/jni}/iptables/extensions/libxt_CT.c | 0 .../jni}/iptables/extensions/libxt_CT.man | 0 .../iptables/extensions/libxt_IDLETIMER.c | 0 .../iptables/extensions/libxt_IDLETIMER.man | 0 .../main/jni}/iptables/extensions/libxt_LED.c | 0 .../jni}/iptables/extensions/libxt_LED.man | 0 .../jni}/iptables/extensions/libxt_NFLOG.c | 0 .../jni}/iptables/extensions/libxt_NFLOG.man | 0 .../jni}/iptables/extensions/libxt_NFQUEUE.c | 0 .../iptables/extensions/libxt_NFQUEUE.man | 0 .../jni}/iptables/extensions/libxt_NOTRACK.c | 0 .../iptables/extensions/libxt_NOTRACK.man | 0 .../jni}/iptables/extensions/libxt_SECMARK.c | 0 .../iptables/extensions/libxt_SECMARK.man | 0 .../iptables/extensions/libxt_TCPOPTSTRIP.c | 0 .../iptables/extensions/libxt_TCPOPTSTRIP.man | 0 .../main/jni}/iptables/extensions/libxt_TEE.c | 0 .../jni}/iptables/extensions/libxt_TEE.man | 0 .../jni}/iptables/extensions/libxt_TPROXY.c | 0 .../jni}/iptables/extensions/libxt_TPROXY.man | 0 .../jni}/iptables/extensions/libxt_TRACE.c | 0 .../jni}/iptables/extensions/libxt_TRACE.man | 0 .../jni}/iptables/extensions/libxt_cluster.c | 0 .../iptables/extensions/libxt_cluster.man | 0 .../jni}/iptables/extensions/libxt_comment.c | 0 .../iptables/extensions/libxt_comment.man | 0 .../iptables/extensions/libxt_connbytes.c | 0 .../iptables/extensions/libxt_connbytes.man | 0 .../iptables/extensions/libxt_connlimit.c | 0 .../iptables/extensions/libxt_connlimit.man | 0 .../jni}/iptables/extensions/libxt_connmark.c | 0 .../iptables/extensions/libxt_connmark.man | 0 .../iptables/extensions/libxt_conntrack.c | 0 .../iptables/extensions/libxt_conntrack.man | 0 .../main/jni}/iptables/extensions/libxt_cpu.c | 0 .../jni}/iptables/extensions/libxt_cpu.man | 0 .../jni}/iptables/extensions/libxt_dccp.c | 0 .../jni}/iptables/extensions/libxt_dccp.man | 0 .../jni}/iptables/extensions/libxt_devgroup.c | 0 .../jni}/iptables/extensions/libxt_dscp.c | 0 .../jni}/iptables/extensions/libxt_dscp.man | 0 .../main/jni}/iptables/extensions/libxt_esp.c | 0 .../jni}/iptables/extensions/libxt_esp.man | 0 .../iptables/extensions/libxt_hashlimit.c | 0 .../iptables/extensions/libxt_hashlimit.man | 0 .../jni}/iptables/extensions/libxt_helper.c | 0 .../jni}/iptables/extensions/libxt_helper.man | 0 .../jni}/iptables/extensions/libxt_iprange.c | 0 .../iptables/extensions/libxt_iprange.man | 0 .../jni}/iptables/extensions/libxt_ipvs.c | 0 .../jni}/iptables/extensions/libxt_ipvs.man | 0 .../jni}/iptables/extensions/libxt_length.c | 0 .../jni}/iptables/extensions/libxt_length.man | 0 .../jni}/iptables/extensions/libxt_limit.c | 0 .../jni}/iptables/extensions/libxt_limit.man | 0 .../main/jni}/iptables/extensions/libxt_mac.c | 0 .../jni}/iptables/extensions/libxt_mac.man | 0 .../jni}/iptables/extensions/libxt_mark.c | 0 .../jni}/iptables/extensions/libxt_mark.man | 0 .../iptables/extensions/libxt_multiport.c | 0 .../iptables/extensions/libxt_multiport.man | 0 .../main/jni}/iptables/extensions/libxt_osf.c | 0 .../jni}/iptables/extensions/libxt_osf.man | 0 .../jni}/iptables/extensions/libxt_owner.c | 0 .../jni}/iptables/extensions/libxt_owner.man | 0 .../jni}/iptables/extensions/libxt_physdev.c | 0 .../iptables/extensions/libxt_physdev.man | 0 .../jni}/iptables/extensions/libxt_pkttype.c | 0 .../iptables/extensions/libxt_pkttype.man | 0 .../jni}/iptables/extensions/libxt_policy.c | 0 .../jni}/iptables/extensions/libxt_policy.man | 0 .../jni}/iptables/extensions/libxt_quota.c | 0 .../jni}/iptables/extensions/libxt_quota.man | 0 .../jni}/iptables/extensions/libxt_quota2.c | 0 .../jni}/iptables/extensions/libxt_quota2.man | 0 .../jni}/iptables/extensions/libxt_rateest.c | 0 .../iptables/extensions/libxt_rateest.man | 0 .../jni}/iptables/extensions/libxt_recent.c | 0 .../jni}/iptables/extensions/libxt_recent.man | 0 .../jni}/iptables/extensions/libxt_sctp.c | 0 .../jni}/iptables/extensions/libxt_sctp.man | 0 .../main/jni}/iptables/extensions/libxt_set.c | 0 .../main/jni}/iptables/extensions/libxt_set.h | 0 .../jni}/iptables/extensions/libxt_set.man | 0 .../jni}/iptables/extensions/libxt_socket.c | 0 .../jni}/iptables/extensions/libxt_socket.man | 0 .../jni}/iptables/extensions/libxt_standard.c | 0 .../jni}/iptables/extensions/libxt_state.c | 0 .../jni}/iptables/extensions/libxt_state.man | 0 .../iptables/extensions/libxt_statistic.c | 0 .../iptables/extensions/libxt_statistic.man | 0 .../jni}/iptables/extensions/libxt_string.c | 0 .../jni}/iptables/extensions/libxt_string.man | 0 .../main/jni}/iptables/extensions/libxt_tcp.c | 0 .../jni}/iptables/extensions/libxt_tcp.man | 0 .../jni}/iptables/extensions/libxt_tcpmss.c | 0 .../jni}/iptables/extensions/libxt_tcpmss.man | 0 .../jni}/iptables/extensions/libxt_time.c | 0 .../jni}/iptables/extensions/libxt_time.man | 0 .../main/jni}/iptables/extensions/libxt_tos.c | 0 .../jni}/iptables/extensions/libxt_tos.man | 0 .../main/jni}/iptables/extensions/libxt_u32.c | 0 .../jni}/iptables/extensions/libxt_u32.man | 0 .../main/jni}/iptables/extensions/libxt_udp.c | 0 .../jni}/iptables/extensions/libxt_udp.man | 0 .../jni}/iptables/extensions/tos_values.c | 0 .../main/jni}/iptables/include/Makefile.am | 0 .../main/jni}/iptables/include/ip6tables.h | 0 .../main/jni}/iptables/include/iptables.h | 0 .../jni}/iptables/include/iptables/internal.h | 0 .../iptables/include/iptables/internal.h.in | 0 .../jni}/iptables/include/libipq/libipq.h | 0 .../include/libiptc/ipt_kernel_headers.h | 0 .../jni}/iptables/include/libiptc/libip6tc.h | 0 .../jni}/iptables/include/libiptc/libiptc.h | 0 .../jni}/iptables/include/libiptc/libxtc.h | 0 .../iptables/include/libipulog/libipulog.h | 0 .../main/jni}/iptables/include/linux/kernel.h | 0 .../jni}/iptables/include/linux/netfilter.h | 0 .../linux/netfilter/nf_conntrack_common.h | 0 .../netfilter/nf_conntrack_tuple_common.h | 0 .../include/linux/netfilter/x_tables.h | 0 .../include/linux/netfilter/xt_AUDIT.h | 0 .../include/linux/netfilter/xt_CHECKSUM.h | 0 .../include/linux/netfilter/xt_CLASSIFY.h | 0 .../include/linux/netfilter/xt_CONNSECMARK.h | 0 .../iptables/include/linux/netfilter/xt_CT.h | 0 .../include/linux/netfilter/xt_IDLETIMER.h | 0 .../iptables/include/linux/netfilter/xt_LED.h | 0 .../include/linux/netfilter/xt_NFLOG.h | 0 .../include/linux/netfilter/xt_NFQUEUE.h | 0 .../include/linux/netfilter/xt_SECMARK.h | 0 .../include/linux/netfilter/xt_TCPOPTSTRIP.h | 0 .../iptables/include/linux/netfilter/xt_TEE.h | 0 .../include/linux/netfilter/xt_TPROXY.h | 0 .../include/linux/netfilter/xt_cluster.h | 0 .../include/linux/netfilter/xt_comment.h | 0 .../include/linux/netfilter/xt_connbytes.h | 0 .../include/linux/netfilter/xt_connlimit.h | 0 .../include/linux/netfilter/xt_connmark.h | 0 .../include/linux/netfilter/xt_conntrack.h | 0 .../iptables/include/linux/netfilter/xt_cpu.h | 0 .../include/linux/netfilter/xt_dccp.h | 0 .../include/linux/netfilter/xt_devgroup.h | 0 .../include/linux/netfilter/xt_dscp.h | 0 .../iptables/include/linux/netfilter/xt_esp.h | 0 .../include/linux/netfilter/xt_hashlimit.h | 0 .../include/linux/netfilter/xt_helper.h | 0 .../include/linux/netfilter/xt_iprange.h | 0 .../include/linux/netfilter/xt_ipvs.h | 0 .../include/linux/netfilter/xt_length.h | 0 .../include/linux/netfilter/xt_limit.h | 0 .../iptables/include/linux/netfilter/xt_mac.h | 0 .../include/linux/netfilter/xt_mark.h | 0 .../include/linux/netfilter/xt_multiport.h | 0 .../iptables/include/linux/netfilter/xt_osf.h | 0 .../include/linux/netfilter/xt_owner.h | 0 .../include/linux/netfilter/xt_physdev.h | 0 .../include/linux/netfilter/xt_pkttype.h | 0 .../include/linux/netfilter/xt_policy.h | 0 .../include/linux/netfilter/xt_quota.h | 0 .../include/linux/netfilter/xt_quota2.h | 0 .../include/linux/netfilter/xt_rateest.h | 0 .../include/linux/netfilter/xt_realm.h | 0 .../include/linux/netfilter/xt_recent.h | 0 .../include/linux/netfilter/xt_sctp.h | 0 .../iptables/include/linux/netfilter/xt_set.h | 0 .../include/linux/netfilter/xt_socket.h | 0 .../include/linux/netfilter/xt_state.h | 0 .../include/linux/netfilter/xt_statistic.h | 0 .../include/linux/netfilter/xt_string.h | 0 .../include/linux/netfilter/xt_tcpmss.h | 0 .../include/linux/netfilter/xt_tcpudp.h | 0 .../include/linux/netfilter/xt_time.h | 0 .../iptables/include/linux/netfilter/xt_u32.h | 0 .../iptables/include/linux/netfilter_ipv4.h | 0 .../include/linux/netfilter_ipv4/ip_tables.h | 0 .../linux/netfilter_ipv4/ipt_CLUSTERIP.h | 0 .../include/linux/netfilter_ipv4/ipt_LOG.h | 0 .../include/linux/netfilter_ipv4/ipt_REJECT.h | 0 .../include/linux/netfilter_ipv4/ipt_SAME.h | 0 .../include/linux/netfilter_ipv4/ipt_ULOG.h | 0 .../linux/netfilter_ipv4/ipt_addrtype.h | 0 .../include/linux/netfilter_ipv4/ipt_ah.h | 0 .../include/linux/netfilter_ipv4/ipt_ecn.h | 0 .../include/linux/netfilter_ipv4/ipt_realm.h | 0 .../include/linux/netfilter_ipv4/ipt_ttl.h | 0 .../iptables/include/linux/netfilter_ipv6.h | 0 .../include/linux/netfilter_ipv6/ip6_tables.h | 0 .../include/linux/netfilter_ipv6/ip6t_LOG.h | 0 .../linux/netfilter_ipv6/ip6t_REJECT.h | 0 .../include/linux/netfilter_ipv6/ip6t_ah.h | 0 .../include/linux/netfilter_ipv6/ip6t_frag.h | 0 .../include/linux/netfilter_ipv6/ip6t_hl.h | 0 .../linux/netfilter_ipv6/ip6t_ipv6header.h | 0 .../include/linux/netfilter_ipv6/ip6t_mh.h | 0 .../include/linux/netfilter_ipv6/ip6t_opts.h | 0 .../include/linux/netfilter_ipv6/ip6t_rt.h | 0 .../main/jni}/iptables/include/linux/types.h | 0 .../net/netfilter/nf_conntrack_tuple.h | 0 .../iptables/include/net/netfilter/nf_nat.h | 0 .../main/jni}/iptables/include/xtables.h | 0 .../main/jni}/iptables/include/xtables.h.in | 0 .../main/jni}/iptables/iptables/.gitignore | 0 .../main/jni}/iptables/iptables/Android.mk | 0 .../main/jni}/iptables/iptables/Makefile.am | 0 .../jni}/iptables/iptables/ip6tables-multi.h | 0 .../iptables/iptables/ip6tables-restore.8 | 0 .../iptables/iptables/ip6tables-restore.c | 0 .../jni}/iptables/iptables/ip6tables-save.8 | 0 .../jni}/iptables/iptables/ip6tables-save.c | 0 .../iptables/iptables/ip6tables-standalone.c | 0 .../jni}/iptables/iptables/ip6tables.8.in | 0 .../main/jni}/iptables/iptables/ip6tables.c | 0 .../jni}/iptables/iptables/iptables-apply | 0 .../jni}/iptables/iptables/iptables-apply.8 | 0 .../jni}/iptables/iptables/iptables-multi.h | 0 .../jni}/iptables/iptables/iptables-restore.8 | 0 .../jni}/iptables/iptables/iptables-restore.c | 0 .../jni}/iptables/iptables/iptables-save.8 | 0 .../jni}/iptables/iptables/iptables-save.c | 0 .../iptables/iptables/iptables-standalone.c | 0 .../jni}/iptables/iptables/iptables-xml.1 | 0 .../jni}/iptables/iptables/iptables-xml.c | 0 .../main/jni}/iptables/iptables/iptables.8.in | 0 .../main/jni}/iptables/iptables/iptables.c | 0 .../main/jni}/iptables/iptables/iptables.xslt | 0 .../main/jni}/iptables/iptables/xshared.c | 0 .../main/jni}/iptables/iptables/xshared.h | 0 .../jni}/iptables/iptables/xtables-multi.c | 0 .../jni}/iptables/iptables/xtables-multi.h | 0 .../main/jni}/iptables/iptables/xtables.c | 0 .../main/jni}/iptables/iptables/xtables.pc.in | 0 .../main/jni}/iptables/iptables/xtoptions.c | 0 .../main/jni}/iptables/libipq/Makefile.am | 0 .../jni}/iptables/libipq/ipq_create_handle.3 | 0 .../jni}/iptables/libipq/ipq_destroy_handle.3 | 0 .../main/jni}/iptables/libipq/ipq_errstr.3 | 0 .../jni}/iptables/libipq/ipq_get_msgerr.3 | 0 .../jni}/iptables/libipq/ipq_get_packet.3 | 0 .../jni}/iptables/libipq/ipq_message_type.3 | 0 .../main/jni}/iptables/libipq/ipq_perror.3 | 0 .../main/jni}/iptables/libipq/ipq_read.3 | 0 .../main/jni}/iptables/libipq/ipq_set_mode.3 | 0 .../jni}/iptables/libipq/ipq_set_verdict.3 | 0 .../main/jni}/iptables/libipq/libipq.3 | 0 .../main/jni}/iptables/libipq/libipq.c | 0 .../main/jni}/iptables/libiptc/.gitignore | 0 .../main/jni}/iptables/libiptc/Android.mk | 0 .../main/jni}/iptables/libiptc/Makefile.am | 0 .../main/jni}/iptables/libiptc/libip4tc.c | 0 .../main/jni}/iptables/libiptc/libip6tc.c | 0 .../main/jni}/iptables/libiptc/libiptc.c | 0 .../main/jni}/iptables/libiptc/libiptc.pc.in | 0 .../main/jni}/iptables/libiptc/linux_list.h | 0 .../main/jni}/iptables/libiptc/linux_stddef.h | 0 {jni => src/main/jni}/iptables/m4/.gitignore | 0 .../jni}/iptables/m4/ax_check_linker_flags.m4 | 0 {jni => src/main/jni}/iptables/release.sh | 0 .../jni}/iptables/tests/options-ipv4.rules | 0 .../jni}/iptables/tests/options-most.rules | 0 .../main/jni}/iptables/utils/.gitignore | 0 .../main/jni}/iptables/utils/Makefile.am | 0 .../main/jni}/iptables/utils/nfnl_osf.c | 0 {jni => src/main/jni}/iptables/utils/pf.os | 0 {jni => src/main/jni}/libev/config.h | 0 {jni => src/main/jni}/libev/ev++.h | 0 {jni => src/main/jni}/libev/ev.c | 0 {jni => src/main/jni}/libev/ev.h | 0 {jni => src/main/jni}/libev/ev_epoll.c | 0 {jni => src/main/jni}/libev/ev_kqueue.c | 0 {jni => src/main/jni}/libev/ev_poll.c | 0 {jni => src/main/jni}/libev/ev_port.c | 0 {jni => src/main/jni}/libev/ev_select.c | 0 {jni => src/main/jni}/libev/ev_vars.h | 0 {jni => src/main/jni}/libev/ev_win32.c | 0 {jni => src/main/jni}/libev/ev_wrap.h | 0 {jni => src/main/jni}/libev/event.c | 0 {jni => src/main/jni}/libev/event.h | 0 {jni => src/main/jni}/libevent/arc4random.c | 0 {jni => src/main/jni}/libevent/buffer.c | 0 {jni => src/main/jni}/libevent/buffer_iocp.c | 0 .../main/jni}/libevent/bufferevent-internal.h | 0 {jni => src/main/jni}/libevent/bufferevent.c | 0 .../main/jni}/libevent/bufferevent_async.c | 0 .../main/jni}/libevent/bufferevent_filter.c | 0 .../main/jni}/libevent/bufferevent_openssl.c | 0 .../main/jni}/libevent/bufferevent_pair.c | 0 .../main/jni}/libevent/bufferevent_ratelim.c | 0 .../main/jni}/libevent/bufferevent_sock.c | 0 .../main/jni}/libevent/changelist-internal.h | 0 .../main/jni}/libevent/compat/sys/queue.h | 0 {jni => src/main/jni}/libevent/config.h | 0 .../main/jni}/libevent/defer-internal.h | 0 {jni => src/main/jni}/libevent/devpoll.c | 0 {jni => src/main/jni}/libevent/epoll.c | 0 {jni => src/main/jni}/libevent/epoll_sub.c | 0 .../main/jni}/libevent/evbuffer-internal.h | 0 {jni => src/main/jni}/libevent/evdns.c | 0 {jni => src/main/jni}/libevent/evdns.h | 0 .../main/jni}/libevent/event-internal.h | 0 {jni => src/main/jni}/libevent/event.c | 0 {jni => src/main/jni}/libevent/event.h | 0 {jni => src/main/jni}/libevent/event_iocp.c | 0 .../main/jni}/libevent/event_tagging.c | 0 {jni => src/main/jni}/libevent/evhttp.h | 0 .../main/jni}/libevent/evmap-internal.h | 0 {jni => src/main/jni}/libevent/evmap.c | 0 {jni => src/main/jni}/libevent/evport.c | 0 .../main/jni}/libevent/evrpc-internal.h | 0 {jni => src/main/jni}/libevent/evrpc.c | 0 {jni => src/main/jni}/libevent/evrpc.h | 0 .../main/jni}/libevent/evsignal-internal.h | 0 .../main/jni}/libevent/evthread-internal.h | 0 {jni => src/main/jni}/libevent/evthread.c | 0 .../main/jni}/libevent/evthread_pthread.c | 0 .../main/jni}/libevent/evthread_win32.c | 0 {jni => src/main/jni}/libevent/evutil.c | 0 {jni => src/main/jni}/libevent/evutil.h | 0 {jni => src/main/jni}/libevent/evutil_rand.c | 0 {jni => src/main/jni}/libevent/ht-internal.h | 0 .../main/jni}/libevent/http-internal.h | 0 {jni => src/main/jni}/libevent/http.c | 0 .../jni}/libevent/include/event2/buffer.h | 0 .../libevent/include/event2/buffer_compat.h | 0 .../libevent/include/event2/bufferevent.h | 0 .../include/event2/bufferevent_compat.h | 0 .../libevent/include/event2/bufferevent_ssl.h | 0 .../include/event2/bufferevent_struct.h | 0 .../main/jni}/libevent/include/event2/dns.h | 0 .../jni}/libevent/include/event2/dns_compat.h | 0 .../jni}/libevent/include/event2/dns_struct.h | 0 .../libevent/include/event2/event-config.h | 0 .../main/jni}/libevent/include/event2/event.h | 0 .../libevent/include/event2/event_compat.h | 0 .../libevent/include/event2/event_struct.h | 0 .../main/jni}/libevent/include/event2/http.h | 0 .../libevent/include/event2/http_compat.h | 0 .../libevent/include/event2/http_struct.h | 0 .../libevent/include/event2/keyvalq_struct.h | 0 .../jni}/libevent/include/event2/listener.h | 0 .../main/jni}/libevent/include/event2/rpc.h | 0 .../jni}/libevent/include/event2/rpc_compat.h | 0 .../jni}/libevent/include/event2/rpc_struct.h | 0 .../main/jni}/libevent/include/event2/tag.h | 0 .../jni}/libevent/include/event2/tag_compat.h | 0 .../jni}/libevent/include/event2/thread.h | 0 .../main/jni}/libevent/include/event2/util.h | 0 .../main/jni}/libevent/iocp-internal.h | 0 .../main/jni}/libevent/ipv6-internal.h | 0 {jni => src/main/jni}/libevent/kqueue.c | 0 {jni => src/main/jni}/libevent/listener.c | 0 {jni => src/main/jni}/libevent/log-internal.h | 0 {jni => src/main/jni}/libevent/log.c | 0 .../main/jni}/libevent/minheap-internal.h | 0 {jni => src/main/jni}/libevent/mm-internal.h | 0 {jni => src/main/jni}/libevent/poll.c | 0 .../main/jni}/libevent/ratelim-internal.h | 0 {jni => src/main/jni}/libevent/select.c | 0 {jni => src/main/jni}/libevent/signal.c | 0 .../main/jni}/libevent/strlcpy-internal.h | 0 {jni => src/main/jni}/libevent/strlcpy.c | 0 .../main/jni}/libevent/util-internal.h | 0 {jni => src/main/jni}/libevent/win32select.c | 0 {jni => src/main/jni}/obfsproxy/config.h | 0 {jni => src/main/jni}/obfsproxy/container.c | 0 {jni => src/main/jni}/obfsproxy/container.h | 0 {jni => src/main/jni}/obfsproxy/crypt.c | 0 {jni => src/main/jni}/obfsproxy/crypt.h | 0 {jni => src/main/jni}/obfsproxy/external.c | 0 {jni => src/main/jni}/obfsproxy/external.h | 0 {jni => src/main/jni}/obfsproxy/ht.h | 0 {jni => src/main/jni}/obfsproxy/main.c | 0 {jni => src/main/jni}/obfsproxy/main.h | 0 {jni => src/main/jni}/obfsproxy/managed.c | 0 {jni => src/main/jni}/obfsproxy/managed.h | 0 .../main/jni}/obfsproxy/micro-revision.i | 0 {jni => src/main/jni}/obfsproxy/network.c | 0 {jni => src/main/jni}/obfsproxy/network.h | 0 {jni => src/main/jni}/obfsproxy/obfs_main.c | 0 {jni => src/main/jni}/obfsproxy/protocol.c | 0 {jni => src/main/jni}/obfsproxy/protocol.h | 0 .../main/jni}/obfsproxy/protocols/dummy.c | 0 .../main/jni}/obfsproxy/protocols/dummy.h | 0 .../main/jni}/obfsproxy/protocols/obfs2.c | 0 .../main/jni}/obfsproxy/protocols/obfs2.h | 0 {jni => src/main/jni}/obfsproxy/sha256.c | 0 {jni => src/main/jni}/obfsproxy/sha256.h | 0 {jni => src/main/jni}/obfsproxy/socks.c | 0 {jni => src/main/jni}/obfsproxy/socks.h | 0 {jni => src/main/jni}/obfsproxy/status.c | 0 {jni => src/main/jni}/obfsproxy/status.h | 0 .../main/jni}/obfsproxy/test/tester.py.in | 0 .../main/jni}/obfsproxy/test/tinytest.c | 0 .../main/jni}/obfsproxy/test/tinytest.h | 0 .../jni}/obfsproxy/test/tinytest_macros.h | 0 .../main/jni}/obfsproxy/test/unittest.c | 0 .../jni}/obfsproxy/test/unittest_container.c | 0 .../main/jni}/obfsproxy/test/unittest_crypt.c | 0 .../main/jni}/obfsproxy/test/unittest_dummy.c | 0 .../jni}/obfsproxy/test/unittest_managed.c | 0 .../main/jni}/obfsproxy/test/unittest_obfs2.c | 0 .../main/jni}/obfsproxy/test/unittest_socks.c | 0 .../main/jni}/obfsproxy/test/unittest_util.c | 0 {jni => src/main/jni}/obfsproxy/util.c | 0 {jni => src/main/jni}/obfsproxy/util.h | 0 {jni => src/main/jni}/openssl/ACKNOWLEDGMENTS | 0 .../main/jni}/openssl/MODULE_LICENSE_BSD_LIKE | 0 {jni => src/main/jni}/openssl/NOTICE | 0 .../main/jni}/openssl/README.ANDROID.txt | 0 {jni => src/main/jni}/openssl/README.md | 0 .../main/jni}/openssl/android-config.mk | 0 .../main/jni}/openssl/crypto/Android.mk | 0 .../main/jni}/openssl/crypto/LPdir_nyi.c | 0 .../main/jni}/openssl/crypto/LPdir_unix.c | 0 .../main/jni}/openssl/crypto/LPdir_vms.c | 0 .../main/jni}/openssl/crypto/LPdir_win.c | 0 .../main/jni}/openssl/crypto/LPdir_win32.c | 0 .../main/jni}/openssl/crypto/LPdir_wince.c | 0 {jni => src/main/jni}/openssl/crypto/Makefile | 0 .../main/jni}/openssl/crypto/aes/Makefile | 0 .../main/jni}/openssl/crypto/aes/README | 0 .../main/jni}/openssl/crypto/aes/aes.h | 0 .../main/jni}/openssl/crypto/aes/aes_cbc.c | 0 .../main/jni}/openssl/crypto/aes/aes_cfb.c | 0 .../main/jni}/openssl/crypto/aes/aes_core.c | 0 .../main/jni}/openssl/crypto/aes/aes_ctr.c | 0 .../main/jni}/openssl/crypto/aes/aes_ecb.c | 0 .../main/jni}/openssl/crypto/aes/aes_ige.c | 0 .../main/jni}/openssl/crypto/aes/aes_locl.h | 0 .../main/jni}/openssl/crypto/aes/aes_misc.c | 0 .../main/jni}/openssl/crypto/aes/aes_ofb.c | 0 .../main/jni}/openssl/crypto/aes/aes_wrap.c | 0 .../jni}/openssl/crypto/aes/aes_x86core.c | 0 .../jni}/openssl/crypto/aes/asm/aes-586.pl | 0 .../jni}/openssl/crypto/aes/asm/aes-armv4.S | 0 .../jni}/openssl/crypto/aes/asm/aes-armv4.pl | 0 .../jni}/openssl/crypto/aes/asm/aes-ia64.S | 0 .../jni}/openssl/crypto/aes/asm/aes-mips.pl | 0 .../jni}/openssl/crypto/aes/asm/aes-parisc.pl | 0 .../jni}/openssl/crypto/aes/asm/aes-ppc.pl | 0 .../jni}/openssl/crypto/aes/asm/aes-s390x.pl | 0 .../openssl/crypto/aes/asm/aes-sparcv9.pl | 0 .../jni}/openssl/crypto/aes/asm/aes-x86_64.pl | 0 .../crypto/aes/asm/aesni-sha1-x86_64.pl | 0 .../jni}/openssl/crypto/aes/asm/aesni-x86.pl | 0 .../openssl/crypto/aes/asm/aesni-x86_64.pl | 0 .../openssl/crypto/aes/asm/bsaes-x86_64.pl | 0 .../jni}/openssl/crypto/aes/asm/vpaes-x86.pl | 0 .../openssl/crypto/aes/asm/vpaes-x86_64.pl | 0 .../main/jni}/openssl/crypto/alphacpuid.pl | 0 .../main/jni}/openssl/crypto/arm_arch.h | 0 {jni => src/main/jni}/openssl/crypto/armcap.c | 0 .../main/jni}/openssl/crypto/armv4cpuid.S | 0 .../main/jni}/openssl/crypto/asn1/Makefile | 0 .../main/jni}/openssl/crypto/asn1/a_bitstr.c | 0 .../main/jni}/openssl/crypto/asn1/a_bool.c | 0 .../main/jni}/openssl/crypto/asn1/a_bytes.c | 0 .../main/jni}/openssl/crypto/asn1/a_d2i_fp.c | 0 .../main/jni}/openssl/crypto/asn1/a_digest.c | 0 .../main/jni}/openssl/crypto/asn1/a_dup.c | 0 .../main/jni}/openssl/crypto/asn1/a_enum.c | 0 .../main/jni}/openssl/crypto/asn1/a_gentm.c | 0 .../main/jni}/openssl/crypto/asn1/a_i2d_fp.c | 0 .../main/jni}/openssl/crypto/asn1/a_int.c | 0 .../main/jni}/openssl/crypto/asn1/a_mbstr.c | 0 .../main/jni}/openssl/crypto/asn1/a_object.c | 0 .../main/jni}/openssl/crypto/asn1/a_octet.c | 0 .../main/jni}/openssl/crypto/asn1/a_print.c | 0 .../main/jni}/openssl/crypto/asn1/a_set.c | 0 .../main/jni}/openssl/crypto/asn1/a_sign.c | 0 .../main/jni}/openssl/crypto/asn1/a_strex.c | 0 .../main/jni}/openssl/crypto/asn1/a_strnid.c | 0 .../main/jni}/openssl/crypto/asn1/a_time.c | 0 .../main/jni}/openssl/crypto/asn1/a_type.c | 0 .../main/jni}/openssl/crypto/asn1/a_utctm.c | 0 .../main/jni}/openssl/crypto/asn1/a_utf8.c | 0 .../main/jni}/openssl/crypto/asn1/a_verify.c | 0 .../main/jni}/openssl/crypto/asn1/ameth_lib.c | 0 .../main/jni}/openssl/crypto/asn1/asn1.h | 0 .../main/jni}/openssl/crypto/asn1/asn1_err.c | 0 .../main/jni}/openssl/crypto/asn1/asn1_gen.c | 0 .../main/jni}/openssl/crypto/asn1/asn1_lib.c | 0 .../main/jni}/openssl/crypto/asn1/asn1_locl.h | 0 .../main/jni}/openssl/crypto/asn1/asn1_mac.h | 0 .../main/jni}/openssl/crypto/asn1/asn1_par.c | 0 .../main/jni}/openssl/crypto/asn1/asn1t.h | 0 .../main/jni}/openssl/crypto/asn1/asn_mime.c | 0 .../main/jni}/openssl/crypto/asn1/asn_moid.c | 0 .../main/jni}/openssl/crypto/asn1/asn_pack.c | 0 .../main/jni}/openssl/crypto/asn1/bio_asn1.c | 0 .../main/jni}/openssl/crypto/asn1/bio_ndef.c | 0 .../main/jni}/openssl/crypto/asn1/charmap.h | 0 .../main/jni}/openssl/crypto/asn1/charmap.pl | 0 .../main/jni}/openssl/crypto/asn1/d2i_pr.c | 0 .../main/jni}/openssl/crypto/asn1/d2i_pu.c | 0 .../main/jni}/openssl/crypto/asn1/evp_asn1.c | 0 .../main/jni}/openssl/crypto/asn1/f_enum.c | 0 .../main/jni}/openssl/crypto/asn1/f_int.c | 0 .../main/jni}/openssl/crypto/asn1/f_string.c | 0 .../main/jni}/openssl/crypto/asn1/i2d_pr.c | 0 .../main/jni}/openssl/crypto/asn1/i2d_pu.c | 0 .../main/jni}/openssl/crypto/asn1/n_pkey.c | 0 .../main/jni}/openssl/crypto/asn1/nsseq.c | 0 .../main/jni}/openssl/crypto/asn1/p5_pbe.c | 0 .../main/jni}/openssl/crypto/asn1/p5_pbev2.c | 0 .../main/jni}/openssl/crypto/asn1/p8_pkey.c | 0 .../main/jni}/openssl/crypto/asn1/t_bitst.c | 0 .../main/jni}/openssl/crypto/asn1/t_crl.c | 0 .../main/jni}/openssl/crypto/asn1/t_pkey.c | 0 .../main/jni}/openssl/crypto/asn1/t_req.c | 0 .../main/jni}/openssl/crypto/asn1/t_spki.c | 0 .../main/jni}/openssl/crypto/asn1/t_x509.c | 0 .../main/jni}/openssl/crypto/asn1/t_x509a.c | 0 .../main/jni}/openssl/crypto/asn1/tasn_dec.c | 0 .../main/jni}/openssl/crypto/asn1/tasn_enc.c | 0 .../main/jni}/openssl/crypto/asn1/tasn_fre.c | 0 .../main/jni}/openssl/crypto/asn1/tasn_new.c | 0 .../main/jni}/openssl/crypto/asn1/tasn_prn.c | 0 .../main/jni}/openssl/crypto/asn1/tasn_typ.c | 0 .../main/jni}/openssl/crypto/asn1/tasn_utl.c | 0 .../main/jni}/openssl/crypto/asn1/x_algor.c | 0 .../main/jni}/openssl/crypto/asn1/x_attrib.c | 0 .../main/jni}/openssl/crypto/asn1/x_bignum.c | 0 .../main/jni}/openssl/crypto/asn1/x_crl.c | 0 .../main/jni}/openssl/crypto/asn1/x_exten.c | 0 .../main/jni}/openssl/crypto/asn1/x_info.c | 0 .../main/jni}/openssl/crypto/asn1/x_long.c | 0 .../main/jni}/openssl/crypto/asn1/x_name.c | 0 .../main/jni}/openssl/crypto/asn1/x_nx509.c | 0 .../main/jni}/openssl/crypto/asn1/x_pkey.c | 0 .../main/jni}/openssl/crypto/asn1/x_pubkey.c | 0 .../main/jni}/openssl/crypto/asn1/x_req.c | 0 .../main/jni}/openssl/crypto/asn1/x_sig.c | 0 .../main/jni}/openssl/crypto/asn1/x_spki.c | 0 .../main/jni}/openssl/crypto/asn1/x_val.c | 0 .../main/jni}/openssl/crypto/asn1/x_x509.c | 0 .../main/jni}/openssl/crypto/asn1/x_x509a.c | 0 .../main/jni}/openssl/crypto/bf/COPYRIGHT | 0 .../main/jni}/openssl/crypto/bf/INSTALL | 0 .../main/jni}/openssl/crypto/bf/Makefile | 0 .../main/jni}/openssl/crypto/bf/README | 0 .../main/jni}/openssl/crypto/bf/VERSION | 0 .../main/jni}/openssl/crypto/bf/asm/bf-586.pl | 0 .../main/jni}/openssl/crypto/bf/asm/bf-686.pl | 0 .../main/jni}/openssl/crypto/bf/asm/readme | 0 .../main/jni}/openssl/crypto/bf/bf_cbc.c | 0 .../main/jni}/openssl/crypto/bf/bf_cfb64.c | 0 .../main/jni}/openssl/crypto/bf/bf_ecb.c | 0 .../main/jni}/openssl/crypto/bf/bf_enc.c | 0 .../main/jni}/openssl/crypto/bf/bf_locl.h | 0 .../main/jni}/openssl/crypto/bf/bf_ofb64.c | 0 .../main/jni}/openssl/crypto/bf/bf_opts.c | 0 .../main/jni}/openssl/crypto/bf/bf_pi.h | 0 .../main/jni}/openssl/crypto/bf/bf_skey.c | 0 .../main/jni}/openssl/crypto/bf/bfs.cpp | 0 .../main/jni}/openssl/crypto/bf/bfspeed.c | 0 .../main/jni}/openssl/crypto/bf/bftest.c | 0 .../main/jni}/openssl/crypto/bf/blowfish.h | 0 .../main/jni}/openssl/crypto/bio/Makefile | 0 .../main/jni}/openssl/crypto/bio/b_dump.c | 0 .../main/jni}/openssl/crypto/bio/b_print.c | 0 .../main/jni}/openssl/crypto/bio/b_sock.c | 0 .../main/jni}/openssl/crypto/bio/bf_buff.c | 0 .../main/jni}/openssl/crypto/bio/bf_lbuf.c | 0 .../main/jni}/openssl/crypto/bio/bf_nbio.c | 0 .../main/jni}/openssl/crypto/bio/bf_null.c | 0 .../main/jni}/openssl/crypto/bio/bio.h | 0 .../main/jni}/openssl/crypto/bio/bio_cb.c | 0 .../main/jni}/openssl/crypto/bio/bio_err.c | 0 .../main/jni}/openssl/crypto/bio/bio_lcl.h | 0 .../main/jni}/openssl/crypto/bio/bio_lib.c | 0 .../main/jni}/openssl/crypto/bio/bss_acpt.c | 0 .../main/jni}/openssl/crypto/bio/bss_bio.c | 0 .../main/jni}/openssl/crypto/bio/bss_conn.c | 0 .../main/jni}/openssl/crypto/bio/bss_dgram.c | 0 .../main/jni}/openssl/crypto/bio/bss_fd.c | 0 .../main/jni}/openssl/crypto/bio/bss_file.c | 0 .../main/jni}/openssl/crypto/bio/bss_log.c | 0 .../main/jni}/openssl/crypto/bio/bss_mem.c | 0 .../main/jni}/openssl/crypto/bio/bss_null.c | 0 .../main/jni}/openssl/crypto/bio/bss_rtcp.c | 0 .../main/jni}/openssl/crypto/bio/bss_sock.c | 0 .../main/jni}/openssl/crypto/bn/Makefile | 0 .../main/jni}/openssl/crypto/bn/asm/README | 0 .../jni}/openssl/crypto/bn/asm/alpha-mont.pl | 0 .../jni}/openssl/crypto/bn/asm/armv4-gf2m.pl | 0 .../jni}/openssl/crypto/bn/asm/armv4-mont.S | 0 .../jni}/openssl/crypto/bn/asm/armv4-mont.pl | 0 .../main/jni}/openssl/crypto/bn/asm/bn-586.pl | 0 .../main/jni}/openssl/crypto/bn/asm/co-586.pl | 0 .../jni}/openssl/crypto/bn/asm/ia64-mont.pl | 0 .../main/jni}/openssl/crypto/bn/asm/ia64.S | 0 .../jni}/openssl/crypto/bn/asm/mips-mont.pl | 0 .../main/jni}/openssl/crypto/bn/asm/mips.pl | 0 .../jni}/openssl/crypto/bn/asm/mips3-mont.pl | 0 .../main/jni}/openssl/crypto/bn/asm/mips3.s | 0 .../openssl/crypto/bn/asm/modexp512-x86_64.pl | 0 .../jni}/openssl/crypto/bn/asm/pa-risc2.s | 0 .../jni}/openssl/crypto/bn/asm/pa-risc2W.s | 0 .../jni}/openssl/crypto/bn/asm/parisc-mont.pl | 0 .../jni}/openssl/crypto/bn/asm/ppc-mont.pl | 0 .../main/jni}/openssl/crypto/bn/asm/ppc.pl | 0 .../jni}/openssl/crypto/bn/asm/ppc64-mont.pl | 0 .../jni}/openssl/crypto/bn/asm/s390x-gf2m.pl | 0 .../jni}/openssl/crypto/bn/asm/s390x-mont.pl | 0 .../main/jni}/openssl/crypto/bn/asm/s390x.S | 0 .../main/jni}/openssl/crypto/bn/asm/sparcv8.S | 0 .../jni}/openssl/crypto/bn/asm/sparcv8plus.S | 0 .../openssl/crypto/bn/asm/sparcv9-mont.pl | 0 .../openssl/crypto/bn/asm/sparcv9a-mont.pl | 0 .../jni}/openssl/crypto/bn/asm/via-mont.pl | 0 .../main/jni}/openssl/crypto/bn/asm/vms.mar | 0 .../jni}/openssl/crypto/bn/asm/x86-gf2m.pl | 0 .../jni}/openssl/crypto/bn/asm/x86-mont.pl | 0 .../main/jni}/openssl/crypto/bn/asm/x86.pl | 0 .../jni}/openssl/crypto/bn/asm/x86/add.pl | 0 .../jni}/openssl/crypto/bn/asm/x86/comba.pl | 0 .../jni}/openssl/crypto/bn/asm/x86/div.pl | 0 .../main/jni}/openssl/crypto/bn/asm/x86/f | 0 .../jni}/openssl/crypto/bn/asm/x86/mul.pl | 0 .../jni}/openssl/crypto/bn/asm/x86/mul_add.pl | 0 .../jni}/openssl/crypto/bn/asm/x86/sqr.pl | 0 .../jni}/openssl/crypto/bn/asm/x86/sub.pl | 0 .../jni}/openssl/crypto/bn/asm/x86_64-gcc.c | 0 .../jni}/openssl/crypto/bn/asm/x86_64-gf2m.pl | 0 .../jni}/openssl/crypto/bn/asm/x86_64-mont.pl | 0 .../openssl/crypto/bn/asm/x86_64-mont5.pl | 0 {jni => src/main/jni}/openssl/crypto/bn/bn.h | 0 .../main/jni}/openssl/crypto/bn/bn.mul | 0 .../main/jni}/openssl/crypto/bn/bn_add.c | 0 .../main/jni}/openssl/crypto/bn/bn_asm.c | 0 .../main/jni}/openssl/crypto/bn/bn_blind.c | 0 .../main/jni}/openssl/crypto/bn/bn_const.c | 0 .../main/jni}/openssl/crypto/bn/bn_ctx.c | 0 .../main/jni}/openssl/crypto/bn/bn_depr.c | 0 .../main/jni}/openssl/crypto/bn/bn_div.c | 0 .../main/jni}/openssl/crypto/bn/bn_err.c | 0 .../main/jni}/openssl/crypto/bn/bn_exp.c | 0 .../main/jni}/openssl/crypto/bn/bn_exp2.c | 0 .../main/jni}/openssl/crypto/bn/bn_gcd.c | 0 .../main/jni}/openssl/crypto/bn/bn_gf2m.c | 0 .../main/jni}/openssl/crypto/bn/bn_kron.c | 0 .../main/jni}/openssl/crypto/bn/bn_lcl.h | 0 .../main/jni}/openssl/crypto/bn/bn_lib.c | 0 .../main/jni}/openssl/crypto/bn/bn_mod.c | 0 .../main/jni}/openssl/crypto/bn/bn_mont.c | 0 .../main/jni}/openssl/crypto/bn/bn_mpi.c | 0 .../main/jni}/openssl/crypto/bn/bn_mul.c | 0 .../main/jni}/openssl/crypto/bn/bn_nist.c | 0 .../main/jni}/openssl/crypto/bn/bn_prime.c | 0 .../main/jni}/openssl/crypto/bn/bn_prime.h | 0 .../main/jni}/openssl/crypto/bn/bn_prime.pl | 0 .../main/jni}/openssl/crypto/bn/bn_print.c | 0 .../main/jni}/openssl/crypto/bn/bn_rand.c | 0 .../main/jni}/openssl/crypto/bn/bn_recp.c | 0 .../main/jni}/openssl/crypto/bn/bn_shift.c | 0 .../main/jni}/openssl/crypto/bn/bn_sqr.c | 0 .../main/jni}/openssl/crypto/bn/bn_sqrt.c | 0 .../main/jni}/openssl/crypto/bn/bn_word.c | 0 .../main/jni}/openssl/crypto/bn/bn_x931p.c | 0 .../main/jni}/openssl/crypto/bn/bnspeed.c | 0 .../main/jni}/openssl/crypto/bn/bntest.c | 0 .../main/jni}/openssl/crypto/bn/divtest.c | 0 {jni => src/main/jni}/openssl/crypto/bn/exp.c | 0 .../main/jni}/openssl/crypto/bn/expspeed.c | 0 .../main/jni}/openssl/crypto/bn/exptest.c | 0 {jni => src/main/jni}/openssl/crypto/bn/todo | 0 .../main/jni}/openssl/crypto/bn/vms-helper.c | 0 .../main/jni}/openssl/crypto/buffer/Makefile | 0 .../main/jni}/openssl/crypto/buffer/buf_err.c | 0 .../main/jni}/openssl/crypto/buffer/buf_str.c | 0 .../main/jni}/openssl/crypto/buffer/buffer.c | 0 .../main/jni}/openssl/crypto/buffer/buffer.h | 0 .../jni}/openssl/crypto/camellia/Makefile | 0 .../openssl/crypto/camellia/asm/cmll-x86.pl | 0 .../crypto/camellia/asm/cmll-x86_64.pl | 0 .../jni}/openssl/crypto/camellia/camellia.c | 0 .../jni}/openssl/crypto/camellia/camellia.h | 0 .../jni}/openssl/crypto/camellia/cmll_cbc.c | 0 .../jni}/openssl/crypto/camellia/cmll_cfb.c | 0 .../jni}/openssl/crypto/camellia/cmll_ctr.c | 0 .../jni}/openssl/crypto/camellia/cmll_ecb.c | 0 .../jni}/openssl/crypto/camellia/cmll_locl.h | 0 .../jni}/openssl/crypto/camellia/cmll_misc.c | 0 .../jni}/openssl/crypto/camellia/cmll_ofb.c | 0 .../jni}/openssl/crypto/camellia/cmll_utl.c | 0 .../main/jni}/openssl/crypto/cmac/Makefile | 0 .../main/jni}/openssl/crypto/cmac/cm_ameth.c | 0 .../main/jni}/openssl/crypto/cmac/cm_pmeth.c | 0 .../main/jni}/openssl/crypto/cmac/cmac.c | 0 .../main/jni}/openssl/crypto/cmac/cmac.h | 0 .../main/jni}/openssl/crypto/comp/Makefile | 0 .../main/jni}/openssl/crypto/comp/c_rle.c | 0 .../main/jni}/openssl/crypto/comp/c_zlib.c | 0 .../main/jni}/openssl/crypto/comp/comp.h | 0 .../main/jni}/openssl/crypto/comp/comp_err.c | 0 .../main/jni}/openssl/crypto/comp/comp_lib.c | 0 .../main/jni}/openssl/crypto/conf/Makefile | 0 .../main/jni}/openssl/crypto/conf/README | 0 .../main/jni}/openssl/crypto/conf/cnf_save.c | 0 .../main/jni}/openssl/crypto/conf/conf.h | 0 .../main/jni}/openssl/crypto/conf/conf_api.c | 0 .../main/jni}/openssl/crypto/conf/conf_api.h | 0 .../main/jni}/openssl/crypto/conf/conf_def.c | 0 .../main/jni}/openssl/crypto/conf/conf_def.h | 0 .../main/jni}/openssl/crypto/conf/conf_err.c | 0 .../main/jni}/openssl/crypto/conf/conf_lib.c | 0 .../main/jni}/openssl/crypto/conf/conf_mall.c | 0 .../main/jni}/openssl/crypto/conf/conf_mod.c | 0 .../main/jni}/openssl/crypto/conf/conf_sap.c | 0 .../main/jni}/openssl/crypto/conf/keysets.pl | 0 .../main/jni}/openssl/crypto/conf/ssleay.cnf | 0 .../main/jni}/openssl/crypto/conf/test.c | 0 .../main/jni}/openssl/crypto/cpt_err.c | 0 .../main/jni}/openssl/crypto/cryptlib.c | 0 .../main/jni}/openssl/crypto/cryptlib.h | 0 .../main/jni}/openssl/crypto/crypto-lib.com | 0 {jni => src/main/jni}/openssl/crypto/crypto.h | 0 .../main/jni}/openssl/crypto/cversion.c | 0 .../main/jni}/openssl/crypto/des/COPYRIGHT | 0 .../main/jni}/openssl/crypto/des/DES.pm | 0 .../main/jni}/openssl/crypto/des/DES.xs | 0 .../main/jni}/openssl/crypto/des/FILES0 | 0 .../main/jni}/openssl/crypto/des/INSTALL | 0 .../main/jni}/openssl/crypto/des/Imakefile | 0 .../main/jni}/openssl/crypto/des/KERBEROS | 0 .../main/jni}/openssl/crypto/des/Makefile | 0 .../main/jni}/openssl/crypto/des/README | 0 .../main/jni}/openssl/crypto/des/VERSION | 0 .../jni}/openssl/crypto/des/asm/crypt586.pl | 0 .../jni}/openssl/crypto/des/asm/des-586.pl | 0 .../jni}/openssl/crypto/des/asm/des_enc.m4 | 0 .../jni}/openssl/crypto/des/asm/desboth.pl | 0 .../main/jni}/openssl/crypto/des/asm/readme | 0 .../main/jni}/openssl/crypto/des/cbc3_enc.c | 0 .../main/jni}/openssl/crypto/des/cbc_cksm.c | 0 .../main/jni}/openssl/crypto/des/cbc_enc.c | 0 .../main/jni}/openssl/crypto/des/cfb64ede.c | 0 .../main/jni}/openssl/crypto/des/cfb64enc.c | 0 .../main/jni}/openssl/crypto/des/cfb_enc.c | 0 .../main/jni}/openssl/crypto/des/des-lib.com | 0 .../main/jni}/openssl/crypto/des/des.c | 0 .../main/jni}/openssl/crypto/des/des.h | 0 .../main/jni}/openssl/crypto/des/des.pod | 0 .../main/jni}/openssl/crypto/des/des3s.cpp | 0 .../main/jni}/openssl/crypto/des/des_enc.c | 0 .../main/jni}/openssl/crypto/des/des_locl.h | 0 .../main/jni}/openssl/crypto/des/des_old.c | 0 .../main/jni}/openssl/crypto/des/des_old.h | 0 .../main/jni}/openssl/crypto/des/des_old2.c | 0 .../main/jni}/openssl/crypto/des/des_opts.c | 0 .../main/jni}/openssl/crypto/des/des_ver.h | 0 .../main/jni}/openssl/crypto/des/dess.cpp | 0 .../main/jni}/openssl/crypto/des/destest.c | 0 .../main/jni}/openssl/crypto/des/ecb3_enc.c | 0 .../main/jni}/openssl/crypto/des/ecb_enc.c | 0 .../jni}/openssl/crypto/des/ede_cbcm_enc.c | 0 .../main/jni}/openssl/crypto/des/enc_read.c | 0 .../main/jni}/openssl/crypto/des/enc_writ.c | 0 .../main/jni}/openssl/crypto/des/fcrypt.c | 0 .../main/jni}/openssl/crypto/des/fcrypt_b.c | 0 .../main/jni}/openssl/crypto/des/makefile.bc | 0 .../main/jni}/openssl/crypto/des/ncbc_enc.c | 0 .../main/jni}/openssl/crypto/des/ofb64ede.c | 0 .../main/jni}/openssl/crypto/des/ofb64enc.c | 0 .../main/jni}/openssl/crypto/des/ofb_enc.c | 0 .../main/jni}/openssl/crypto/des/options.txt | 0 .../main/jni}/openssl/crypto/des/pcbc_enc.c | 0 .../main/jni}/openssl/crypto/des/qud_cksm.c | 0 .../main/jni}/openssl/crypto/des/rand_key.c | 0 .../main/jni}/openssl/crypto/des/read2pwd.c | 0 .../main/jni}/openssl/crypto/des/read_pwd.c | 0 .../main/jni}/openssl/crypto/des/rpc_des.h | 0 .../main/jni}/openssl/crypto/des/rpc_enc.c | 0 .../main/jni}/openssl/crypto/des/rpw.c | 0 .../main/jni}/openssl/crypto/des/set_key.c | 0 .../main/jni}/openssl/crypto/des/speed.c | 0 .../main/jni}/openssl/crypto/des/spr.h | 0 .../main/jni}/openssl/crypto/des/str2key.c | 0 .../main/jni}/openssl/crypto/des/t/test | 0 .../jni}/openssl/crypto/des/times/486-50.sol | 0 .../jni}/openssl/crypto/des/times/586-100.lnx | 0 .../jni}/openssl/crypto/des/times/686-200.fre | 0 .../main/jni}/openssl/crypto/des/times/aix.cc | 0 .../jni}/openssl/crypto/des/times/alpha.cc | 0 .../jni}/openssl/crypto/des/times/hpux.cc | 0 .../jni}/openssl/crypto/des/times/sparc.gcc | 0 .../jni}/openssl/crypto/des/times/usparc.cc | 0 .../main/jni}/openssl/crypto/des/typemap | 0 .../main/jni}/openssl/crypto/des/xcbc_enc.c | 0 .../main/jni}/openssl/crypto/dh/Makefile | 0 {jni => src/main/jni}/openssl/crypto/dh/dh.h | 0 .../main/jni}/openssl/crypto/dh/dh1024.pem | 0 .../main/jni}/openssl/crypto/dh/dh192.pem | 0 .../main/jni}/openssl/crypto/dh/dh2048.pem | 0 .../main/jni}/openssl/crypto/dh/dh4096.pem | 0 .../main/jni}/openssl/crypto/dh/dh512.pem | 0 .../main/jni}/openssl/crypto/dh/dh_ameth.c | 0 .../main/jni}/openssl/crypto/dh/dh_asn1.c | 0 .../main/jni}/openssl/crypto/dh/dh_check.c | 0 .../main/jni}/openssl/crypto/dh/dh_depr.c | 0 .../main/jni}/openssl/crypto/dh/dh_err.c | 0 .../main/jni}/openssl/crypto/dh/dh_gen.c | 0 .../main/jni}/openssl/crypto/dh/dh_key.c | 0 .../main/jni}/openssl/crypto/dh/dh_lib.c | 0 .../main/jni}/openssl/crypto/dh/dh_pmeth.c | 0 .../main/jni}/openssl/crypto/dh/dh_prn.c | 0 .../main/jni}/openssl/crypto/dh/dhtest.c | 0 .../main/jni}/openssl/crypto/dh/example | 0 .../main/jni}/openssl/crypto/dh/generate | 0 .../main/jni}/openssl/crypto/dh/p1024.c | 0 .../main/jni}/openssl/crypto/dh/p192.c | 0 .../main/jni}/openssl/crypto/dh/p512.c | 0 .../main/jni}/openssl/crypto/dsa/Makefile | 0 .../main/jni}/openssl/crypto/dsa/README | 0 .../main/jni}/openssl/crypto/dsa/dsa.h | 0 .../main/jni}/openssl/crypto/dsa/dsa_ameth.c | 0 .../main/jni}/openssl/crypto/dsa/dsa_asn1.c | 0 .../main/jni}/openssl/crypto/dsa/dsa_depr.c | 0 .../main/jni}/openssl/crypto/dsa/dsa_err.c | 0 .../main/jni}/openssl/crypto/dsa/dsa_gen.c | 0 .../main/jni}/openssl/crypto/dsa/dsa_key.c | 0 .../main/jni}/openssl/crypto/dsa/dsa_lib.c | 0 .../main/jni}/openssl/crypto/dsa/dsa_locl.h | 0 .../main/jni}/openssl/crypto/dsa/dsa_ossl.c | 0 .../main/jni}/openssl/crypto/dsa/dsa_pmeth.c | 0 .../main/jni}/openssl/crypto/dsa/dsa_prn.c | 0 .../main/jni}/openssl/crypto/dsa/dsa_sign.c | 0 .../main/jni}/openssl/crypto/dsa/dsa_vrf.c | 0 .../main/jni}/openssl/crypto/dsa/dsagen.c | 0 .../main/jni}/openssl/crypto/dsa/dsatest.c | 0 .../main/jni}/openssl/crypto/dsa/fips186a.txt | 0 .../main/jni}/openssl/crypto/dso/Makefile | 0 .../main/jni}/openssl/crypto/dso/README | 0 .../main/jni}/openssl/crypto/dso/dso.h | 0 .../main/jni}/openssl/crypto/dso/dso_beos.c | 0 .../main/jni}/openssl/crypto/dso/dso_dl.c | 0 .../main/jni}/openssl/crypto/dso/dso_dlfcn.c | 0 .../main/jni}/openssl/crypto/dso/dso_err.c | 0 .../main/jni}/openssl/crypto/dso/dso_lib.c | 0 .../main/jni}/openssl/crypto/dso/dso_null.c | 0 .../jni}/openssl/crypto/dso/dso_openssl.c | 0 .../main/jni}/openssl/crypto/dso/dso_vms.c | 0 .../main/jni}/openssl/crypto/dso/dso_win32.c | 0 {jni => src/main/jni}/openssl/crypto/ebcdic.c | 0 {jni => src/main/jni}/openssl/crypto/ebcdic.h | 0 .../main/jni}/openssl/crypto/ec/Makefile | 0 {jni => src/main/jni}/openssl/crypto/ec/ec.h | 0 .../main/jni}/openssl/crypto/ec/ec2_mult.c | 0 .../main/jni}/openssl/crypto/ec/ec2_oct.c | 0 .../main/jni}/openssl/crypto/ec/ec2_smpl.c | 0 .../main/jni}/openssl/crypto/ec/ec_ameth.c | 0 .../main/jni}/openssl/crypto/ec/ec_asn1.c | 0 .../main/jni}/openssl/crypto/ec/ec_check.c | 0 .../main/jni}/openssl/crypto/ec/ec_curve.c | 0 .../main/jni}/openssl/crypto/ec/ec_cvt.c | 0 .../main/jni}/openssl/crypto/ec/ec_err.c | 0 .../main/jni}/openssl/crypto/ec/ec_key.c | 0 .../main/jni}/openssl/crypto/ec/ec_lcl.h | 0 .../main/jni}/openssl/crypto/ec/ec_lib.c | 0 .../main/jni}/openssl/crypto/ec/ec_mult.c | 0 .../main/jni}/openssl/crypto/ec/ec_oct.c | 0 .../main/jni}/openssl/crypto/ec/ec_pmeth.c | 0 .../main/jni}/openssl/crypto/ec/ec_print.c | 0 .../main/jni}/openssl/crypto/ec/eck_prn.c | 0 .../main/jni}/openssl/crypto/ec/ecp_mont.c | 0 .../main/jni}/openssl/crypto/ec/ecp_nist.c | 0 .../jni}/openssl/crypto/ec/ecp_nistp224.c | 0 .../jni}/openssl/crypto/ec/ecp_nistp256.c | 0 .../jni}/openssl/crypto/ec/ecp_nistp521.c | 0 .../jni}/openssl/crypto/ec/ecp_nistputil.c | 0 .../main/jni}/openssl/crypto/ec/ecp_oct.c | 0 .../main/jni}/openssl/crypto/ec/ecp_smpl.c | 0 .../main/jni}/openssl/crypto/ec/ectest.c | 0 .../main/jni}/openssl/crypto/ecdh/Makefile | 0 .../main/jni}/openssl/crypto/ecdh/ecdh.h | 0 .../main/jni}/openssl/crypto/ecdh/ecdhtest.c | 0 .../main/jni}/openssl/crypto/ecdh/ech_err.c | 0 .../main/jni}/openssl/crypto/ecdh/ech_key.c | 0 .../main/jni}/openssl/crypto/ecdh/ech_lib.c | 0 .../main/jni}/openssl/crypto/ecdh/ech_locl.h | 0 .../main/jni}/openssl/crypto/ecdh/ech_ossl.c | 0 .../main/jni}/openssl/crypto/ecdsa/Makefile | 0 .../main/jni}/openssl/crypto/ecdsa/ecdsa.h | 0 .../jni}/openssl/crypto/ecdsa/ecdsatest.c | 0 .../main/jni}/openssl/crypto/ecdsa/ecs_asn1.c | 0 .../main/jni}/openssl/crypto/ecdsa/ecs_err.c | 0 .../main/jni}/openssl/crypto/ecdsa/ecs_lib.c | 0 .../main/jni}/openssl/crypto/ecdsa/ecs_locl.h | 0 .../main/jni}/openssl/crypto/ecdsa/ecs_ossl.c | 0 .../main/jni}/openssl/crypto/ecdsa/ecs_sign.c | 0 .../main/jni}/openssl/crypto/ecdsa/ecs_vrf.c | 0 .../main/jni}/openssl/crypto/engine/Makefile | 0 .../main/jni}/openssl/crypto/engine/README | 0 .../main/jni}/openssl/crypto/engine/eng_all.c | 0 .../main/jni}/openssl/crypto/engine/eng_cnf.c | 0 .../openssl/crypto/engine/eng_cryptodev.c | 0 .../jni}/openssl/crypto/engine/eng_ctrl.c | 0 .../main/jni}/openssl/crypto/engine/eng_dyn.c | 0 .../main/jni}/openssl/crypto/engine/eng_err.c | 0 .../main/jni}/openssl/crypto/engine/eng_fat.c | 0 .../jni}/openssl/crypto/engine/eng_init.c | 0 .../main/jni}/openssl/crypto/engine/eng_int.h | 0 .../main/jni}/openssl/crypto/engine/eng_lib.c | 0 .../jni}/openssl/crypto/engine/eng_list.c | 0 .../jni}/openssl/crypto/engine/eng_openssl.c | 0 .../jni}/openssl/crypto/engine/eng_pkey.c | 0 .../jni}/openssl/crypto/engine/eng_rdrand.c | 0 .../jni}/openssl/crypto/engine/eng_rsax.c | 0 .../jni}/openssl/crypto/engine/eng_table.c | 0 .../main/jni}/openssl/crypto/engine/engine.h | 0 .../jni}/openssl/crypto/engine/enginetest.c | 0 .../jni}/openssl/crypto/engine/tb_asnmth.c | 0 .../jni}/openssl/crypto/engine/tb_cipher.c | 0 .../main/jni}/openssl/crypto/engine/tb_dh.c | 0 .../jni}/openssl/crypto/engine/tb_digest.c | 0 .../main/jni}/openssl/crypto/engine/tb_dsa.c | 0 .../main/jni}/openssl/crypto/engine/tb_ecdh.c | 0 .../jni}/openssl/crypto/engine/tb_ecdsa.c | 0 .../jni}/openssl/crypto/engine/tb_pkmeth.c | 0 .../main/jni}/openssl/crypto/engine/tb_rand.c | 0 .../main/jni}/openssl/crypto/engine/tb_rsa.c | 0 .../jni}/openssl/crypto/engine/tb_store.c | 0 .../main/jni}/openssl/crypto/err/Makefile | 0 .../main/jni}/openssl/crypto/err/err.c | 0 .../main/jni}/openssl/crypto/err/err.h | 0 .../main/jni}/openssl/crypto/err/err_all.c | 0 .../main/jni}/openssl/crypto/err/err_prn.c | 0 .../main/jni}/openssl/crypto/err/openssl.ec | 0 .../main/jni}/openssl/crypto/evp/Makefile | 0 .../main/jni}/openssl/crypto/evp/bio_b64.c | 0 .../main/jni}/openssl/crypto/evp/bio_enc.c | 0 .../main/jni}/openssl/crypto/evp/bio_md.c | 0 .../main/jni}/openssl/crypto/evp/bio_ok.c | 0 .../main/jni}/openssl/crypto/evp/c_all.c | 0 .../main/jni}/openssl/crypto/evp/c_allc.c | 0 .../main/jni}/openssl/crypto/evp/c_alld.c | 0 .../main/jni}/openssl/crypto/evp/digest.c | 0 .../main/jni}/openssl/crypto/evp/e_aes.c | 0 .../openssl/crypto/evp/e_aes_cbc_hmac_sha1.c | 0 .../main/jni}/openssl/crypto/evp/e_bf.c | 0 .../main/jni}/openssl/crypto/evp/e_camellia.c | 0 .../main/jni}/openssl/crypto/evp/e_cast.c | 0 .../main/jni}/openssl/crypto/evp/e_des.c | 0 .../main/jni}/openssl/crypto/evp/e_des3.c | 0 .../main/jni}/openssl/crypto/evp/e_dsa.c | 0 .../main/jni}/openssl/crypto/evp/e_idea.c | 0 .../main/jni}/openssl/crypto/evp/e_null.c | 0 .../main/jni}/openssl/crypto/evp/e_old.c | 0 .../main/jni}/openssl/crypto/evp/e_rc2.c | 0 .../main/jni}/openssl/crypto/evp/e_rc4.c | 0 .../jni}/openssl/crypto/evp/e_rc4_hmac_md5.c | 0 .../main/jni}/openssl/crypto/evp/e_rc5.c | 0 .../main/jni}/openssl/crypto/evp/e_seed.c | 0 .../main/jni}/openssl/crypto/evp/e_xcbc_d.c | 0 .../main/jni}/openssl/crypto/evp/encode.c | 0 .../main/jni}/openssl/crypto/evp/evp.h | 0 .../main/jni}/openssl/crypto/evp/evp_acnf.c | 0 .../main/jni}/openssl/crypto/evp/evp_enc.c | 0 .../main/jni}/openssl/crypto/evp/evp_err.c | 0 .../main/jni}/openssl/crypto/evp/evp_fips.c | 0 .../main/jni}/openssl/crypto/evp/evp_key.c | 0 .../main/jni}/openssl/crypto/evp/evp_lib.c | 0 .../main/jni}/openssl/crypto/evp/evp_locl.h | 0 .../main/jni}/openssl/crypto/evp/evp_pbe.c | 0 .../main/jni}/openssl/crypto/evp/evp_pkey.c | 0 .../main/jni}/openssl/crypto/evp/evp_test.c | 0 .../main/jni}/openssl/crypto/evp/evptests.txt | 0 .../main/jni}/openssl/crypto/evp/m_dss.c | 0 .../main/jni}/openssl/crypto/evp/m_dss1.c | 0 .../main/jni}/openssl/crypto/evp/m_ecdsa.c | 0 .../main/jni}/openssl/crypto/evp/m_md2.c | 0 .../main/jni}/openssl/crypto/evp/m_md4.c | 0 .../main/jni}/openssl/crypto/evp/m_md5.c | 0 .../main/jni}/openssl/crypto/evp/m_mdc2.c | 0 .../main/jni}/openssl/crypto/evp/m_null.c | 0 .../main/jni}/openssl/crypto/evp/m_ripemd.c | 0 .../main/jni}/openssl/crypto/evp/m_sha.c | 0 .../main/jni}/openssl/crypto/evp/m_sha1.c | 0 .../main/jni}/openssl/crypto/evp/m_sigver.c | 0 .../main/jni}/openssl/crypto/evp/m_wp.c | 0 .../main/jni}/openssl/crypto/evp/names.c | 0 .../main/jni}/openssl/crypto/evp/openbsd_hw.c | 0 .../main/jni}/openssl/crypto/evp/p5_crpt.c | 0 .../main/jni}/openssl/crypto/evp/p5_crpt2.c | 0 .../main/jni}/openssl/crypto/evp/p_dec.c | 0 .../main/jni}/openssl/crypto/evp/p_enc.c | 0 .../main/jni}/openssl/crypto/evp/p_lib.c | 0 .../main/jni}/openssl/crypto/evp/p_open.c | 0 .../main/jni}/openssl/crypto/evp/p_seal.c | 0 .../main/jni}/openssl/crypto/evp/p_sign.c | 0 .../main/jni}/openssl/crypto/evp/p_verify.c | 0 .../main/jni}/openssl/crypto/evp/pmeth_fn.c | 0 .../main/jni}/openssl/crypto/evp/pmeth_gn.c | 0 .../main/jni}/openssl/crypto/evp/pmeth_lib.c | 0 .../main/jni}/openssl/crypto/ex_data.c | 0 .../main/jni}/openssl/crypto/fips_err.h | 0 .../main/jni}/openssl/crypto/fips_ers.c | 0 .../main/jni}/openssl/crypto/hmac/Makefile | 0 .../main/jni}/openssl/crypto/hmac/hm_ameth.c | 0 .../main/jni}/openssl/crypto/hmac/hm_pmeth.c | 0 .../main/jni}/openssl/crypto/hmac/hmac.c | 0 .../main/jni}/openssl/crypto/hmac/hmac.h | 0 .../main/jni}/openssl/crypto/hmac/hmactest.c | 0 .../main/jni}/openssl/crypto/ia64cpuid.S | 0 .../jni}/openssl/crypto/install-crypto.com | 0 .../main/jni}/openssl/crypto/jpake/Makefile | 0 .../main/jni}/openssl/crypto/jpake/jpake.c | 0 .../main/jni}/openssl/crypto/jpake/jpake.h | 0 .../jni}/openssl/crypto/jpake/jpake_err.c | 0 .../jni}/openssl/crypto/jpake/jpaketest.c | 0 .../main/jni}/openssl/crypto/krb5/Makefile | 0 .../main/jni}/openssl/crypto/krb5/krb5_asn.c | 0 .../main/jni}/openssl/crypto/krb5/krb5_asn.h | 0 .../main/jni}/openssl/crypto/lhash/Makefile | 0 .../main/jni}/openssl/crypto/lhash/lh_stats.c | 0 .../main/jni}/openssl/crypto/lhash/lh_test.c | 0 .../main/jni}/openssl/crypto/lhash/lhash.c | 0 .../main/jni}/openssl/crypto/lhash/lhash.h | 0 .../main/jni}/openssl/crypto/lhash/num.pl | 0 .../main/jni}/openssl/crypto/md32_common.h | 0 .../main/jni}/openssl/crypto/md4/Makefile | 0 .../main/jni}/openssl/crypto/md4/md4.c | 0 .../main/jni}/openssl/crypto/md4/md4.h | 0 .../main/jni}/openssl/crypto/md4/md4_dgst.c | 0 .../main/jni}/openssl/crypto/md4/md4_locl.h | 0 .../main/jni}/openssl/crypto/md4/md4_one.c | 0 .../main/jni}/openssl/crypto/md4/md4s.cpp | 0 .../main/jni}/openssl/crypto/md4/md4test.c | 0 .../main/jni}/openssl/crypto/md5/Makefile | 0 .../jni}/openssl/crypto/md5/asm/md5-586.pl | 0 .../jni}/openssl/crypto/md5/asm/md5-ia64.S | 0 .../jni}/openssl/crypto/md5/asm/md5-x86_64.pl | 0 .../main/jni}/openssl/crypto/md5/md5.c | 0 .../main/jni}/openssl/crypto/md5/md5.h | 0 .../main/jni}/openssl/crypto/md5/md5_dgst.c | 0 .../main/jni}/openssl/crypto/md5/md5_locl.h | 0 .../main/jni}/openssl/crypto/md5/md5_one.c | 0 .../main/jni}/openssl/crypto/md5/md5s.cpp | 0 .../main/jni}/openssl/crypto/md5/md5test.c | 0 .../main/jni}/openssl/crypto/mdc2/Makefile | 0 .../main/jni}/openssl/crypto/mdc2/mdc2.h | 0 .../main/jni}/openssl/crypto/mdc2/mdc2_one.c | 0 .../main/jni}/openssl/crypto/mdc2/mdc2dgst.c | 0 .../main/jni}/openssl/crypto/mdc2/mdc2test.c | 0 {jni => src/main/jni}/openssl/crypto/mem.c | 0 .../main/jni}/openssl/crypto/mem_clr.c | 0 .../main/jni}/openssl/crypto/mem_dbg.c | 0 .../main/jni}/openssl/crypto/modes/Makefile | 0 .../openssl/crypto/modes/asm/ghash-alpha.pl | 0 .../openssl/crypto/modes/asm/ghash-armv4.pl | 0 .../openssl/crypto/modes/asm/ghash-ia64.pl | 0 .../openssl/crypto/modes/asm/ghash-parisc.pl | 0 .../openssl/crypto/modes/asm/ghash-s390x.pl | 0 .../openssl/crypto/modes/asm/ghash-sparcv9.pl | 0 .../openssl/crypto/modes/asm/ghash-x86.pl | 0 .../openssl/crypto/modes/asm/ghash-x86_64.pl | 0 .../main/jni}/openssl/crypto/modes/cbc128.c | 0 .../main/jni}/openssl/crypto/modes/ccm128.c | 0 .../main/jni}/openssl/crypto/modes/cfb128.c | 0 .../main/jni}/openssl/crypto/modes/ctr128.c | 0 .../main/jni}/openssl/crypto/modes/cts128.c | 0 .../main/jni}/openssl/crypto/modes/gcm128.c | 0 .../main/jni}/openssl/crypto/modes/modes.h | 0 .../jni}/openssl/crypto/modes/modes_lcl.h | 0 .../main/jni}/openssl/crypto/modes/ofb128.c | 0 .../main/jni}/openssl/crypto/modes/xts128.c | 0 {jni => src/main/jni}/openssl/crypto/o_dir.c | 0 {jni => src/main/jni}/openssl/crypto/o_dir.h | 0 .../main/jni}/openssl/crypto/o_dir_test.c | 0 {jni => src/main/jni}/openssl/crypto/o_fips.c | 0 {jni => src/main/jni}/openssl/crypto/o_init.c | 0 {jni => src/main/jni}/openssl/crypto/o_str.c | 0 {jni => src/main/jni}/openssl/crypto/o_str.h | 0 {jni => src/main/jni}/openssl/crypto/o_time.c | 0 {jni => src/main/jni}/openssl/crypto/o_time.h | 0 .../main/jni}/openssl/crypto/objects/Makefile | 0 .../jni}/openssl/crypto/objects/o_names.c | 0 .../jni}/openssl/crypto/objects/obj_dat.c | 0 .../jni}/openssl/crypto/objects/obj_dat.h | 0 .../jni}/openssl/crypto/objects/obj_dat.pl | 0 .../jni}/openssl/crypto/objects/obj_err.c | 0 .../jni}/openssl/crypto/objects/obj_lib.c | 0 .../jni}/openssl/crypto/objects/obj_mac.h | 0 .../jni}/openssl/crypto/objects/obj_mac.num | 0 .../jni}/openssl/crypto/objects/obj_xref.c | 0 .../jni}/openssl/crypto/objects/obj_xref.h | 0 .../jni}/openssl/crypto/objects/obj_xref.txt | 0 .../openssl/crypto/objects/objects.README | 0 .../jni}/openssl/crypto/objects/objects.h | 0 .../jni}/openssl/crypto/objects/objects.pl | 0 .../jni}/openssl/crypto/objects/objects.txt | 0 .../jni}/openssl/crypto/objects/objxref.pl | 0 .../main/jni}/openssl/crypto/ocsp/Makefile | 0 .../main/jni}/openssl/crypto/ocsp/ocsp.h | 0 .../main/jni}/openssl/crypto/ocsp/ocsp_asn.c | 0 .../main/jni}/openssl/crypto/ocsp/ocsp_cl.c | 0 .../main/jni}/openssl/crypto/ocsp/ocsp_err.c | 0 .../main/jni}/openssl/crypto/ocsp/ocsp_ext.c | 0 .../main/jni}/openssl/crypto/ocsp/ocsp_ht.c | 0 .../main/jni}/openssl/crypto/ocsp/ocsp_lib.c | 0 .../main/jni}/openssl/crypto/ocsp/ocsp_prn.c | 0 .../main/jni}/openssl/crypto/ocsp/ocsp_srv.c | 0 .../main/jni}/openssl/crypto/ocsp/ocsp_vfy.c | 0 .../main/jni}/openssl/crypto/opensslconf.h | 0 .../main/jni}/openssl/crypto/opensslconf.h.in | 0 .../main/jni}/openssl/crypto/opensslv.h | 0 .../main/jni}/openssl/crypto/ossl_typ.h | 0 .../main/jni}/openssl/crypto/pariscid.pl | 0 .../main/jni}/openssl/crypto/pem/Makefile | 0 .../main/jni}/openssl/crypto/pem/message | 0 .../main/jni}/openssl/crypto/pem/pem.h | 0 .../main/jni}/openssl/crypto/pem/pem2.h | 0 .../main/jni}/openssl/crypto/pem/pem_all.c | 0 .../main/jni}/openssl/crypto/pem/pem_err.c | 0 .../main/jni}/openssl/crypto/pem/pem_info.c | 0 .../main/jni}/openssl/crypto/pem/pem_lib.c | 0 .../main/jni}/openssl/crypto/pem/pem_oth.c | 0 .../main/jni}/openssl/crypto/pem/pem_pk8.c | 0 .../main/jni}/openssl/crypto/pem/pem_pkey.c | 0 .../main/jni}/openssl/crypto/pem/pem_seal.c | 0 .../main/jni}/openssl/crypto/pem/pem_sign.c | 0 .../main/jni}/openssl/crypto/pem/pem_x509.c | 0 .../main/jni}/openssl/crypto/pem/pem_xaux.c | 0 .../main/jni}/openssl/crypto/pem/pkcs7.lis | 0 .../main/jni}/openssl/crypto/pem/pvkfmt.c | 0 .../main/jni}/openssl/crypto/perlasm/cbc.pl | 0 .../jni}/openssl/crypto/perlasm/ppc-xlate.pl | 0 .../main/jni}/openssl/crypto/perlasm/readme | 0 .../openssl/crypto/perlasm/x86_64-xlate.pl | 0 .../jni}/openssl/crypto/perlasm/x86asm.pl | 0 .../jni}/openssl/crypto/perlasm/x86gas.pl | 0 .../jni}/openssl/crypto/perlasm/x86masm.pl | 0 .../jni}/openssl/crypto/perlasm/x86nasm.pl | 0 .../main/jni}/openssl/crypto/pkcs12/Makefile | 0 .../main/jni}/openssl/crypto/pkcs12/p12_add.c | 0 .../main/jni}/openssl/crypto/pkcs12/p12_asn.c | 0 .../jni}/openssl/crypto/pkcs12/p12_attr.c | 0 .../jni}/openssl/crypto/pkcs12/p12_crpt.c | 0 .../main/jni}/openssl/crypto/pkcs12/p12_crt.c | 0 .../jni}/openssl/crypto/pkcs12/p12_decr.c | 0 .../jni}/openssl/crypto/pkcs12/p12_init.c | 0 .../main/jni}/openssl/crypto/pkcs12/p12_key.c | 0 .../jni}/openssl/crypto/pkcs12/p12_kiss.c | 0 .../jni}/openssl/crypto/pkcs12/p12_mutl.c | 0 .../jni}/openssl/crypto/pkcs12/p12_npas.c | 0 .../main/jni}/openssl/crypto/pkcs12/p12_p8d.c | 0 .../main/jni}/openssl/crypto/pkcs12/p12_p8e.c | 0 .../main/jni}/openssl/crypto/pkcs12/p12_utl.c | 0 .../main/jni}/openssl/crypto/pkcs12/pk12err.c | 0 .../main/jni}/openssl/crypto/pkcs12/pkcs12.h | 0 .../main/jni}/openssl/crypto/pkcs7/Makefile | 0 .../main/jni}/openssl/crypto/pkcs7/bio_ber.c | 0 .../main/jni}/openssl/crypto/pkcs7/bio_pk7.c | 0 .../main/jni}/openssl/crypto/pkcs7/dec.c | 0 .../main/jni}/openssl/crypto/pkcs7/des.pem | 0 .../main/jni}/openssl/crypto/pkcs7/doc | 0 .../main/jni}/openssl/crypto/pkcs7/enc.c | 0 .../main/jni}/openssl/crypto/pkcs7/es1.pem | 0 .../main/jni}/openssl/crypto/pkcs7/example.c | 0 .../main/jni}/openssl/crypto/pkcs7/example.h | 0 .../main/jni}/openssl/crypto/pkcs7/info.pem | 0 .../jni}/openssl/crypto/pkcs7/infokey.pem | 0 .../main/jni}/openssl/crypto/pkcs7/p7/a1 | 0 .../main/jni}/openssl/crypto/pkcs7/p7/a2 | 0 .../jni}/openssl/crypto/pkcs7/p7/cert.p7c | Bin .../jni}/openssl/crypto/pkcs7/p7/smime.p7m | Bin .../jni}/openssl/crypto/pkcs7/p7/smime.p7s | Bin .../main/jni}/openssl/crypto/pkcs7/pk7_asn1.c | 0 .../main/jni}/openssl/crypto/pkcs7/pk7_attr.c | 0 .../main/jni}/openssl/crypto/pkcs7/pk7_dgst.c | 0 .../main/jni}/openssl/crypto/pkcs7/pk7_doit.c | 0 .../main/jni}/openssl/crypto/pkcs7/pk7_enc.c | 0 .../main/jni}/openssl/crypto/pkcs7/pk7_lib.c | 0 .../main/jni}/openssl/crypto/pkcs7/pk7_mime.c | 0 .../jni}/openssl/crypto/pkcs7/pk7_smime.c | 0 .../main/jni}/openssl/crypto/pkcs7/pkcs7.h | 0 .../main/jni}/openssl/crypto/pkcs7/pkcs7err.c | 0 .../main/jni}/openssl/crypto/pkcs7/server.pem | 0 .../main/jni}/openssl/crypto/pkcs7/sign.c | 0 .../main/jni}/openssl/crypto/pkcs7/t/3des.pem | 0 .../jni}/openssl/crypto/pkcs7/t/3dess.pem | 0 .../main/jni}/openssl/crypto/pkcs7/t/c.pem | 0 .../main/jni}/openssl/crypto/pkcs7/t/ff | 0 .../main/jni}/openssl/crypto/pkcs7/t/msie-e | 0 .../jni}/openssl/crypto/pkcs7/t/msie-e.pem | 0 .../jni}/openssl/crypto/pkcs7/t/msie-enc-01 | 0 .../openssl/crypto/pkcs7/t/msie-enc-01.pem | 0 .../jni}/openssl/crypto/pkcs7/t/msie-enc-02 | 0 .../openssl/crypto/pkcs7/t/msie-enc-02.pem | 0 .../jni}/openssl/crypto/pkcs7/t/msie-s-a-e | 0 .../openssl/crypto/pkcs7/t/msie-s-a-e.pem | 0 .../jni}/openssl/crypto/pkcs7/t/nav-smime | 0 .../main/jni}/openssl/crypto/pkcs7/t/s.pem | 0 .../jni}/openssl/crypto/pkcs7/t/server.pem | 0 .../main/jni}/openssl/crypto/pkcs7/verify.c | 0 {jni => src/main/jni}/openssl/crypto/ppccap.c | 0 .../main/jni}/openssl/crypto/ppccpuid.pl | 0 .../main/jni}/openssl/crypto/pqueue/Makefile | 0 .../main/jni}/openssl/crypto/pqueue/pq_test.c | 0 .../main/jni}/openssl/crypto/pqueue/pqueue.c | 0 .../main/jni}/openssl/crypto/pqueue/pqueue.h | 0 .../main/jni}/openssl/crypto/rand/Makefile | 0 .../main/jni}/openssl/crypto/rand/md_rand.c | 0 .../main/jni}/openssl/crypto/rand/rand.h | 0 .../main/jni}/openssl/crypto/rand/rand_egd.c | 0 .../main/jni}/openssl/crypto/rand/rand_err.c | 0 .../main/jni}/openssl/crypto/rand/rand_lcl.h | 0 .../main/jni}/openssl/crypto/rand/rand_lib.c | 0 .../main/jni}/openssl/crypto/rand/rand_nw.c | 0 .../main/jni}/openssl/crypto/rand/rand_os2.c | 0 .../main/jni}/openssl/crypto/rand/rand_unix.c | 0 .../main/jni}/openssl/crypto/rand/rand_vms.c | 0 .../main/jni}/openssl/crypto/rand/rand_win.c | 0 .../main/jni}/openssl/crypto/rand/randfile.c | 0 .../main/jni}/openssl/crypto/rand/randtest.c | 0 .../main/jni}/openssl/crypto/rc2/Makefile | 0 .../main/jni}/openssl/crypto/rc2/rc2.h | 0 .../main/jni}/openssl/crypto/rc2/rc2_cbc.c | 0 .../main/jni}/openssl/crypto/rc2/rc2_ecb.c | 0 .../main/jni}/openssl/crypto/rc2/rc2_locl.h | 0 .../main/jni}/openssl/crypto/rc2/rc2_skey.c | 0 .../main/jni}/openssl/crypto/rc2/rc2cfb64.c | 0 .../main/jni}/openssl/crypto/rc2/rc2ofb64.c | 0 .../main/jni}/openssl/crypto/rc2/rc2speed.c | 0 .../main/jni}/openssl/crypto/rc2/rc2test.c | 0 .../main/jni}/openssl/crypto/rc2/rrc2.doc | 0 .../main/jni}/openssl/crypto/rc2/tab.c | 0 .../main/jni}/openssl/crypto/rc2/version | 0 .../main/jni}/openssl/crypto/rc4/Makefile | 0 .../jni}/openssl/crypto/rc4/asm/rc4-586.pl | 0 .../jni}/openssl/crypto/rc4/asm/rc4-ia64.pl | 0 .../openssl/crypto/rc4/asm/rc4-md5-x86_64.pl | 0 .../jni}/openssl/crypto/rc4/asm/rc4-parisc.pl | 0 .../jni}/openssl/crypto/rc4/asm/rc4-s390x.pl | 0 .../jni}/openssl/crypto/rc4/asm/rc4-x86_64.pl | 0 .../main/jni}/openssl/crypto/rc4/rc4.c | 0 .../main/jni}/openssl/crypto/rc4/rc4.h | 0 .../main/jni}/openssl/crypto/rc4/rc4_enc.c | 0 .../main/jni}/openssl/crypto/rc4/rc4_locl.h | 0 .../main/jni}/openssl/crypto/rc4/rc4_skey.c | 0 .../main/jni}/openssl/crypto/rc4/rc4_utl.c | 0 .../main/jni}/openssl/crypto/rc4/rc4s.cpp | 0 .../main/jni}/openssl/crypto/rc4/rc4speed.c | 0 .../main/jni}/openssl/crypto/rc4/rc4test.c | 0 .../main/jni}/openssl/crypto/rc4/rrc4.doc | 0 .../main/jni}/openssl/crypto/ripemd/Makefile | 0 .../main/jni}/openssl/crypto/ripemd/README | 0 .../jni}/openssl/crypto/ripemd/asm/rips.cpp | 0 .../jni}/openssl/crypto/ripemd/asm/rmd-586.pl | 0 .../main/jni}/openssl/crypto/ripemd/ripemd.h | 0 .../main/jni}/openssl/crypto/ripemd/rmd160.c | 0 .../jni}/openssl/crypto/ripemd/rmd_dgst.c | 0 .../jni}/openssl/crypto/ripemd/rmd_locl.h | 0 .../main/jni}/openssl/crypto/ripemd/rmd_one.c | 0 .../jni}/openssl/crypto/ripemd/rmdconst.h | 0 .../main/jni}/openssl/crypto/ripemd/rmdtest.c | 0 .../main/jni}/openssl/crypto/rsa/Makefile | 0 .../main/jni}/openssl/crypto/rsa/rsa.h | 0 .../main/jni}/openssl/crypto/rsa/rsa_ameth.c | 0 .../main/jni}/openssl/crypto/rsa/rsa_asn1.c | 0 .../main/jni}/openssl/crypto/rsa/rsa_chk.c | 0 .../main/jni}/openssl/crypto/rsa/rsa_crpt.c | 0 .../main/jni}/openssl/crypto/rsa/rsa_depr.c | 0 .../main/jni}/openssl/crypto/rsa/rsa_eay.c | 0 .../main/jni}/openssl/crypto/rsa/rsa_err.c | 0 .../main/jni}/openssl/crypto/rsa/rsa_gen.c | 0 .../main/jni}/openssl/crypto/rsa/rsa_lib.c | 0 .../main/jni}/openssl/crypto/rsa/rsa_locl.h | 0 .../main/jni}/openssl/crypto/rsa/rsa_none.c | 0 .../main/jni}/openssl/crypto/rsa/rsa_null.c | 0 .../main/jni}/openssl/crypto/rsa/rsa_oaep.c | 0 .../main/jni}/openssl/crypto/rsa/rsa_pk1.c | 0 .../main/jni}/openssl/crypto/rsa/rsa_pmeth.c | 0 .../main/jni}/openssl/crypto/rsa/rsa_prn.c | 0 .../main/jni}/openssl/crypto/rsa/rsa_pss.c | 0 .../main/jni}/openssl/crypto/rsa/rsa_saos.c | 0 .../main/jni}/openssl/crypto/rsa/rsa_sign.c | 0 .../main/jni}/openssl/crypto/rsa/rsa_ssl.c | 0 .../main/jni}/openssl/crypto/rsa/rsa_test.c | 0 .../main/jni}/openssl/crypto/rsa/rsa_x931.c | 0 .../main/jni}/openssl/crypto/s390xcap.c | 0 .../main/jni}/openssl/crypto/s390xcpuid.S | 0 .../main/jni}/openssl/crypto/sha/Makefile | 0 .../main/jni}/openssl/crypto/sha/asm/README | 0 .../jni}/openssl/crypto/sha/asm/sha1-586.pl | 0 .../jni}/openssl/crypto/sha/asm/sha1-alpha.pl | 0 .../openssl/crypto/sha/asm/sha1-armv4-large.S | 0 .../crypto/sha/asm/sha1-armv4-large.pl | 0 .../jni}/openssl/crypto/sha/asm/sha1-ia64.pl | 0 .../jni}/openssl/crypto/sha/asm/sha1-mips.pl | 0 .../openssl/crypto/sha/asm/sha1-parisc.pl | 0 .../jni}/openssl/crypto/sha/asm/sha1-ppc.pl | 0 .../jni}/openssl/crypto/sha/asm/sha1-s390x.pl | 0 .../openssl/crypto/sha/asm/sha1-sparcv9.pl | 0 .../openssl/crypto/sha/asm/sha1-sparcv9a.pl | 0 .../jni}/openssl/crypto/sha/asm/sha1-thumb.pl | 0 .../openssl/crypto/sha/asm/sha1-x86_64.pl | 0 .../jni}/openssl/crypto/sha/asm/sha256-586.pl | 0 .../openssl/crypto/sha/asm/sha256-armv4.S | 0 .../openssl/crypto/sha/asm/sha256-armv4.pl | 0 .../jni}/openssl/crypto/sha/asm/sha512-586.pl | 0 .../openssl/crypto/sha/asm/sha512-armv4.S | 0 .../openssl/crypto/sha/asm/sha512-armv4.pl | 0 .../openssl/crypto/sha/asm/sha512-ia64.pl | 0 .../openssl/crypto/sha/asm/sha512-mips.pl | 0 .../openssl/crypto/sha/asm/sha512-parisc.pl | 0 .../jni}/openssl/crypto/sha/asm/sha512-ppc.pl | 0 .../openssl/crypto/sha/asm/sha512-s390x.pl | 0 .../openssl/crypto/sha/asm/sha512-sparcv9.pl | 0 .../openssl/crypto/sha/asm/sha512-x86_64.pl | 0 .../main/jni}/openssl/crypto/sha/sha.c | 0 .../main/jni}/openssl/crypto/sha/sha.h | 0 .../main/jni}/openssl/crypto/sha/sha1.c | 0 .../main/jni}/openssl/crypto/sha/sha1_one.c | 0 .../main/jni}/openssl/crypto/sha/sha1dgst.c | 0 .../main/jni}/openssl/crypto/sha/sha1test.c | 0 .../main/jni}/openssl/crypto/sha/sha256.c | 0 .../main/jni}/openssl/crypto/sha/sha256t.c | 0 .../main/jni}/openssl/crypto/sha/sha512.c | 0 .../main/jni}/openssl/crypto/sha/sha512t.c | 0 .../main/jni}/openssl/crypto/sha/sha_dgst.c | 0 .../main/jni}/openssl/crypto/sha/sha_locl.h | 0 .../main/jni}/openssl/crypto/sha/sha_one.c | 0 .../main/jni}/openssl/crypto/sha/shatest.c | 0 .../main/jni}/openssl/crypto/sparccpuid.S | 0 .../main/jni}/openssl/crypto/sparcv9cap.c | 0 .../main/jni}/openssl/crypto/srp/Makefile | 0 .../main/jni}/openssl/crypto/srp/srp.h | 0 .../main/jni}/openssl/crypto/srp/srp_grps.h | 0 .../main/jni}/openssl/crypto/srp/srp_lcl.h | 0 .../main/jni}/openssl/crypto/srp/srp_lib.c | 0 .../main/jni}/openssl/crypto/srp/srp_vfy.c | 0 .../main/jni}/openssl/crypto/srp/srptest.c | 0 .../main/jni}/openssl/crypto/stack/Makefile | 0 .../jni}/openssl/crypto/stack/safestack.h | 0 .../main/jni}/openssl/crypto/stack/stack.c | 0 .../main/jni}/openssl/crypto/stack/stack.h | 0 .../main/jni}/openssl/crypto/store/Makefile | 0 .../main/jni}/openssl/crypto/store/README | 0 .../main/jni}/openssl/crypto/store/store.h | 0 .../main/jni}/openssl/crypto/store/str_err.c | 0 .../main/jni}/openssl/crypto/store/str_lib.c | 0 .../main/jni}/openssl/crypto/store/str_locl.h | 0 .../main/jni}/openssl/crypto/store/str_mem.c | 0 .../main/jni}/openssl/crypto/store/str_meth.c | 0 .../main/jni}/openssl/crypto/symhacks.h | 0 .../main/jni}/openssl/crypto/threads/README | 0 .../main/jni}/openssl/crypto/threads/mttest.c | 0 .../jni}/openssl/crypto/threads/netware.bat | 0 .../jni}/openssl/crypto/threads/profile.sh | 0 .../jni}/openssl/crypto/threads/ptest.bat | 0 .../jni}/openssl/crypto/threads/pthread.sh | 0 .../jni}/openssl/crypto/threads/pthread2.sh | 0 .../openssl/crypto/threads/pthreads-vms.com | 0 .../jni}/openssl/crypto/threads/purify.sh | 0 .../jni}/openssl/crypto/threads/solaris.sh | 0 .../jni}/openssl/crypto/threads/th-lock.c | 0 .../jni}/openssl/crypto/threads/win32.bat | 0 .../main/jni}/openssl/crypto/ts/Makefile | 0 {jni => src/main/jni}/openssl/crypto/ts/ts.h | 0 .../main/jni}/openssl/crypto/ts/ts_asn1.c | 0 .../main/jni}/openssl/crypto/ts/ts_conf.c | 0 .../main/jni}/openssl/crypto/ts/ts_err.c | 0 .../main/jni}/openssl/crypto/ts/ts_lib.c | 0 .../jni}/openssl/crypto/ts/ts_req_print.c | 0 .../jni}/openssl/crypto/ts/ts_req_utils.c | 0 .../jni}/openssl/crypto/ts/ts_rsp_print.c | 0 .../main/jni}/openssl/crypto/ts/ts_rsp_sign.c | 0 .../jni}/openssl/crypto/ts/ts_rsp_utils.c | 0 .../jni}/openssl/crypto/ts/ts_rsp_verify.c | 0 .../jni}/openssl/crypto/ts/ts_verify_ctx.c | 0 .../main/jni}/openssl/crypto/txt_db/Makefile | 0 .../main/jni}/openssl/crypto/txt_db/txt_db.c | 0 .../main/jni}/openssl/crypto/txt_db/txt_db.h | 0 .../main/jni}/openssl/crypto/ui/Makefile | 0 {jni => src/main/jni}/openssl/crypto/ui/ui.h | 0 .../main/jni}/openssl/crypto/ui/ui_compat.c | 0 .../main/jni}/openssl/crypto/ui/ui_compat.h | 0 .../main/jni}/openssl/crypto/ui/ui_err.c | 0 .../main/jni}/openssl/crypto/ui/ui_lib.c | 0 .../main/jni}/openssl/crypto/ui/ui_locl.h | 0 .../main/jni}/openssl/crypto/ui/ui_openssl.c | 0 .../main/jni}/openssl/crypto/ui/ui_util.c | 0 {jni => src/main/jni}/openssl/crypto/uid.c | 0 .../main/jni}/openssl/crypto/vms_rms.h | 0 .../jni}/openssl/crypto/whrlpool/Makefile | 0 .../openssl/crypto/whrlpool/asm/wp-mmx.pl | 0 .../openssl/crypto/whrlpool/asm/wp-x86_64.pl | 0 .../jni}/openssl/crypto/whrlpool/whrlpool.h | 0 .../jni}/openssl/crypto/whrlpool/wp_block.c | 0 .../jni}/openssl/crypto/whrlpool/wp_dgst.c | 0 .../jni}/openssl/crypto/whrlpool/wp_locl.h | 0 .../jni}/openssl/crypto/whrlpool/wp_test.c | 0 .../main/jni}/openssl/crypto/x509/Makefile | 0 .../main/jni}/openssl/crypto/x509/by_dir.c | 0 .../main/jni}/openssl/crypto/x509/by_file.c | 0 .../main/jni}/openssl/crypto/x509/x509.h | 0 .../main/jni}/openssl/crypto/x509/x509_att.c | 0 .../main/jni}/openssl/crypto/x509/x509_cmp.c | 0 .../main/jni}/openssl/crypto/x509/x509_d2.c | 0 .../main/jni}/openssl/crypto/x509/x509_def.c | 0 .../main/jni}/openssl/crypto/x509/x509_err.c | 0 .../main/jni}/openssl/crypto/x509/x509_ext.c | 0 .../main/jni}/openssl/crypto/x509/x509_lu.c | 0 .../main/jni}/openssl/crypto/x509/x509_obj.c | 0 .../main/jni}/openssl/crypto/x509/x509_r2x.c | 0 .../main/jni}/openssl/crypto/x509/x509_req.c | 0 .../main/jni}/openssl/crypto/x509/x509_set.c | 0 .../main/jni}/openssl/crypto/x509/x509_trs.c | 0 .../main/jni}/openssl/crypto/x509/x509_txt.c | 0 .../main/jni}/openssl/crypto/x509/x509_v3.c | 0 .../main/jni}/openssl/crypto/x509/x509_vfy.c | 0 .../main/jni}/openssl/crypto/x509/x509_vfy.h | 0 .../main/jni}/openssl/crypto/x509/x509_vpm.c | 0 .../main/jni}/openssl/crypto/x509/x509cset.c | 0 .../main/jni}/openssl/crypto/x509/x509name.c | 0 .../main/jni}/openssl/crypto/x509/x509rset.c | 0 .../main/jni}/openssl/crypto/x509/x509spki.c | 0 .../main/jni}/openssl/crypto/x509/x509type.c | 0 .../main/jni}/openssl/crypto/x509/x_all.c | 0 .../main/jni}/openssl/crypto/x509v3/Makefile | 0 .../main/jni}/openssl/crypto/x509v3/ext_dat.h | 0 .../jni}/openssl/crypto/x509v3/pcy_cache.c | 0 .../jni}/openssl/crypto/x509v3/pcy_data.c | 0 .../main/jni}/openssl/crypto/x509v3/pcy_int.h | 0 .../main/jni}/openssl/crypto/x509v3/pcy_lib.c | 0 .../main/jni}/openssl/crypto/x509v3/pcy_map.c | 0 .../jni}/openssl/crypto/x509v3/pcy_node.c | 0 .../jni}/openssl/crypto/x509v3/pcy_tree.c | 0 .../main/jni}/openssl/crypto/x509v3/tabtest.c | 0 .../main/jni}/openssl/crypto/x509v3/v3_addr.c | 0 .../main/jni}/openssl/crypto/x509v3/v3_akey.c | 0 .../jni}/openssl/crypto/x509v3/v3_akeya.c | 0 .../main/jni}/openssl/crypto/x509v3/v3_alt.c | 0 .../main/jni}/openssl/crypto/x509v3/v3_asid.c | 0 .../jni}/openssl/crypto/x509v3/v3_bcons.c | 0 .../jni}/openssl/crypto/x509v3/v3_bitst.c | 0 .../main/jni}/openssl/crypto/x509v3/v3_conf.c | 0 .../jni}/openssl/crypto/x509v3/v3_cpols.c | 0 .../main/jni}/openssl/crypto/x509v3/v3_crld.c | 0 .../main/jni}/openssl/crypto/x509v3/v3_enum.c | 0 .../jni}/openssl/crypto/x509v3/v3_extku.c | 0 .../main/jni}/openssl/crypto/x509v3/v3_genn.c | 0 .../main/jni}/openssl/crypto/x509v3/v3_ia5.c | 0 .../main/jni}/openssl/crypto/x509v3/v3_info.c | 0 .../main/jni}/openssl/crypto/x509v3/v3_int.c | 0 .../main/jni}/openssl/crypto/x509v3/v3_lib.c | 0 .../jni}/openssl/crypto/x509v3/v3_ncons.c | 0 .../main/jni}/openssl/crypto/x509v3/v3_ocsp.c | 0 .../main/jni}/openssl/crypto/x509v3/v3_pci.c | 0 .../main/jni}/openssl/crypto/x509v3/v3_pcia.c | 0 .../jni}/openssl/crypto/x509v3/v3_pcons.c | 0 .../main/jni}/openssl/crypto/x509v3/v3_pku.c | 0 .../jni}/openssl/crypto/x509v3/v3_pmaps.c | 0 .../main/jni}/openssl/crypto/x509v3/v3_prn.c | 0 .../main/jni}/openssl/crypto/x509v3/v3_purp.c | 0 .../main/jni}/openssl/crypto/x509v3/v3_skey.c | 0 .../jni}/openssl/crypto/x509v3/v3_sxnet.c | 0 .../main/jni}/openssl/crypto/x509v3/v3_utl.c | 0 .../main/jni}/openssl/crypto/x509v3/v3conf.c | 0 .../main/jni}/openssl/crypto/x509v3/v3err.c | 0 .../main/jni}/openssl/crypto/x509v3/v3prin.c | 0 .../main/jni}/openssl/crypto/x509v3/x509v3.h | 0 .../main/jni}/openssl/crypto/x86_64cpuid.pl | 0 .../main/jni}/openssl/crypto/x86cpuid.pl | 0 {jni => src/main/jni}/openssl/e_os.h | 0 {jni => src/main/jni}/openssl/e_os2.h | 0 .../main/jni}/openssl/include/openssl/aes.h | 0 .../main/jni}/openssl/include/openssl/asn1.h | 0 .../jni}/openssl/include/openssl/asn1_mac.h | 0 .../main/jni}/openssl/include/openssl/asn1t.h | 0 .../main/jni}/openssl/include/openssl/bio.h | 0 .../jni}/openssl/include/openssl/blowfish.h | 0 .../main/jni}/openssl/include/openssl/bn.h | 0 .../jni}/openssl/include/openssl/buffer.h | 0 .../jni}/openssl/include/openssl/camellia.h | 0 .../main/jni}/openssl/include/openssl/cast.h | 0 .../main/jni}/openssl/include/openssl/cmac.h | 0 .../main/jni}/openssl/include/openssl/comp.h | 0 .../main/jni}/openssl/include/openssl/conf.h | 0 .../jni}/openssl/include/openssl/conf_api.h | 0 .../jni}/openssl/include/openssl/crypto.h | 0 .../main/jni}/openssl/include/openssl/des.h | 0 .../jni}/openssl/include/openssl/des_old.h | 0 .../main/jni}/openssl/include/openssl/dh.h | 0 .../main/jni}/openssl/include/openssl/dsa.h | 0 .../main/jni}/openssl/include/openssl/dso.h | 0 .../main/jni}/openssl/include/openssl/dtls1.h | 0 .../main/jni}/openssl/include/openssl/e_os2.h | 0 .../jni}/openssl/include/openssl/ebcdic.h | 0 .../main/jni}/openssl/include/openssl/ec.h | 0 .../main/jni}/openssl/include/openssl/ecdh.h | 0 .../main/jni}/openssl/include/openssl/ecdsa.h | 0 .../jni}/openssl/include/openssl/engine.h | 0 .../main/jni}/openssl/include/openssl/err.h | 0 .../main/jni}/openssl/include/openssl/evp.h | 0 .../main/jni}/openssl/include/openssl/hmac.h | 0 .../main/jni}/openssl/include/openssl/idea.h | 0 .../jni}/openssl/include/openssl/krb5_asn.h | 0 .../main/jni}/openssl/include/openssl/kssl.h | 0 .../main/jni}/openssl/include/openssl/lhash.h | 0 .../main/jni}/openssl/include/openssl/md4.h | 0 .../main/jni}/openssl/include/openssl/md5.h | 0 .../main/jni}/openssl/include/openssl/mdc2.h | 0 .../main/jni}/openssl/include/openssl/modes.h | 0 .../jni}/openssl/include/openssl/obj_mac.h | 0 .../jni}/openssl/include/openssl/objects.h | 0 .../main/jni}/openssl/include/openssl/ocsp.h | 0 .../openssl/include/openssl/opensslconf.h | 0 .../jni}/openssl/include/openssl/opensslv.h | 0 .../jni}/openssl/include/openssl/ossl_typ.h | 0 .../main/jni}/openssl/include/openssl/pem.h | 0 .../main/jni}/openssl/include/openssl/pem2.h | 0 .../jni}/openssl/include/openssl/pkcs12.h | 0 .../main/jni}/openssl/include/openssl/pkcs7.h | 0 .../jni}/openssl/include/openssl/pqueue.h | 0 .../main/jni}/openssl/include/openssl/rand.h | 0 .../main/jni}/openssl/include/openssl/rc2.h | 0 .../main/jni}/openssl/include/openssl/rc4.h | 0 .../jni}/openssl/include/openssl/ripemd.h | 0 .../main/jni}/openssl/include/openssl/rsa.h | 0 .../jni}/openssl/include/openssl/safestack.h | 0 .../main/jni}/openssl/include/openssl/seed.h | 0 .../main/jni}/openssl/include/openssl/sha.h | 0 .../main/jni}/openssl/include/openssl/srp.h | 0 .../main/jni}/openssl/include/openssl/srtp.h | 0 .../main/jni}/openssl/include/openssl/ssl.h | 0 .../main/jni}/openssl/include/openssl/ssl2.h | 0 .../main/jni}/openssl/include/openssl/ssl23.h | 0 .../main/jni}/openssl/include/openssl/ssl3.h | 0 .../main/jni}/openssl/include/openssl/stack.h | 0 .../jni}/openssl/include/openssl/symhacks.h | 0 .../main/jni}/openssl/include/openssl/tls1.h | 0 .../main/jni}/openssl/include/openssl/ts.h | 0 .../jni}/openssl/include/openssl/txt_db.h | 0 .../main/jni}/openssl/include/openssl/ui.h | 0 .../jni}/openssl/include/openssl/ui_compat.h | 0 .../jni}/openssl/include/openssl/whrlpool.h | 0 .../main/jni}/openssl/include/openssl/x509.h | 0 .../jni}/openssl/include/openssl/x509_vfy.h | 0 .../jni}/openssl/include/openssl/x509v3.h | 0 {jni => src/main/jni}/openssl/ssl/Android.mk | 0 {jni => src/main/jni}/openssl/ssl/Makefile | 0 {jni => src/main/jni}/openssl/ssl/bio_ssl.c | 0 {jni => src/main/jni}/openssl/ssl/d1_both.c | 0 {jni => src/main/jni}/openssl/ssl/d1_clnt.c | 0 {jni => src/main/jni}/openssl/ssl/d1_enc.c | 0 {jni => src/main/jni}/openssl/ssl/d1_lib.c | 0 {jni => src/main/jni}/openssl/ssl/d1_meth.c | 0 {jni => src/main/jni}/openssl/ssl/d1_pkt.c | 0 {jni => src/main/jni}/openssl/ssl/d1_srtp.c | 0 {jni => src/main/jni}/openssl/ssl/d1_srvr.c | 0 {jni => src/main/jni}/openssl/ssl/dtls1.h | 0 .../main/jni}/openssl/ssl/install-ssl.com | 0 {jni => src/main/jni}/openssl/ssl/kssl.c | 0 {jni => src/main/jni}/openssl/ssl/kssl.h | 0 {jni => src/main/jni}/openssl/ssl/kssl_lcl.h | 0 {jni => src/main/jni}/openssl/ssl/s23_clnt.c | 0 {jni => src/main/jni}/openssl/ssl/s23_lib.c | 0 {jni => src/main/jni}/openssl/ssl/s23_meth.c | 0 {jni => src/main/jni}/openssl/ssl/s23_pkt.c | 0 {jni => src/main/jni}/openssl/ssl/s23_srvr.c | 0 {jni => src/main/jni}/openssl/ssl/s2_clnt.c | 0 {jni => src/main/jni}/openssl/ssl/s2_enc.c | 0 {jni => src/main/jni}/openssl/ssl/s2_lib.c | 0 {jni => src/main/jni}/openssl/ssl/s2_meth.c | 0 {jni => src/main/jni}/openssl/ssl/s2_pkt.c | 0 {jni => src/main/jni}/openssl/ssl/s2_srvr.c | 0 {jni => src/main/jni}/openssl/ssl/s3_both.c | 0 {jni => src/main/jni}/openssl/ssl/s3_clnt.c | 0 {jni => src/main/jni}/openssl/ssl/s3_enc.c | 0 {jni => src/main/jni}/openssl/ssl/s3_lib.c | 0 {jni => src/main/jni}/openssl/ssl/s3_meth.c | 0 {jni => src/main/jni}/openssl/ssl/s3_pkt.c | 0 {jni => src/main/jni}/openssl/ssl/s3_srvr.c | 0 {jni => src/main/jni}/openssl/ssl/srtp.h | 0 {jni => src/main/jni}/openssl/ssl/ssl-lib.com | 0 {jni => src/main/jni}/openssl/ssl/ssl.h | 0 {jni => src/main/jni}/openssl/ssl/ssl2.h | 0 {jni => src/main/jni}/openssl/ssl/ssl23.h | 0 {jni => src/main/jni}/openssl/ssl/ssl3.h | 0 {jni => src/main/jni}/openssl/ssl/ssl_algs.c | 0 {jni => src/main/jni}/openssl/ssl/ssl_asn1.c | 0 {jni => src/main/jni}/openssl/ssl/ssl_cert.c | 0 {jni => src/main/jni}/openssl/ssl/ssl_ciph.c | 0 {jni => src/main/jni}/openssl/ssl/ssl_err.c | 0 {jni => src/main/jni}/openssl/ssl/ssl_err2.c | 0 {jni => src/main/jni}/openssl/ssl/ssl_lib.c | 0 {jni => src/main/jni}/openssl/ssl/ssl_locl.h | 0 {jni => src/main/jni}/openssl/ssl/ssl_rsa.c | 0 {jni => src/main/jni}/openssl/ssl/ssl_sess.c | 0 {jni => src/main/jni}/openssl/ssl/ssl_stat.c | 0 {jni => src/main/jni}/openssl/ssl/ssl_task.c | 0 {jni => src/main/jni}/openssl/ssl/ssl_txt.c | 0 {jni => src/main/jni}/openssl/ssl/ssltest.c | 0 {jni => src/main/jni}/openssl/ssl/t1_clnt.c | 0 {jni => src/main/jni}/openssl/ssl/t1_enc.c | 0 {jni => src/main/jni}/openssl/ssl/t1_lib.c | 0 {jni => src/main/jni}/openssl/ssl/t1_meth.c | 0 {jni => src/main/jni}/openssl/ssl/t1_reneg.c | 0 {jni => src/main/jni}/openssl/ssl/t1_srvr.c | 0 {jni => src/main/jni}/openssl/ssl/tls1.h | 0 {jni => src/main/jni}/openssl/ssl/tls_srp.c | 0 {jni => src/main/jni}/pdnsd/Makefile | 0 {jni => src/main/jni}/pdnsd/Makefile.am | 0 {jni => src/main/jni}/pdnsd/Makefile.in | 0 {jni => src/main/jni}/pdnsd/cache.c | 0 {jni => src/main/jni}/pdnsd/cache.h | 0 {jni => src/main/jni}/pdnsd/conf-keywords.h | 0 {jni => src/main/jni}/pdnsd/conf-parser.c | 0 {jni => src/main/jni}/pdnsd/conf-parser.h | 0 {jni => src/main/jni}/pdnsd/conff.c | 0 {jni => src/main/jni}/pdnsd/conff.h | 0 {jni => src/main/jni}/pdnsd/config.h | 0 {jni => src/main/jni}/pdnsd/consts.c | 0 {jni => src/main/jni}/pdnsd/consts.h | 0 {jni => src/main/jni}/pdnsd/debug.c | 0 {jni => src/main/jni}/pdnsd/debug.h | 0 {jni => src/main/jni}/pdnsd/dns.c | 0 {jni => src/main/jni}/pdnsd/dns.h | 0 {jni => src/main/jni}/pdnsd/dns_answer.c | 0 {jni => src/main/jni}/pdnsd/dns_answer.h | 0 {jni => src/main/jni}/pdnsd/dns_query.c | 0 {jni => src/main/jni}/pdnsd/dns_query.h | 0 {jni => src/main/jni}/pdnsd/error.c | 0 {jni => src/main/jni}/pdnsd/error.h | 0 .../main/jni}/pdnsd/freebsd_netinet_ip_icmp.h | 0 {jni => src/main/jni}/pdnsd/hash.c | 0 {jni => src/main/jni}/pdnsd/hash.h | 0 {jni => src/main/jni}/pdnsd/helpers.c | 0 {jni => src/main/jni}/pdnsd/helpers.h | 0 {jni => src/main/jni}/pdnsd/icmp.c | 0 {jni => src/main/jni}/pdnsd/icmp.h | 0 {jni => src/main/jni}/pdnsd/ipvers.h | 0 {jni => src/main/jni}/pdnsd/list.c | 0 {jni => src/main/jni}/pdnsd/list.h | 0 {jni => src/main/jni}/pdnsd/main.c | 0 .../main/jni}/pdnsd/make_rr_types_h.pl | 0 {jni => src/main/jni}/pdnsd/netdev.c | 0 {jni => src/main/jni}/pdnsd/netdev.h | 0 .../jni}/pdnsd/pdnsd-ctl/.deps/pdnsd-ctl.Po | 0 .../main/jni}/pdnsd/pdnsd-ctl/Makefile | 0 .../main/jni}/pdnsd/pdnsd-ctl/Makefile.am | 0 .../main/jni}/pdnsd/pdnsd-ctl/Makefile.in | 0 .../main/jni}/pdnsd/pdnsd-ctl/pdnsd-ctl.c | 0 {jni => src/main/jni}/pdnsd/pdnsd_assert.h | 0 .../main/jni}/pdnsd/rc/ArchLinux/Makefile | 0 .../main/jni}/pdnsd/rc/ArchLinux/Makefile.am | 0 .../main/jni}/pdnsd/rc/ArchLinux/Makefile.in | 0 .../main/jni}/pdnsd/rc/ArchLinux/pdnsd | 0 .../main/jni}/pdnsd/rc/ArchLinux/pdnsd.in | 0 .../main/jni}/pdnsd/rc/Debian/Makefile | 0 .../main/jni}/pdnsd/rc/Debian/Makefile.am | 0 .../main/jni}/pdnsd/rc/Debian/Makefile.in | 0 {jni => src/main/jni}/pdnsd/rc/Debian/pdnsd | 0 .../main/jni}/pdnsd/rc/Debian/pdnsd.in | 0 {jni => src/main/jni}/pdnsd/rc/Makefile | 0 {jni => src/main/jni}/pdnsd/rc/Makefile.am | 0 {jni => src/main/jni}/pdnsd/rc/Makefile.in | 0 {jni => src/main/jni}/pdnsd/rc/README | 0 .../main/jni}/pdnsd/rc/RedHat/Makefile | 0 .../main/jni}/pdnsd/rc/RedHat/Makefile.am | 0 .../main/jni}/pdnsd/rc/RedHat/Makefile.in | 0 {jni => src/main/jni}/pdnsd/rc/RedHat/pdnsd | 0 .../main/jni}/pdnsd/rc/RedHat/pdnsd.in | 0 .../main/jni}/pdnsd/rc/Slackware/Makefile | 0 .../main/jni}/pdnsd/rc/Slackware/Makefile.am | 0 .../main/jni}/pdnsd/rc/Slackware/Makefile.in | 0 .../main/jni}/pdnsd/rc/Slackware/rc.pdnsd | 0 .../main/jni}/pdnsd/rc/Slackware/rc.pdnsd.in | 0 {jni => src/main/jni}/pdnsd/rc/SuSE/Makefile | 0 .../main/jni}/pdnsd/rc/SuSE/Makefile.am | 0 .../main/jni}/pdnsd/rc/SuSE/Makefile.in | 0 {jni => src/main/jni}/pdnsd/rc/SuSE/pdnsd | 0 {jni => src/main/jni}/pdnsd/rc/SuSE/pdnsd.in | 0 {jni => src/main/jni}/pdnsd/rr_types.c | 0 {jni => src/main/jni}/pdnsd/rr_types.h | 0 {jni => src/main/jni}/pdnsd/rr_types.in | 0 {jni => src/main/jni}/pdnsd/servers.c | 0 {jni => src/main/jni}/pdnsd/servers.h | 0 {jni => src/main/jni}/pdnsd/status.c | 0 {jni => src/main/jni}/pdnsd/status.h | 0 .../main/jni}/pdnsd/test/.deps/if_up.Po | 0 .../jni}/pdnsd/test/.deps/is_local_addr.Po | 0 .../main/jni}/pdnsd/test/.deps/random.Po | 0 .../main/jni}/pdnsd/test/.deps/tping.Po | 0 {jni => src/main/jni}/pdnsd/test/Makefile | 0 {jni => src/main/jni}/pdnsd/test/Makefile.am | 0 {jni => src/main/jni}/pdnsd/test/Makefile.in | 0 {jni => src/main/jni}/pdnsd/test/if_up.c | 0 .../main/jni}/pdnsd/test/is_local_addr.c | 0 {jni => src/main/jni}/pdnsd/test/random.c | 0 {jni => src/main/jni}/pdnsd/test/tping.c | 0 {jni => src/main/jni}/pdnsd/thread.c | 0 {jni => src/main/jni}/pdnsd/thread.h | 0 {jni => src/main/jni}/polipo/atom.c | 0 {jni => src/main/jni}/polipo/atom.h | 0 {jni => src/main/jni}/polipo/auth.c | 0 {jni => src/main/jni}/polipo/auth.h | 0 {jni => src/main/jni}/polipo/chunk.c | 0 {jni => src/main/jni}/polipo/chunk.h | 0 {jni => src/main/jni}/polipo/client.c | 0 {jni => src/main/jni}/polipo/client.h | 0 {jni => src/main/jni}/polipo/config.c | 0 {jni => src/main/jni}/polipo/config.h | 0 {jni => src/main/jni}/polipo/dirent_compat.c | 0 {jni => src/main/jni}/polipo/dirent_compat.h | 0 {jni => src/main/jni}/polipo/diskcache.c | 0 {jni => src/main/jni}/polipo/diskcache.h | 0 {jni => src/main/jni}/polipo/dns.c | 0 {jni => src/main/jni}/polipo/dns.h | 0 {jni => src/main/jni}/polipo/event.c | 0 {jni => src/main/jni}/polipo/event.h | 0 {jni => src/main/jni}/polipo/forbidden.c | 0 {jni => src/main/jni}/polipo/forbidden.h | 0 {jni => src/main/jni}/polipo/fts_compat.c | 0 {jni => src/main/jni}/polipo/fts_compat.h | 0 {jni => src/main/jni}/polipo/ftsimport.c | 0 {jni => src/main/jni}/polipo/ftsimport.h | 0 {jni => src/main/jni}/polipo/http.c | 0 {jni => src/main/jni}/polipo/http.h | 0 {jni => src/main/jni}/polipo/http_parse.c | 0 {jni => src/main/jni}/polipo/http_parse.h | 0 {jni => src/main/jni}/polipo/io.c | 0 {jni => src/main/jni}/polipo/io.h | 0 {jni => src/main/jni}/polipo/local.c | 0 {jni => src/main/jni}/polipo/local.h | 0 {jni => src/main/jni}/polipo/log.c | 0 {jni => src/main/jni}/polipo/log.h | 0 {jni => src/main/jni}/polipo/main.c | 0 {jni => src/main/jni}/polipo/md5.c | 0 {jni => src/main/jni}/polipo/md5.h | 0 {jni => src/main/jni}/polipo/md5import.c | 0 {jni => src/main/jni}/polipo/md5import.h | 0 {jni => src/main/jni}/polipo/mingw.c | 0 {jni => src/main/jni}/polipo/mingw.h | 0 {jni => src/main/jni}/polipo/object.c | 0 {jni => src/main/jni}/polipo/object.h | 0 {jni => src/main/jni}/polipo/parse_time.c | 0 {jni => src/main/jni}/polipo/parse_time.h | 0 {jni => src/main/jni}/polipo/polipo.h | 0 {jni => src/main/jni}/polipo/server.c | 0 {jni => src/main/jni}/polipo/server.h | 0 {jni => src/main/jni}/polipo/socks.c | 0 {jni => src/main/jni}/polipo/socks.h | 0 {jni => src/main/jni}/polipo/tunnel.c | 0 {jni => src/main/jni}/polipo/tunnel.h | 0 {jni => src/main/jni}/polipo/util.c | 0 {jni => src/main/jni}/polipo/util.h | 0 {jni => src/main/jni}/redsocks/base.c | 0 {jni => src/main/jni}/redsocks/base.h | 0 {jni => src/main/jni}/redsocks/base64.c | 0 {jni => src/main/jni}/redsocks/base64.h | 0 {jni => src/main/jni}/redsocks/config.h | 0 {jni => src/main/jni}/redsocks/dnstc.c | 0 {jni => src/main/jni}/redsocks/dnstc.h | 0 {jni => src/main/jni}/redsocks/http-auth.c | 0 {jni => src/main/jni}/redsocks/http-auth.h | 0 {jni => src/main/jni}/redsocks/http-connect.c | 0 {jni => src/main/jni}/redsocks/http-relay.c | 0 {jni => src/main/jni}/redsocks/libc-compat.h | 0 .../main/jni}/redsocks/libevent-compat.h | 0 {jni => src/main/jni}/redsocks/list.h | 0 {jni => src/main/jni}/redsocks/log.c | 0 {jni => src/main/jni}/redsocks/log.h | 0 {jni => src/main/jni}/redsocks/main.c | 0 {jni => src/main/jni}/redsocks/main.h | 0 {jni => src/main/jni}/redsocks/md5.c | 0 {jni => src/main/jni}/redsocks/md5.h | 0 {jni => src/main/jni}/redsocks/parser.c | 0 {jni => src/main/jni}/redsocks/parser.h | 0 {jni => src/main/jni}/redsocks/reddns.c | 0 {jni => src/main/jni}/redsocks/redsocks.c | 0 {jni => src/main/jni}/redsocks/redsocks.h | 0 {jni => src/main/jni}/redsocks/redudp.c | 0 {jni => src/main/jni}/redsocks/redudp.h | 0 {jni => src/main/jni}/redsocks/socks4.c | 0 {jni => src/main/jni}/redsocks/socks5.c | 0 {jni => src/main/jni}/redsocks/socks5.h | 0 {jni => src/main/jni}/redsocks/utils.c | 0 {jni => src/main/jni}/redsocks/utils.h | 0 {jni => src/main/jni}/redsocks/version.h | 0 {jni => src/main/jni}/system.cpp | 0 {jni => src/main/jni}/termExec.cpp | 0 {libs => src/main/libs}/armeabi/libexec.so | Bin {libs => src/main/libs}/armeabi/libsystem.so | Bin {libs => src/main/libs}/x86/libexec.so | Bin {libs => src/main/libs}/x86/libsystem.so | Bin .../drawable-hdpi-v11/ic_stat_shadowsocks.png | Bin .../drawable-hdpi-v9/ic_stat_shadowsocks.png | Bin .../ab_bottom_solid_shadow.9.png | Bin .../res}/drawable-hdpi/ab_solid_shadow.9.png | Bin .../ab_stacked_solid_shadow.9.png | Bin .../drawable-hdpi/ab_transparent_shadow.9.png | Bin .../btn_cab_done_default_shadow.9.png | Bin .../btn_cab_done_focused_shadow.9.png | Bin .../btn_cab_done_pressed_shadow.9.png | Bin .../cab_background_bottom_shadow.9.png | Bin .../cab_background_top_shadow.9.png | Bin .../main/res}/drawable-hdpi/ic_launcher.png | Bin .../main/res}/drawable-hdpi/ic_stat_large.png | Bin .../drawable-hdpi/ic_stat_shadowsocks.png | Bin {res => src/main/res}/drawable-hdpi/ing.png | Bin .../drawable-hdpi/list_focused_shadow.9.png | Bin .../menu_dropdown_panel_shadow.9.png | Bin {res => src/main/res}/drawable-hdpi/off.png | Bin {res => src/main/res}/drawable-hdpi/on.png | Bin .../drawable-hdpi/progress_bg_shadow.9.png | Bin .../progress_primary_shadow.9.png | Bin .../progress_secondary_shadow.9.png | Bin .../spinner_ab_default_shadow.9.png | Bin .../spinner_ab_disabled_shadow.9.png | Bin .../spinner_ab_focused_shadow.9.png | Bin .../spinner_ab_pressed_shadow.9.png | Bin .../tab_selected_focused_shadow.9.png | Bin .../tab_selected_pressed_shadow.9.png | Bin .../drawable-hdpi/tab_selected_shadow.9.png | Bin .../tab_unselected_focused_shadow.9.png | Bin .../tab_unselected_pressed_shadow.9.png | Bin .../drawable-ldpi-v11/ic_stat_shadowsocks.png | Bin .../drawable-ldpi-v9/ic_stat_shadowsocks.png | Bin {res => src/main/res}/drawable-ldpi/ing.png | Bin {res => src/main/res}/drawable-ldpi/off.png | Bin {res => src/main/res}/drawable-ldpi/on.png | Bin .../drawable-mdpi-v11/ic_stat_shadowsocks.png | Bin .../drawable-mdpi-v9/ic_stat_shadowsocks.png | Bin .../ab_bottom_solid_shadow.9.png | Bin .../res}/drawable-mdpi/ab_solid_shadow.9.png | Bin .../ab_stacked_solid_shadow.9.png | Bin .../drawable-mdpi/ab_transparent_shadow.9.png | Bin .../btn_cab_done_default_shadow.9.png | Bin .../btn_cab_done_focused_shadow.9.png | Bin .../btn_cab_done_pressed_shadow.9.png | Bin .../cab_background_bottom_shadow.9.png | Bin .../cab_background_top_shadow.9.png | Bin .../main/res}/drawable-mdpi/ic_launcher.png | Bin .../main/res}/drawable-mdpi/ic_stat_large.png | Bin .../drawable-mdpi/ic_stat_shadowsocks.png | Bin {res => src/main/res}/drawable-mdpi/ing.png | Bin .../drawable-mdpi/list_focused_shadow.9.png | Bin .../menu_dropdown_panel_shadow.9.png | Bin {res => src/main/res}/drawable-mdpi/off.png | Bin {res => src/main/res}/drawable-mdpi/on.png | Bin .../drawable-mdpi/progress_bg_shadow.9.png | Bin .../progress_primary_shadow.9.png | Bin .../progress_secondary_shadow.9.png | Bin .../spinner_ab_default_shadow.9.png | Bin .../spinner_ab_disabled_shadow.9.png | Bin .../spinner_ab_focused_shadow.9.png | Bin .../spinner_ab_pressed_shadow.9.png | Bin .../tab_selected_focused_shadow.9.png | Bin .../tab_selected_pressed_shadow.9.png | Bin .../drawable-mdpi/tab_selected_shadow.9.png | Bin .../tab_unselected_focused_shadow.9.png | Bin .../tab_unselected_pressed_shadow.9.png | Bin .../ic_stat_shadowsocks.png | Bin .../drawable-xhdpi-v9/ic_stat_shadowsocks.png | Bin .../ab_bottom_solid_shadow.9.png | Bin .../res}/drawable-xhdpi/ab_solid_shadow.9.png | Bin .../ab_stacked_solid_shadow.9.png | Bin .../ab_transparent_shadow.9.png | Bin .../btn_cab_done_default_shadow.9.png | Bin .../btn_cab_done_focused_shadow.9.png | Bin .../btn_cab_done_pressed_shadow.9.png | Bin .../cab_background_bottom_shadow.9.png | Bin .../cab_background_top_shadow.9.png | Bin .../main/res}/drawable-xhdpi/ic_launcher.png | Bin .../res}/drawable-xhdpi/ic_stat_large.png | Bin .../drawable-xhdpi/ic_stat_shadowsocks.png | Bin .../drawable-xhdpi/list_focused_shadow.9.png | Bin .../menu_dropdown_panel_shadow.9.png | Bin .../drawable-xhdpi/progress_bg_shadow.9.png | Bin .../progress_primary_shadow.9.png | Bin .../progress_secondary_shadow.9.png | Bin .../spinner_ab_default_shadow.9.png | Bin .../spinner_ab_disabled_shadow.9.png | Bin .../spinner_ab_focused_shadow.9.png | Bin .../spinner_ab_pressed_shadow.9.png | Bin .../tab_selected_focused_shadow.9.png | Bin .../tab_selected_pressed_shadow.9.png | Bin .../drawable-xhdpi/tab_selected_shadow.9.png | Bin .../tab_unselected_focused_shadow.9.png | Bin .../tab_unselected_pressed_shadow.9.png | Bin .../main/res}/drawable-xxhdpi/ic_launcher.png | Bin .../res}/drawable/btn_cab_done_shadow.xml | 0 .../drawable/pressed_background_shadow.xml | 0 .../drawable/progress_horizontal_shadow.xml | 0 .../drawable/selectable_background_shadow.xml | 0 .../drawable/spinner_background_ab_shadow.xml | 0 .../res}/drawable/tab_indicator_ab_shadow.xml | 0 {res => src/main/res}/layout/layout_apps.xml | 0 .../main/res}/layout/layout_apps_item.xml | 0 .../main/res}/layout/layout_switch.xml | 0 src/main/res/layout/main.xml | 11 + {res => src/main/res}/layout/overlay.xml | 0 .../main/res}/values-v14/styles_shadow.xml | 0 {res => src/main/res}/values/analytics.xml | 0 {res => src/main/res}/values/colors.xml | 0 .../main/res}/values/colors_shadow.xml | 0 {res => src/main/res}/values/strings.xml | 0 {res => src/main/res}/values/styles.xml | 0 .../main/res}/values/styles_shadow.xml | 0 {res => src/main/res}/xml/pref_feature.xml | 0 {res => src/main/res}/xml/pref_proxy.xml | 0 .../main/res}/xml/shadowsocks_headers.xml | 0 .../com/github/shadowsocks/AppManager.scala | 320 +++++++++ .../com/github/shadowsocks/ImageLoader.scala | 215 ++++++ .../com/github/shadowsocks/ProxiedApp.scala} | 74 +- .../com/github/shadowsocks/Shadowsocks.scala | 536 ++++++++++++++ .../shadowsocks/ShadowsocksApplication.scala} | 20 +- .../shadowsocks/ShadowsocksReceiver.scala} | 78 +- .../shadowsocks/ShadowsocksService.scala | 538 ++++++++++++++ .../scala/com/github/shadowsocks/Utils.scala | 452 ++++++++++++ .../SummaryEditTextPreference.scala | 25 + travis.keystore | Bin 2261 -> 0 bytes 2040 files changed, 2312 insertions(+), 3576 deletions(-) delete mode 100644 .gitmodules delete mode 100644 COPYING.txt delete mode 100755 assets/arm/iptables delete mode 100755 assets/x86/ip6tables delete mode 100755 assets/x86/iptables create mode 100644 build.sbt delete mode 160000 jni/shadowsocks create mode 100644 local.sbt.example delete mode 100755 pom.xml create mode 100644 project/Build.scala create mode 100644 project/plugins.sbt delete mode 100755 src/com/github/shadowsocks/AppManager.java delete mode 100755 src/com/github/shadowsocks/ImageLoader.java delete mode 100755 src/com/github/shadowsocks/Shadowsocks.java delete mode 100755 src/com/github/shadowsocks/ShadowsocksApplication.java delete mode 100755 src/com/github/shadowsocks/ShadowsocksService.java delete mode 100755 src/com/github/shadowsocks/Utils.java delete mode 100644 src/com/github/shadowsocks/preferences/SummaryEditTextPreference.java rename AndroidManifest.xml => src/main/AndroidManifest.xml (81%) mode change 100755 => 100644 rename {assets => src/main/assets}/arm/ip6tables (53%) create mode 100755 src/main/assets/arm/iptables rename {assets => src/main/assets}/arm/obfsproxy (100%) rename {assets => src/main/assets}/arm/pdnsd (62%) rename {assets => src/main/assets}/arm/polipo (100%) rename {assets => src/main/assets}/arm/redsocks (100%) rename {assets => src/main/assets}/arm/shadowsocks (100%) rename {assets => src/main/assets}/fonts/Iceland.ttf (100%) rename {assets => src/main/assets}/pdnsd.conf (100%) create mode 100755 src/main/assets/x86/ip6tables create mode 100755 src/main/assets/x86/iptables rename {assets => src/main/assets}/x86/obfsproxy (100%) rename {assets => src/main/assets}/x86/pdnsd (68%) rename {assets => src/main/assets}/x86/polipo (100%) rename {assets => src/main/assets}/x86/redsocks (100%) rename {assets => src/main/assets}/x86/shadowsocks (100%) rename src/{ => main/java}/com/github/shadowsocks/Exec.java (100%) rename src/{ => main/java}/com/github/shadowsocks/System.java (100%) rename {jni => src/main/jni}/Android.mk (100%) rename {jni => src/main/jni}/Application.mk (100%) rename {jni => src/main/jni}/iptables/Android.mk (100%) rename {jni => src/main/jni}/iptables/COMMIT_NOTES (100%) rename {jni => src/main/jni}/iptables/COPYING (100%) rename {jni => src/main/jni}/iptables/INCOMPATIBILITIES (100%) rename {jni => src/main/jni}/iptables/INSTALL (100%) rename {jni => src/main/jni}/iptables/Makefile.am (100%) rename {jni => src/main/jni}/iptables/autogen.sh (100%) rename {jni => src/main/jni}/iptables/configure.ac (100%) rename {jni => src/main/jni}/iptables/extensions/Android.mk (100%) rename {jni => src/main/jni}/iptables/extensions/GNUmakefile.in (100%) rename {jni => src/main/jni}/iptables/extensions/dscp_helper.c (100%) rename {jni => src/main/jni}/iptables/extensions/filter_init (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_LOG.c (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_LOG.man (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_REJECT.c (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_REJECT.man (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_ah.c (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_ah.man (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_dst.c (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_dst.man (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_eui64.c (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_eui64.man (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_frag.c (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_frag.man (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_hbh.c (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_hbh.man (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_hl.c (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_hl.man (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_icmp6.c (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_icmp6.man (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_ipv6header.c (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_ipv6header.man (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_mh.c (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_mh.man (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_rt.c (100%) rename {jni => src/main/jni}/iptables/extensions/libip6t_rt.man (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_CLUSTERIP.c (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_CLUSTERIP.man (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_DNAT.c (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_DNAT.man (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_LOG.c (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_LOG.man (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_MASQUERADE.c (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_MASQUERADE.man (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_MIRROR.c (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_MIRROR.man (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_NETMAP.c (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_NETMAP.man (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_REDIRECT.c (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_REDIRECT.man (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_REJECT.c (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_REJECT.man (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_SAME.c (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_SAME.man (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_SNAT.c (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_SNAT.man (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_ULOG.c (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_ULOG.man (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_addrtype.c (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_addrtype.man (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_ah.c (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_ah.man (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_ecn.c (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_ecn.man (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_icmp.c (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_icmp.man (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_realm.c (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_realm.man (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_ttl.c (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_ttl.man (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_unclean.c (100%) rename {jni => src/main/jni}/iptables/extensions/libipt_unclean.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_AUDIT.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_AUDIT.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_CHECKSUM.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_CHECKSUM.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_CLASSIFY.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_CLASSIFY.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_CONNSECMARK.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_CONNSECMARK.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_CT.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_CT.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_IDLETIMER.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_IDLETIMER.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_LED.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_LED.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_NFLOG.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_NFLOG.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_NFQUEUE.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_NFQUEUE.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_NOTRACK.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_NOTRACK.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_SECMARK.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_SECMARK.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_TCPOPTSTRIP.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_TCPOPTSTRIP.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_TEE.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_TEE.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_TPROXY.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_TPROXY.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_TRACE.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_TRACE.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_cluster.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_cluster.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_comment.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_comment.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_connbytes.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_connbytes.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_connlimit.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_connlimit.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_connmark.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_connmark.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_conntrack.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_conntrack.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_cpu.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_cpu.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_dccp.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_dccp.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_devgroup.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_dscp.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_dscp.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_esp.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_esp.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_hashlimit.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_hashlimit.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_helper.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_helper.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_iprange.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_iprange.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_ipvs.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_ipvs.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_length.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_length.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_limit.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_limit.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_mac.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_mac.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_mark.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_mark.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_multiport.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_multiport.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_osf.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_osf.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_owner.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_owner.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_physdev.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_physdev.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_pkttype.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_pkttype.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_policy.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_policy.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_quota.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_quota.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_quota2.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_quota2.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_rateest.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_rateest.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_recent.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_recent.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_sctp.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_sctp.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_set.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_set.h (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_set.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_socket.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_socket.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_standard.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_state.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_state.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_statistic.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_statistic.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_string.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_string.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_tcp.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_tcp.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_tcpmss.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_tcpmss.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_time.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_time.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_tos.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_tos.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_u32.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_u32.man (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_udp.c (100%) rename {jni => src/main/jni}/iptables/extensions/libxt_udp.man (100%) rename {jni => src/main/jni}/iptables/extensions/tos_values.c (100%) rename {jni => src/main/jni}/iptables/include/Makefile.am (100%) rename {jni => src/main/jni}/iptables/include/ip6tables.h (100%) rename {jni => src/main/jni}/iptables/include/iptables.h (100%) rename {jni => src/main/jni}/iptables/include/iptables/internal.h (100%) rename {jni => src/main/jni}/iptables/include/iptables/internal.h.in (100%) rename {jni => src/main/jni}/iptables/include/libipq/libipq.h (100%) rename {jni => src/main/jni}/iptables/include/libiptc/ipt_kernel_headers.h (100%) rename {jni => src/main/jni}/iptables/include/libiptc/libip6tc.h (100%) rename {jni => src/main/jni}/iptables/include/libiptc/libiptc.h (100%) rename {jni => src/main/jni}/iptables/include/libiptc/libxtc.h (100%) rename {jni => src/main/jni}/iptables/include/libipulog/libipulog.h (100%) rename {jni => src/main/jni}/iptables/include/linux/kernel.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/nf_conntrack_common.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/nf_conntrack_tuple_common.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/x_tables.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_AUDIT.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_CHECKSUM.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_CLASSIFY.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_CONNSECMARK.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_CT.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_IDLETIMER.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_LED.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_NFLOG.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_NFQUEUE.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_SECMARK.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_TCPOPTSTRIP.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_TEE.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_TPROXY.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_cluster.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_comment.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_connbytes.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_connlimit.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_connmark.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_conntrack.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_cpu.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_dccp.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_devgroup.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_dscp.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_esp.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_hashlimit.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_helper.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_iprange.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_ipvs.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_length.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_limit.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_mac.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_mark.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_multiport.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_osf.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_owner.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_physdev.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_pkttype.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_policy.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_quota.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_quota2.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_rateest.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_realm.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_recent.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_sctp.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_set.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_socket.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_state.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_statistic.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_string.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_tcpmss.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_tcpudp.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_time.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter/xt_u32.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv4.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv4/ip_tables.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv4/ipt_LOG.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv4/ipt_REJECT.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv4/ipt_SAME.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv4/ipt_ULOG.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv4/ipt_addrtype.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv4/ipt_ah.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv4/ipt_ecn.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv4/ipt_realm.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv4/ipt_ttl.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv6.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv6/ip6_tables.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv6/ip6t_LOG.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv6/ip6t_REJECT.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv6/ip6t_ah.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv6/ip6t_frag.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv6/ip6t_hl.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv6/ip6t_ipv6header.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv6/ip6t_mh.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv6/ip6t_opts.h (100%) rename {jni => src/main/jni}/iptables/include/linux/netfilter_ipv6/ip6t_rt.h (100%) rename {jni => src/main/jni}/iptables/include/linux/types.h (100%) rename {jni => src/main/jni}/iptables/include/net/netfilter/nf_conntrack_tuple.h (100%) rename {jni => src/main/jni}/iptables/include/net/netfilter/nf_nat.h (100%) rename {jni => src/main/jni}/iptables/include/xtables.h (100%) rename {jni => src/main/jni}/iptables/include/xtables.h.in (100%) rename {jni => src/main/jni}/iptables/iptables/.gitignore (100%) rename {jni => src/main/jni}/iptables/iptables/Android.mk (100%) rename {jni => src/main/jni}/iptables/iptables/Makefile.am (100%) rename {jni => src/main/jni}/iptables/iptables/ip6tables-multi.h (100%) rename {jni => src/main/jni}/iptables/iptables/ip6tables-restore.8 (100%) rename {jni => src/main/jni}/iptables/iptables/ip6tables-restore.c (100%) rename {jni => src/main/jni}/iptables/iptables/ip6tables-save.8 (100%) rename {jni => src/main/jni}/iptables/iptables/ip6tables-save.c (100%) rename {jni => src/main/jni}/iptables/iptables/ip6tables-standalone.c (100%) rename {jni => src/main/jni}/iptables/iptables/ip6tables.8.in (100%) rename {jni => src/main/jni}/iptables/iptables/ip6tables.c (100%) rename {jni => src/main/jni}/iptables/iptables/iptables-apply (100%) rename {jni => src/main/jni}/iptables/iptables/iptables-apply.8 (100%) rename {jni => src/main/jni}/iptables/iptables/iptables-multi.h (100%) rename {jni => src/main/jni}/iptables/iptables/iptables-restore.8 (100%) rename {jni => src/main/jni}/iptables/iptables/iptables-restore.c (100%) rename {jni => src/main/jni}/iptables/iptables/iptables-save.8 (100%) rename {jni => src/main/jni}/iptables/iptables/iptables-save.c (100%) rename {jni => src/main/jni}/iptables/iptables/iptables-standalone.c (100%) rename {jni => src/main/jni}/iptables/iptables/iptables-xml.1 (100%) rename {jni => src/main/jni}/iptables/iptables/iptables-xml.c (100%) rename {jni => src/main/jni}/iptables/iptables/iptables.8.in (100%) rename {jni => src/main/jni}/iptables/iptables/iptables.c (100%) rename {jni => src/main/jni}/iptables/iptables/iptables.xslt (100%) rename {jni => src/main/jni}/iptables/iptables/xshared.c (100%) rename {jni => src/main/jni}/iptables/iptables/xshared.h (100%) rename {jni => src/main/jni}/iptables/iptables/xtables-multi.c (100%) rename {jni => src/main/jni}/iptables/iptables/xtables-multi.h (100%) rename {jni => src/main/jni}/iptables/iptables/xtables.c (100%) rename {jni => src/main/jni}/iptables/iptables/xtables.pc.in (100%) rename {jni => src/main/jni}/iptables/iptables/xtoptions.c (100%) rename {jni => src/main/jni}/iptables/libipq/Makefile.am (100%) rename {jni => src/main/jni}/iptables/libipq/ipq_create_handle.3 (100%) rename {jni => src/main/jni}/iptables/libipq/ipq_destroy_handle.3 (100%) rename {jni => src/main/jni}/iptables/libipq/ipq_errstr.3 (100%) rename {jni => src/main/jni}/iptables/libipq/ipq_get_msgerr.3 (100%) rename {jni => src/main/jni}/iptables/libipq/ipq_get_packet.3 (100%) rename {jni => src/main/jni}/iptables/libipq/ipq_message_type.3 (100%) rename {jni => src/main/jni}/iptables/libipq/ipq_perror.3 (100%) rename {jni => src/main/jni}/iptables/libipq/ipq_read.3 (100%) rename {jni => src/main/jni}/iptables/libipq/ipq_set_mode.3 (100%) rename {jni => src/main/jni}/iptables/libipq/ipq_set_verdict.3 (100%) rename {jni => src/main/jni}/iptables/libipq/libipq.3 (100%) rename {jni => src/main/jni}/iptables/libipq/libipq.c (100%) rename {jni => src/main/jni}/iptables/libiptc/.gitignore (100%) rename {jni => src/main/jni}/iptables/libiptc/Android.mk (100%) rename {jni => src/main/jni}/iptables/libiptc/Makefile.am (100%) rename {jni => src/main/jni}/iptables/libiptc/libip4tc.c (100%) rename {jni => src/main/jni}/iptables/libiptc/libip6tc.c (100%) rename {jni => src/main/jni}/iptables/libiptc/libiptc.c (100%) rename {jni => src/main/jni}/iptables/libiptc/libiptc.pc.in (100%) rename {jni => src/main/jni}/iptables/libiptc/linux_list.h (100%) rename {jni => src/main/jni}/iptables/libiptc/linux_stddef.h (100%) rename {jni => src/main/jni}/iptables/m4/.gitignore (100%) rename {jni => src/main/jni}/iptables/m4/ax_check_linker_flags.m4 (100%) rename {jni => src/main/jni}/iptables/release.sh (100%) rename {jni => src/main/jni}/iptables/tests/options-ipv4.rules (100%) rename {jni => src/main/jni}/iptables/tests/options-most.rules (100%) rename {jni => src/main/jni}/iptables/utils/.gitignore (100%) rename {jni => src/main/jni}/iptables/utils/Makefile.am (100%) rename {jni => src/main/jni}/iptables/utils/nfnl_osf.c (100%) rename {jni => src/main/jni}/iptables/utils/pf.os (100%) rename {jni => src/main/jni}/libev/config.h (100%) rename {jni => src/main/jni}/libev/ev++.h (100%) rename {jni => src/main/jni}/libev/ev.c (100%) rename {jni => src/main/jni}/libev/ev.h (100%) rename {jni => src/main/jni}/libev/ev_epoll.c (100%) rename {jni => src/main/jni}/libev/ev_kqueue.c (100%) rename {jni => src/main/jni}/libev/ev_poll.c (100%) rename {jni => src/main/jni}/libev/ev_port.c (100%) rename {jni => src/main/jni}/libev/ev_select.c (100%) rename {jni => src/main/jni}/libev/ev_vars.h (100%) rename {jni => src/main/jni}/libev/ev_win32.c (100%) rename {jni => src/main/jni}/libev/ev_wrap.h (100%) rename {jni => src/main/jni}/libev/event.c (100%) rename {jni => src/main/jni}/libev/event.h (100%) rename {jni => src/main/jni}/libevent/arc4random.c (100%) rename {jni => src/main/jni}/libevent/buffer.c (100%) rename {jni => src/main/jni}/libevent/buffer_iocp.c (100%) rename {jni => src/main/jni}/libevent/bufferevent-internal.h (100%) rename {jni => src/main/jni}/libevent/bufferevent.c (100%) rename {jni => src/main/jni}/libevent/bufferevent_async.c (100%) rename {jni => src/main/jni}/libevent/bufferevent_filter.c (100%) rename {jni => src/main/jni}/libevent/bufferevent_openssl.c (100%) rename {jni => src/main/jni}/libevent/bufferevent_pair.c (100%) rename {jni => src/main/jni}/libevent/bufferevent_ratelim.c (100%) rename {jni => src/main/jni}/libevent/bufferevent_sock.c (100%) rename {jni => src/main/jni}/libevent/changelist-internal.h (100%) rename {jni => src/main/jni}/libevent/compat/sys/queue.h (100%) rename {jni => src/main/jni}/libevent/config.h (100%) rename {jni => src/main/jni}/libevent/defer-internal.h (100%) rename {jni => src/main/jni}/libevent/devpoll.c (100%) rename {jni => src/main/jni}/libevent/epoll.c (100%) rename {jni => src/main/jni}/libevent/epoll_sub.c (100%) rename {jni => src/main/jni}/libevent/evbuffer-internal.h (100%) rename {jni => src/main/jni}/libevent/evdns.c (100%) rename {jni => src/main/jni}/libevent/evdns.h (100%) rename {jni => src/main/jni}/libevent/event-internal.h (100%) rename {jni => src/main/jni}/libevent/event.c (100%) rename {jni => src/main/jni}/libevent/event.h (100%) rename {jni => src/main/jni}/libevent/event_iocp.c (100%) rename {jni => src/main/jni}/libevent/event_tagging.c (100%) rename {jni => src/main/jni}/libevent/evhttp.h (100%) rename {jni => src/main/jni}/libevent/evmap-internal.h (100%) rename {jni => src/main/jni}/libevent/evmap.c (100%) rename {jni => src/main/jni}/libevent/evport.c (100%) rename {jni => src/main/jni}/libevent/evrpc-internal.h (100%) rename {jni => src/main/jni}/libevent/evrpc.c (100%) rename {jni => src/main/jni}/libevent/evrpc.h (100%) rename {jni => src/main/jni}/libevent/evsignal-internal.h (100%) rename {jni => src/main/jni}/libevent/evthread-internal.h (100%) rename {jni => src/main/jni}/libevent/evthread.c (100%) rename {jni => src/main/jni}/libevent/evthread_pthread.c (100%) rename {jni => src/main/jni}/libevent/evthread_win32.c (100%) rename {jni => src/main/jni}/libevent/evutil.c (100%) rename {jni => src/main/jni}/libevent/evutil.h (100%) rename {jni => src/main/jni}/libevent/evutil_rand.c (100%) rename {jni => src/main/jni}/libevent/ht-internal.h (100%) rename {jni => src/main/jni}/libevent/http-internal.h (100%) rename {jni => src/main/jni}/libevent/http.c (100%) rename {jni => src/main/jni}/libevent/include/event2/buffer.h (100%) rename {jni => src/main/jni}/libevent/include/event2/buffer_compat.h (100%) rename {jni => src/main/jni}/libevent/include/event2/bufferevent.h (100%) rename {jni => src/main/jni}/libevent/include/event2/bufferevent_compat.h (100%) rename {jni => src/main/jni}/libevent/include/event2/bufferevent_ssl.h (100%) rename {jni => src/main/jni}/libevent/include/event2/bufferevent_struct.h (100%) rename {jni => src/main/jni}/libevent/include/event2/dns.h (100%) rename {jni => src/main/jni}/libevent/include/event2/dns_compat.h (100%) rename {jni => src/main/jni}/libevent/include/event2/dns_struct.h (100%) rename {jni => src/main/jni}/libevent/include/event2/event-config.h (100%) rename {jni => src/main/jni}/libevent/include/event2/event.h (100%) rename {jni => src/main/jni}/libevent/include/event2/event_compat.h (100%) rename {jni => src/main/jni}/libevent/include/event2/event_struct.h (100%) rename {jni => src/main/jni}/libevent/include/event2/http.h (100%) rename {jni => src/main/jni}/libevent/include/event2/http_compat.h (100%) rename {jni => src/main/jni}/libevent/include/event2/http_struct.h (100%) rename {jni => src/main/jni}/libevent/include/event2/keyvalq_struct.h (100%) rename {jni => src/main/jni}/libevent/include/event2/listener.h (100%) rename {jni => src/main/jni}/libevent/include/event2/rpc.h (100%) rename {jni => src/main/jni}/libevent/include/event2/rpc_compat.h (100%) rename {jni => src/main/jni}/libevent/include/event2/rpc_struct.h (100%) rename {jni => src/main/jni}/libevent/include/event2/tag.h (100%) rename {jni => src/main/jni}/libevent/include/event2/tag_compat.h (100%) rename {jni => src/main/jni}/libevent/include/event2/thread.h (100%) rename {jni => src/main/jni}/libevent/include/event2/util.h (100%) rename {jni => src/main/jni}/libevent/iocp-internal.h (100%) rename {jni => src/main/jni}/libevent/ipv6-internal.h (100%) rename {jni => src/main/jni}/libevent/kqueue.c (100%) rename {jni => src/main/jni}/libevent/listener.c (100%) rename {jni => src/main/jni}/libevent/log-internal.h (100%) rename {jni => src/main/jni}/libevent/log.c (100%) rename {jni => src/main/jni}/libevent/minheap-internal.h (100%) rename {jni => src/main/jni}/libevent/mm-internal.h (100%) rename {jni => src/main/jni}/libevent/poll.c (100%) rename {jni => src/main/jni}/libevent/ratelim-internal.h (100%) rename {jni => src/main/jni}/libevent/select.c (100%) rename {jni => src/main/jni}/libevent/signal.c (100%) rename {jni => src/main/jni}/libevent/strlcpy-internal.h (100%) rename {jni => src/main/jni}/libevent/strlcpy.c (100%) rename {jni => src/main/jni}/libevent/util-internal.h (100%) rename {jni => src/main/jni}/libevent/win32select.c (100%) rename {jni => src/main/jni}/obfsproxy/config.h (100%) rename {jni => src/main/jni}/obfsproxy/container.c (100%) rename {jni => src/main/jni}/obfsproxy/container.h (100%) rename {jni => src/main/jni}/obfsproxy/crypt.c (100%) rename {jni => src/main/jni}/obfsproxy/crypt.h (100%) rename {jni => src/main/jni}/obfsproxy/external.c (100%) rename {jni => src/main/jni}/obfsproxy/external.h (100%) rename {jni => src/main/jni}/obfsproxy/ht.h (100%) rename {jni => src/main/jni}/obfsproxy/main.c (100%) rename {jni => src/main/jni}/obfsproxy/main.h (100%) rename {jni => src/main/jni}/obfsproxy/managed.c (100%) rename {jni => src/main/jni}/obfsproxy/managed.h (100%) rename {jni => src/main/jni}/obfsproxy/micro-revision.i (100%) rename {jni => src/main/jni}/obfsproxy/network.c (100%) rename {jni => src/main/jni}/obfsproxy/network.h (100%) rename {jni => src/main/jni}/obfsproxy/obfs_main.c (100%) rename {jni => src/main/jni}/obfsproxy/protocol.c (100%) rename {jni => src/main/jni}/obfsproxy/protocol.h (100%) rename {jni => src/main/jni}/obfsproxy/protocols/dummy.c (100%) rename {jni => src/main/jni}/obfsproxy/protocols/dummy.h (100%) rename {jni => src/main/jni}/obfsproxy/protocols/obfs2.c (100%) rename {jni => src/main/jni}/obfsproxy/protocols/obfs2.h (100%) rename {jni => src/main/jni}/obfsproxy/sha256.c (100%) rename {jni => src/main/jni}/obfsproxy/sha256.h (100%) rename {jni => src/main/jni}/obfsproxy/socks.c (100%) rename {jni => src/main/jni}/obfsproxy/socks.h (100%) rename {jni => src/main/jni}/obfsproxy/status.c (100%) rename {jni => src/main/jni}/obfsproxy/status.h (100%) rename {jni => src/main/jni}/obfsproxy/test/tester.py.in (100%) rename {jni => src/main/jni}/obfsproxy/test/tinytest.c (100%) rename {jni => src/main/jni}/obfsproxy/test/tinytest.h (100%) rename {jni => src/main/jni}/obfsproxy/test/tinytest_macros.h (100%) rename {jni => src/main/jni}/obfsproxy/test/unittest.c (100%) rename {jni => src/main/jni}/obfsproxy/test/unittest_container.c (100%) rename {jni => src/main/jni}/obfsproxy/test/unittest_crypt.c (100%) rename {jni => src/main/jni}/obfsproxy/test/unittest_dummy.c (100%) rename {jni => src/main/jni}/obfsproxy/test/unittest_managed.c (100%) rename {jni => src/main/jni}/obfsproxy/test/unittest_obfs2.c (100%) rename {jni => src/main/jni}/obfsproxy/test/unittest_socks.c (100%) rename {jni => src/main/jni}/obfsproxy/test/unittest_util.c (100%) rename {jni => src/main/jni}/obfsproxy/util.c (100%) rename {jni => src/main/jni}/obfsproxy/util.h (100%) rename {jni => src/main/jni}/openssl/ACKNOWLEDGMENTS (100%) rename {jni => src/main/jni}/openssl/MODULE_LICENSE_BSD_LIKE (100%) rename {jni => src/main/jni}/openssl/NOTICE (100%) rename {jni => src/main/jni}/openssl/README.ANDROID.txt (100%) rename {jni => src/main/jni}/openssl/README.md (100%) rename {jni => src/main/jni}/openssl/android-config.mk (100%) rename {jni => src/main/jni}/openssl/crypto/Android.mk (100%) rename {jni => src/main/jni}/openssl/crypto/LPdir_nyi.c (100%) rename {jni => src/main/jni}/openssl/crypto/LPdir_unix.c (100%) rename {jni => src/main/jni}/openssl/crypto/LPdir_vms.c (100%) rename {jni => src/main/jni}/openssl/crypto/LPdir_win.c (100%) rename {jni => src/main/jni}/openssl/crypto/LPdir_win32.c (100%) rename {jni => src/main/jni}/openssl/crypto/LPdir_wince.c (100%) rename {jni => src/main/jni}/openssl/crypto/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/aes/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/aes/README (100%) rename {jni => src/main/jni}/openssl/crypto/aes/aes.h (100%) rename {jni => src/main/jni}/openssl/crypto/aes/aes_cbc.c (100%) rename {jni => src/main/jni}/openssl/crypto/aes/aes_cfb.c (100%) rename {jni => src/main/jni}/openssl/crypto/aes/aes_core.c (100%) rename {jni => src/main/jni}/openssl/crypto/aes/aes_ctr.c (100%) rename {jni => src/main/jni}/openssl/crypto/aes/aes_ecb.c (100%) rename {jni => src/main/jni}/openssl/crypto/aes/aes_ige.c (100%) rename {jni => src/main/jni}/openssl/crypto/aes/aes_locl.h (100%) rename {jni => src/main/jni}/openssl/crypto/aes/aes_misc.c (100%) rename {jni => src/main/jni}/openssl/crypto/aes/aes_ofb.c (100%) rename {jni => src/main/jni}/openssl/crypto/aes/aes_wrap.c (100%) rename {jni => src/main/jni}/openssl/crypto/aes/aes_x86core.c (100%) rename {jni => src/main/jni}/openssl/crypto/aes/asm/aes-586.pl (100%) rename {jni => src/main/jni}/openssl/crypto/aes/asm/aes-armv4.S (100%) rename {jni => src/main/jni}/openssl/crypto/aes/asm/aes-armv4.pl (100%) rename {jni => src/main/jni}/openssl/crypto/aes/asm/aes-ia64.S (100%) rename {jni => src/main/jni}/openssl/crypto/aes/asm/aes-mips.pl (100%) rename {jni => src/main/jni}/openssl/crypto/aes/asm/aes-parisc.pl (100%) rename {jni => src/main/jni}/openssl/crypto/aes/asm/aes-ppc.pl (100%) rename {jni => src/main/jni}/openssl/crypto/aes/asm/aes-s390x.pl (100%) rename {jni => src/main/jni}/openssl/crypto/aes/asm/aes-sparcv9.pl (100%) rename {jni => src/main/jni}/openssl/crypto/aes/asm/aes-x86_64.pl (100%) rename {jni => src/main/jni}/openssl/crypto/aes/asm/aesni-sha1-x86_64.pl (100%) rename {jni => src/main/jni}/openssl/crypto/aes/asm/aesni-x86.pl (100%) rename {jni => src/main/jni}/openssl/crypto/aes/asm/aesni-x86_64.pl (100%) rename {jni => src/main/jni}/openssl/crypto/aes/asm/bsaes-x86_64.pl (100%) rename {jni => src/main/jni}/openssl/crypto/aes/asm/vpaes-x86.pl (100%) rename {jni => src/main/jni}/openssl/crypto/aes/asm/vpaes-x86_64.pl (100%) rename {jni => src/main/jni}/openssl/crypto/alphacpuid.pl (100%) rename {jni => src/main/jni}/openssl/crypto/arm_arch.h (100%) rename {jni => src/main/jni}/openssl/crypto/armcap.c (100%) rename {jni => src/main/jni}/openssl/crypto/armv4cpuid.S (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_bitstr.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_bool.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_bytes.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_d2i_fp.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_digest.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_dup.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_enum.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_gentm.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_i2d_fp.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_int.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_mbstr.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_object.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_octet.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_print.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_set.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_sign.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_strex.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_strnid.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_time.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_type.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_utctm.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_utf8.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/a_verify.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/ameth_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/asn1.h (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/asn1_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/asn1_gen.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/asn1_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/asn1_locl.h (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/asn1_mac.h (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/asn1_par.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/asn1t.h (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/asn_mime.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/asn_moid.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/asn_pack.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/bio_asn1.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/bio_ndef.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/charmap.h (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/charmap.pl (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/d2i_pr.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/d2i_pu.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/evp_asn1.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/f_enum.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/f_int.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/f_string.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/i2d_pr.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/i2d_pu.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/n_pkey.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/nsseq.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/p5_pbe.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/p5_pbev2.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/p8_pkey.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/t_bitst.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/t_crl.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/t_pkey.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/t_req.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/t_spki.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/t_x509.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/t_x509a.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/tasn_dec.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/tasn_enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/tasn_fre.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/tasn_new.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/tasn_prn.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/tasn_typ.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/tasn_utl.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/x_algor.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/x_attrib.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/x_bignum.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/x_crl.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/x_exten.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/x_info.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/x_long.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/x_name.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/x_nx509.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/x_pkey.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/x_pubkey.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/x_req.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/x_sig.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/x_spki.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/x_val.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/x_x509.c (100%) rename {jni => src/main/jni}/openssl/crypto/asn1/x_x509a.c (100%) rename {jni => src/main/jni}/openssl/crypto/bf/COPYRIGHT (100%) rename {jni => src/main/jni}/openssl/crypto/bf/INSTALL (100%) rename {jni => src/main/jni}/openssl/crypto/bf/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/bf/README (100%) rename {jni => src/main/jni}/openssl/crypto/bf/VERSION (100%) rename {jni => src/main/jni}/openssl/crypto/bf/asm/bf-586.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bf/asm/bf-686.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bf/asm/readme (100%) rename {jni => src/main/jni}/openssl/crypto/bf/bf_cbc.c (100%) rename {jni => src/main/jni}/openssl/crypto/bf/bf_cfb64.c (100%) rename {jni => src/main/jni}/openssl/crypto/bf/bf_ecb.c (100%) rename {jni => src/main/jni}/openssl/crypto/bf/bf_enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/bf/bf_locl.h (100%) rename {jni => src/main/jni}/openssl/crypto/bf/bf_ofb64.c (100%) rename {jni => src/main/jni}/openssl/crypto/bf/bf_opts.c (100%) rename {jni => src/main/jni}/openssl/crypto/bf/bf_pi.h (100%) rename {jni => src/main/jni}/openssl/crypto/bf/bf_skey.c (100%) rename {jni => src/main/jni}/openssl/crypto/bf/bfs.cpp (100%) rename {jni => src/main/jni}/openssl/crypto/bf/bfspeed.c (100%) rename {jni => src/main/jni}/openssl/crypto/bf/bftest.c (100%) rename {jni => src/main/jni}/openssl/crypto/bf/blowfish.h (100%) rename {jni => src/main/jni}/openssl/crypto/bio/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/bio/b_dump.c (100%) rename {jni => src/main/jni}/openssl/crypto/bio/b_print.c (100%) rename {jni => src/main/jni}/openssl/crypto/bio/b_sock.c (100%) rename {jni => src/main/jni}/openssl/crypto/bio/bf_buff.c (100%) rename {jni => src/main/jni}/openssl/crypto/bio/bf_lbuf.c (100%) rename {jni => src/main/jni}/openssl/crypto/bio/bf_nbio.c (100%) rename {jni => src/main/jni}/openssl/crypto/bio/bf_null.c (100%) rename {jni => src/main/jni}/openssl/crypto/bio/bio.h (100%) rename {jni => src/main/jni}/openssl/crypto/bio/bio_cb.c (100%) rename {jni => src/main/jni}/openssl/crypto/bio/bio_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/bio/bio_lcl.h (100%) rename {jni => src/main/jni}/openssl/crypto/bio/bio_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/bio/bss_acpt.c (100%) rename {jni => src/main/jni}/openssl/crypto/bio/bss_bio.c (100%) rename {jni => src/main/jni}/openssl/crypto/bio/bss_conn.c (100%) rename {jni => src/main/jni}/openssl/crypto/bio/bss_dgram.c (100%) rename {jni => src/main/jni}/openssl/crypto/bio/bss_fd.c (100%) rename {jni => src/main/jni}/openssl/crypto/bio/bss_file.c (100%) rename {jni => src/main/jni}/openssl/crypto/bio/bss_log.c (100%) rename {jni => src/main/jni}/openssl/crypto/bio/bss_mem.c (100%) rename {jni => src/main/jni}/openssl/crypto/bio/bss_null.c (100%) rename {jni => src/main/jni}/openssl/crypto/bio/bss_rtcp.c (100%) rename {jni => src/main/jni}/openssl/crypto/bio/bss_sock.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/README (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/alpha-mont.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/armv4-gf2m.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/armv4-mont.S (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/armv4-mont.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/bn-586.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/co-586.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/ia64-mont.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/ia64.S (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/mips-mont.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/mips.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/mips3-mont.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/mips3.s (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/modexp512-x86_64.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/pa-risc2.s (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/pa-risc2W.s (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/parisc-mont.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/ppc-mont.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/ppc.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/ppc64-mont.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/s390x-gf2m.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/s390x-mont.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/s390x.S (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/sparcv8.S (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/sparcv8plus.S (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/sparcv9-mont.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/sparcv9a-mont.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/via-mont.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/vms.mar (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/x86-gf2m.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/x86-mont.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/x86.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/x86/add.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/x86/comba.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/x86/div.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/x86/f (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/x86/mul.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/x86/mul_add.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/x86/sqr.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/x86/sub.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/x86_64-gcc.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/x86_64-gf2m.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/x86_64-mont.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/asm/x86_64-mont5.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn.h (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn.mul (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_add.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_asm.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_blind.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_const.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_ctx.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_depr.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_div.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_exp.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_exp2.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_gcd.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_gf2m.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_kron.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_lcl.h (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_mod.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_mont.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_mpi.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_mul.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_nist.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_prime.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_prime.h (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_prime.pl (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_print.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_rand.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_recp.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_shift.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_sqr.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_sqrt.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_word.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bn_x931p.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bnspeed.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/bntest.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/divtest.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/exp.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/expspeed.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/exptest.c (100%) rename {jni => src/main/jni}/openssl/crypto/bn/todo (100%) rename {jni => src/main/jni}/openssl/crypto/bn/vms-helper.c (100%) rename {jni => src/main/jni}/openssl/crypto/buffer/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/buffer/buf_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/buffer/buf_str.c (100%) rename {jni => src/main/jni}/openssl/crypto/buffer/buffer.c (100%) rename {jni => src/main/jni}/openssl/crypto/buffer/buffer.h (100%) rename {jni => src/main/jni}/openssl/crypto/camellia/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/camellia/asm/cmll-x86.pl (100%) rename {jni => src/main/jni}/openssl/crypto/camellia/asm/cmll-x86_64.pl (100%) rename {jni => src/main/jni}/openssl/crypto/camellia/camellia.c (100%) rename {jni => src/main/jni}/openssl/crypto/camellia/camellia.h (100%) rename {jni => src/main/jni}/openssl/crypto/camellia/cmll_cbc.c (100%) rename {jni => src/main/jni}/openssl/crypto/camellia/cmll_cfb.c (100%) rename {jni => src/main/jni}/openssl/crypto/camellia/cmll_ctr.c (100%) rename {jni => src/main/jni}/openssl/crypto/camellia/cmll_ecb.c (100%) rename {jni => src/main/jni}/openssl/crypto/camellia/cmll_locl.h (100%) rename {jni => src/main/jni}/openssl/crypto/camellia/cmll_misc.c (100%) rename {jni => src/main/jni}/openssl/crypto/camellia/cmll_ofb.c (100%) rename {jni => src/main/jni}/openssl/crypto/camellia/cmll_utl.c (100%) rename {jni => src/main/jni}/openssl/crypto/cmac/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/cmac/cm_ameth.c (100%) rename {jni => src/main/jni}/openssl/crypto/cmac/cm_pmeth.c (100%) rename {jni => src/main/jni}/openssl/crypto/cmac/cmac.c (100%) rename {jni => src/main/jni}/openssl/crypto/cmac/cmac.h (100%) rename {jni => src/main/jni}/openssl/crypto/comp/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/comp/c_rle.c (100%) rename {jni => src/main/jni}/openssl/crypto/comp/c_zlib.c (100%) rename {jni => src/main/jni}/openssl/crypto/comp/comp.h (100%) rename {jni => src/main/jni}/openssl/crypto/comp/comp_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/comp/comp_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/conf/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/conf/README (100%) rename {jni => src/main/jni}/openssl/crypto/conf/cnf_save.c (100%) rename {jni => src/main/jni}/openssl/crypto/conf/conf.h (100%) rename {jni => src/main/jni}/openssl/crypto/conf/conf_api.c (100%) rename {jni => src/main/jni}/openssl/crypto/conf/conf_api.h (100%) rename {jni => src/main/jni}/openssl/crypto/conf/conf_def.c (100%) rename {jni => src/main/jni}/openssl/crypto/conf/conf_def.h (100%) rename {jni => src/main/jni}/openssl/crypto/conf/conf_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/conf/conf_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/conf/conf_mall.c (100%) rename {jni => src/main/jni}/openssl/crypto/conf/conf_mod.c (100%) rename {jni => src/main/jni}/openssl/crypto/conf/conf_sap.c (100%) rename {jni => src/main/jni}/openssl/crypto/conf/keysets.pl (100%) rename {jni => src/main/jni}/openssl/crypto/conf/ssleay.cnf (100%) rename {jni => src/main/jni}/openssl/crypto/conf/test.c (100%) rename {jni => src/main/jni}/openssl/crypto/cpt_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/cryptlib.c (100%) rename {jni => src/main/jni}/openssl/crypto/cryptlib.h (100%) rename {jni => src/main/jni}/openssl/crypto/crypto-lib.com (100%) rename {jni => src/main/jni}/openssl/crypto/crypto.h (100%) rename {jni => src/main/jni}/openssl/crypto/cversion.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/COPYRIGHT (100%) rename {jni => src/main/jni}/openssl/crypto/des/DES.pm (100%) rename {jni => src/main/jni}/openssl/crypto/des/DES.xs (100%) rename {jni => src/main/jni}/openssl/crypto/des/FILES0 (100%) rename {jni => src/main/jni}/openssl/crypto/des/INSTALL (100%) rename {jni => src/main/jni}/openssl/crypto/des/Imakefile (100%) rename {jni => src/main/jni}/openssl/crypto/des/KERBEROS (100%) rename {jni => src/main/jni}/openssl/crypto/des/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/des/README (100%) rename {jni => src/main/jni}/openssl/crypto/des/VERSION (100%) rename {jni => src/main/jni}/openssl/crypto/des/asm/crypt586.pl (100%) rename {jni => src/main/jni}/openssl/crypto/des/asm/des-586.pl (100%) rename {jni => src/main/jni}/openssl/crypto/des/asm/des_enc.m4 (100%) rename {jni => src/main/jni}/openssl/crypto/des/asm/desboth.pl (100%) rename {jni => src/main/jni}/openssl/crypto/des/asm/readme (100%) rename {jni => src/main/jni}/openssl/crypto/des/cbc3_enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/cbc_cksm.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/cbc_enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/cfb64ede.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/cfb64enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/cfb_enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/des-lib.com (100%) rename {jni => src/main/jni}/openssl/crypto/des/des.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/des.h (100%) rename {jni => src/main/jni}/openssl/crypto/des/des.pod (100%) rename {jni => src/main/jni}/openssl/crypto/des/des3s.cpp (100%) rename {jni => src/main/jni}/openssl/crypto/des/des_enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/des_locl.h (100%) rename {jni => src/main/jni}/openssl/crypto/des/des_old.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/des_old.h (100%) rename {jni => src/main/jni}/openssl/crypto/des/des_old2.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/des_opts.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/des_ver.h (100%) rename {jni => src/main/jni}/openssl/crypto/des/dess.cpp (100%) rename {jni => src/main/jni}/openssl/crypto/des/destest.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/ecb3_enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/ecb_enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/ede_cbcm_enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/enc_read.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/enc_writ.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/fcrypt.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/fcrypt_b.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/makefile.bc (100%) rename {jni => src/main/jni}/openssl/crypto/des/ncbc_enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/ofb64ede.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/ofb64enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/ofb_enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/options.txt (100%) rename {jni => src/main/jni}/openssl/crypto/des/pcbc_enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/qud_cksm.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/rand_key.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/read2pwd.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/read_pwd.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/rpc_des.h (100%) rename {jni => src/main/jni}/openssl/crypto/des/rpc_enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/rpw.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/set_key.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/speed.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/spr.h (100%) rename {jni => src/main/jni}/openssl/crypto/des/str2key.c (100%) rename {jni => src/main/jni}/openssl/crypto/des/t/test (100%) rename {jni => src/main/jni}/openssl/crypto/des/times/486-50.sol (100%) rename {jni => src/main/jni}/openssl/crypto/des/times/586-100.lnx (100%) rename {jni => src/main/jni}/openssl/crypto/des/times/686-200.fre (100%) rename {jni => src/main/jni}/openssl/crypto/des/times/aix.cc (100%) rename {jni => src/main/jni}/openssl/crypto/des/times/alpha.cc (100%) rename {jni => src/main/jni}/openssl/crypto/des/times/hpux.cc (100%) rename {jni => src/main/jni}/openssl/crypto/des/times/sparc.gcc (100%) rename {jni => src/main/jni}/openssl/crypto/des/times/usparc.cc (100%) rename {jni => src/main/jni}/openssl/crypto/des/typemap (100%) rename {jni => src/main/jni}/openssl/crypto/des/xcbc_enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/dh/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/dh/dh.h (100%) rename {jni => src/main/jni}/openssl/crypto/dh/dh1024.pem (100%) rename {jni => src/main/jni}/openssl/crypto/dh/dh192.pem (100%) rename {jni => src/main/jni}/openssl/crypto/dh/dh2048.pem (100%) rename {jni => src/main/jni}/openssl/crypto/dh/dh4096.pem (100%) rename {jni => src/main/jni}/openssl/crypto/dh/dh512.pem (100%) rename {jni => src/main/jni}/openssl/crypto/dh/dh_ameth.c (100%) rename {jni => src/main/jni}/openssl/crypto/dh/dh_asn1.c (100%) rename {jni => src/main/jni}/openssl/crypto/dh/dh_check.c (100%) rename {jni => src/main/jni}/openssl/crypto/dh/dh_depr.c (100%) rename {jni => src/main/jni}/openssl/crypto/dh/dh_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/dh/dh_gen.c (100%) rename {jni => src/main/jni}/openssl/crypto/dh/dh_key.c (100%) rename {jni => src/main/jni}/openssl/crypto/dh/dh_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/dh/dh_pmeth.c (100%) rename {jni => src/main/jni}/openssl/crypto/dh/dh_prn.c (100%) rename {jni => src/main/jni}/openssl/crypto/dh/dhtest.c (100%) rename {jni => src/main/jni}/openssl/crypto/dh/example (100%) rename {jni => src/main/jni}/openssl/crypto/dh/generate (100%) rename {jni => src/main/jni}/openssl/crypto/dh/p1024.c (100%) rename {jni => src/main/jni}/openssl/crypto/dh/p192.c (100%) rename {jni => src/main/jni}/openssl/crypto/dh/p512.c (100%) rename {jni => src/main/jni}/openssl/crypto/dsa/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/dsa/README (100%) rename {jni => src/main/jni}/openssl/crypto/dsa/dsa.h (100%) rename {jni => src/main/jni}/openssl/crypto/dsa/dsa_ameth.c (100%) rename {jni => src/main/jni}/openssl/crypto/dsa/dsa_asn1.c (100%) rename {jni => src/main/jni}/openssl/crypto/dsa/dsa_depr.c (100%) rename {jni => src/main/jni}/openssl/crypto/dsa/dsa_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/dsa/dsa_gen.c (100%) rename {jni => src/main/jni}/openssl/crypto/dsa/dsa_key.c (100%) rename {jni => src/main/jni}/openssl/crypto/dsa/dsa_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/dsa/dsa_locl.h (100%) rename {jni => src/main/jni}/openssl/crypto/dsa/dsa_ossl.c (100%) rename {jni => src/main/jni}/openssl/crypto/dsa/dsa_pmeth.c (100%) rename {jni => src/main/jni}/openssl/crypto/dsa/dsa_prn.c (100%) rename {jni => src/main/jni}/openssl/crypto/dsa/dsa_sign.c (100%) rename {jni => src/main/jni}/openssl/crypto/dsa/dsa_vrf.c (100%) rename {jni => src/main/jni}/openssl/crypto/dsa/dsagen.c (100%) rename {jni => src/main/jni}/openssl/crypto/dsa/dsatest.c (100%) rename {jni => src/main/jni}/openssl/crypto/dsa/fips186a.txt (100%) rename {jni => src/main/jni}/openssl/crypto/dso/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/dso/README (100%) rename {jni => src/main/jni}/openssl/crypto/dso/dso.h (100%) rename {jni => src/main/jni}/openssl/crypto/dso/dso_beos.c (100%) rename {jni => src/main/jni}/openssl/crypto/dso/dso_dl.c (100%) rename {jni => src/main/jni}/openssl/crypto/dso/dso_dlfcn.c (100%) rename {jni => src/main/jni}/openssl/crypto/dso/dso_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/dso/dso_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/dso/dso_null.c (100%) rename {jni => src/main/jni}/openssl/crypto/dso/dso_openssl.c (100%) rename {jni => src/main/jni}/openssl/crypto/dso/dso_vms.c (100%) rename {jni => src/main/jni}/openssl/crypto/dso/dso_win32.c (100%) rename {jni => src/main/jni}/openssl/crypto/ebcdic.c (100%) rename {jni => src/main/jni}/openssl/crypto/ebcdic.h (100%) rename {jni => src/main/jni}/openssl/crypto/ec/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ec.h (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ec2_mult.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ec2_oct.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ec2_smpl.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ec_ameth.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ec_asn1.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ec_check.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ec_curve.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ec_cvt.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ec_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ec_key.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ec_lcl.h (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ec_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ec_mult.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ec_oct.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ec_pmeth.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ec_print.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/eck_prn.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ecp_mont.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ecp_nist.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ecp_nistp224.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ecp_nistp256.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ecp_nistp521.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ecp_nistputil.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ecp_oct.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ecp_smpl.c (100%) rename {jni => src/main/jni}/openssl/crypto/ec/ectest.c (100%) rename {jni => src/main/jni}/openssl/crypto/ecdh/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/ecdh/ecdh.h (100%) rename {jni => src/main/jni}/openssl/crypto/ecdh/ecdhtest.c (100%) rename {jni => src/main/jni}/openssl/crypto/ecdh/ech_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/ecdh/ech_key.c (100%) rename {jni => src/main/jni}/openssl/crypto/ecdh/ech_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/ecdh/ech_locl.h (100%) rename {jni => src/main/jni}/openssl/crypto/ecdh/ech_ossl.c (100%) rename {jni => src/main/jni}/openssl/crypto/ecdsa/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/ecdsa/ecdsa.h (100%) rename {jni => src/main/jni}/openssl/crypto/ecdsa/ecdsatest.c (100%) rename {jni => src/main/jni}/openssl/crypto/ecdsa/ecs_asn1.c (100%) rename {jni => src/main/jni}/openssl/crypto/ecdsa/ecs_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/ecdsa/ecs_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/ecdsa/ecs_locl.h (100%) rename {jni => src/main/jni}/openssl/crypto/ecdsa/ecs_ossl.c (100%) rename {jni => src/main/jni}/openssl/crypto/ecdsa/ecs_sign.c (100%) rename {jni => src/main/jni}/openssl/crypto/ecdsa/ecs_vrf.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/engine/README (100%) rename {jni => src/main/jni}/openssl/crypto/engine/eng_all.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/eng_cnf.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/eng_cryptodev.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/eng_ctrl.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/eng_dyn.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/eng_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/eng_fat.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/eng_init.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/eng_int.h (100%) rename {jni => src/main/jni}/openssl/crypto/engine/eng_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/eng_list.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/eng_openssl.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/eng_pkey.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/eng_rdrand.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/eng_rsax.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/eng_table.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/engine.h (100%) rename {jni => src/main/jni}/openssl/crypto/engine/enginetest.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/tb_asnmth.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/tb_cipher.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/tb_dh.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/tb_digest.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/tb_dsa.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/tb_ecdh.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/tb_ecdsa.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/tb_pkmeth.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/tb_rand.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/tb_rsa.c (100%) rename {jni => src/main/jni}/openssl/crypto/engine/tb_store.c (100%) rename {jni => src/main/jni}/openssl/crypto/err/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/err/err.c (100%) rename {jni => src/main/jni}/openssl/crypto/err/err.h (100%) rename {jni => src/main/jni}/openssl/crypto/err/err_all.c (100%) rename {jni => src/main/jni}/openssl/crypto/err/err_prn.c (100%) rename {jni => src/main/jni}/openssl/crypto/err/openssl.ec (100%) rename {jni => src/main/jni}/openssl/crypto/evp/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/evp/bio_b64.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/bio_enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/bio_md.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/bio_ok.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/c_all.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/c_allc.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/c_alld.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/digest.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/e_aes.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/e_bf.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/e_camellia.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/e_cast.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/e_des.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/e_des3.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/e_dsa.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/e_idea.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/e_null.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/e_old.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/e_rc2.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/e_rc4.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/e_rc4_hmac_md5.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/e_rc5.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/e_seed.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/e_xcbc_d.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/encode.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/evp.h (100%) rename {jni => src/main/jni}/openssl/crypto/evp/evp_acnf.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/evp_enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/evp_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/evp_fips.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/evp_key.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/evp_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/evp_locl.h (100%) rename {jni => src/main/jni}/openssl/crypto/evp/evp_pbe.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/evp_pkey.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/evp_test.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/evptests.txt (100%) rename {jni => src/main/jni}/openssl/crypto/evp/m_dss.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/m_dss1.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/m_ecdsa.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/m_md2.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/m_md4.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/m_md5.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/m_mdc2.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/m_null.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/m_ripemd.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/m_sha.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/m_sha1.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/m_sigver.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/m_wp.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/names.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/openbsd_hw.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/p5_crpt.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/p5_crpt2.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/p_dec.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/p_enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/p_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/p_open.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/p_seal.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/p_sign.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/p_verify.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/pmeth_fn.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/pmeth_gn.c (100%) rename {jni => src/main/jni}/openssl/crypto/evp/pmeth_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/ex_data.c (100%) rename {jni => src/main/jni}/openssl/crypto/fips_err.h (100%) rename {jni => src/main/jni}/openssl/crypto/fips_ers.c (100%) rename {jni => src/main/jni}/openssl/crypto/hmac/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/hmac/hm_ameth.c (100%) rename {jni => src/main/jni}/openssl/crypto/hmac/hm_pmeth.c (100%) rename {jni => src/main/jni}/openssl/crypto/hmac/hmac.c (100%) rename {jni => src/main/jni}/openssl/crypto/hmac/hmac.h (100%) rename {jni => src/main/jni}/openssl/crypto/hmac/hmactest.c (100%) rename {jni => src/main/jni}/openssl/crypto/ia64cpuid.S (100%) rename {jni => src/main/jni}/openssl/crypto/install-crypto.com (100%) rename {jni => src/main/jni}/openssl/crypto/jpake/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/jpake/jpake.c (100%) rename {jni => src/main/jni}/openssl/crypto/jpake/jpake.h (100%) rename {jni => src/main/jni}/openssl/crypto/jpake/jpake_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/jpake/jpaketest.c (100%) rename {jni => src/main/jni}/openssl/crypto/krb5/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/krb5/krb5_asn.c (100%) rename {jni => src/main/jni}/openssl/crypto/krb5/krb5_asn.h (100%) rename {jni => src/main/jni}/openssl/crypto/lhash/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/lhash/lh_stats.c (100%) rename {jni => src/main/jni}/openssl/crypto/lhash/lh_test.c (100%) rename {jni => src/main/jni}/openssl/crypto/lhash/lhash.c (100%) rename {jni => src/main/jni}/openssl/crypto/lhash/lhash.h (100%) rename {jni => src/main/jni}/openssl/crypto/lhash/num.pl (100%) rename {jni => src/main/jni}/openssl/crypto/md32_common.h (100%) rename {jni => src/main/jni}/openssl/crypto/md4/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/md4/md4.c (100%) rename {jni => src/main/jni}/openssl/crypto/md4/md4.h (100%) rename {jni => src/main/jni}/openssl/crypto/md4/md4_dgst.c (100%) rename {jni => src/main/jni}/openssl/crypto/md4/md4_locl.h (100%) rename {jni => src/main/jni}/openssl/crypto/md4/md4_one.c (100%) rename {jni => src/main/jni}/openssl/crypto/md4/md4s.cpp (100%) rename {jni => src/main/jni}/openssl/crypto/md4/md4test.c (100%) rename {jni => src/main/jni}/openssl/crypto/md5/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/md5/asm/md5-586.pl (100%) rename {jni => src/main/jni}/openssl/crypto/md5/asm/md5-ia64.S (100%) rename {jni => src/main/jni}/openssl/crypto/md5/asm/md5-x86_64.pl (100%) rename {jni => src/main/jni}/openssl/crypto/md5/md5.c (100%) rename {jni => src/main/jni}/openssl/crypto/md5/md5.h (100%) rename {jni => src/main/jni}/openssl/crypto/md5/md5_dgst.c (100%) rename {jni => src/main/jni}/openssl/crypto/md5/md5_locl.h (100%) rename {jni => src/main/jni}/openssl/crypto/md5/md5_one.c (100%) rename {jni => src/main/jni}/openssl/crypto/md5/md5s.cpp (100%) rename {jni => src/main/jni}/openssl/crypto/md5/md5test.c (100%) rename {jni => src/main/jni}/openssl/crypto/mdc2/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/mdc2/mdc2.h (100%) rename {jni => src/main/jni}/openssl/crypto/mdc2/mdc2_one.c (100%) rename {jni => src/main/jni}/openssl/crypto/mdc2/mdc2dgst.c (100%) rename {jni => src/main/jni}/openssl/crypto/mdc2/mdc2test.c (100%) rename {jni => src/main/jni}/openssl/crypto/mem.c (100%) rename {jni => src/main/jni}/openssl/crypto/mem_clr.c (100%) rename {jni => src/main/jni}/openssl/crypto/mem_dbg.c (100%) rename {jni => src/main/jni}/openssl/crypto/modes/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/modes/asm/ghash-alpha.pl (100%) rename {jni => src/main/jni}/openssl/crypto/modes/asm/ghash-armv4.pl (100%) rename {jni => src/main/jni}/openssl/crypto/modes/asm/ghash-ia64.pl (100%) rename {jni => src/main/jni}/openssl/crypto/modes/asm/ghash-parisc.pl (100%) rename {jni => src/main/jni}/openssl/crypto/modes/asm/ghash-s390x.pl (100%) rename {jni => src/main/jni}/openssl/crypto/modes/asm/ghash-sparcv9.pl (100%) rename {jni => src/main/jni}/openssl/crypto/modes/asm/ghash-x86.pl (100%) rename {jni => src/main/jni}/openssl/crypto/modes/asm/ghash-x86_64.pl (100%) rename {jni => src/main/jni}/openssl/crypto/modes/cbc128.c (100%) rename {jni => src/main/jni}/openssl/crypto/modes/ccm128.c (100%) rename {jni => src/main/jni}/openssl/crypto/modes/cfb128.c (100%) rename {jni => src/main/jni}/openssl/crypto/modes/ctr128.c (100%) rename {jni => src/main/jni}/openssl/crypto/modes/cts128.c (100%) rename {jni => src/main/jni}/openssl/crypto/modes/gcm128.c (100%) rename {jni => src/main/jni}/openssl/crypto/modes/modes.h (100%) rename {jni => src/main/jni}/openssl/crypto/modes/modes_lcl.h (100%) rename {jni => src/main/jni}/openssl/crypto/modes/ofb128.c (100%) rename {jni => src/main/jni}/openssl/crypto/modes/xts128.c (100%) rename {jni => src/main/jni}/openssl/crypto/o_dir.c (100%) rename {jni => src/main/jni}/openssl/crypto/o_dir.h (100%) rename {jni => src/main/jni}/openssl/crypto/o_dir_test.c (100%) rename {jni => src/main/jni}/openssl/crypto/o_fips.c (100%) rename {jni => src/main/jni}/openssl/crypto/o_init.c (100%) rename {jni => src/main/jni}/openssl/crypto/o_str.c (100%) rename {jni => src/main/jni}/openssl/crypto/o_str.h (100%) rename {jni => src/main/jni}/openssl/crypto/o_time.c (100%) rename {jni => src/main/jni}/openssl/crypto/o_time.h (100%) rename {jni => src/main/jni}/openssl/crypto/objects/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/objects/o_names.c (100%) rename {jni => src/main/jni}/openssl/crypto/objects/obj_dat.c (100%) rename {jni => src/main/jni}/openssl/crypto/objects/obj_dat.h (100%) rename {jni => src/main/jni}/openssl/crypto/objects/obj_dat.pl (100%) rename {jni => src/main/jni}/openssl/crypto/objects/obj_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/objects/obj_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/objects/obj_mac.h (100%) rename {jni => src/main/jni}/openssl/crypto/objects/obj_mac.num (100%) rename {jni => src/main/jni}/openssl/crypto/objects/obj_xref.c (100%) rename {jni => src/main/jni}/openssl/crypto/objects/obj_xref.h (100%) rename {jni => src/main/jni}/openssl/crypto/objects/obj_xref.txt (100%) rename {jni => src/main/jni}/openssl/crypto/objects/objects.README (100%) rename {jni => src/main/jni}/openssl/crypto/objects/objects.h (100%) rename {jni => src/main/jni}/openssl/crypto/objects/objects.pl (100%) rename {jni => src/main/jni}/openssl/crypto/objects/objects.txt (100%) rename {jni => src/main/jni}/openssl/crypto/objects/objxref.pl (100%) rename {jni => src/main/jni}/openssl/crypto/ocsp/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/ocsp/ocsp.h (100%) rename {jni => src/main/jni}/openssl/crypto/ocsp/ocsp_asn.c (100%) rename {jni => src/main/jni}/openssl/crypto/ocsp/ocsp_cl.c (100%) rename {jni => src/main/jni}/openssl/crypto/ocsp/ocsp_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/ocsp/ocsp_ext.c (100%) rename {jni => src/main/jni}/openssl/crypto/ocsp/ocsp_ht.c (100%) rename {jni => src/main/jni}/openssl/crypto/ocsp/ocsp_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/ocsp/ocsp_prn.c (100%) rename {jni => src/main/jni}/openssl/crypto/ocsp/ocsp_srv.c (100%) rename {jni => src/main/jni}/openssl/crypto/ocsp/ocsp_vfy.c (100%) rename {jni => src/main/jni}/openssl/crypto/opensslconf.h (100%) rename {jni => src/main/jni}/openssl/crypto/opensslconf.h.in (100%) rename {jni => src/main/jni}/openssl/crypto/opensslv.h (100%) rename {jni => src/main/jni}/openssl/crypto/ossl_typ.h (100%) rename {jni => src/main/jni}/openssl/crypto/pariscid.pl (100%) rename {jni => src/main/jni}/openssl/crypto/pem/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/pem/message (100%) rename {jni => src/main/jni}/openssl/crypto/pem/pem.h (100%) rename {jni => src/main/jni}/openssl/crypto/pem/pem2.h (100%) rename {jni => src/main/jni}/openssl/crypto/pem/pem_all.c (100%) rename {jni => src/main/jni}/openssl/crypto/pem/pem_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/pem/pem_info.c (100%) rename {jni => src/main/jni}/openssl/crypto/pem/pem_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/pem/pem_oth.c (100%) rename {jni => src/main/jni}/openssl/crypto/pem/pem_pk8.c (100%) rename {jni => src/main/jni}/openssl/crypto/pem/pem_pkey.c (100%) rename {jni => src/main/jni}/openssl/crypto/pem/pem_seal.c (100%) rename {jni => src/main/jni}/openssl/crypto/pem/pem_sign.c (100%) rename {jni => src/main/jni}/openssl/crypto/pem/pem_x509.c (100%) rename {jni => src/main/jni}/openssl/crypto/pem/pem_xaux.c (100%) rename {jni => src/main/jni}/openssl/crypto/pem/pkcs7.lis (100%) rename {jni => src/main/jni}/openssl/crypto/pem/pvkfmt.c (100%) rename {jni => src/main/jni}/openssl/crypto/perlasm/cbc.pl (100%) rename {jni => src/main/jni}/openssl/crypto/perlasm/ppc-xlate.pl (100%) rename {jni => src/main/jni}/openssl/crypto/perlasm/readme (100%) rename {jni => src/main/jni}/openssl/crypto/perlasm/x86_64-xlate.pl (100%) rename {jni => src/main/jni}/openssl/crypto/perlasm/x86asm.pl (100%) rename {jni => src/main/jni}/openssl/crypto/perlasm/x86gas.pl (100%) rename {jni => src/main/jni}/openssl/crypto/perlasm/x86masm.pl (100%) rename {jni => src/main/jni}/openssl/crypto/perlasm/x86nasm.pl (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs12/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs12/p12_add.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs12/p12_asn.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs12/p12_attr.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs12/p12_crpt.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs12/p12_crt.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs12/p12_decr.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs12/p12_init.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs12/p12_key.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs12/p12_kiss.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs12/p12_mutl.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs12/p12_npas.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs12/p12_p8d.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs12/p12_p8e.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs12/p12_utl.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs12/pk12err.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs12/pkcs12.h (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/bio_ber.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/bio_pk7.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/dec.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/des.pem (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/doc (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/es1.pem (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/example.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/example.h (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/info.pem (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/infokey.pem (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/p7/a1 (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/p7/a2 (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/p7/cert.p7c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/p7/smime.p7m (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/p7/smime.p7s (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/pk7_asn1.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/pk7_attr.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/pk7_dgst.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/pk7_doit.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/pk7_enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/pk7_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/pk7_mime.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/pk7_smime.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/pkcs7.h (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/pkcs7err.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/server.pem (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/sign.c (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/t/3des.pem (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/t/3dess.pem (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/t/c.pem (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/t/ff (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/t/msie-e (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/t/msie-e.pem (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/t/msie-enc-01 (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/t/msie-enc-01.pem (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/t/msie-enc-02 (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/t/msie-enc-02.pem (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/t/msie-s-a-e (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/t/msie-s-a-e.pem (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/t/nav-smime (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/t/s.pem (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/t/server.pem (100%) rename {jni => src/main/jni}/openssl/crypto/pkcs7/verify.c (100%) rename {jni => src/main/jni}/openssl/crypto/ppccap.c (100%) rename {jni => src/main/jni}/openssl/crypto/ppccpuid.pl (100%) rename {jni => src/main/jni}/openssl/crypto/pqueue/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/pqueue/pq_test.c (100%) rename {jni => src/main/jni}/openssl/crypto/pqueue/pqueue.c (100%) rename {jni => src/main/jni}/openssl/crypto/pqueue/pqueue.h (100%) rename {jni => src/main/jni}/openssl/crypto/rand/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/rand/md_rand.c (100%) rename {jni => src/main/jni}/openssl/crypto/rand/rand.h (100%) rename {jni => src/main/jni}/openssl/crypto/rand/rand_egd.c (100%) rename {jni => src/main/jni}/openssl/crypto/rand/rand_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/rand/rand_lcl.h (100%) rename {jni => src/main/jni}/openssl/crypto/rand/rand_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/rand/rand_nw.c (100%) rename {jni => src/main/jni}/openssl/crypto/rand/rand_os2.c (100%) rename {jni => src/main/jni}/openssl/crypto/rand/rand_unix.c (100%) rename {jni => src/main/jni}/openssl/crypto/rand/rand_vms.c (100%) rename {jni => src/main/jni}/openssl/crypto/rand/rand_win.c (100%) rename {jni => src/main/jni}/openssl/crypto/rand/randfile.c (100%) rename {jni => src/main/jni}/openssl/crypto/rand/randtest.c (100%) rename {jni => src/main/jni}/openssl/crypto/rc2/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/rc2/rc2.h (100%) rename {jni => src/main/jni}/openssl/crypto/rc2/rc2_cbc.c (100%) rename {jni => src/main/jni}/openssl/crypto/rc2/rc2_ecb.c (100%) rename {jni => src/main/jni}/openssl/crypto/rc2/rc2_locl.h (100%) rename {jni => src/main/jni}/openssl/crypto/rc2/rc2_skey.c (100%) rename {jni => src/main/jni}/openssl/crypto/rc2/rc2cfb64.c (100%) rename {jni => src/main/jni}/openssl/crypto/rc2/rc2ofb64.c (100%) rename {jni => src/main/jni}/openssl/crypto/rc2/rc2speed.c (100%) rename {jni => src/main/jni}/openssl/crypto/rc2/rc2test.c (100%) rename {jni => src/main/jni}/openssl/crypto/rc2/rrc2.doc (100%) rename {jni => src/main/jni}/openssl/crypto/rc2/tab.c (100%) rename {jni => src/main/jni}/openssl/crypto/rc2/version (100%) rename {jni => src/main/jni}/openssl/crypto/rc4/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/rc4/asm/rc4-586.pl (100%) rename {jni => src/main/jni}/openssl/crypto/rc4/asm/rc4-ia64.pl (100%) rename {jni => src/main/jni}/openssl/crypto/rc4/asm/rc4-md5-x86_64.pl (100%) rename {jni => src/main/jni}/openssl/crypto/rc4/asm/rc4-parisc.pl (100%) rename {jni => src/main/jni}/openssl/crypto/rc4/asm/rc4-s390x.pl (100%) rename {jni => src/main/jni}/openssl/crypto/rc4/asm/rc4-x86_64.pl (100%) rename {jni => src/main/jni}/openssl/crypto/rc4/rc4.c (100%) rename {jni => src/main/jni}/openssl/crypto/rc4/rc4.h (100%) rename {jni => src/main/jni}/openssl/crypto/rc4/rc4_enc.c (100%) rename {jni => src/main/jni}/openssl/crypto/rc4/rc4_locl.h (100%) rename {jni => src/main/jni}/openssl/crypto/rc4/rc4_skey.c (100%) rename {jni => src/main/jni}/openssl/crypto/rc4/rc4_utl.c (100%) rename {jni => src/main/jni}/openssl/crypto/rc4/rc4s.cpp (100%) rename {jni => src/main/jni}/openssl/crypto/rc4/rc4speed.c (100%) rename {jni => src/main/jni}/openssl/crypto/rc4/rc4test.c (100%) rename {jni => src/main/jni}/openssl/crypto/rc4/rrc4.doc (100%) rename {jni => src/main/jni}/openssl/crypto/ripemd/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/ripemd/README (100%) rename {jni => src/main/jni}/openssl/crypto/ripemd/asm/rips.cpp (100%) rename {jni => src/main/jni}/openssl/crypto/ripemd/asm/rmd-586.pl (100%) rename {jni => src/main/jni}/openssl/crypto/ripemd/ripemd.h (100%) rename {jni => src/main/jni}/openssl/crypto/ripemd/rmd160.c (100%) rename {jni => src/main/jni}/openssl/crypto/ripemd/rmd_dgst.c (100%) rename {jni => src/main/jni}/openssl/crypto/ripemd/rmd_locl.h (100%) rename {jni => src/main/jni}/openssl/crypto/ripemd/rmd_one.c (100%) rename {jni => src/main/jni}/openssl/crypto/ripemd/rmdconst.h (100%) rename {jni => src/main/jni}/openssl/crypto/ripemd/rmdtest.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa.h (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_ameth.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_asn1.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_chk.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_crpt.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_depr.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_eay.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_gen.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_locl.h (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_none.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_null.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_oaep.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_pk1.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_pmeth.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_prn.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_pss.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_saos.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_sign.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_ssl.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_test.c (100%) rename {jni => src/main/jni}/openssl/crypto/rsa/rsa_x931.c (100%) rename {jni => src/main/jni}/openssl/crypto/s390xcap.c (100%) rename {jni => src/main/jni}/openssl/crypto/s390xcpuid.S (100%) rename {jni => src/main/jni}/openssl/crypto/sha/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/README (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha1-586.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha1-alpha.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha1-armv4-large.S (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha1-armv4-large.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha1-ia64.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha1-mips.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha1-parisc.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha1-ppc.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha1-s390x.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha1-sparcv9.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha1-sparcv9a.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha1-thumb.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha1-x86_64.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha256-586.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha256-armv4.S (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha256-armv4.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha512-586.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha512-armv4.S (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha512-armv4.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha512-ia64.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha512-mips.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha512-parisc.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha512-ppc.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha512-s390x.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha512-sparcv9.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/asm/sha512-x86_64.pl (100%) rename {jni => src/main/jni}/openssl/crypto/sha/sha.c (100%) rename {jni => src/main/jni}/openssl/crypto/sha/sha.h (100%) rename {jni => src/main/jni}/openssl/crypto/sha/sha1.c (100%) rename {jni => src/main/jni}/openssl/crypto/sha/sha1_one.c (100%) rename {jni => src/main/jni}/openssl/crypto/sha/sha1dgst.c (100%) rename {jni => src/main/jni}/openssl/crypto/sha/sha1test.c (100%) rename {jni => src/main/jni}/openssl/crypto/sha/sha256.c (100%) rename {jni => src/main/jni}/openssl/crypto/sha/sha256t.c (100%) rename {jni => src/main/jni}/openssl/crypto/sha/sha512.c (100%) rename {jni => src/main/jni}/openssl/crypto/sha/sha512t.c (100%) rename {jni => src/main/jni}/openssl/crypto/sha/sha_dgst.c (100%) rename {jni => src/main/jni}/openssl/crypto/sha/sha_locl.h (100%) rename {jni => src/main/jni}/openssl/crypto/sha/sha_one.c (100%) rename {jni => src/main/jni}/openssl/crypto/sha/shatest.c (100%) rename {jni => src/main/jni}/openssl/crypto/sparccpuid.S (100%) rename {jni => src/main/jni}/openssl/crypto/sparcv9cap.c (100%) rename {jni => src/main/jni}/openssl/crypto/srp/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/srp/srp.h (100%) rename {jni => src/main/jni}/openssl/crypto/srp/srp_grps.h (100%) rename {jni => src/main/jni}/openssl/crypto/srp/srp_lcl.h (100%) rename {jni => src/main/jni}/openssl/crypto/srp/srp_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/srp/srp_vfy.c (100%) rename {jni => src/main/jni}/openssl/crypto/srp/srptest.c (100%) rename {jni => src/main/jni}/openssl/crypto/stack/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/stack/safestack.h (100%) rename {jni => src/main/jni}/openssl/crypto/stack/stack.c (100%) rename {jni => src/main/jni}/openssl/crypto/stack/stack.h (100%) rename {jni => src/main/jni}/openssl/crypto/store/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/store/README (100%) rename {jni => src/main/jni}/openssl/crypto/store/store.h (100%) rename {jni => src/main/jni}/openssl/crypto/store/str_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/store/str_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/store/str_locl.h (100%) rename {jni => src/main/jni}/openssl/crypto/store/str_mem.c (100%) rename {jni => src/main/jni}/openssl/crypto/store/str_meth.c (100%) rename {jni => src/main/jni}/openssl/crypto/symhacks.h (100%) rename {jni => src/main/jni}/openssl/crypto/threads/README (100%) rename {jni => src/main/jni}/openssl/crypto/threads/mttest.c (100%) rename {jni => src/main/jni}/openssl/crypto/threads/netware.bat (100%) rename {jni => src/main/jni}/openssl/crypto/threads/profile.sh (100%) rename {jni => src/main/jni}/openssl/crypto/threads/ptest.bat (100%) rename {jni => src/main/jni}/openssl/crypto/threads/pthread.sh (100%) rename {jni => src/main/jni}/openssl/crypto/threads/pthread2.sh (100%) rename {jni => src/main/jni}/openssl/crypto/threads/pthreads-vms.com (100%) rename {jni => src/main/jni}/openssl/crypto/threads/purify.sh (100%) rename {jni => src/main/jni}/openssl/crypto/threads/solaris.sh (100%) rename {jni => src/main/jni}/openssl/crypto/threads/th-lock.c (100%) rename {jni => src/main/jni}/openssl/crypto/threads/win32.bat (100%) rename {jni => src/main/jni}/openssl/crypto/ts/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/ts/ts.h (100%) rename {jni => src/main/jni}/openssl/crypto/ts/ts_asn1.c (100%) rename {jni => src/main/jni}/openssl/crypto/ts/ts_conf.c (100%) rename {jni => src/main/jni}/openssl/crypto/ts/ts_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/ts/ts_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/ts/ts_req_print.c (100%) rename {jni => src/main/jni}/openssl/crypto/ts/ts_req_utils.c (100%) rename {jni => src/main/jni}/openssl/crypto/ts/ts_rsp_print.c (100%) rename {jni => src/main/jni}/openssl/crypto/ts/ts_rsp_sign.c (100%) rename {jni => src/main/jni}/openssl/crypto/ts/ts_rsp_utils.c (100%) rename {jni => src/main/jni}/openssl/crypto/ts/ts_rsp_verify.c (100%) rename {jni => src/main/jni}/openssl/crypto/ts/ts_verify_ctx.c (100%) rename {jni => src/main/jni}/openssl/crypto/txt_db/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/txt_db/txt_db.c (100%) rename {jni => src/main/jni}/openssl/crypto/txt_db/txt_db.h (100%) rename {jni => src/main/jni}/openssl/crypto/ui/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/ui/ui.h (100%) rename {jni => src/main/jni}/openssl/crypto/ui/ui_compat.c (100%) rename {jni => src/main/jni}/openssl/crypto/ui/ui_compat.h (100%) rename {jni => src/main/jni}/openssl/crypto/ui/ui_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/ui/ui_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/ui/ui_locl.h (100%) rename {jni => src/main/jni}/openssl/crypto/ui/ui_openssl.c (100%) rename {jni => src/main/jni}/openssl/crypto/ui/ui_util.c (100%) rename {jni => src/main/jni}/openssl/crypto/uid.c (100%) rename {jni => src/main/jni}/openssl/crypto/vms_rms.h (100%) rename {jni => src/main/jni}/openssl/crypto/whrlpool/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/whrlpool/asm/wp-mmx.pl (100%) rename {jni => src/main/jni}/openssl/crypto/whrlpool/asm/wp-x86_64.pl (100%) rename {jni => src/main/jni}/openssl/crypto/whrlpool/whrlpool.h (100%) rename {jni => src/main/jni}/openssl/crypto/whrlpool/wp_block.c (100%) rename {jni => src/main/jni}/openssl/crypto/whrlpool/wp_dgst.c (100%) rename {jni => src/main/jni}/openssl/crypto/whrlpool/wp_locl.h (100%) rename {jni => src/main/jni}/openssl/crypto/whrlpool/wp_test.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/x509/by_dir.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/by_file.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509.h (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509_att.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509_cmp.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509_d2.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509_def.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509_err.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509_ext.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509_lu.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509_obj.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509_r2x.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509_req.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509_set.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509_trs.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509_txt.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509_v3.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509_vfy.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509_vfy.h (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509_vpm.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509cset.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509name.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509rset.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509spki.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x509type.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509/x_all.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/Makefile (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/ext_dat.h (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/pcy_cache.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/pcy_data.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/pcy_int.h (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/pcy_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/pcy_map.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/pcy_node.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/pcy_tree.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/tabtest.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_addr.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_akey.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_akeya.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_alt.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_asid.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_bcons.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_bitst.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_conf.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_cpols.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_crld.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_enum.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_extku.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_genn.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_ia5.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_info.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_int.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_lib.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_ncons.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_ocsp.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_pci.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_pcia.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_pcons.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_pku.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_pmaps.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_prn.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_purp.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_skey.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_sxnet.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3_utl.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3conf.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3err.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/v3prin.c (100%) rename {jni => src/main/jni}/openssl/crypto/x509v3/x509v3.h (100%) rename {jni => src/main/jni}/openssl/crypto/x86_64cpuid.pl (100%) rename {jni => src/main/jni}/openssl/crypto/x86cpuid.pl (100%) rename {jni => src/main/jni}/openssl/e_os.h (100%) rename {jni => src/main/jni}/openssl/e_os2.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/aes.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/asn1.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/asn1_mac.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/asn1t.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/bio.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/blowfish.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/bn.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/buffer.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/camellia.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/cast.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/cmac.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/comp.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/conf.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/conf_api.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/crypto.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/des.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/des_old.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/dh.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/dsa.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/dso.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/dtls1.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/e_os2.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/ebcdic.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/ec.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/ecdh.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/ecdsa.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/engine.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/err.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/evp.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/hmac.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/idea.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/krb5_asn.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/kssl.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/lhash.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/md4.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/md5.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/mdc2.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/modes.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/obj_mac.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/objects.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/ocsp.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/opensslconf.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/opensslv.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/ossl_typ.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/pem.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/pem2.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/pkcs12.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/pkcs7.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/pqueue.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/rand.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/rc2.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/rc4.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/ripemd.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/rsa.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/safestack.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/seed.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/sha.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/srp.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/srtp.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/ssl.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/ssl2.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/ssl23.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/ssl3.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/stack.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/symhacks.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/tls1.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/ts.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/txt_db.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/ui.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/ui_compat.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/whrlpool.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/x509.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/x509_vfy.h (100%) rename {jni => src/main/jni}/openssl/include/openssl/x509v3.h (100%) rename {jni => src/main/jni}/openssl/ssl/Android.mk (100%) rename {jni => src/main/jni}/openssl/ssl/Makefile (100%) rename {jni => src/main/jni}/openssl/ssl/bio_ssl.c (100%) rename {jni => src/main/jni}/openssl/ssl/d1_both.c (100%) rename {jni => src/main/jni}/openssl/ssl/d1_clnt.c (100%) rename {jni => src/main/jni}/openssl/ssl/d1_enc.c (100%) rename {jni => src/main/jni}/openssl/ssl/d1_lib.c (100%) rename {jni => src/main/jni}/openssl/ssl/d1_meth.c (100%) rename {jni => src/main/jni}/openssl/ssl/d1_pkt.c (100%) rename {jni => src/main/jni}/openssl/ssl/d1_srtp.c (100%) rename {jni => src/main/jni}/openssl/ssl/d1_srvr.c (100%) rename {jni => src/main/jni}/openssl/ssl/dtls1.h (100%) rename {jni => src/main/jni}/openssl/ssl/install-ssl.com (100%) rename {jni => src/main/jni}/openssl/ssl/kssl.c (100%) rename {jni => src/main/jni}/openssl/ssl/kssl.h (100%) rename {jni => src/main/jni}/openssl/ssl/kssl_lcl.h (100%) rename {jni => src/main/jni}/openssl/ssl/s23_clnt.c (100%) rename {jni => src/main/jni}/openssl/ssl/s23_lib.c (100%) rename {jni => src/main/jni}/openssl/ssl/s23_meth.c (100%) rename {jni => src/main/jni}/openssl/ssl/s23_pkt.c (100%) rename {jni => src/main/jni}/openssl/ssl/s23_srvr.c (100%) rename {jni => src/main/jni}/openssl/ssl/s2_clnt.c (100%) rename {jni => src/main/jni}/openssl/ssl/s2_enc.c (100%) rename {jni => src/main/jni}/openssl/ssl/s2_lib.c (100%) rename {jni => src/main/jni}/openssl/ssl/s2_meth.c (100%) rename {jni => src/main/jni}/openssl/ssl/s2_pkt.c (100%) rename {jni => src/main/jni}/openssl/ssl/s2_srvr.c (100%) rename {jni => src/main/jni}/openssl/ssl/s3_both.c (100%) rename {jni => src/main/jni}/openssl/ssl/s3_clnt.c (100%) rename {jni => src/main/jni}/openssl/ssl/s3_enc.c (100%) rename {jni => src/main/jni}/openssl/ssl/s3_lib.c (100%) rename {jni => src/main/jni}/openssl/ssl/s3_meth.c (100%) rename {jni => src/main/jni}/openssl/ssl/s3_pkt.c (100%) rename {jni => src/main/jni}/openssl/ssl/s3_srvr.c (100%) rename {jni => src/main/jni}/openssl/ssl/srtp.h (100%) rename {jni => src/main/jni}/openssl/ssl/ssl-lib.com (100%) rename {jni => src/main/jni}/openssl/ssl/ssl.h (100%) rename {jni => src/main/jni}/openssl/ssl/ssl2.h (100%) rename {jni => src/main/jni}/openssl/ssl/ssl23.h (100%) rename {jni => src/main/jni}/openssl/ssl/ssl3.h (100%) rename {jni => src/main/jni}/openssl/ssl/ssl_algs.c (100%) rename {jni => src/main/jni}/openssl/ssl/ssl_asn1.c (100%) rename {jni => src/main/jni}/openssl/ssl/ssl_cert.c (100%) rename {jni => src/main/jni}/openssl/ssl/ssl_ciph.c (100%) rename {jni => src/main/jni}/openssl/ssl/ssl_err.c (100%) rename {jni => src/main/jni}/openssl/ssl/ssl_err2.c (100%) rename {jni => src/main/jni}/openssl/ssl/ssl_lib.c (100%) rename {jni => src/main/jni}/openssl/ssl/ssl_locl.h (100%) rename {jni => src/main/jni}/openssl/ssl/ssl_rsa.c (100%) rename {jni => src/main/jni}/openssl/ssl/ssl_sess.c (100%) rename {jni => src/main/jni}/openssl/ssl/ssl_stat.c (100%) rename {jni => src/main/jni}/openssl/ssl/ssl_task.c (100%) rename {jni => src/main/jni}/openssl/ssl/ssl_txt.c (100%) rename {jni => src/main/jni}/openssl/ssl/ssltest.c (100%) rename {jni => src/main/jni}/openssl/ssl/t1_clnt.c (100%) rename {jni => src/main/jni}/openssl/ssl/t1_enc.c (100%) rename {jni => src/main/jni}/openssl/ssl/t1_lib.c (100%) rename {jni => src/main/jni}/openssl/ssl/t1_meth.c (100%) rename {jni => src/main/jni}/openssl/ssl/t1_reneg.c (100%) rename {jni => src/main/jni}/openssl/ssl/t1_srvr.c (100%) rename {jni => src/main/jni}/openssl/ssl/tls1.h (100%) rename {jni => src/main/jni}/openssl/ssl/tls_srp.c (100%) rename {jni => src/main/jni}/pdnsd/Makefile (100%) rename {jni => src/main/jni}/pdnsd/Makefile.am (100%) rename {jni => src/main/jni}/pdnsd/Makefile.in (100%) rename {jni => src/main/jni}/pdnsd/cache.c (100%) rename {jni => src/main/jni}/pdnsd/cache.h (100%) rename {jni => src/main/jni}/pdnsd/conf-keywords.h (100%) rename {jni => src/main/jni}/pdnsd/conf-parser.c (100%) rename {jni => src/main/jni}/pdnsd/conf-parser.h (100%) rename {jni => src/main/jni}/pdnsd/conff.c (100%) rename {jni => src/main/jni}/pdnsd/conff.h (100%) rename {jni => src/main/jni}/pdnsd/config.h (100%) rename {jni => src/main/jni}/pdnsd/consts.c (100%) rename {jni => src/main/jni}/pdnsd/consts.h (100%) rename {jni => src/main/jni}/pdnsd/debug.c (100%) rename {jni => src/main/jni}/pdnsd/debug.h (100%) rename {jni => src/main/jni}/pdnsd/dns.c (100%) rename {jni => src/main/jni}/pdnsd/dns.h (100%) rename {jni => src/main/jni}/pdnsd/dns_answer.c (100%) rename {jni => src/main/jni}/pdnsd/dns_answer.h (100%) rename {jni => src/main/jni}/pdnsd/dns_query.c (100%) rename {jni => src/main/jni}/pdnsd/dns_query.h (100%) rename {jni => src/main/jni}/pdnsd/error.c (100%) rename {jni => src/main/jni}/pdnsd/error.h (100%) rename {jni => src/main/jni}/pdnsd/freebsd_netinet_ip_icmp.h (100%) rename {jni => src/main/jni}/pdnsd/hash.c (100%) rename {jni => src/main/jni}/pdnsd/hash.h (100%) rename {jni => src/main/jni}/pdnsd/helpers.c (100%) rename {jni => src/main/jni}/pdnsd/helpers.h (100%) rename {jni => src/main/jni}/pdnsd/icmp.c (100%) rename {jni => src/main/jni}/pdnsd/icmp.h (100%) rename {jni => src/main/jni}/pdnsd/ipvers.h (100%) rename {jni => src/main/jni}/pdnsd/list.c (100%) rename {jni => src/main/jni}/pdnsd/list.h (100%) rename {jni => src/main/jni}/pdnsd/main.c (100%) rename {jni => src/main/jni}/pdnsd/make_rr_types_h.pl (100%) rename {jni => src/main/jni}/pdnsd/netdev.c (100%) rename {jni => src/main/jni}/pdnsd/netdev.h (100%) rename {jni => src/main/jni}/pdnsd/pdnsd-ctl/.deps/pdnsd-ctl.Po (100%) rename {jni => src/main/jni}/pdnsd/pdnsd-ctl/Makefile (100%) rename {jni => src/main/jni}/pdnsd/pdnsd-ctl/Makefile.am (100%) rename {jni => src/main/jni}/pdnsd/pdnsd-ctl/Makefile.in (100%) rename {jni => src/main/jni}/pdnsd/pdnsd-ctl/pdnsd-ctl.c (100%) rename {jni => src/main/jni}/pdnsd/pdnsd_assert.h (100%) rename {jni => src/main/jni}/pdnsd/rc/ArchLinux/Makefile (100%) rename {jni => src/main/jni}/pdnsd/rc/ArchLinux/Makefile.am (100%) rename {jni => src/main/jni}/pdnsd/rc/ArchLinux/Makefile.in (100%) rename {jni => src/main/jni}/pdnsd/rc/ArchLinux/pdnsd (100%) rename {jni => src/main/jni}/pdnsd/rc/ArchLinux/pdnsd.in (100%) rename {jni => src/main/jni}/pdnsd/rc/Debian/Makefile (100%) rename {jni => src/main/jni}/pdnsd/rc/Debian/Makefile.am (100%) rename {jni => src/main/jni}/pdnsd/rc/Debian/Makefile.in (100%) rename {jni => src/main/jni}/pdnsd/rc/Debian/pdnsd (100%) rename {jni => src/main/jni}/pdnsd/rc/Debian/pdnsd.in (100%) rename {jni => src/main/jni}/pdnsd/rc/Makefile (100%) rename {jni => src/main/jni}/pdnsd/rc/Makefile.am (100%) rename {jni => src/main/jni}/pdnsd/rc/Makefile.in (100%) rename {jni => src/main/jni}/pdnsd/rc/README (100%) rename {jni => src/main/jni}/pdnsd/rc/RedHat/Makefile (100%) rename {jni => src/main/jni}/pdnsd/rc/RedHat/Makefile.am (100%) rename {jni => src/main/jni}/pdnsd/rc/RedHat/Makefile.in (100%) rename {jni => src/main/jni}/pdnsd/rc/RedHat/pdnsd (100%) rename {jni => src/main/jni}/pdnsd/rc/RedHat/pdnsd.in (100%) rename {jni => src/main/jni}/pdnsd/rc/Slackware/Makefile (100%) rename {jni => src/main/jni}/pdnsd/rc/Slackware/Makefile.am (100%) rename {jni => src/main/jni}/pdnsd/rc/Slackware/Makefile.in (100%) rename {jni => src/main/jni}/pdnsd/rc/Slackware/rc.pdnsd (100%) rename {jni => src/main/jni}/pdnsd/rc/Slackware/rc.pdnsd.in (100%) rename {jni => src/main/jni}/pdnsd/rc/SuSE/Makefile (100%) rename {jni => src/main/jni}/pdnsd/rc/SuSE/Makefile.am (100%) rename {jni => src/main/jni}/pdnsd/rc/SuSE/Makefile.in (100%) rename {jni => src/main/jni}/pdnsd/rc/SuSE/pdnsd (100%) rename {jni => src/main/jni}/pdnsd/rc/SuSE/pdnsd.in (100%) rename {jni => src/main/jni}/pdnsd/rr_types.c (100%) rename {jni => src/main/jni}/pdnsd/rr_types.h (100%) rename {jni => src/main/jni}/pdnsd/rr_types.in (100%) rename {jni => src/main/jni}/pdnsd/servers.c (100%) rename {jni => src/main/jni}/pdnsd/servers.h (100%) rename {jni => src/main/jni}/pdnsd/status.c (100%) rename {jni => src/main/jni}/pdnsd/status.h (100%) rename {jni => src/main/jni}/pdnsd/test/.deps/if_up.Po (100%) rename {jni => src/main/jni}/pdnsd/test/.deps/is_local_addr.Po (100%) rename {jni => src/main/jni}/pdnsd/test/.deps/random.Po (100%) rename {jni => src/main/jni}/pdnsd/test/.deps/tping.Po (100%) rename {jni => src/main/jni}/pdnsd/test/Makefile (100%) rename {jni => src/main/jni}/pdnsd/test/Makefile.am (100%) rename {jni => src/main/jni}/pdnsd/test/Makefile.in (100%) rename {jni => src/main/jni}/pdnsd/test/if_up.c (100%) rename {jni => src/main/jni}/pdnsd/test/is_local_addr.c (100%) rename {jni => src/main/jni}/pdnsd/test/random.c (100%) rename {jni => src/main/jni}/pdnsd/test/tping.c (100%) rename {jni => src/main/jni}/pdnsd/thread.c (100%) rename {jni => src/main/jni}/pdnsd/thread.h (100%) rename {jni => src/main/jni}/polipo/atom.c (100%) rename {jni => src/main/jni}/polipo/atom.h (100%) rename {jni => src/main/jni}/polipo/auth.c (100%) rename {jni => src/main/jni}/polipo/auth.h (100%) rename {jni => src/main/jni}/polipo/chunk.c (100%) rename {jni => src/main/jni}/polipo/chunk.h (100%) rename {jni => src/main/jni}/polipo/client.c (100%) rename {jni => src/main/jni}/polipo/client.h (100%) rename {jni => src/main/jni}/polipo/config.c (100%) rename {jni => src/main/jni}/polipo/config.h (100%) rename {jni => src/main/jni}/polipo/dirent_compat.c (100%) rename {jni => src/main/jni}/polipo/dirent_compat.h (100%) rename {jni => src/main/jni}/polipo/diskcache.c (100%) rename {jni => src/main/jni}/polipo/diskcache.h (100%) rename {jni => src/main/jni}/polipo/dns.c (100%) rename {jni => src/main/jni}/polipo/dns.h (100%) rename {jni => src/main/jni}/polipo/event.c (100%) rename {jni => src/main/jni}/polipo/event.h (100%) rename {jni => src/main/jni}/polipo/forbidden.c (100%) rename {jni => src/main/jni}/polipo/forbidden.h (100%) rename {jni => src/main/jni}/polipo/fts_compat.c (100%) rename {jni => src/main/jni}/polipo/fts_compat.h (100%) rename {jni => src/main/jni}/polipo/ftsimport.c (100%) rename {jni => src/main/jni}/polipo/ftsimport.h (100%) rename {jni => src/main/jni}/polipo/http.c (100%) rename {jni => src/main/jni}/polipo/http.h (100%) rename {jni => src/main/jni}/polipo/http_parse.c (100%) rename {jni => src/main/jni}/polipo/http_parse.h (100%) rename {jni => src/main/jni}/polipo/io.c (100%) rename {jni => src/main/jni}/polipo/io.h (100%) rename {jni => src/main/jni}/polipo/local.c (100%) rename {jni => src/main/jni}/polipo/local.h (100%) rename {jni => src/main/jni}/polipo/log.c (100%) rename {jni => src/main/jni}/polipo/log.h (100%) rename {jni => src/main/jni}/polipo/main.c (100%) rename {jni => src/main/jni}/polipo/md5.c (100%) rename {jni => src/main/jni}/polipo/md5.h (100%) rename {jni => src/main/jni}/polipo/md5import.c (100%) rename {jni => src/main/jni}/polipo/md5import.h (100%) rename {jni => src/main/jni}/polipo/mingw.c (100%) rename {jni => src/main/jni}/polipo/mingw.h (100%) rename {jni => src/main/jni}/polipo/object.c (100%) rename {jni => src/main/jni}/polipo/object.h (100%) rename {jni => src/main/jni}/polipo/parse_time.c (100%) rename {jni => src/main/jni}/polipo/parse_time.h (100%) rename {jni => src/main/jni}/polipo/polipo.h (100%) rename {jni => src/main/jni}/polipo/server.c (100%) rename {jni => src/main/jni}/polipo/server.h (100%) rename {jni => src/main/jni}/polipo/socks.c (100%) rename {jni => src/main/jni}/polipo/socks.h (100%) rename {jni => src/main/jni}/polipo/tunnel.c (100%) rename {jni => src/main/jni}/polipo/tunnel.h (100%) rename {jni => src/main/jni}/polipo/util.c (100%) rename {jni => src/main/jni}/polipo/util.h (100%) rename {jni => src/main/jni}/redsocks/base.c (100%) rename {jni => src/main/jni}/redsocks/base.h (100%) rename {jni => src/main/jni}/redsocks/base64.c (100%) rename {jni => src/main/jni}/redsocks/base64.h (100%) rename {jni => src/main/jni}/redsocks/config.h (100%) rename {jni => src/main/jni}/redsocks/dnstc.c (100%) rename {jni => src/main/jni}/redsocks/dnstc.h (100%) rename {jni => src/main/jni}/redsocks/http-auth.c (100%) rename {jni => src/main/jni}/redsocks/http-auth.h (100%) rename {jni => src/main/jni}/redsocks/http-connect.c (100%) rename {jni => src/main/jni}/redsocks/http-relay.c (100%) rename {jni => src/main/jni}/redsocks/libc-compat.h (100%) rename {jni => src/main/jni}/redsocks/libevent-compat.h (100%) rename {jni => src/main/jni}/redsocks/list.h (100%) rename {jni => src/main/jni}/redsocks/log.c (100%) rename {jni => src/main/jni}/redsocks/log.h (100%) rename {jni => src/main/jni}/redsocks/main.c (100%) rename {jni => src/main/jni}/redsocks/main.h (100%) rename {jni => src/main/jni}/redsocks/md5.c (100%) rename {jni => src/main/jni}/redsocks/md5.h (100%) rename {jni => src/main/jni}/redsocks/parser.c (100%) rename {jni => src/main/jni}/redsocks/parser.h (100%) rename {jni => src/main/jni}/redsocks/reddns.c (100%) rename {jni => src/main/jni}/redsocks/redsocks.c (100%) rename {jni => src/main/jni}/redsocks/redsocks.h (100%) rename {jni => src/main/jni}/redsocks/redudp.c (100%) rename {jni => src/main/jni}/redsocks/redudp.h (100%) rename {jni => src/main/jni}/redsocks/socks4.c (100%) rename {jni => src/main/jni}/redsocks/socks5.c (100%) rename {jni => src/main/jni}/redsocks/socks5.h (100%) rename {jni => src/main/jni}/redsocks/utils.c (100%) rename {jni => src/main/jni}/redsocks/utils.h (100%) rename {jni => src/main/jni}/redsocks/version.h (100%) rename {jni => src/main/jni}/system.cpp (100%) rename {jni => src/main/jni}/termExec.cpp (100%) rename {libs => src/main/libs}/armeabi/libexec.so (100%) rename {libs => src/main/libs}/armeabi/libsystem.so (100%) rename {libs => src/main/libs}/x86/libexec.so (100%) rename {libs => src/main/libs}/x86/libsystem.so (100%) rename {res => src/main/res}/drawable-hdpi-v11/ic_stat_shadowsocks.png (100%) rename {res => src/main/res}/drawable-hdpi-v9/ic_stat_shadowsocks.png (100%) rename {res => src/main/res}/drawable-hdpi/ab_bottom_solid_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/ab_solid_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/ab_stacked_solid_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/ab_transparent_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/btn_cab_done_default_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/btn_cab_done_focused_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/btn_cab_done_pressed_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/cab_background_bottom_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/cab_background_top_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/ic_launcher.png (100%) rename {res => src/main/res}/drawable-hdpi/ic_stat_large.png (100%) rename {res => src/main/res}/drawable-hdpi/ic_stat_shadowsocks.png (100%) rename {res => src/main/res}/drawable-hdpi/ing.png (100%) rename {res => src/main/res}/drawable-hdpi/list_focused_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/menu_dropdown_panel_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/off.png (100%) rename {res => src/main/res}/drawable-hdpi/on.png (100%) rename {res => src/main/res}/drawable-hdpi/progress_bg_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/progress_primary_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/progress_secondary_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/spinner_ab_default_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/spinner_ab_disabled_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/spinner_ab_focused_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/spinner_ab_pressed_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/tab_selected_focused_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/tab_selected_pressed_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/tab_selected_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/tab_unselected_focused_shadow.9.png (100%) rename {res => src/main/res}/drawable-hdpi/tab_unselected_pressed_shadow.9.png (100%) rename {res => src/main/res}/drawable-ldpi-v11/ic_stat_shadowsocks.png (100%) rename {res => src/main/res}/drawable-ldpi-v9/ic_stat_shadowsocks.png (100%) rename {res => src/main/res}/drawable-ldpi/ing.png (100%) rename {res => src/main/res}/drawable-ldpi/off.png (100%) rename {res => src/main/res}/drawable-ldpi/on.png (100%) rename {res => src/main/res}/drawable-mdpi-v11/ic_stat_shadowsocks.png (100%) rename {res => src/main/res}/drawable-mdpi-v9/ic_stat_shadowsocks.png (100%) rename {res => src/main/res}/drawable-mdpi/ab_bottom_solid_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/ab_solid_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/ab_stacked_solid_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/ab_transparent_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/btn_cab_done_default_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/btn_cab_done_focused_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/btn_cab_done_pressed_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/cab_background_bottom_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/cab_background_top_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/ic_launcher.png (100%) rename {res => src/main/res}/drawable-mdpi/ic_stat_large.png (100%) rename {res => src/main/res}/drawable-mdpi/ic_stat_shadowsocks.png (100%) rename {res => src/main/res}/drawable-mdpi/ing.png (100%) rename {res => src/main/res}/drawable-mdpi/list_focused_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/menu_dropdown_panel_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/off.png (100%) rename {res => src/main/res}/drawable-mdpi/on.png (100%) rename {res => src/main/res}/drawable-mdpi/progress_bg_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/progress_primary_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/progress_secondary_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/spinner_ab_default_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/spinner_ab_disabled_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/spinner_ab_focused_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/spinner_ab_pressed_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/tab_selected_focused_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/tab_selected_pressed_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/tab_selected_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/tab_unselected_focused_shadow.9.png (100%) rename {res => src/main/res}/drawable-mdpi/tab_unselected_pressed_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi-v11/ic_stat_shadowsocks.png (100%) rename {res => src/main/res}/drawable-xhdpi-v9/ic_stat_shadowsocks.png (100%) rename {res => src/main/res}/drawable-xhdpi/ab_bottom_solid_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/ab_solid_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/ab_stacked_solid_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/ab_transparent_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/btn_cab_done_default_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/btn_cab_done_focused_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/btn_cab_done_pressed_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/cab_background_bottom_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/cab_background_top_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/ic_launcher.png (100%) rename {res => src/main/res}/drawable-xhdpi/ic_stat_large.png (100%) rename {res => src/main/res}/drawable-xhdpi/ic_stat_shadowsocks.png (100%) rename {res => src/main/res}/drawable-xhdpi/list_focused_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/menu_dropdown_panel_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/progress_bg_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/progress_primary_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/progress_secondary_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/spinner_ab_default_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/spinner_ab_disabled_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/spinner_ab_focused_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/spinner_ab_pressed_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/tab_selected_focused_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/tab_selected_pressed_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/tab_selected_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/tab_unselected_focused_shadow.9.png (100%) rename {res => src/main/res}/drawable-xhdpi/tab_unselected_pressed_shadow.9.png (100%) rename {res => src/main/res}/drawable-xxhdpi/ic_launcher.png (100%) rename {res => src/main/res}/drawable/btn_cab_done_shadow.xml (100%) rename {res => src/main/res}/drawable/pressed_background_shadow.xml (100%) rename {res => src/main/res}/drawable/progress_horizontal_shadow.xml (100%) rename {res => src/main/res}/drawable/selectable_background_shadow.xml (100%) rename {res => src/main/res}/drawable/spinner_background_ab_shadow.xml (100%) rename {res => src/main/res}/drawable/tab_indicator_ab_shadow.xml (100%) rename {res => src/main/res}/layout/layout_apps.xml (100%) rename {res => src/main/res}/layout/layout_apps_item.xml (100%) rename {res => src/main/res}/layout/layout_switch.xml (100%) create mode 100644 src/main/res/layout/main.xml rename {res => src/main/res}/layout/overlay.xml (100%) rename {res => src/main/res}/values-v14/styles_shadow.xml (100%) rename {res => src/main/res}/values/analytics.xml (100%) rename {res => src/main/res}/values/colors.xml (100%) rename {res => src/main/res}/values/colors_shadow.xml (100%) rename {res => src/main/res}/values/strings.xml (100%) rename {res => src/main/res}/values/styles.xml (100%) rename {res => src/main/res}/values/styles_shadow.xml (100%) rename {res => src/main/res}/xml/pref_feature.xml (100%) rename {res => src/main/res}/xml/pref_proxy.xml (100%) rename {res => src/main/res}/xml/shadowsocks_headers.xml (100%) create mode 100644 src/main/scala/com/github/shadowsocks/AppManager.scala create mode 100644 src/main/scala/com/github/shadowsocks/ImageLoader.scala rename src/{com/github/shadowsocks/ProxyedApp.java => main/scala/com/github/shadowsocks/ProxiedApp.scala} (68%) mode change 100755 => 100644 create mode 100644 src/main/scala/com/github/shadowsocks/Shadowsocks.scala rename src/{com/github/shadowsocks/ImageLoaderFactory.java => main/scala/com/github/shadowsocks/ShadowsocksApplication.scala} (86%) mode change 100755 => 100644 rename src/{com/github/shadowsocks/ShadowsocksReceiver.java => main/scala/com/github/shadowsocks/ShadowsocksReceiver.scala} (55%) create mode 100644 src/main/scala/com/github/shadowsocks/ShadowsocksService.scala create mode 100644 src/main/scala/com/github/shadowsocks/Utils.scala create mode 100644 src/main/scala/com/github/shadowsocks/preferences/SummaryEditTextPreference.scala delete mode 100755 travis.keystore 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 0eb23ffc856c0be263f8003c49a48d9371a58e88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 182640 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 diff --git a/assets/x86/ip6tables b/assets/x86/ip6tables deleted file mode 100755 index 2eace5dd74acb4bec007bdf82462f343b3dba710..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 264764 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

+?N4Y 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

    )Ynn2?xb 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 goc>n+a diff --git a/assets/x86/iptables b/assets/x86/iptables deleted file mode 100755 index 90343f0a1e8ec9b8d9474a0d11c70fd547c752d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 273596 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 K<^@2>b^RX!wFf`| 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 821213875b0e4e7ce871d34d812f8c4b0b42b80e..03a83b233f31f39be5f08811d49e77edb5dd53cb 100755 GIT binary patch delta 45438 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 diff --git a/src/main/assets/arm/iptables b/src/main/assets/arm/iptables new file mode 100755 index 0000000000000000000000000000000000000000..c777e1e5d41f27ed69a140f572b2dcfce1e07981 GIT binary patch literal 182640 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∈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%0AjwnZ@mIrz%?%6Z2NP7Ww8oK`ozfb@o1XP-YC{~ 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

    d<;Cl>@oh<2SC9hu4 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 RWHE|*6rjFt+Z36R{6DFL5`F*x 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 0000000000000000000000000000000000000000..16a0802bfcf12733264367fcbc9dbb19ca3aa742 GIT binary patch literal 264764 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%0A*m6CHD^`dRs5$ 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�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

    t1Xem)+l6__lU!b_C4 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 X9W_(!1}r<=z`pE={-Lk(1N;96?_h?} delta 22204 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 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 fb6d8520d609a8a14dd6c4057497c34c7e637ef1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2261 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%0DX>_$LfS^ykZAfBq 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