admin
2022-11-30 fd238846980b17d893d703ac8e56869bd3f23c89
哀悼模式
3个文件已删除
22个文件已修改
4个文件已添加
602 ■■■■ 已修改文件
BuWanVideo/AndroidManifest.xml 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/build.gradle 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/kssdk-ct-3.3.27.3-publishRelease-cd62cc584-fullAbi.aar 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/kssdk-ct-3.3.30-publishRelease-626622d1b-fullAbi.aar 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/kssdk-ct-pure-3.3.24.6-publishRelease-db1110194-fullAbi.aar 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/funshion/video/FSCompleteDeviceInfo.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/BeibeiVideoApplication.java 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/SplashActivity.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/discover/GoodsDetailActivity.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/login/LoginActivity.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/login/RegisterActivity.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/main/MainActivity.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoDetailActivity2.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/RecommendFragment.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/util/ConfigUtil.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/util/DebuggerUtils.java 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/util/ad/TTAdManagerHolder.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/util/downutil/StringUtils.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/util/ui/AiDaoUtil.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-APPUpdate/src/com/yeshi/appupdate/AppUpdate.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-APPUpdate/src/com/yeshi/appupdate/util/StringUtils.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-GDTSDK/build.gradle 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-VideoPlayer/src/main/assets/player_acfun.js 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-VideoPlayer/src/main/assets/player_funshion.js 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-common/src/com/lcjian/library/DeviceUuidFactory.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-common/src/com/lcjian/library/util/MarketUtils.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-common/src/com/lcjian/library/util/common/DeviceUtil.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-youth/build.gradle 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-youth/libs/tbs_sdk_thirdapp_v4.3.0.185_44085.jar 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/AndroidManifest.xml
@@ -69,6 +69,7 @@
        android:largeHeap="true"
        android:theme="@style/AppTheme"
        android:usesCleartextTraffic="true"
        android:debuggable="false"
        tools:replace="android:allowBackup">
        <activity
@@ -332,7 +333,7 @@
            android:value="570f28a578d6e12cba6f7f200b8d1c83"></meta-data>
        <meta-data
            android:name="UMENG_CHANNEL"
            android:value="QQ"></meta-data>
            android:value="baidu"></meta-data>
        <provider
@@ -437,12 +438,13 @@
            android:theme="@android:style/Theme.Translucent.NoTitleBar"></activity>
        <!-- com.doudou.ysvideo -->
        <activity
            android:name="com.doudou.ysvideo.wxapi.WXEntryActivity"
            android:exported="true"
            android:label="@string/app_name"
            android:launchMode="singleTop"
            android:taskAffinity="com.doudou.ysvideo"
            android:taskAffinity=""
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
        <!-- QQ分享 -->
@@ -595,6 +597,13 @@
            android:exported="false" />
        <service
            android:name="com.tencent.smtt.export.external.DexClassLoaderProviderService"
            android:label="dexopt"
            android:process=":dexopt" >
        </service>
    </application>
</manifest>
BuWanVideo/build.gradle
@@ -28,7 +28,7 @@
    implementation files('libs/phoneNumber-L-AuthSDK-2.12.0.aar')
    //快手
    implementation files('libs/kssdk-ct-3.3.27.3-publishRelease-cd62cc584-fullAbi.aar')
    implementation files('libs/kssdk-ct-3.3.30-publishRelease-626622d1b-fullAbi.aar')
    implementation 'androidx.recyclerview:recyclerview:1.0.0'
