├── xposedwechat ├── assets │ └── xposed_init ├── bin │ ├── classes.dex │ ├── resources.ap_ │ ├── xposedwechat.apk │ ├── jarlist.cache │ ├── classes │ │ └── com │ │ │ └── example │ │ │ └── xposedwechat │ │ │ ├── R.class │ │ │ ├── R$id.class │ │ │ ├── R$attr.class │ │ │ ├── R$dimen.class │ │ │ ├── R$menu.class │ │ │ ├── R$style.class │ │ │ ├── wechat.class │ │ │ ├── R$drawable.class │ │ │ ├── R$layout.class │ │ │ ├── R$string.class │ │ │ ├── countmd5.class │ │ │ ├── wechat$1.class │ │ │ ├── BuildConfig.class │ │ │ └── MainActivity.class │ ├── res │ │ └── crunch │ │ │ ├── drawable-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── drawable-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── drawable-xhdpi │ │ │ └── ic_launcher.png │ │ │ └── drawable-xxhdpi │ │ │ └── ic_launcher.png │ ├── dexedLibs │ │ └── android-support-v4-1974dd7404feab14f606bf5dcb2877a7.jar │ └── AndroidManifest.xml ├── ic_launcher-web.png ├── lib │ └── XposedBridgeApi-54.jar ├── libs │ └── android-support-v4.jar ├── res │ ├── drawable-hdpi │ │ └── ic_launcher.png │ ├── drawable-mdpi │ │ └── ic_launcher.png │ ├── drawable-xhdpi │ │ └── ic_launcher.png │ ├── drawable-xxhdpi │ │ └── ic_launcher.png │ ├── values-sw600dp │ │ └── dimens.xml │ ├── values │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── menu │ │ └── main.xml │ ├── values-sw720dp-land │ │ └── dimens.xml │ ├── values-v11 │ │ └── styles.xml │ ├── values-v14 │ │ └── styles.xml │ └── layout │ │ └── activity_main.xml ├── src │ └── com │ │ └── example │ │ └── xposedwechat │ │ ├── wechat.java │ │ ├── MainActivity.java │ │ └── countmd5.java ├── gen │ └── com │ │ └── example │ │ └── xposedwechat │ │ ├── BuildConfig.java │ │ └── R.java ├── project.properties ├── proguard-project.txt └── AndroidManifest.xml ├── xposedwechat.rar └── README.md /xposedwechat/assets/xposed_init: -------------------------------------------------------------------------------- 1 | com.example.xposedwechat.wechat -------------------------------------------------------------------------------- /xposedwechat.rar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat.rar -------------------------------------------------------------------------------- /xposedwechat/bin/classes.dex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/classes.dex -------------------------------------------------------------------------------- /xposedwechat/bin/resources.ap_: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/resources.ap_ -------------------------------------------------------------------------------- /xposedwechat/bin/xposedwechat.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/xposedwechat.apk -------------------------------------------------------------------------------- /xposedwechat/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/ic_launcher-web.png -------------------------------------------------------------------------------- /xposedwechat/lib/XposedBridgeApi-54.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/lib/XposedBridgeApi-54.jar -------------------------------------------------------------------------------- /xposedwechat/libs/android-support-v4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/libs/android-support-v4.jar -------------------------------------------------------------------------------- /xposedwechat/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /xposedwechat/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /xposedwechat/bin/jarlist.cache: -------------------------------------------------------------------------------- 1 | # cache for current jar dependency. DO NOT EDIT. 2 | # format is 3 | # Encoding is UTF-8 4 | -------------------------------------------------------------------------------- /xposedwechat/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /xposedwechat/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /xposedwechat/src/com/example/xposedwechat/wechat.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/src/com/example/xposedwechat/wechat.java -------------------------------------------------------------------------------- /xposedwechat/bin/classes/com/example/xposedwechat/R.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/classes/com/example/xposedwechat/R.class -------------------------------------------------------------------------------- /xposedwechat/bin/res/crunch/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/res/crunch/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /xposedwechat/bin/res/crunch/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/res/crunch/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /xposedwechat/bin/res/crunch/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/res/crunch/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /xposedwechat/bin/classes/com/example/xposedwechat/R$id.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/classes/com/example/xposedwechat/R$id.class -------------------------------------------------------------------------------- /xposedwechat/bin/res/crunch/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/res/crunch/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /xposedwechat/bin/classes/com/example/xposedwechat/R$attr.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/classes/com/example/xposedwechat/R$attr.class -------------------------------------------------------------------------------- /xposedwechat/bin/classes/com/example/xposedwechat/R$dimen.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/classes/com/example/xposedwechat/R$dimen.class -------------------------------------------------------------------------------- /xposedwechat/bin/classes/com/example/xposedwechat/R$menu.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/classes/com/example/xposedwechat/R$menu.class -------------------------------------------------------------------------------- /xposedwechat/bin/classes/com/example/xposedwechat/R$style.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/classes/com/example/xposedwechat/R$style.class -------------------------------------------------------------------------------- /xposedwechat/bin/classes/com/example/xposedwechat/wechat.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/classes/com/example/xposedwechat/wechat.class -------------------------------------------------------------------------------- /xposedwechat/bin/classes/com/example/xposedwechat/R$drawable.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/classes/com/example/xposedwechat/R$drawable.class -------------------------------------------------------------------------------- /xposedwechat/bin/classes/com/example/xposedwechat/R$layout.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/classes/com/example/xposedwechat/R$layout.class -------------------------------------------------------------------------------- /xposedwechat/bin/classes/com/example/xposedwechat/R$string.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/classes/com/example/xposedwechat/R$string.class -------------------------------------------------------------------------------- /xposedwechat/bin/classes/com/example/xposedwechat/countmd5.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/classes/com/example/xposedwechat/countmd5.class -------------------------------------------------------------------------------- /xposedwechat/bin/classes/com/example/xposedwechat/wechat$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/classes/com/example/xposedwechat/wechat$1.class -------------------------------------------------------------------------------- /xposedwechat/bin/classes/com/example/xposedwechat/BuildConfig.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/classes/com/example/xposedwechat/BuildConfig.class -------------------------------------------------------------------------------- /xposedwechat/bin/classes/com/example/xposedwechat/MainActivity.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/classes/com/example/xposedwechat/MainActivity.class -------------------------------------------------------------------------------- /xposedwechat/bin/dexedLibs/android-support-v4-1974dd7404feab14f606bf5dcb2877a7.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/houjingyi233/WechatUploadVideo/HEAD/xposedwechat/bin/dexedLibs/android-support-v4-1974dd7404feab14f606bf5dcb2877a7.jar -------------------------------------------------------------------------------- /xposedwechat/gen/com/example/xposedwechat/BuildConfig.java: -------------------------------------------------------------------------------- 1 | /** Automatically generated file. DO NOT MODIFY */ 2 | package com.example.xposedwechat; 3 | 4 | public final class BuildConfig { 5 | public final static boolean DEBUG = true; 6 | } -------------------------------------------------------------------------------- /xposedwechat/res/values-sw600dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /xposedwechat/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16dp 5 | 16dp 6 | 7 | 8 | -------------------------------------------------------------------------------- /xposedwechat/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | xposedwechat 5 | Settings 6 | Hello world! 7 | 8 | 9 | -------------------------------------------------------------------------------- /xposedwechat/res/menu/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /xposedwechat/res/values-sw720dp-land/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 128dp 8 | 9 | 10 | -------------------------------------------------------------------------------- /xposedwechat/res/values-v11/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /xposedwechat/res/values-v14/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # WechatUploadVideo 2 | 基于xposed框架实现的本地视频发布到朋友圈,原理是根据别人一篇博客:http://www.520monkey.com/archives/906 3 | 4 | ![image](https://github.com/houjingyi233/Screenshots/blob/master/QQ%E5%9B%BE%E7%89%8720170405152000.png)   5 | 6 | 在代码中,视频文件和封面图片都在/data/local/tmp/路径下,名称分别为weixin_share.mp4和weixin_share.jpg。另外根据微信方面的规定,小视频长度不能超过15s,大小不能超过1M。有需要的话请修改源代码并重新编译,在bin目录下有编译好的apk,演示gif如下。   7 | 8 | 图片名称 9 | 10 | -------------------------------------------------------------------------------- /xposedwechat/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-19 15 | -------------------------------------------------------------------------------- /xposedwechat/src/com/example/xposedwechat/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.example.xposedwechat; 2 | 3 | import android.os.Bundle; 4 | import com.example.xposedwechat.R; 5 | import android.app.Activity; 6 | import android.view.Menu; 7 | 8 | public class MainActivity extends Activity 9 | { 10 | 11 | @Override 12 | protected void onCreate(Bundle savedInstanceState) 13 | { 14 | super.onCreate(savedInstanceState); 15 | setContentView(R.layout.activity_main); 16 | } 17 | 18 | @Override 19 | public boolean onCreateOptionsMenu(Menu menu) 20 | { 21 | // Inflate the menu; this adds items to the action bar if it is present. 22 | getMenuInflater().inflate(R.menu.main, menu); 23 | return true; 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /xposedwechat/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /xposedwechat/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 14 | 15 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /xposedwechat/proguard-project.txt: -------------------------------------------------------------------------------- 1 | # To enable ProGuard in your project, edit project.properties 2 | # to define the proguard.config property as described in that file. 3 | # 4 | # Add project specific ProGuard rules here. 5 | # By default, the flags in this file are appended to flags specified 6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt 7 | # You can edit the include path and order by changing the ProGuard 8 | # include property in project.properties. 9 | # 10 | # For more details, see 11 | # http://developer.android.com/guide/developing/tools/proguard.html 12 | 13 | # Add any project specific keep options here: 14 | 15 | # If your project uses WebView with JS, uncomment the following 16 | # and specify the fully qualified class name to the JavaScript interface 17 | # class: 18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 19 | # public *; 20 | #} 21 | -------------------------------------------------------------------------------- /xposedwechat/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 12 | 13 | 16 | 19 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /xposedwechat/bin/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 12 | 13 | 16 | 19 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /xposedwechat/src/com/example/xposedwechat/countmd5.java: -------------------------------------------------------------------------------- 1 | package com.example.xposedwechat; 2 | 3 | import java.io.File; 4 | import java.io.FileInputStream; 5 | import java.io.IOException; 6 | import java.io.InputStream; 7 | import java.security.MessageDigest; 8 | import java.security.NoSuchAlgorithmException; 9 | 10 | public class countmd5 11 | { 12 | public static final String a(InputStream inputStream, int i) throws NoSuchAlgorithmException, IOException 13 | { 14 | String str = null; 15 | if (inputStream != null && i > 0) 16 | { 17 | MessageDigest instance = MessageDigest.getInstance("MD5"); 18 | StringBuilder stringBuilder = new StringBuilder(32); 19 | byte[] bArr = new byte[i]; 20 | while (true) 21 | { 22 | int read = inputStream.read(bArr); 23 | if (read == -1) 24 | { 25 | break; 26 | } 27 | instance.update(bArr, 0, read); 28 | } 29 | byte[] digest = instance.digest(); 30 | for (byte b : digest) 31 | { 32 | stringBuilder.append(Integer.toString((b & 0xFF) + 256, 16).substring(1)); 33 | } 34 | str = stringBuilder.toString(); 35 | } 36 | return str; 37 | } 38 | 39 | public static String g(File file) throws IOException, NoSuchAlgorithmException 40 | { 41 | FileInputStream fileInputStream=new FileInputStream(file); 42 | long j = 102400; 43 | if (file == null || !file.exists()) 44 | { 45 | return null; 46 | } 47 | if (102400 > file.length()) 48 | { 49 | j = file.length(); 50 | } 51 | String a = a(fileInputStream, (int) j); 52 | fileInputStream.close(); 53 | return a; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /xposedwechat/gen/com/example/xposedwechat/R.java: -------------------------------------------------------------------------------- 1 | /* AUTO-GENERATED FILE. DO NOT MODIFY. 2 | * 3 | * This class was automatically generated by the 4 | * aapt tool from the resource data it found. It 5 | * should not be modified by hand. 6 | */ 7 | 8 | package com.example.xposedwechat; 9 | 10 | public final class R { 11 | public static final class attr { 12 | } 13 | public static final class dimen { 14 | /** Default screen margins, per the Android Design guidelines. 15 | 16 | Customize dimensions originally defined in res/values/dimens.xml (such as 17 | screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here. 18 | 19 | */ 20 | public static final int activity_horizontal_margin=0x7f040000; 21 | public static final int activity_vertical_margin=0x7f040001; 22 | } 23 | public static final class drawable { 24 | public static final int ic_launcher=0x7f020000; 25 | } 26 | public static final class id { 27 | public static final int action_settings=0x7f080000; 28 | } 29 | public static final class layout { 30 | public static final int activity_main=0x7f030000; 31 | } 32 | public static final class menu { 33 | public static final int main=0x7f070000; 34 | } 35 | public static final class string { 36 | public static final int action_settings=0x7f050001; 37 | public static final int app_name=0x7f050000; 38 | public static final int hello_world=0x7f050002; 39 | } 40 | public static final class style { 41 | /** 42 | Base application theme, dependent on API level. This theme is replaced 43 | by AppBaseTheme from res/values-vXX/styles.xml on newer devices. 44 | 45 | 46 | Theme customizations available in newer API levels can go in 47 | res/values-vXX/styles.xml, while customizations related to 48 | backward-compatibility can go here. 49 | 50 | 51 | Base application theme for API 11+. This theme completely replaces 52 | AppBaseTheme from res/values/styles.xml on API 11+ devices. 53 | 54 | API 11 theme customizations can go here. 55 | 56 | Base application theme for API 14+. This theme completely replaces 57 | AppBaseTheme from BOTH res/values/styles.xml and 58 | res/values-v11/styles.xml on API 14+ devices. 59 | 60 | API 14 theme customizations can go here. 61 | */ 62 | public static final int AppBaseTheme=0x7f060000; 63 | /** Application theme. 64 | All customizations that are NOT specific to a particular API-level can go here. 65 | */ 66 | public static final int AppTheme=0x7f060001; 67 | } 68 | } 69 | --------------------------------------------------------------------------------