1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/*
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  Licensed to the Apache Software Foundation (ASF) under one or more
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  contributor license agreements.  See the NOTICE file distributed with
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  this work for additional information regarding copyright ownership.
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  The ASF licenses this file to You under the Apache License, Version 2.0
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  (the "License"); you may not use this file except in compliance with
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  the License.  You may obtain a copy of the License at
8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *     http://www.apache.org/licenses/LICENSE-2.0
10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  See the License for the specific language governing permissions and
15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  limitations under the License.
16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage java.lang;
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.FileDescriptor;
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.net.InetAddress;
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.Permission;
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/**
25e26b27faf689c17b7894c78caee32432176349ecElliott Hughes * Legacy security code; do not use.
26ad41624e761bcf1af9c8008eb45187fc13983717Elliott Hughes *
27ad41624e761bcf1af9c8008eb45187fc13983717Elliott Hughes * <p>Security managers do <strong>not</strong> provide a
28c9a29bea2462417ebe58bdd3b4f6514d67b53610Jesse Wilson * secure environment for executing untrusted code. Untrusted code cannot be
29c9a29bea2462417ebe58bdd3b4f6514d67b53610Jesse Wilson * safely isolated within the Dalvik VM.
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class SecurityManager {
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
3399b4489d0555c6e0e5df941cbfad4cf250c8f0b8Elliott Hughes     * @deprecated Use {@link #checkPermission} instead.
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @Deprecated
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected boolean inCheck;
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
38e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public SecurityManager() { }
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
40e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkAccept(String host, int port) { }
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
42e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkAccess(Thread thread) { }
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
44e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkAccess(ThreadGroup group) { }
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
46e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkConnect(String host, int port) { }
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
48e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkConnect(String host, int port, Object context) { }
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
50e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkCreateClassLoader() { }
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
52e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkDelete(String file) { }
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
54e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkExec(String cmd) { }
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
56e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkExit(int status) { }
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
58e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkLink(String libName) { }
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
60e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkListen(int port) { }
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
62e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkMemberAccess(Class<?> cls, int type) { }
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
64e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkMulticast(InetAddress maddr) { }
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
6799b4489d0555c6e0e5df941cbfad4cf250c8f0b8Elliott Hughes     * @deprecated use {@link #checkMulticast(java.net.InetAddress)} instead.
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
69e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    @Deprecated public void checkMulticast(InetAddress maddr, byte ttl) { }
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
71e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkPackageAccess(String packageName) { }
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
73e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkPackageDefinition(String packageName) { }
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
75e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkPropertiesAccess() { }
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
77e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkPropertyAccess(String key) { }
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
79e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkRead(FileDescriptor fd) { }
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
81e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkRead(String file) { }
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
83e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkRead(String file, Object context) { }
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
85e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkSecurityAccess(String target) { }
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
87e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkSetFactory() { }
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
89e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public boolean checkTopLevelWindow(Object window) { return true; }
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
91e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkSystemClipboardAccess() { }
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
93e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkAwtEventQueueAccess() { }
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
95e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkPrintJobAccess() { }
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
97e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkWrite(FileDescriptor fd) { }
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
99e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkWrite(String file) { }
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
10299b4489d0555c6e0e5df941cbfad4cf250c8f0b8Elliott Hughes     * @deprecated Use {@link #checkPermission} instead.
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
104e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    @Deprecated public boolean getInCheck() { return inCheck; }
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
106e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    protected Class[] getClassContext() { return null; }
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
10999b4489d0555c6e0e5df941cbfad4cf250c8f0b8Elliott Hughes     * @deprecated Use {@link #checkPermission} instead.
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
111e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    @Deprecated protected ClassLoader currentClassLoader() { return null; }
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
11499b4489d0555c6e0e5df941cbfad4cf250c8f0b8Elliott Hughes     * @deprecated Use {@link #checkPermission} instead.
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
116e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    @Deprecated protected int classLoaderDepth() {
117e26b27faf689c17b7894c78caee32432176349ecElliott Hughes        return -1;
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
12199b4489d0555c6e0e5df941cbfad4cf250c8f0b8Elliott Hughes     * @deprecated Use {@link #checkPermission} instead.
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
123e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    @Deprecated protected Class<?> currentLoadedClass() { return null; }
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
12699b4489d0555c6e0e5df941cbfad4cf250c8f0b8Elliott Hughes     * @deprecated Use {@link #checkPermission} instead.
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
128e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    @Deprecated protected int classDepth(String name) { return -1; }
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
13199b4489d0555c6e0e5df941cbfad4cf250c8f0b8Elliott Hughes     * @deprecated Use {@link #checkPermission} instead.
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
133e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    @Deprecated protected boolean inClass(String name) { return false; }
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
13699b4489d0555c6e0e5df941cbfad4cf250c8f0b8Elliott Hughes     * @deprecated Use {@link #checkPermission} instead.
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
138e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    @Deprecated protected boolean inClassLoader() { return false; }
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
141e26b27faf689c17b7894c78caee32432176349ecElliott Hughes     * Returns the current thread's thread group.
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public ThreadGroup getThreadGroup() {
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        return Thread.currentThread().getThreadGroup();
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
147e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public Object getSecurityContext() { return null; }
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
149e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkPermission(Permission permission) { }
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
151e26b27faf689c17b7894c78caee32432176349ecElliott Hughes    public void checkPermission(Permission permission, Object context) { }
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
153