黄a在线观看-黄a在线-黄a大片-黄色片在线看-黄色毛片免费-黄色大片网站

您的位置:首頁技術文章
文章詳情頁

android 禁止第三方apk安裝和卸載的方法詳解

瀏覽:2日期:2022-09-21 17:29:43

需求是這樣的,客戶要求提供系統的接口來控制apk的安裝和卸載,接口如下

boolean setAppInstallationPolicies(int mode, String[] appPackageNames)mode:應用名單類型0:黑名單(應用包名列表中的所有項都不允許安裝);1:白名單(只允許安裝應用包名列表中的項)。appPackageNames:應用包名列表。當appPackageNames為空時,取消所有已設定的應用。成功返回true;失敗返回false。String[] getAppInstallationPolicies()返回值為當前應用安裝管控狀態string[0]:功能模式,參見setAppInstallationPolicies方法的mode參數。string[1]至string[n-1]:應用包名列表。 boolean setAppUninstallationPolicies(int mode, String[] appPackageNames)mode:應用名單類型0:黑名單(應用包名列表中的所有項均強制卸載);1:白名單(應用包名列表中的所有項禁止卸載)。appPackageNames:應用包名列表。當appPackageNames為空時,取消所有已設定的應用。成功返回true;失敗返回false。String[] getAppUninstallationPolicies()返回值為當前應用卸載管控狀態string[0]:功能模式,參見setAppUninstallationPolicies方法的mode參數。string[1]至string[n-1]:應用包名列表。

android版本為9.0,首先想到的是在系統里面添加一個自己的service,分別在frameworks/base/core/java/android/app/添加IPolicyManager.aidl,frameworks/base/services/core/java/com/android/server/添加PolicyManagerService.java,在frameworks/base/添加policy/java/ga/mdm/PolicyManager.java,內容如下

package android.app; /** {@hide} */interface IPolicyManager{boolean setAppInstallationPolicies(int mode,inout String[] appPackageNames);String[] getAppInstallationPolicies();boolean setAppUninstallationPolicies(int mode,inout String[] appPackageNames);String[] getAppUninstallationPolicies();}

package com.android.server; import android.content.Context;import android.content.Intent;import android.content.IntentFilter; import android.os.ServiceManager;import android.os.SystemProperties;import android.provider.Settings;import android.util.Slog; import java.lang.reflect.Field;import java.util.ArrayList; import android.app.IPolicyManager;import android.net.wifi.WifiManager;import android.content.pm.PackageManager;import android.app.ActivityManager;import android.content.pm.IPackageDataObserver; public class PolicyManagerService extends IPolicyManager.Stub {private final String TAG = 'PolicyManagerService';private Context mContext;private String[] mAppPackageNames = null;private String[] mAppUninstallPackageNames = null; public PolicyManagerService(Context context) { mContext = context; }@Overridepublic boolean setAppInstallationPolicies(int mode, String[] appPackageNames){if(mode==0){Settings.System.putInt(mContext.getContentResolver(),'customer_app_status', 0);}else if(mode==1){Settings.System.putInt(mContext.getContentResolver(),'customer_app_status', 1);}else{return false;}mAppPackageNames = appPackageNames;return true;}@Overridepublic String[] getAppInstallationPolicies(){return mAppPackageNames;}@Overridepublic boolean setAppUninstallationPolicies(int mode,String[] appPackageNames){if(mode==0){Settings.System.putInt(mContext.getContentResolver(),'customer_appuninstall_status', 0);}else if(mode==1){Settings.System.putInt(mContext.getContentResolver(),'customer_appuninstall_status', 1);}else{return false;}mAppUninstallPackageNames = appPackageNames;return true;}@Overridepublic String[] getAppUninstallationPolicies(){return mAppUninstallPackageNames;}}

package ga.mdm; import android.util.Slog;import android.os.RemoteException;import android.content.Context;import android.app.IPolicyManager; public class PolicyManager {private final String TAG = 'PolicyManager';Context mContext; private final IPolicyManager mService; public PolicyManager(Context context,IPolicyManager mService) {mContext = context; this.mService = mService; } public boolean setAppInstallationPolicies(int mode,String[] appPackageNames){try { return mService.setAppInstallationPolicies(mode,appPackageNames); } catch (RemoteException ex) { ex.printStackTrace();return false; } }public String[] getAppInstallationPolicies(){try { return mService.getAppInstallationPolicies(); } catch (RemoteException ex) { ex.printStackTrace();return null; } }public boolean setAppUninstallationPolicies(int mode,String[] appPackageNames){try { return mService.setAppUninstallationPolicies(mode,appPackageNames); } catch (RemoteException ex) { ex.printStackTrace();return false; } }public String[] getAppUninstallationPolicies(){try { return mService.getAppUninstallationPolicies(); } catch (RemoteException ex) { ex.printStackTrace();return null; } }}

同時在frameworks/base/policy/添加Android.mk

# Copyright (C) 2014 The Android Open Source Project## Licensed under the Apache License, Version 2.0 (the 'License');# you may not use this file except in compliance with the License.# You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an 'AS IS' BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the License. LOCAL_PATH := $(call my-dir) # Build the java code# ============================================================ include $(CLEAR_VARS) LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/javaLOCAL_SRC_FILES := $(call all-java-files-under, java) $(call all-Iaidl-files-under, java) $(call all-logtags-files-under, java) LOCAL_JAVA_LIBRARIES := servicesLOCAL_MODULE := policy include $(BUILD_JAVA_LIBRARY) include $(call all-makefiles-under,$(LOCAL_PATH))