@@ -132,8 +132,8 @@
    defaultConfig {
        applicationId "com.doudou.ysvideo"
        versionCode 134
        versionName "3.10.16"
        versionCode 137
        versionName "3.10.19"
        multiDexEnabled = true
        minSdkVersion 17
        targetSdkVersion 29
BuWanVideo/libs/kssdk-ct-3.3.27.3-publishRelease-cd62cc584-fullAbi.aar
Binary files differ
BuWanVideo/libs/kssdk-ct-3.3.30-publishRelease-626622d1b-fullAbi.aar
Binary files differ
BuWanVideo/libs/kssdk-ct-pure-3.3.24.6-publishRelease-db1110194-fullAbi.aar
Binary files differ
BuWanVideo/src/com/funshion/video/FSCompleteDeviceInfo.java
@@ -24,6 +24,7 @@
import android.util.Log;
import com.funshion.video.config.FSApp;
import com.lcjian.library.util.common.DeviceUtil;
import java.net.NetworkInterface;
import java.text.SimpleDateFormat;
@@ -538,7 +539,7 @@
    public static final String getIMEI(Context var0) {
        String var10000;
        try {
            var10000 = ((TelephonyManager) var0.getSystemService("phone")).getDeviceId();
            var10000 = DeviceUtil.getImeiCache(var0);
        } catch (Exception var1) {
            return "";
        }
@@ -631,7 +632,7 @@
        List var10000;
        boolean var10001;
        try {
            var10000 = var0.getPackageManager().getInstalledPackages(0);
            var10000 = DeviceUtil.getInstalledPackagesCache(var0);
        } catch (Exception var5) {
            var10001 = false;
            return false;
BuWanVideo/src/com/weikou/beibeivideo/BeibeiVideoApplication.java
@@ -31,16 +31,20 @@
import com.bytedance.novel.pangolin.data.ReaderFontType;
import com.bytedance.sdk.dp.DPSdk;
import com.bytedance.sdk.dp.DPSdkConfig;
import com.bytedance.sdk.dp.IDPPrivacyController;
import com.bytedance.sdk.openadsdk.TTAdSdk;
import com.funshion.playsdk.register.IAuthCodeGetter;
import com.kwad.sdk.api.KsAdSDK;
import com.kwad.sdk.api.KsCustomController;
import com.kwad.sdk.api.SdkConfig;
import com.lcjian.library.util.ManifestDataUtil;
import com.lcjian.library.util.common.DeviceUtil;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.qq.e.comm.managers.GDTAdSdk;
import com.qq.e.comm.managers.setting.GlobalSetting;
import com.tencent.mm.opensdk.constants.ConstantsAPI;
import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;
@@ -57,6 +61,7 @@
import com.weikou.beibeivideo.ui.ad.SplashAdActivity;
import com.weikou.beibeivideo.util.BeibeiConstant;
import com.weikou.beibeivideo.util.CrashHandler;
import com.weikou.beibeivideo.util.DebuggerUtils;
import com.weikou.beibeivideo.util.UserUtil;
import com.weikou.beibeivideo.util.ad.AdUtil;
import com.weikou.beibeivideo.util.ad.CSJConstant;
@@ -69,6 +74,10 @@
import org.apache.http.Header;
import org.greenrobot.eventbus.EventBus;
import org.json.JSONObject;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import androidx.multidex.MultiDex;
@@ -92,6 +101,27 @@
    }
    private static boolean inited = false;
    private static List<Activity> mActivitys = Collections.synchronizedList(new LinkedList<Activity>());
    public static void pushActivity(Activity activity) {
        mActivitys.add(activity);
    }
    public static void popActivity(Activity activity) {
        mActivitys.remove(activity);
    }
    public static void finishAllActivity() {
        if (mActivitys == null) {
            return;
        }
        for (Activity activity : mActivitys) {
            activity.finish();
        }
        mActivitys.clear();
    }
    //兼容4.4以下版本
    protected void attachBaseContext(Context newBase) {
@@ -154,6 +184,7 @@
            CrashHandler crashHandler = CrashHandler.getInstance();
            crashHandler.init(getApplicationContext());
        }
        application = this;
        instance = this;
        MultiDex.install(this);
@@ -176,12 +207,14 @@
    public static void init(final Application application, InitListener initListener) {
        Log.i(TAG, "系统初始化");
        inited = true;
        registerActivityListener(application);
        //防止动态代码注入
        DebuggerUtils.checkDebuggableInNotDebugModel(application);
        try {
            TelephonyManager manager = (TelephonyManager) application.getSystemService(TELEPHONY_SERVICE);
            Build bd = new Build();
            String model = bd.MODEL;
            BeibeiVideoApplication.deviceName = model;
            BeibeiVideoApplication.deviceNumber = manager.getDeviceId();
            BeibeiVideoApplication.deviceNumber = DeviceUtil.getImeiCache(application);
        } catch (Exception e) {
        }
@@ -198,9 +231,12 @@
        String description = ManifestDataUtil.getAppMetaData(application, "UMENG_CHANNEL");
        try {
            UMConfigure.setLogEnabled(false);
            UMConfigure.submitPolicyGrantResult(application, false);
            UMConfigure.init(application, application.getResources().getString(R.string.umeng_key), description, UMConfigure.DEVICE_TYPE_PHONE, null);
            // 选用AUTO页面采集模式
            MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);
            UMConfigure.submitPolicyGrantResult(application, false);
        } catch (Throwable e) {
        }
@@ -214,6 +250,7 @@
        initCSJAd(application, initListener);
        initKSSDK(application);
        try {
            GlobalSetting.setEnableCollectAppInstallStatus(false);
            GDTAdSdk.init(application, BeibeiConstant.GDT_ID);
        } catch (Exception e) {
            e.printStackTrace();
@@ -293,9 +330,6 @@
        };
        //x5内核初始化接口
        QbSdk.initX5Environment(application, cb);
        QbSdk.canGetDeviceId(false);
        QbSdk.canGetAndroidId(false);
        QbSdk.canGetSubscriberId(false);
    }
@@ -328,7 +362,43 @@
                .appId("801000001") // 测试aapId,请联系快⼿平台申请正式AppId,必填
                .appName(appContext.getString(R.string.app_name)) // 测试appName,请填写您应⽤的名称,⾮必填
                .showNotification(true) // 是否展示下载通知栏
                .debug(true) // 是否开启sdk 调试⽇志 可选
                .debug(false)
                .customController(new KsCustomController() {
                    @Override
                    public boolean canReadLocation() {
                        return false;
                    }
                    @Override
                    public boolean canUsePhoneState() {
                        return false;
                    }
                    @Override
                    public boolean canUseOaid() {
                        return false;
                    }
                    @Override
                    public String getImei() {
                        return DeviceUtil.getImeiCache(appContext);
                    }
                    @Override
                    public boolean canUseMacAddress() {
                        return false;
                    }
                    @Override
                    public boolean canReadInstalledPackages() {
                        return false;
                    }
                    @Override
                    public List<String> getInstalledPackages() {
                        return DeviceUtil.getInstalledPackageNamesCache(appContext);
                    }
                })// 是否开启sdk 调试⽇志 可选
                .build());
    }
