215 lines
5.5 KiB
Java
215 lines
5.5 KiB
Java
/*
|
|
* Copyright (C) 2014 The Android Open Source Project
|
|
* Copyright (c) 1995, 2018, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License version 2 only, as
|
|
* published by the Free Software Foundation. Oracle designates this
|
|
* particular file as subject to the "Classpath" exception as provided
|
|
* by Oracle in the LICENSE file that accompanied this code.
|
|
*
|
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
* version 2 for more details (a copy is included in the LICENSE file that
|
|
* accompanied this code).
|
|
*
|
|
* You should have received a copy of the GNU General Public License version
|
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*
|
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
* or visit www.oracle.com if you need additional information or have any
|
|
* questions.
|
|
*/
|
|
|
|
package java.lang;
|
|
|
|
import java.security.*;
|
|
import java.io.FileDescriptor;
|
|
import java.net.InetAddress;
|
|
|
|
// Android-changed: Stubbed the implementation. Android doesn't support SecurityManager.
|
|
// SecurityManager can only check access by Java code, so it can be bypassed by using
|
|
// native code. Applications should rely on Android permissions, process separation,
|
|
// other other methods for security purposes.
|
|
/**
|
|
* Legacy security code; do not use.
|
|
*
|
|
* <p>Security managers do <i>not</i> provide a secure environment for
|
|
* executing untrusted code and are unsupported on Android. Untrusted code
|
|
* cannot be safely isolated within a single VM on Android. Application
|
|
* developers can assume that there's no SecurityManager installed,
|
|
* i.e. {@link java.lang.System#getSecurityManager()} will return null.
|
|
*/
|
|
public
|
|
class SecurityManager {
|
|
|
|
/**
|
|
* @deprecated Use {@link #checkPermission} instead.
|
|
*/
|
|
@Deprecated
|
|
protected boolean inCheck;
|
|
|
|
/**
|
|
* @deprecated Use {@link #checkPermission} instead.
|
|
*/
|
|
@Deprecated
|
|
public boolean getInCheck() {
|
|
return inCheck;
|
|
}
|
|
|
|
public SecurityManager() {
|
|
|
|
}
|
|
|
|
protected Class[] getClassContext() {
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* @deprecated Use {@link #checkPermission} instead.
|
|
*/
|
|
@Deprecated
|
|
protected ClassLoader currentClassLoader()
|
|
{
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* @deprecated Use {@link #checkPermission} instead.
|
|
*/
|
|
@Deprecated
|
|
protected Class<?> currentLoadedClass() {
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* @deprecated Use {@link #checkPermission} instead.
|
|
*/
|
|
@Deprecated
|
|
protected int classDepth(String name) {
|
|
return -1;
|
|
}
|
|
|
|
/**
|
|
* @deprecated Use {@link #checkPermission} instead.
|
|
*/
|
|
@Deprecated
|
|
protected int classLoaderDepth()
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/**
|
|
* @deprecated Use {@link #checkPermission} instead.
|
|
*/
|
|
@Deprecated
|
|
protected boolean inClass(String name) {
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* @deprecated Use {@link #checkPermission} instead.
|
|
*/
|
|
@Deprecated
|
|
protected boolean inClassLoader() {
|
|
return false;
|
|
}
|
|
|
|
public Object getSecurityContext() {
|
|
return null;
|
|
}
|
|
|
|
public void checkPermission(Permission perm) {
|
|
|
|
}
|
|
|
|
public void checkPermission(Permission perm, Object context) {
|
|
|
|
}
|
|
|
|
public void checkCreateClassLoader() {
|
|
|
|
}
|
|
|
|
public void checkAccess(Thread t) { }
|
|
|
|
public void checkAccess(ThreadGroup g) { }
|
|
|
|
public void checkExit(int status) { }
|
|
|
|
public void checkExec(String cmd) { }
|
|
|
|
public void checkLink(String lib) { }
|
|
|
|
public void checkRead(FileDescriptor fd) { }
|
|
|
|
public void checkRead(String file) { }
|
|
|
|
public void checkRead(String file, Object context) { }
|
|
|
|
public void checkWrite(FileDescriptor fd) { }
|
|
|
|
public void checkWrite(String file) { }
|
|
|
|
public void checkDelete(String file) { }
|
|
|
|
public void checkConnect(String host, int port) { }
|
|
|
|
public void checkConnect(String host, int port, Object context) { }
|
|
|
|
public void checkListen(int port) { }
|
|
|
|
public void checkAccept(String host, int port) { }
|
|
|
|
public void checkMulticast(InetAddress maddr) { }
|
|
|
|
/**
|
|
* @deprecated use {@link #checkMulticast(java.net.InetAddress)} instead.
|
|
*/
|
|
@Deprecated
|
|
public void checkMulticast(InetAddress maddr, byte ttl) { }
|
|
|
|
public void checkPropertiesAccess() { }
|
|
|
|
public void checkPropertyAccess(String key) { }
|
|
|
|
/**
|
|
* @deprecated this method is deprecated.
|
|
*/
|
|
@Deprecated
|
|
public boolean checkTopLevelWindow(Object window) {
|
|
return true;
|
|
}
|
|
|
|
public void checkPrintJobAccess() { }
|
|
|
|
public void checkSystemClipboardAccess() { }
|
|
|
|
public void checkAwtEventQueueAccess() { }
|
|
|
|
public void checkPackageAccess(String pkg) { }
|
|
|
|
public void checkPackageDefinition(String pkg) { }
|
|
|
|
public void checkSetFactory() { }
|
|
|
|
/**
|
|
* @deprecated this method is deprecated.
|
|
*/
|
|
@Deprecated
|
|
public void checkMemberAccess(Class<?> clazz, int which) { }
|
|
|
|
public void checkSecurityAccess(String target) { }
|
|
|
|
/**
|
|
* Returns the current thread's thread group.
|
|
*/
|
|
public ThreadGroup getThreadGroup() {
|
|
return Thread.currentThread().getThreadGroup();
|
|
}
|
|
|
|
}
|