這里為什么將PolicyManager.java單獨出來,因為PolicyManager.java是提供給客戶用的,單獨生成一個jar包,客戶只需要使用policy.jar就可以調用,同時需要添加

--- frameworks/base/Android.bp(revision 221)+++ frameworks/base/Android.bp(working copy)@@ -46,7 +46,8 @@ 'wifi/java/**/*.java', 'keystore/java/**/*.java', 'rs/java/**/*.java',-+'policy/java/**/*.java',+ ':framework-javastream-protos', 'core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl',@@ -105,6 +106,7 @@ 'core/java/android/app/usage/ICacheQuotaService.aidl', 'core/java/android/app/usage/IStorageStatsManager.aidl', 'core/java/android/app/usage/IUsageStatsManager.aidl',+'core/java/android/app/IPolicyManager.aidl', ':libbluetooth-binder-aidl', 'core/java/android/content/IClipboard.aidl', 'core/java/android/content/IContentService.aidl',

將路徑添加到,否則不會編譯

-- build/make/core/pathmap.mk(revision 221)+++ build/make/core/pathmap.mk(working copy)@@ -83,6 +83,7 @@ lowpan keystore rs +policy )

添加模塊

--- build/make/target/product/base.mk(revision 221)+++ build/make/target/product/base.mk(working copy)@@ -142,7 +142,8 @@ traced_probes vdc vold - wm+ wm +policy

添加注冊服務的代碼

--- frameworks/base/core/java/android/content/Context.java(revision 221)+++ frameworks/base/core/java/android/content/Context.java(working copy)@@ -4198,6 +4198,9 @@ * @see #getSystemService(String) */ public static final String CROSS_PROFILE_APPS_SERVICE = 'crossprofileapps';+++public static final String POLICY_SERVICE = 'policy';