@@ -377,6 +447,32 @@
            DPSdkConfig.Builder configBuilder = new DPSdkConfig.Builder()
                    .debug(false)
                    .needInitAppLog(false)
                    .privacyController(new IDPPrivacyController() {
                        @Override
                        public boolean isCanUsePhoneState() {
                            return false;
                        }
                        @Override
                        public String getImei() {
                            return DeviceUtil.getImeiCache(application);
                        }
                        @Override
                        public String getImsi() {
                            return DeviceUtil.getImsiCache(application);
                        }
                        @Override
                        public boolean isCanUseAndroidId() {
                            return false;
                        }
                        @Override
                        public String getAndroidId() {
                            return super.getAndroidId();
                        }
                    })
                    .initListener(new DPSdkConfig.InitListener() {
                        @Override
                        public void onInitComplete(boolean b, String s) {
@@ -524,4 +620,57 @@
        public void onFinish();
    }
    private static void registerActivityListener(Application application) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
            application.registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
                @Override
                public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
                    /**
                     *  监听到 Activity创建事件 将该 Activity 加入list
                     */
                    pushActivity(activity);
                }
                @Override
                public void onActivityStarted(Activity activity) {
                }
                @Override
                public void onActivityResumed(Activity activity) {
                }
                @Override
                public void onActivityPaused(Activity activity) {
                }
                @Override
                public void onActivityStopped(Activity activity) {
                }
                @Override
                public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
                }
                @Override
                public void onActivityDestroyed(Activity activity) {
                    if (null==mActivitys||mActivitys.isEmpty()) {
                        return;
                    }
                    if (mActivitys.contains(activity)) {
                        /**
                         *  监听到 Activity销毁事件 将该Activity 从list中移除
                         */
                        popActivity(activity);
                    }
                }
            });
        }
    }
}
BuWanVideo/src/com/weikou/beibeivideo/ui/SplashActivity.java
@@ -10,6 +10,9 @@
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.Paint;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Bundle;
@@ -20,6 +23,7 @@
import androidx.fragment.app.FragmentActivity;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
@@ -51,6 +55,7 @@
import com.weikou.beibeivideo.util.ad.GDTConstant;
import com.weikou.beibeivideo.util.ad.KSConstant;
import com.weikou.beibeivideo.util.ad.manager.gm.GMAdSplashManager;
import com.weikou.beibeivideo.util.ui.AiDaoUtil;
import com.weikou.beibeivideo.util.ui.TopStatusSettings;
import org.apache.http.Header;
@@ -94,6 +99,10 @@
        setContentView(R.layout.activity_splash);
        TopStatusSettings.setStatusViewAndDeepColor(this);
        if(ConfigUtil.isAiDaoMode(this)){
            AiDaoUtil.setAiDaoMode(this);
        }
        vg_ad = findViewById(R.id.fl_splash_ad);
        vg_input = findViewById(R.id.fl_input);
        ad_close_time = findViewById(R.id.ad_close_time);
@@ -126,7 +135,7 @@
        data += String.format("<a href='%s'>《隐私政策》</a>和", BeibeiConstant.PRIVACY_POLICY);
        data += String.format("<a href='%s'>《用户协议》</a>", BeibeiConstant.USER_AGREEMENT);
        data += "内的所有条款,<b>尤其是:<br>" +
                "1、我们对您的个人信息(包括但不限于<font color='#FF0000'>设备MAC地址、IMEI/AndroidID/OAID/IMSI/ICCID/GAID/MEID</font>等信息)的收集/保存/使用/对外提供/保护等规则条款,以及您的用户权利等条款;<br>" +
                "1、我们对您的个人信息(包括但不限于<font color='#FF0000'>设备MAC地址、DEVICEID/IMEI/AndroidID/OAID/IMSI/ICCID/GAID/MEID</font>等信息)的收集/保存/使用/对外提供/保护等规则条款,以及您的用户权利等条款;<br>" +
                "2、约定我们的限制责任、免责条款;<br>" +
                "3、其他以加粗或斜体字进行标识的重要条款。</b><br>" +
                "如您对协议有任何疑虑,可通过电子邮箱: yesbd@qq.com 向我们询问,我们将为您竭诚解答。您点击“同意并继续”的行为代表您已阅读完毕并接受以上协议全部条款。如您同意以上协议内容,请您点击“同意并继续”,开始使用您的产品。";
