You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

264 lines
8.1 KiB

(*
* Copyright (c) 2018-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*)
open! IStd
open MethodMatcher
(* frameworks/base/core/java/android/app/backup/BackupAgent.java *)
let is_BackupAgent_method =
call_matches "android.app.backup.BackupAgent"
["onRestoreFile" (* onRestoreFile(ParcelFileDescriptor,long,int,String,String,long,long) *)
]
|> Staged.unstage
(* frameworks/base/core/java/android/app/DownloadManager.java *)
let is_DownloadManager_method =
call_matches "android.app.DownloadManager" ["rename" (* rename(Context,long,String) *)
]
|> Staged.unstage
(* frameworks/base/core/java/android/app/NotificationManager.java *)
let is_NotificationManager_method =
call_matches "android.app.NotificationManager"
["notifyAsUser" (* notifyAsUser(String,int,Notification,UserHandle) *)
]
|> Staged.unstage
(* frameworks/base/core/java/android/content/pm/ActivityInfo.java *)
let is_ActivityInfo_method =
call_matches "android.content.pm.ActivityInfo" ["dump" (* dump(Printer,String,int) *)
]
|> Staged.unstage
(* frameworks/base/core/java/android/content/pm/ApplicationInfo.java *)
let is_ApplicationInfo_method =
call_matches "android.content.pm.ApplicationInfo"
[ "dump"
; (* dump(Printer,String,int) *)
"getHiddenApiEnforcementPolicy"
; (* getHiddenApiEnforcementPolicy() *)
"maybeUpdateHiddenApiEnforcementPolicy"
(* maybeUpdateHiddenApiEnforcementPolicy(int,int) *)
]
|> Staged.unstage
(* frameworks/base/core/java/android/content/pm/ProviderInfo.java *)
let is_ProviderInfo_method =
call_matches "android.content.pm.ProviderInfo" ["dump" (* dump(Printer,String,int) *)
]
|> Staged.unstage
(* frameworks/base/core/java/android/content/pm/ResolveInfo.java *)
let is_ResolveInfo_method =
call_matches "android.content.pm.ResolveInfo" ["dump" (* dump(Printer,String,int) *)
]
|> Staged.unstage
(* frameworks/base/core/java/android/content/pm/ServiceInfo.java *)
let is_ServiceInfo_method =
call_matches "android.content.pm.ServiceInfo" ["dump" (* dump(Printer,String,int) *)
]
|> Staged.unstage
(* frameworks/base/core/java/android/database/sqlite/SQLiteDatabase.java *)
let is_SQLiteDatabase_method =
call_matches "android.database.sqlite.SQLiteDatabase"
[ "addCustomFunction"
; (* addCustomFunction(String,int,SQLiteDatabase$CustomFunction) *)
"reopenReadWrite"
(* reopenReadWrite() *)
]
|> Staged.unstage
(* frameworks/base/core/java/android/ddm/DdmHandleHeap.java *)
let is_DdmHandleHeap_method =
call_matches "android.ddm.DdmHandleHeap" ["handleChunk" (* handleChunk(Chunk) *)
]
|> Staged.unstage
(* frameworks/base/core/java/android/net/Uri.java *)
let is_Uri_method =
call_matches "android.net.Uri" ["getCanonicalUri" (* getCanonicalUri() *)
] |> Staged.unstage
(* frameworks/base/core/java/android/os/Environment.java *)
let is_Environment_method =
call_matches "android.os.Environment"
["classifyExternalStorageDirectory" (* classifyExternalStorageDirectory(File) *)
]
|> Staged.unstage
(* frameworks/base/core/java/android/os/Parcel.java *)
let is_Parcel_method =
call_matches "android.os.Parcel" ["readExceptionCode" (* readExceptionCode() *)
]
|> Staged.unstage
(* frameworks/base/core/java/android/os/RecoverySystem.java *)
let is_RecoverySystem_method =
call_matches "android.os.RecoverySystem"
[ "handleAftermath"
; (* handleAftermath(Context) *)
"rebootPromptAndWipeUserData"
; (* rebootPromptAndWipeUserData(Context,String) *)
"rebootWipeCache"
; (* rebootWipeCache(Context,String) *)
"rebootWipeUserData"
; (* rebootWipeUserData(Context,boolean) *)
"rebootWipeUserData"
; (* rebootWipeUserData(Context,boolean,String,boolean) *)
"rebootWipeUserData"
; (* rebootWipeUserData(Context,boolean,String,boolean,boolean) *)
"rebootWipeUserData"
(* rebootWipeUserData(Context,String) *)
]
|> Staged.unstage
(* frameworks/base/core/java/android/os/storage/StorageManager.java *)
let is_StorageManager_method =
call_matches "android.os.storage.StorageManager"
[ "getPrimaryStoragePathAndSize"
; (* getPrimaryStoragePathAndSize() *)
"getPrimaryStorageSize"
; (* getPrimaryStorageSize() *)
"getStorageBytesUntilLow"
; (* getStorageBytesUntilLow(File) *)
"getStorageCacheBytes"
; (* getStorageCacheBytes(File,int) *)
"getStorageLowBytes"
(* getStorageLowBytes(File) *)
]
|> Staged.unstage
(* frameworks/base/core/java/android/os/StrictMode.java *)
let is_StrictMode_method =
call_matches "android.os.StrictMode"
[ "conditionallyCheckInstanceCounts"
; (* conditionallyCheckInstanceCounts() *)
"decrementExpectedActivityCount"
; (* decrementExpectedActivityCount(Class) *)
"noteDiskRead"
; (* noteDiskRead() *)
"noteDiskWrite"
; (* noteDiskWrite() *)
"noteResourceMismatch"
; (* noteResourceMismatch(Object) *)
"noteUnbufferedIO"
; (* noteUnbufferedIO() *)
"queueIdle"
(* queueIdle() *)
]
|> Staged.unstage
(* frameworks/base/core/java/android/util/AtomicFile.java *)
let is_AtomicFile_method =
call_matches "android.util.AtomicFile"
["getLastModifiedTime"; (* getLastModifiedTime() *) "startWrite" (* startWrite(long) *)
]
|> Staged.unstage
(* frameworks/base/core/java/android/webkit/WebViewFactory.java *)
let is_WebViewFactory_method =
call_matches "android.webkit.WebViewFactory"
["onWebViewProviderChanged" (* onWebViewProviderChanged(PackageInfo) *)
]
|> Staged.unstage
(* frameworks/base/core/java/android/webkit/WebViewLibraryLoader.java *)
let is_WebViewLibraryLoader_method =
call_matches "android.webkit.WebViewLibraryLoader"
["getWebViewNativeLibrary" (* getWebViewNativeLibrary(PackageInfo,boolean) *)
]
|> Staged.unstage
(* frameworks/base/media/java/android/media/MiniThumbFile.java *)
let is_MiniThumbFile_method =
call_matches "android.media.MiniThumbFile"
[ "eraseMiniThumb"
; (* eraseMiniThumb(long) *)
"getMagic"
; (* getMagic(long) *)
"getMiniThumbFromFile"
; (* getMiniThumbFromFile(long,byte[]) *)
"saveMiniThumbToFile"
(* saveMiniThumbToFile(byte[],long,long) *)
]
|> Staged.unstage
(* frameworks/base/media/java/android/media/RingtoneManager.java *)
let is_RingtoneManager_method =
call_matches "android.media.RingtoneManager"
["deleteExternalRingtone" (* deleteExternalRingtone(Uri) *)
]
|> Staged.unstage
(* frameworks/multidex/library/src/androidx/multidex/MultiDex.java *)
let is_MultiDex_method =
call_matches "androidx.multidex.MultiDex"
[ "install"
; (* install(Context) *)
"installInstrumentation"
(* installInstrumentation(Context,Context) *)
]
|> Staged.unstage
(* libcore/ojluni/src/main/java/java/util/logging/FileHandler.java *)
let is_FileHandler_method =
call_matches "java.util.logging.FileHandler" ["run" (* run() *)
] |> Staged.unstage
let is_strict_mode_violation =
let matchers =
[ is_BackupAgent_method
; is_DownloadManager_method
; is_NotificationManager_method
; is_ActivityInfo_method
; is_ApplicationInfo_method
; is_ProviderInfo_method
; is_ResolveInfo_method
; is_ServiceInfo_method
; is_SQLiteDatabase_method
; is_DdmHandleHeap_method
; is_Uri_method
; is_Environment_method
; is_Parcel_method
; is_RecoverySystem_method
; is_StorageManager_method
; is_StrictMode_method
; is_AtomicFile_method
; is_WebViewFactory_method
; is_WebViewLibraryLoader_method
; is_MiniThumbFile_method
; is_RingtoneManager_method
; is_MultiDex_method
; is_FileHandler_method ]
in
fun tenv pn actuals -> List.exists matchers ~f:(fun m -> m tenv pn actuals)