+import ga.mdm.PolicyManager;+ /** * Manages all of the system services that can be returned by {@link Context#getSystemService}. * Used by {@link ContextImpl}.@@ -982,6 +984,15 @@ return new VrManager(IVrManager.Stub.asInterface(b)); } });++registerService(Context.POLICY_SERVICE, PolicyManager.class,+new CachedServiceFetcher<PolicyManager>() {+ @Override+ public PolicyManager createService(ContextImpl ctx) {+IBinder b = ServiceManager.getService(Context.POLICY_SERVICE);+IPolicyManager service = IPolicyManager.Stub.asInterface(b);+return new PolicyManager(ctx, service);+ }});

+import com.android.server.PolicyManagerService;+ public final class SystemServer { private static final String TAG = 'SystemServer'; @@ -1287,7 +1289,14 @@ } traceEnd(); }-++try { +Slog.i(TAG, 'ClassMonitor Service is create'); +ServiceManager.addService(Context.POLICY_SERVICE, new PolicyManagerService(context));+} catch (Throwable e) { +reportWtf('starting ClassMonitorService', e); +}

還需要添加selinux權限

--- system/sepolicy/Android.mk(revision 221)+++ system/sepolicy/Android.mk(working copy)@@ -244,10 +244,10 @@ ifneq ($(with_asan),true) ifneq ($(SELINUX_IGNORE_NEVERALLOWS),true)-LOCAL_REQUIRED_MODULES += - sepolicy_tests - treble_sepolicy_tests_26.0 - treble_sepolicy_tests_27.0 +#LOCAL_REQUIRED_MODULES += +# sepolicy_tests +# treble_sepolicy_tests_26.0 +# treble_sepolicy_tests_27.0 endif endifIndex: system/sepolicy/prebuilts/api/26.0/nonplat_sepolicy.cil===================================================================--- system/sepolicy/prebuilts/api/26.0/nonplat_sepolicy.cil(revision 221)+++ system/sepolicy/prebuilts/api/26.0/nonplat_sepolicy.cil(working copy)@@ -135,6 +135,8 @@ (typeattributeset hal_wifi_supplicant_server (hal_wifi_supplicant_default)) (typeattribute adbd_26_0) (roletype object_r adbd_26_0)+(typeattribute policy_service_26_0)+(roletype object_r policy_service_26_0) (typeattribute audioserver_26_0) (roletype object_r audioserver_26_0) (typeattribute blkid_26_0)Index: system/sepolicy/prebuilts/api/27.0/nonplat_sepolicy.cil===================================================================--- system/sepolicy/prebuilts/api/27.0/nonplat_sepolicy.cil(revision 221)+++ system/sepolicy/prebuilts/api/27.0/nonplat_sepolicy.cil(working copy)@@ -267,6 +267,8 @@ (typeattributeset hal_wifi_supplicant_server (hal_wifi_supplicant_default)) (typeattribute adbd_27_0) (roletype object_r adbd_27_0)+(typeattribute policy_service_26_0)+(roletype object_r policy_service_26_0) (typeattribute adbd_exec_27_0) (roletype object_r adbd_exec_27_0) (typeattribute audioserver_27_0)Index: system/sepolicy/prebuilts/api/28.0/private/app_neverallows.te===================================================================--- system/sepolicy/prebuilts/api/28.0/private/app_neverallows.te(revision 221)+++ system/sepolicy/prebuilts/api/28.0/private/app_neverallows.te(working copy)@@ -128,7 +128,6 @@ proc_stat proc_swaps proc_uptime- proc_version proc_vmallocinfo proc_vmstat }:file { no_rw_file_perms no_x_file_perms };Index: system/sepolicy/prebuilts/api/28.0/private/compat/26.0/26.0.cil===================================================================--- system/sepolicy/prebuilts/api/28.0/private/compat/26.0/26.0.cil(revision 221)+++ system/sepolicy/prebuilts/api/28.0/private/compat/26.0/26.0.cil(working copy)@@ -15,6 +15,7 @@ (type rild) (typeattributeset accessibility_service_26_0 (accessibility_service))+(typeattributeset policy_service_26_0 (policy_service)) (typeattributeset account_service_26_0 (account_service)) (typeattributeset activity_service_26_0 (activity_service)) (typeattributeset adbd_26_0 (adbd))Index: system/sepolicy/prebuilts/api/28.0/private/compat/27.0/27.0.cil===================================================================--- system/sepolicy/prebuilts/api/28.0/private/compat/27.0/27.0.cil(revision 221)+++ system/sepolicy/prebuilts/api/28.0/private/compat/27.0/27.0.cil(working copy)@@ -718,6 +718,7 @@ (expandtypeattribute (zygote_exec_27_0) true) (expandtypeattribute (zygote_socket_27_0) true) (typeattributeset accessibility_service_27_0 (accessibility_service))+(typeattributeset policy_service_27_0 (policy_service)) (typeattributeset account_service_27_0 (account_service)) (typeattributeset activity_service_27_0 (activity_service)) (typeattributeset adbd_27_0 (adbd))Index: system/sepolicy/prebuilts/api/28.0/private/service_contexts===================================================================--- system/sepolicy/prebuilts/api/28.0/private/service_contexts(revision 221)+++ system/sepolicy/prebuilts/api/28.0/private/service_contexts(working copy)@@ -186,3 +186,4 @@ wifirtt u:object_r:rttmanager_service:s0 window u:object_r:window_service:s0 * u:object_r:default_android_service:s0+policy u:object_r:policy_service:s0Index: system/sepolicy/prebuilts/api/28.0/private/system_server.te===================================================================--- system/sepolicy/prebuilts/api/28.0/private/system_server.te(revision 221)+++ system/sepolicy/prebuilts/api/28.0/private/system_server.te(working copy)@@ -806,7 +806,7 @@ # Do not allow opening files from external storage as unsafe ejection # could cause the kernel to kill the system_server. neverallow system_server sdcard_type:dir { open read write };-neverallow system_server sdcard_type:file rw_file_perms;+# neverallow system_server sdcard_type:file rw_file_perms; # system server should never be operating on zygote spawned app data # files directly. Rather, they should always be passed via aIndex: system/sepolicy/prebuilts/api/28.0/public/service.te===================================================================--- system/sepolicy/prebuilts/api/28.0/public/service.te(revision 221)+++ system/sepolicy/prebuilts/api/28.0/public/service.te(working copy)@@ -32,6 +32,7 @@ type virtual_touchpad_service, service_manager_type; type vold_service, service_manager_type; type vr_hwc_service, service_manager_type;+type policy_service, system_api_service, system_server_service, service_manager_type; # system_server_services broken down type accessibility_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;Index: system/sepolicy/private/app_neverallows.te===================================================================--- system/sepolicy/private/app_neverallows.te(revision 221)+++ system/sepolicy/private/app_neverallows.te(working copy)@@ -128,7 +128,6 @@ proc_stat proc_swaps proc_uptime- proc_version proc_vmallocinfo proc_vmstat }:file { no_rw_file_perms no_x_file_perms };Index: system/sepolicy/private/compat/26.0/26.0.cil===================================================================--- system/sepolicy/private/compat/26.0/26.0.cil(revision 221)+++ system/sepolicy/private/compat/26.0/26.0.cil(working copy)@@ -15,6 +15,7 @@ (type rild) (typeattributeset accessibility_service_26_0 (accessibility_service))+(typeattributeset policy_service_26_0 (policy_service)) (typeattributeset account_service_26_0 (account_service)) (typeattributeset activity_service_26_0 (activity_service)) (typeattributeset adbd_26_0 (adbd))Index: system/sepolicy/private/compat/27.0/27.0.cil===================================================================--- system/sepolicy/private/compat/27.0/27.0.cil(revision 221)+++ system/sepolicy/private/compat/27.0/27.0.cil(working copy)@@ -718,6 +718,7 @@ (expandtypeattribute (zygote_exec_27_0) true) (expandtypeattribute (zygote_socket_27_0) true) (typeattributeset accessibility_service_27_0 (accessibility_service))+(typeattributeset policy_service_27_0 (policy_service)) (typeattributeset account_service_27_0 (account_service)) (typeattributeset activity_service_27_0 (activity_service)) (typeattributeset adbd_27_0 (adbd))Index: system/sepolicy/private/service_contexts===================================================================--- system/sepolicy/private/service_contexts(revision 221)+++ system/sepolicy/private/service_contexts(working copy)@@ -186,3 +186,4 @@ wifirtt u:object_r:rttmanager_service:s0 window u:object_r:window_service:s0 * u:object_r:default_android_service:s0+policy u:object_r:policy_service:s0Index: system/sepolicy/private/system_server.te===================================================================--- system/sepolicy/private/system_server.te(revision 221)+++ system/sepolicy/private/system_server.te(working copy)@@ -806,7 +806,7 @@ # Do not allow opening files from external storage as unsafe ejection # could cause the kernel to kill the system_server. neverallow system_server sdcard_type:dir { open read write };-neverallow system_server sdcard_type:file rw_file_perms;+# neverallow system_server sdcard_type:file rw_file_perms; # system server should never be operating on zygote spawned app data # files directly. Rather, they should always be passed via aIndex: system/sepolicy/public/service.te===================================================================--- system/sepolicy/public/service.te(revision 221)+++ system/sepolicy/public/service.te(working copy)@@ -32,6 +32,7 @@ type virtual_touchpad_service, service_manager_type; type vold_service, service_manager_type; type vr_hwc_service, service_manager_type;+type policy_service, system_api_service, system_server_service, service_manager_type; # system_server_services broken down type accessibility_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;

這樣就行了,燒錄重新開機使用adb shell service list可以看到添加的service

policy: [android.app.IPolicyManager]

在outtargetcommonobjJAVA_LIBRARIESpolicy_intermediates找到classes.jar,這就是提供給客戶用的jar

具體的禁止和卸載方法如下:

禁止安裝可以修改PackageManagerService.java,在handleStartCopy方法中添加下面的代碼

public void handleStartCopy() throws RemoteException { int ret = PackageManager.INSTALL_SUCCEEDED; // If we’re already staged, we’ve firmly committed to an install location if (origin.staged) {if (origin.file != null) { installFlags |= PackageManager.INSTALL_INTERNAL; installFlags &= ~PackageManager.INSTALL_EXTERNAL;} else { throw new IllegalStateException('Invalid stage location');} } final boolean onSd = (installFlags & PackageManager.INSTALL_EXTERNAL) != 0; final boolean onInt = (installFlags & PackageManager.INSTALL_INTERNAL) != 0; final boolean ephemeral = (installFlags & PackageManager.INSTALL_INSTANT_APP) != 0; PackageInfoLite pkgLite = null; if (onInt && onSd) {// Check if both bits are set.Slog.w(TAG, 'Conflicting flags specified for installing on both internal and external');ret = PackageManager.INSTALL_FAILED_INVALID_INSTALL_LOCATION; } else if (onSd && ephemeral) {Slog.w(TAG, 'Conflicting flags specified for installing ephemeral on external');ret = PackageManager.INSTALL_FAILED_INVALID_INSTALL_LOCATION; } else {pkgLite = mContainerService.getMinimalPackageInfo(origin.resolvedPath, installFlags, packageAbiOverride);//add by juemePolicyManager policyManager = (PolicyManager)mContext.getSystemService('policy');String[] appNames = policyManager.getAppInstallationPolicies();if(appNames!=null && appNames.length>0){int app_status = android.provider.Settings.System.getInt(mContext.getContentResolver(),'customer_app_status', -1);Slog.w(TAG,'app_status '+app_status);if(app_status==0){for (int i = 0; i < appNames.length; i++) {Slog.w(TAG,'appNames 0 '+appNames[i]);if (pkgLite.packageName.equals(appNames[i])){ret = PackageManager.INSTALL_FAILED_INVALID_INSTALL_LOCATION;break;}}}else if(app_status==1){for (int i = 0; i < appNames.length; i++) {Slog.w(TAG,'appNames 1 '+appNames[i]);if (pkgLite.packageName.equals(appNames[i])){ret = PackageManager.INSTALL_SUCCEEDED;break;}else{ret = PackageManager.INSTALL_FAILED_INVALID_INSTALL_LOCATION;}}}}//add end

這樣在安裝時候就會報安裝位置不對的信息。

接著是禁止卸載,在PackageInstallerService.java的uninstall添加下面的方法。

@Override public void uninstall(VersionedPackage versionedPackage, String callerPackageName, int flags,IntentSender statusReceiver, int userId) throws RemoteException {//add by juemePolicyManager policyManager = (PolicyManager)mContext.getSystemService('policy');String[] appNames = policyManager.getAppUninstallationPolicies();if(appNames!=null && appNames.length>0){int appuninstall_status = android.provider.Settings.System.getInt(mContext.getContentResolver(),'customer_appuninstall_status', -1);Slog.w(TAG,'appuninstall_status '+appuninstall_status+' mInstallerPackageName '+versionedPackage.getPackageName());boolean isUninstall = true;//默認都是可卸載if(appuninstall_status==0){for (int i = 0; i < appNames.length; i++) {if (versionedPackage.getPackageName().equals(appNames[i])){isUninstall = true;break;}else{isUninstall = false;}}if(!isUninstall){return;}}else if(appuninstall_status==1){//應用包名列表中的所有項禁止卸載for (int i = 0; i < appNames.length; i++) {if (versionedPackage.getPackageName().equals(appNames[i])){isUninstall = false;break;}else{isUninstall = true;}}if(!isUninstall){return;}}}//add end

到此這篇關于android 禁止第三方apk安裝和卸載的方法詳解的文章就介紹到這了,更多相關android 禁止第三方apk內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Android
相關文章:
主站蜘蛛池模板: www青青操| 欧美日韩a v| 久久在线免费观看视频 | 国产真实交换夫妇视频 | 91传媒理伦片在线观看 | www人人草| 欧美美女性视频 | 九色福利视频 | youjizz中国少妇 | 69a∨色欧美丰满少妇 | 国产区免费 | 亚洲欧洲日韩一区二区三区 | 亚洲女同女同女同女同女同69 | 九九色网站| 国产91丝袜在线播放九色 | 日日碰狠狠躁久久躁2023 | 欧美特级黄色片 | 国产又粗又黄又长又爽动漫 | 免费无码专区毛片高潮喷水 | 精品国产一区二区三区四区五区 | h网站在线播放 | 欧美性受xxx | 毛片网站有哪些 | 特黄特色大片免费播放器图片 | 亚洲一区二区在线观看视频 | 日韩中文字幕视频 | 青青草激情 | 中文字幕在线播出 | 影音先锋在线中文字幕 | 日韩午夜一区二区在线精品三级伦理 | 99国产超薄肉色丝袜交足 | 91在线视频免费观看 | 高清视频在线观看一区二区三区 | 97久久超碰国产精品2021 | com国产| 青青草手机在线视频 | 精品精品国产高清a毛片 | 蜜桃色一区二区三区 | 久久国产精品久久喷水 | 强行挺进皇后紧窄湿润小说 | 一区精品在线 | 香蕉视频黄版 | 日本人乱人乱亲乱色视频观看 | 亚洲 变态 欧美 另类 捆绑 | 永久免费黄色 | 四虎国产成人永久精品免费 | 乱肉合集乱高h久久爱 | 黄色网页在线播放 | 6080私人午夜性爽快影院 | 成人免费a级片 | 色综合综合| 精品视频在线观看一区二区 | 国产精品久久久久久久久久iiiii | 无码高潮爽到爆的喷水视频 | 超碰v | 人妻系列无码专区av在线 | 日本公妇乱淫免费视频一区三区 | 在线视频 91 | 久久九九久精品国产 | 亚洲v | 久久视频在线免费观看 | 夜夜骑天天干 | 在线免费成人网 | 天天躁夜夜躁天干天干2020 | caoporn国产一区二区 | 黄色免费视频在线 | 成人av影片在线观看 | 国产日韩欧美精品在线观看 | 少妇一级淫片 | 国产精品视频免费 | 波多野结衣久久久久 | 黄色一大片 | 手机看片日韩在线 | 成人性生交大片免费视频 | 久久国产精品视频一区 | 国产精品视频一区二区噜噜 | 日韩经典午夜福利发布 | 国产精品a一区二区三区网址 | 高清无码一区二区在线观看吞精 | 2019nv天堂香蕉在线观看 | 亚洲小视频网站 | 欧美午夜三级 | 无限看片在线版免费视频大全 | 全部免费a级毛片 | 好吊妞在线观看 | 成人av影片在线观看 | 国产偷v国产偷v精品视频 | 国产精品一区二区免费 | 内射小寡妇无码 | 国产有码aaaae毛片视频 | 日产一区日产2区 | 91精品国产91久久久 | 成人综合一区 | 国产66av | 日本一区二区三区四区在线观看 | 国产丝袜视频 | 久草在线新时代视觉体验 | 国产成人一区二区三区在线 | 国产免费无码一区二区视频 | 在线看片人成视频免费无遮挡 | 精品久久久久久久免费人妻 | 天天看a| 天天天欲色欲色www免费 | 亚洲天堂首页 | 青草影院内射中出高潮 | 少妇高跟鞋做爰20p 少妇和黑人老外做爰av | 欧美成人va| 色噜噜狠狠狠综合曰曰曰 | 青青青草视频在线 | 按摩毛片 | 天天色天 | 中文字幕国产一区 | 国产精品自产拍高潮在线观看 | 日韩欧美猛交xxxxx无码 | 国产人妻精品一区二区三区 | 天天搞天天搞 | 美女又爽又黄 | 日本xxxxwwwww | 亚洲国产成人aⅴ毛片大全密桃 | 欧美疯狂xxxx乱大交 | 天天爽影院 | zzijzzij亚洲成熟少妇 | 欧美乱人免费视频观看 | 最新中文字幕免费视频 | 国产一级一级片 | 亚洲乱码日产精品bd在线观看 | 啪啪tv网站免费入口 | 日韩精品久久久久久久软件91 | 青草伊人网 | 日韩成人片 | 日韩人妻无码精品久久久不卡 | 国产精成人品日日拍夜夜免费 | 国产成人免费片在线观看 | 91tv亚洲精品香蕉国产一区 | 日韩av无码久久一区二区 | 成人影视免费观看 | 性一交一乱一交一精一品 | 欧美成人性色 | 天天摸天天爽日韩欧美大片 | 亚洲欧洲天堂 | 成人在线看片 | 国产精品日韩在线 | 欧美黑人xxxx高潮猛交 | 亚洲成a人片 | 新搬来的女邻居麻豆av评分 | av片在线观看免费 | 亚洲精品久久久久久国产精华液 | 少妇把腿扒开让我舔18 | 国产人妻精品午夜福利免费 | 欧美精品hd| 成人一区二区三区视频在线观看 | 欧洲精品免费一区二区三区 | 免费视频久久 | 91麻豆精品国产 | 亚洲乱码日产精品bd | 国产99精品视频 | 日本精品久久久久久 | 一区二区三区欧美 | 国产午夜精品理论片a级探花 | 日韩在线视频看看 | 狠狠爱欧美 | 无码人妻一区二区三区在线 | 亚洲无吗av| 国产精品黄色 | 国产精品xxx在线观看 | 国精品人妻无码一区二区三区喝尿 | 一级黄色性片 | 日本黄色免费在线观看 | 国产精品一v二v在线观看 | 久草精品视频在线观看 | 一区二区在线播放视频 | 色偷偷av男人的天堂 | 午夜av导航 | 天天操天天干天天操 | 中日韩在线观看 | 免费福利片2019潦草影视午夜 | 国产韩国精品一区二区三区久久 | 无码人妻精品丰满熟妇区 | 欧美大片免费观看网址 | 少妇饥渴放荡91麻豆 | 国产精品12页 | 日本三级不卡 | 无码人妻丰满熟妇啪啪 | 日本中文字幕第一页 | 欧美激情视频一区二区三区不卡 | 国产欧美一区二区精品97 | 国产精品久久久国产盗摄蜜臀 | 国产成人福利在线 | 一个人在线观看www软件 | 亚洲天堂成人在线观看 | 长河落日| 性少妇无码播放 | 亚洲xxxx做受欧美 | 欧美bbw精品一区二区三区 | 91网页版| 国产拍拍拍拍拍拍拍拍拍拍拍拍拍 | 中文字幕一区二区三区久久 | 中文字幕一区二区三区乱码 | 寂寞寡妇让我吃奶 | 欧美一级淫片bbb一84 | 涩涩精品| 亚洲综合激情另类专区 | 日本乱偷人妻中文字幕在线 | a级片日本 | 免费看成人啪啪 | 国内偷自拍性夫妇 | 国产成人8x视频网站入口 | 华人在线视频 | xxxx视频在线观看 | 日本高清在线观看视频 | 爱爱精品视频 | 久爱视频在线 | 亚洲 精品 主播 自拍 | 一区二区三区视频免费 | 7777久久久国产精品 | 中文字幕日韩在线播放 | 日韩av一卡 | 久草在线新时代视觉体验 | 91精品福利在线观看 | 交换做爰2中文字幕 | 爆爽久久久一区二区又大又黄又嫩 | 被c到高潮疯狂喷水国产 | 黑人上司好猛我好爽中文字幕 | 性欧美18—19sex性高清 | 最新色站| 国内精品伊人久久久久网站 | 色a在线观看 | 无遮挡啪啪成人免费网站 | 4438xx亚洲最大五色丁香 | 亚洲免费在线观看 | 欧美 图片 另类 自拍 | 97精品人妻一区二区三区香蕉 | 四虎影像 | 日本丶国产丶欧美色综合 | 欧美成人自拍 | 亚洲一区二区三区在线 | 日韩久久毛片 | 国产又色又爽又黄又免费 | 一级做a爰片久久毛片潮喷 一级做a爰片欧美激情床 | 羞羞的视频网站 | 操碰91| 色偷偷一区二区无码视频 | 亚洲无线一二三四区手机 | 麻豆三级 | 成年人黄色毛片 | 欧美色99| 久久午夜无码鲁丝片秋霞 | 久久久区 | 69热在线| 久久99精品久久久久久 | 乌克兰丰满少妇毛片 | 精品一区二区三区免费视频 | 久久久999国产精品 久久久999精品视频 | 蜜臀av中文字幕 | 夜夜嗨av| zzzwww在线看片免费 | 成年在线网站免费观看无广告 | 亚洲中文无码a∨在线观看 在线不卡日本v二区到六区 | 欧美黑人粗暴多交高潮水最多 | 欧美午夜一区二区福利视频 | 暖暖视频日本在线观看 | 性高湖久久久久久久久免费 | 日本国产三级xxxxxx | 国产乱人伦偷精品视频不卡 | 国产精品美女www爽爽爽视频 | 成人在线视频网站 | 天堂91| 91爱视频 | 国产午夜伦鲁鲁 | 在线日韩精品视频 | 亚洲色图激情小说 | 四虎国产精品永久在线国在线 | 自拍成人福利视频免费在线观看 | 亚洲 中文字幕 日韩 无码 | 国产九色91 | 99爱在线| 老色鬼在线精品视频 | 日本做暖暖xo小视频 | 国产农村妇女毛片精品久久 | 日本3级网站 | 少妇下蹲露大唇无遮挡图片 | 日本少妇与黑人 | 亚洲国产日韩欧美一区二区三区 | 久久黄色网络 | 五月激情六月丁香 | 午夜在线视频观看日韩17c | 亚洲 欧美 日韩 综合 国产aⅴ | 日本xxxx18高清hd | 日韩有码专区 | 香蕉视频一区二区三区 | 国产精品久久久久久av | 欧美成人精品欧美一级乱黄 | 欧美成人福利 | 按摩师高h荡肉呻吟在线观看 | 中文字幕va一区二区三区 | 久久亚洲精品无码aⅴ大香 人人妻人人玩人人澡人人爽 | 久久大综合 | 国产在线精品一区二区三区 | 国产精品久久免费观看spa | 伊人影院在线视频 | 亚洲视频1区 | 天天操夜夜爽 | 伊人久久成人 | 久久亚洲精品成人av无码网站 | av网站大全在线观看 | 精品三级视频 | 亚洲色图校园春色 | 国产在线观看黄 | 污污内射在线观看一区二区少妇 | 国产高清亚洲 | 黄瓜污视频 | 日韩欧美一区二区在线 | 精品国产一区二区三区久久狼黑人 | 婷婷亚洲视频 | 激情综合一区二区三区 | 大又大又粗又硬又爽少妇毛片 | 新搬来的女邻居麻豆av评分 | 久久久精品日本 | 欧洲影院 | 韩国av一区二区 | 大尺度做爰床戏呻吟色戒韩国 | 亚洲人成网线在线播放 | 男女后进式猛烈xx00动态图片 | 免费jizz | 国内毛片毛片毛片毛片毛片 | 欧美一区二区伦理片 | 99re国产视频 | 日韩三级免费看 | 久热精品在线观看视频 | 亚洲精品乱码久久久久久蜜桃欧美 | 免费观看污 | 日本免费一区二区三区最新 | 亚洲国产欧美一区二区三区丁香婷 | 国产xxxxewxxxx性 | 四虎精品成人免费视频 | 久久99精品久久久久久久清纯 | 中文 日韩 欧美 | 国产真实乱偷精品视频免 | 国产欧美一区二区三区网站 | 国产免费福利 | 色视频一区二区三区 | 小嘀咕视频官网在线观看 | 中文字幕日产无线码一区 | 欧美中文字幕一区二区 | 美女胸又黄又水 | 特级a级毛片 | 黄色成人免费视频 | 高跟鞋av | 一本久道高清无码视频 | 大尺度一区二区 | 日韩毛片网站 | 澳门久久 | 五月婷婷激情小说 | 人善交video另类hd侏儒 | 色综合网站 | 亚洲女优在线 | 国产第二页 | 色av永久无码影院av | 中文乱码字慕人妻熟女人妻 | 国产成人av在线播放 | 九九小视频| 国产欧美日韩在线观看 | 国产激情91久久精品导航 | 91午夜剧场| 久色阁| 国产成人综合一区二区三区 | 精品视频久久久久 | 狠狠五月深爱婷婷网 | 国产精品一区二区三区视频免费 | 天天综合天天做 | 国产成人久久精品麻豆二区 | 老熟女毛茸茸浓毛 | 色 成人 亚洲 | 麻豆久久久久久 | 激情欧美一区二区免费视频 | 精品欧洲av无码一区二区三区 | 日韩av在线免费看 | 精品欧美一区二区在线观看 | 亚洲一区二区色 | 亚洲国产精品成人久久久麻豆 | 窝窝午夜精品一区二区 | 国产精品一区在线 | 97超碰在线播放 | 国产爆乳无码一区二区麻豆 | 亚洲偷怕| 男人狂躁女人爽的尖叫的免费视频 | 亚洲加勒比无码一区二区 | 少妇无套内谢久久久久 | 精品欧美成人高清在线观看 | 国产一区二区三区久久久久久久 | 国产成人影视 | 精品国产乱码久久久久久免费 | 国产乱人伦精品一区二区 | 亚洲品牌自拍一品区9 | 成年人免费黄色 | 97视频入口| 无码人妻久久一区二区三区 | 黄色片网站免费 | 久久国产精品首页 | 嫩草影院中文字幕 | 免费久久99精品国产婷婷六月 | 五月天一区二区 | 亚洲精品乱码久久久久久日本蜜臀 | 天天看片夜夜爽 | 国产精品久久久久久久久久久久午夜片 | 成人国产精品入口 | 日本无遮挡吸乳视频 | 日本久久久久久科技有限公司 | 国产av国片精品jk制服丝袜 | 一区二区三区日韩 | 久久久久久成人毛片免费看 | 五月天婷婷在线视频 | 亚洲伦理网| 91超薄丝袜肉丝一区二区 | 亚洲女人天堂av | 日韩av免费播放 | 亚洲深深色噜噜狠狠网站 | 人人妻人人藻人人爽欧美一区 | 在线看欧美 | 午夜成人爽爽爽视频在线观看 | 亚洲成a∨人片在线观看无码 | 欧美寡妇xxxx黑人猛交 | 五月天婷婷在线视频 | 国产亚洲精品久久久久5区 成熟了的熟妇毛茸茸 | 亚洲图片中文字幕 | 国产ts三人妖大战直男 | 伊人成色综合网 | 成人午夜视频免费在线观看 | 欧美狂野另类xxxxoooo | 伊人首页 | 免费观看不卡av | 成人毛片18女人毛片 | 第九色 | 国产精品十八禁在线观看 | 三级国产三级在线 | 成人性能视频在线 | 日产精品高潮呻吟av久久 | 日韩人妻少妇一区二区三区 | 亚洲a级女人内射毛片 | 同性情a三级a三级a三级 | 色哟哟在线观看视频 | 国产精品无码专区av在线播放 | 韩国女主播av | 在线欧美色| 午夜性无码专区 | 青青免费视频在线观看 | 欧美成人手机在线 | 国内精品久久久久久久久久清纯 | 欧美成人黄色 | 一级全黄少妇性色生活片毛片 | 久久久久久久美女 | 国产精品免费一区二区三区四区 | 亚洲一二三av | 91精品一久久香蕉国产线看观看新通道出现 | 四虎av在线| 自拍偷自拍亚洲精品被多人伦好爽 | 天堂在线精品 | 日本人做爰全过程 | 久久亚洲国产成人精品无码区 | 国产免费网 | 欧美激情videos | 亚洲高清av在线 | 夜夜嗨av一区二区三区免费区 | 欧美大片高清免费观看 | 欧美日韩午夜精品 | 久久久国产一区二区三区四区小说 | 在线国产福利 | 欧美性xxxx图片 | 天天狠天天插天天透 | 国产欧美日韩综合精品一 | 国模无码大尺度一区二区三区 | 亚洲人色婷婷成人网站在线观看 | 久久精品一区二区三区四区 | 91在线中文 | 国产农村妇女精品一二区 | 黄色小视频免费在线观看 | 全免费又大粗又黄又爽少妇片 | 成人羞羞国产免费软件动漫 | 亚洲色大成网站www永久男同 | wc偷拍嘘嘘视频一区二区在线 | 免费观看成人摸66m66 | 日本中文字幕精品 | 一级黄色片视频 | 欧美3p在线观看 | aⅴ在线免费观看 | 色视频在线观看 | 成人天堂视频第一网站 | 国产又粗又猛又爽又黄的视频小说 | 日韩人妻无码精品—专区 | 国产美女视频免费观看的软件 | 一本大道卡一卡二卡三乱码全集资源 | blacked精品一区国产在线观看 | 超碰黑人| 成人性生交大免费看 | 久久a视频| 免费在线成人 | 日韩精品视频在线观看一区二区 | 成人国产精品秘片多多 | 久久r精品国产99久久6不卡 | 一区二区福利 | 午夜福利1000集在线观看 | 婷婷色站 | 完全免费在线视频 | 亚洲激情第一页 | 国产偷国产偷亚洲高清app | 97国产精| 欧美性猛交xxxxx按摩欧美 | 91久久国产婷婷一区二区 | 色中文在线 | 国产一区日本 | 久草在线免费福利资源 | 国产精品视频麻豆 | 97在线观看永久免费视频 | 自拍偷拍激情视频 | 午夜影院一区 | 黑人老外猛进华人美女 | 在线观看1区 | 婷婷精品国产欧美精品亚洲人人爽 | 亚洲激情欧美色图 | 日韩精品v | 女同性恋毛片 | 欧美大片在线观看免费视频 | 91啦丨九色丨刺激 | 91精品国产一区二区在线观看 | 亚洲欧美经典 | 伊人福利视频 | 人妻人人做人碰人人添 | 99精品国产高清一区二区麻豆 | 91视频久久 | 永久av免费 | 国产成人无码午夜视频在线观看 | 天天夜夜啦啦啦 | 丝袜美腿亚洲一区二区 | 老司机午夜影院 | 亚洲国产永久 | 色先锋av资源中文字幕 | 日欧一片内射va在线影院 | 国产精品大全 | 亚洲孕交 | 日本韩国一级淫片a免费 | 在线天堂新版最新版在线8 麻豆成人精品国产免费 | 日日摸日日碰夜夜爽av | 三级国产在线观看 | www香蕉视频| 国产一区二区三区免费观看网站上 | 正在播放国产真实哭都没用 | 乱码人妻一区二区三区 | 国产精彩视频在线观看 | 国产成人a在线观看视频免费 | 精品久久久久国产免费第一页 | 国产激情久久久久 | 97人人超碰国产精品最新 | 国产99在线 | 亚洲 | 日韩黄色网络 | a级a做爰片成人毛片入口 | 日本福利在线观看 | 色婷婷蜜桃 | 自拍偷拍欧美亚洲 | 国产女人爽到高潮免费视频 | 国产一级片免费播放 | 一区二区三区av在线 | 国产成人免费观看久久久 | 91超薄丝袜肉丝一区二区 | 日本韩国在线播放 | 成年午夜性影院 | 天堂中文最新版在线官网在线 | 国产一级αⅴ片免费看 | 91中文在线观看 | 男女又爽又黄 | 久久久久久久人妻无码中文字幕爆 | 玩弄少妇人妻中文字幕 | 超碰人人人人人人 | 91视频黄 | 激烈的性高湖波多野结衣 | 久久精品人人做人人爽电影蜜月 | www国产一区二区 | 97人人揉人人捏人人添 | 久久机热精品 | 欧洲极品少妇 | 亚洲一区二区三区在线 | 小泽玛利亚一区二区三区视频 | 精品视频在线看 | 久久日本精品字幕区二区 | www操操操| 欧美精品18videosex性欧美 | 国产国语农村妇女偷人视频 | 高清视频一区 | 国产人成高清在线视频99最全资源 | 欧美三级三级三级爽爽爽 | 亚洲男人的天堂av手机在线观看 | 中文字幕人妻偷伦在线视频 | 亚洲美女在线视频 | 日韩视频免费观看 | 亚洲视频一区 | 国产精品18久久久久白浆软件 | 天天aaaaxxxx躁日日躁 | 激情黄色小说网站 | 国产三级在线视频 一区二区三区 | 鸭子tv国产在线永久播放 | 国精产品一品二品国精品69xx | 闺蜜互慰吃奶互揉69式磨豆腐 | 伊人原创视频 | 亚洲砖区免费 | 亚洲v欧美v | 色哟哟视频 | 中文字幕校园春色 | 九九热伊人 | 青青草97国产精品麻豆 | 丰满少妇一区二区三区 | 2020av视频| a毛片视频 | 国产成人av在线 | 欧洲成人一区二区三区 | 欧美成人福利视频 | 中文字幕精品一区久久久久 |