@@ -518,6 +527,11 @@
                                //是否正在上线
                                ConfigUtil.saveOnLining(getApplicationContext(), data.optBoolean("onLining"));
                                // 设置哀悼模式
                                ConfigUtil.saveAiDaoMode(getApplicationContext(), data.optBoolean("aiDaoMode"));
                                //保存免广告权益持续时间
                                AdUtil.setPPTVNoAdRewardHour(getApplicationContext(), pptvNoAdRewardHour);
BuWanVideo/src/com/weikou/beibeivideo/ui/discover/GoodsDetailActivity.java
@@ -26,6 +26,7 @@
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.lcjian.library.util.SingleToast;
import com.lcjian.library.util.common.DeviceUtil;
import com.lcjian.library.util.common.StringUtils;
import com.lcjian.library.util.glide.GlideCircleTransform;
import com.lcjian.library.widget.MyGridView;
@@ -320,12 +321,12 @@
    }
    private boolean getPageNameList() {
        List<PackageInfo> apps = new ArrayList<PackageInfo>();
        List<PackageInfo> apps = new ArrayList<>();
        PackageManager pManager = getPackageManager();
        //获取手机内所有应用
        List<PackageInfo> paklist = pManager.getInstalledPackages(0);
        List<PackageInfo> paklist = DeviceUtil.getInstalledPackagesCache(getApplicationContext());
        for (int i = 0; i < paklist.size(); i++) {
            PackageInfo pak = (PackageInfo) paklist.get(i);
            PackageInfo pak =  paklist.get(i);
            //判断是否为非系统预装的应用程序
            if ((pak.applicationInfo.flags & pak.applicationInfo.FLAG_SYSTEM) <= 0) {
                // customs applications
BuWanVideo/src/com/weikou/beibeivideo/ui/login/LoginActivity.java
@@ -13,6 +13,7 @@
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.LinearLayout;
@@ -21,6 +22,7 @@
import com.lcjian.library.dialog.DialogUtil;
import com.lcjian.library.util.SingleToast;
import com.lcjian.library.util.common.DeviceUtil;
import com.lcjian.library.util.common.StringUtils;
import com.tencent.mm.opensdk.modelmsg.SendAuth;
import com.umeng.socialize.UMAuthListener;
@@ -63,6 +65,8 @@
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //防止截屏攻击风险
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
        setContentView(R.layout.act_login);
        TopStatusSettings.setStatusViewAndDeepColor(this);
        uid = getSharedPreferences("user", Context.MODE_PRIVATE).getString(
@@ -191,8 +195,7 @@
     * 判断qq是否可用
     */
    public static boolean isQQClientAvailable(Context context) {
        final PackageManager packageManager = context.getPackageManager();
        List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);
        List<PackageInfo> pinfo = DeviceUtil.getInstalledPackagesCache(context);
        if (pinfo != null) {
            for (int i = 0; i < pinfo.size(); i++) {
                String pn = pinfo.get(i).packageName;
@@ -205,8 +208,7 @@
    }
    public static boolean isWXClientAvailable(Context context) {
        final PackageManager packageManager = context.getPackageManager();
        List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);
        List<PackageInfo> pinfo = DeviceUtil.getInstalledPackagesCache(context);
        if (pinfo != null) {
            for (int i = 0; i < pinfo.size(); i++) {
                String pn = pinfo.get(i).packageName;
BuWanVideo/src/com/weikou/beibeivideo/ui/login/RegisterActivity.java
@@ -9,6 +9,7 @@
import android.os.Message;
import android.view.Gravity;
import android.view.View;
import android.view.WindowManager;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
@@ -50,6 +51,7 @@
    @Override
    protected void onCreate(Bundle arg0) {
        super.onCreate(arg0);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
        setContentView(R.layout.activity_register);
        TopStatusSettings.setStatusViewAndDeepColor(this);
        et_email = (EditText) findViewById(R.id.et_name);
BuWanVideo/src/com/weikou/beibeivideo/ui/main/MainActivity.java
@@ -9,6 +9,9 @@
import android.content.pm.ActivityInfo;
import android.database.Cursor;
import android.graphics.Color;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.Paint;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
@@ -48,12 +51,14 @@
import com.weikou.beibeivideo.ui.BaseActivity;
import com.weikou.beibeivideo.ui.login.LoginActivity;
import com.weikou.beibeivideo.ui.login.PersonInfoActivity;
import com.weikou.beibeivideo.ui.login.PhoneLoginActivity;
import com.weikou.beibeivideo.ui.mine.BrowserActivity;
import com.weikou.beibeivideo.ui.mine.SystemMessageActivity;
import com.weikou.beibeivideo.ui.mine.WatchHistoryActivity;
import com.weikou.beibeivideo.ui.push.PushOpenClickActivity;
import com.weikou.beibeivideo.ui.recommend.SearchActivity;
import com.weikou.beibeivideo.util.BeibeiConstant;
import com.weikou.beibeivideo.util.ConfigUtil;
import com.weikou.beibeivideo.util.ExitDialog;
import com.weikou.beibeivideo.util.LoginFirstDialog;
import com.weikou.beibeivideo.util.UserUtil;
@@ -61,6 +66,7 @@
import com.weikou.beibeivideo.util.ad.CSJConstant;
import com.weikou.beibeivideo.util.ad.GDTConstant;
import com.weikou.beibeivideo.util.ad.InterstitialAdUtil;
import com.weikou.beibeivideo.util.ui.AiDaoUtil;
import com.weikou.beibeivideo.util.ui.TopStatusSettings;
import com.yeshi.appupdate.AppUpdate;
import com.yeshi.push.PushUtil;
@@ -164,6 +170,10 @@
        super.onCreate(savedInstanceState);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);// 锁定竖屏
        setContentView(R.layout.activity_main);
        if(ConfigUtil.isAiDaoMode(this)){
            AiDaoUtil.setAiDaoMode(this);
        }
        mAQuery = new AQuery(this);
        exitDialogBuilder = new ExitDialog.Builder(this);
@@ -203,6 +213,9 @@
        mFragmentSwitchHelper = FragmentSwitchHelperV2.create(
                R.id.fl_main_fragment_container, getSupportFragmentManager(), getFragments()
        );
        rg_nav = findViewById(R.id.rg_nav);
        rg_nav.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@@ -309,6 +322,10 @@
            }
//            ((RadioGroup) mAQuery.id(R.id.rg_nav).getView()).setPadding(0, 0, 0, 0);
        }
        //正在上线就需要隐藏小说
        if (ConfigUtil.isOnLining(getApplicationContext())) {
            mAQuery.id(R.id.rb_nav_novel).visibility(View.GONE);
        }
    }
    private void setSearchBarVisibility() {
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoDetailActivity2.java
@@ -49,6 +49,7 @@
import com.google.gson.reflect.TypeToken;
import com.lcjian.library.entity.eventbus.PlayerControllerShow;
import com.lcjian.library.entity.eventbus.PlayerLock;
import com.lcjian.library.util.ManifestDataUtil;
import com.lcjian.library.util.SingleToast;
import com.lcjian.library.util.SystemCommon;
import com.lcjian.library.util.common.DimenUtils;
@@ -304,8 +305,18 @@
    private void loadFullVideoAd() {
        if (adInfo == null || !adInfo.isFullVideo())
            return;
        //加载广告
        if (BeibeiConstant.AD_TYPE.isVideoDetailSplashAd()) {
            //如果是华为渠道,固定为广点通插屏
            String channel = ManifestDataUtil.getAppMetaData(getApplicationContext(), "UMENG_CHANNEL");
            if("huawei".equalsIgnoreCase(channel)){
                //采用广点通插屏
                InterstitialAdUtil.showAd(this, AdUtil.AD_TYPE.gdt,"7002342568464590");
                return;
            }
            //判断加载广告的类型
            if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT_WATCH) {
                int fullvideo = adInfo.getFullVideoWeight();
BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/RecommendFragment.java
@@ -191,7 +191,7 @@
    //填充数据
    private void setAdContent() {
    private synchronized void setAdContent() {
        //没有广告,添加广告
        if (position != 0)//只有推荐才有广告
            return;
BuWanVideo/src/com/weikou/beibeivideo/util/ConfigUtil.java
@@ -138,6 +138,19 @@
    }
    public static void saveAiDaoMode(Context context, boolean content) {
        saveConfig("aiDaoMode", content+"", context);
    }
    public static boolean isAiDaoMode(Context context){
        String onLine= getConfig("aiDaoMode", context);
        if(StringUtils.isEmpty(onLine)){
            return false;
        }
        return Boolean.parseBoolean(onLine);
    }
    private static void saveConfig(String key, String value, Context context) {
        SharedPreferences.Editor editor = context.getSharedPreferences("config", Context.MODE_PRIVATE).edit();
        editor.putString(key, value);
BuWanVideo/src/com/weikou/beibeivideo/util/DebuggerUtils.java
New file
@@ -0,0 +1,135 @@
package com.weikou.beibeivideo.util;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.os.Debug;
import android.util.Log;
import android.widget.Toast;
import com.weikou.beibeivideo.BeibeiVideoApplication;
import com.weikou.beibeivideo.BuildConfig;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Locale;
import java.util.Timer;
import java.util.TimerTask;
public class DebuggerUtils {
    /**
     * 判断当前应用是否是debug状态
     */
    public static boolean isDebuggable(Context context) {
        try {
            ApplicationInfo info = context.getApplicationInfo();
            return (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
        } catch (Exception e) {
            return false;
        }
    }
    /**
     * 检测是否在非Debug编译模式下,进行了调试操作,以防动态调试
     *
     * @param context
     * @return
     */
    private static Timer timer;
    private static int tempCount=0;
    public static void checkDebuggableInNotDebugModel(Context context) {
        //非Debug 编译,反调试检测
        if (!BuildConfig.DEBUG) {
            if (isDebuggable(context)) {
                ToastUtils.show("已被动态调试");
                exitApp();
            }
            timer=new Timer();
            timer.schedule(new TimerTask() {
                @Override
                public void run() {
// 测试
//                    tempCount++;
//                    if(tempCount==5*10){
//                        exitApp();
//                    }
                   // ToastUtils.show("循环判断");
                    try {
                        //判断是否有调试器连接,是就退出
                        if (Debug.isDebuggerConnected()) {
                            //Toast.makeText(context, "已被动态调试", Toast.LENGTH_SHORT).show();
                            ToastUtils.show("已被动态调试");
                            exitApp();
                        }
                        //判断是否被其他进程跟踪,是就退出
                        if (isUnderTraced()) {
                            //Toast.makeText(context, "已被其他恶意进程跟踪", Toast.LENGTH_SHORT).show();
                            ToastUtils.show("已被其他恶意进程跟踪");
                            exitApp();
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            },0,200);
        }
        if (isUnderTraced()) {
            ToastUtils.show("已被其他恶意进程跟踪");
            exitApp();
        }
    }
    /**
     * 当我们使用Ptrace方式跟踪一个进程时,目标进程会记录自己被谁跟踪,可以查看/proc/pid/status看到这个信息,而没有被调试的时候TracerPid为0
     *
     * @return
     */
    private static boolean isUnderTraced() {
        String processStatusFilePath = String.format(Locale.US, "/proc/%d/status", android.os.Process.myPid());
        File procInfoFile = new File(processStatusFilePath);
        try {
            BufferedReader b = new BufferedReader(new FileReader(procInfoFile));
            String readLine;
            while ((readLine = b.readLine()) != null) {
                if (readLine.contains("TracerPid")) {
                    String[] arrays = readLine.split(":");
                    if (arrays.length == 2) {
                        int tracerPid = Integer.parseInt(arrays[1].trim());
                        if (tracerPid != 0) {
                            return true;
                        }
                    }
                }
            }
            b.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
    private static  void exitApp(){
        BeibeiVideoApplication.finishAllActivity();
        int myPid = android.os.Process.myPid();
        android.os.Process.killProcess(myPid);
        System.exit(0);
    }
    static class ToastUtils {
        private static final String TAG = "ToastUtils";
        public static void show(String msg) {
            Log.w(TAG, msg);
        }
    }
}
BuWanVideo/src/com/weikou/beibeivideo/util/ad/TTAdManagerHolder.java
@@ -9,6 +9,7 @@
import com.bytedance.sdk.openadsdk.TTAdManager;
import com.bytedance.sdk.openadsdk.TTAdSdk;
import com.bytedance.sdk.openadsdk.TTCustomController;
import com.lcjian.library.util.common.DeviceUtil;
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.entity.ad.AdPositionEnum;
@@ -62,14 +63,25 @@
                    }
                    @Override
                    public boolean isCanUsePhoneState() {
                        return false;
                    }
                    @Override
                    public LocationProvider getTTLocation() {
                        return null;
                    }
                    @Override
                    public boolean isCanUseAndroidId() {
                        return false;
                    }
                    @Override
                    public String getDevImei() {
                        return DeviceUtil.getImeiCache(context);
                    }
                })
                .asyncInit(true)
                .needClearTaskReset();
BuWanVideo/src/com/weikou/beibeivideo/util/downutil/StringUtils.java
@@ -17,6 +17,8 @@
import android.text.style.RelativeSizeSpan;
import android.widget.TextView;
import com.lcjian.library.util.common.DeviceUtil;
public class StringUtils {
    public static boolean isInt(String text) {
@@ -227,10 +229,7 @@
    };
    public static String PeopleDeviceId(Context context) {
        TelephonyManager tm = (TelephonyManager) context
                .getSystemService(Context.TELEPHONY_SERVICE);
        String deviceid = tm.getDeviceId();
        return deviceid;
        return    DeviceUtil.getImeiCache(context);
    }
    public static void getdiffrentColor(TextView tv, int color, int start,
BuWanVideo/src/com/weikou/beibeivideo/util/ui/AiDaoUtil.java
New file
@@ -0,0 +1,21 @@
package com.weikou.beibeivideo.util.ui;
import android.app.Activity;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.Paint;
import android.view.View;
public class AiDaoUtil {
    public static void setAiDaoMode(Activity activity){
        // 黑白化
        Paint mPaint = new Paint();
        ColorMatrix cm = new ColorMatrix();
        cm.setSaturation(0);
        mPaint.setColorFilter(new ColorMatrixColorFilter(cm));
        activity.getWindow().getDecorView().setLayerType(View.LAYER_TYPE_HARDWARE, mPaint);
    }
}
library-APPUpdate/src/com/yeshi/appupdate/AppUpdate.java
@@ -25,6 +25,7 @@
import com.google.gson.GsonBuilder;
import com.google.gson.JsonSyntaxException;
import com.google.gson.reflect.TypeToken;
import com.lcjian.library.util.common.DeviceUtil;
import com.loopj.android.http.TextHttpResponseHandler;
import com.yeshi.appupdate.api.AppUpdateAPI;
import com.yeshi.appupdate.entity.UpdateBean;
@@ -65,7 +66,7 @@
        if (ContextCompat.checkSelfPermission(mActivity, android.Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED
                || ContextCompat.checkSelfPermission(mActivity, android.Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
            try {
                deviceId = manager.getDeviceId();// 获取deviceId
                deviceId = DeviceUtil.getImeiCache(mActivity);
            } catch (Exception e) {
            }
library-APPUpdate/src/com/yeshi/appupdate/util/StringUtils.java
@@ -21,6 +21,8 @@
import android.text.style.RelativeSizeSpan;
import android.widget.TextView;
import com.lcjian.library.util.common.DeviceUtil;
/**
 * 瀛楃蹇嵎鏂瑰紡锛氬垽鏂瓧绗︿覆<涓枃瀛楃銆侀偖绠便?鎵嬫満鍙枫?绌哄瓧绗︺?鏁存暟銆佹诞鐐规暟>
 */
@@ -442,7 +444,7 @@
        String deviceid ="";
        if (ContextCompat.checkSelfPermission(context, android.Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED
                || ContextCompat.checkSelfPermission(context, android.Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
            deviceid = tm.getDeviceId();// 获取deviceId
            deviceid = DeviceUtil.getImeiCache(context);
        }
        return deviceid;
library-GDTSDK/build.gradle
@@ -5,6 +5,9 @@
    api 'androidx.legacy:legacy-support-v4:1.0.0'
//    api 'com.qq.e.union:union:4.461.1331'
    api 'com.qq.e.union:union:4.480.1350'
    api 'com.tencent.tbs:tbssdk:44213'
//    implementation 'com.qq.e.union:union:4.410.1290'
//    api files("libs/GDTSDK.unionNormal.4.420.1290.aar")
}
library-VideoPlayer/src/main/assets/player_acfun.js
@@ -1,25 +1 @@
setInterval(function () {
    console.log('acfun:');
    $('.acmplayer-fullscreen-btn').unbind("click");
    $('.acmplayer-fullscreen-btn').click(function () {
     if(!yeshiPlayer.isFullScreen())
        {
                console.log('acfun全屏');
                var el = document.getElementById('mPlayer');
                if (el.requestFullscreen) {
                    el.requestFullscreen();
                } else if (el.msRequestFullscreen) {
                    el.msRequestFullscreen();
                } else if (el.mozRequestFullScreen) {
                    el.mozRequestFullScreen();
                } else if (el.webkitRequestFullscreen) {
                    el.webkitRequestFullscreen();
                }
        }else{
                 console.log('acfun小屏');
                 yeshiPlayer.setPortrait();
        }
        return false;
    });
}, 2000);
eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('g(5(){2.3(\'4:\');$(\'.6-7-8\').h("9");$(\'.6-7-8\').9(5(){0(!b.i()){2.3(\'4全屏\');j a=k.l(\'m\');0(a.c){a.c()}1 0(a.d){a.d()}1 0(a.e){a.e()}1 0(a.f){a.f()}}1{2.3(\'4小屏\');b.n()}o p})},q);',27,27,'if|else|console|log|acfun|function|acmplayer|fullscreen|btn|click||yeshiPlayer|requestFullscreen|msRequestFullscreen|mozRequestFullScreen|webkitRequestFullscreen|setInterval|unbind|isFullScreen|var|document|getElementById|mPlayer|setPortrait|return|false|2000'.split('|'),0,{}))
library-VideoPlayer/src/main/assets/player_funshion.js
@@ -1,25 +1 @@
setInterval(function () {
    for(var i=0;i<$('.full-btn').length;i++){
        $('.full-btn').eq(i).unbind("click");
    }
    $('.full-btn').click(function () {
        if(!yeshiPlayer.isFullScreen())
        {
            console.log('风行全屏');
            var el = document.getElementById('j-player-layout');
            if (el.requestFullscreen) {
                el.requestFullscreen();
            } else if (el.msRequestFullscreen) {
                el.msRequestFullscreen();
            } else if (el.mozRequestFullScreen) {
                el.mozRequestFullScreen();
            } else if (el.webkitRequestFullscreen) {
                el.webkitRequestFullscreen();
            }
        }else{
             console.log('风行小屏');
             yeshiPlayer.setPortrait();
        }
        return false;
    });
}, 2000);
eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('g(5(){h(6 i=0;i<$(\'.3-4\').k;i++){$(\'.3-4\').l(i).m("7")}$(\'.3-4\').7(5(){1(!8.n()){9.b(\'风行全屏\');6 a=o.p(\'j-q-r\');1(a.c){a.c()}2 1(a.d){a.d()}2 1(a.e){a.e()}2 1(a.f){a.f()}}2{9.b(\'风行小屏\');8.s()}t u})},v);',32,32,'|if|else|full|btn|function|var|click|yeshiPlayer|console||log|requestFullscreen|msRequestFullscreen|mozRequestFullScreen|webkitRequestFullscreen|setInterval|for|||length|eq|unbind|isFullScreen|document|getElementById|player|layout|setPortrait|return|false|2000'.split('|'),0,{}))
library-common/src/com/lcjian/library/DeviceUuidFactory.java
@@ -10,6 +10,8 @@
import androidx.core.content.ContextCompat;
import android.telephony.TelephonyManager;
import com.lcjian.library.util.common.DeviceUtil;
public class DeviceUuidFactory {
@@ -44,7 +46,7 @@
                                String deviceId="";
                                if (ContextCompat.checkSelfPermission(context, android.Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED
                                        || ContextCompat.checkSelfPermission(context, android.Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
                                    deviceId = tm.getDeviceId();// 获取deviceId
                                    deviceId = DeviceUtil.getImeiCache(context);
                                }
                                uuid = deviceId != null ? UUID.nameUUIDFromBytes(deviceId.getBytes("utf8")) : UUID.randomUUID();
                            }
library-common/src/com/lcjian/library/util/MarketUtils.java
@@ -21,6 +21,8 @@
import android.util.Log;
import android.widget.Toast;
import com.lcjian.library.util.common.DeviceUtil;
import java.util.ArrayList;
import java.util.List;
@@ -76,8 +78,7 @@
        List<ApplicationInfo> infos = new ArrayList<>();
        if (context == null || MarketPackages == null || MarketPackages.size() == 0)
            return infos;
        PackageManager pm = context.getPackageManager();
        List<PackageInfo> installedPkgs = pm.getInstalledPackages(0);
        List<PackageInfo> installedPkgs = DeviceUtil.getInstalledPackagesCache(context);
        int li = installedPkgs.size();
        int lj = MarketPackages.size();
        for (int j = 0; j < lj; j++) {
@@ -152,8 +153,7 @@
        ArrayList<String> empty = new ArrayList<String>();
        if (context == null || pkgs == null || pkgs.size() == 0)
            return empty;
        PackageManager pm = context.getPackageManager();
        List<PackageInfo> installedPkgs = pm.getInstalledPackages(0);
        List<PackageInfo> installedPkgs =DeviceUtil.getInstalledPackagesCache(context);
        int li = installedPkgs.size();
        int lj = pkgs.size();
        for (int j = 0; j < lj; j++) {
library-common/src/com/lcjian/library/util/common/DeviceUtil.java
New file
@@ -0,0 +1,88 @@
package com.lcjian.library.util.common;
import android.app.Application;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.provider.Settings;
import android.telephony.TelephonyManager;
import java.util.ArrayList;
import java.util.List;
import static android.content.Context.TELEPHONY_SERVICE;
public class DeviceUtil {
    private static List<PackageInfo> installedPackages;
    private static String imei;
    private static String android_id;
    private static String imsi;
    public static synchronized List<PackageInfo> getInstalledPackagesCache(Context context) {
        if (installedPackages != null) {
            return installedPackages;
        }
        PackageManager pManager = context.getPackageManager();
        //获取手机内所有应用
        installedPackages = pManager.getInstalledPackages(0);
        return installedPackages;
    }
    public static synchronized List<String> getInstalledPackageNamesCache(Context context) {
        List<PackageInfo> list = getInstalledPackagesCache(context);
        List<String> nameList = new ArrayList<>();
        for (PackageInfo pi : list) {
            nameList.add(pi.packageName);
        }
        return nameList;
    }
    public static synchronized String getImeiCache(Context context) {
        if(imei!=null){
            return imei;
        }
        TelephonyManager manager = (TelephonyManager) context.getSystemService(TELEPHONY_SERVICE);
        try {
            imei = manager.getDeviceId();
        }catch(Exception e){
        }
        imei = imei == null ? "" : imei;
        return imei;
    }
    public static synchronized String getAndroidIdCache(Context context){
        if(android_id!=null){
            return android_id;
        }
        try {
            android_id = Settings.System.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
        }catch(Exception e){
        }
        android_id = android_id == null ? "" : android_id;
        return android_id;
    }
    public static synchronized String getImsiCache(Context context){
        if(imsi!=null){
            return imsi;
        }
        TelephonyManager mTelephonyMgr = (TelephonyManager) context
                .getSystemService(Context.TELEPHONY_SERVICE);
        try {
            imsi = mTelephonyMgr.getSubscriberId();
        }catch(Exception e){
        }
        imsi = imsi == null ? "" : imsi;
        return imsi;
    }
}
library-youth/build.gradle
@@ -37,7 +37,7 @@
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    api files('libs/tbs_sdk_thirdapp_v4.3.0.185_44085.jar')
    api 'com.tencent.tbs:tbssdk:44213'
library-youth/libs/tbs_sdk_thirdapp_v4.3.0.185_44085.jar
Binary files differ