/external/sepolicy/ |
shared_relro.te | 1 # Process which creates/updates shared RELRO files to be used by other apps. 4 # The shared relro process is a Java program forked from the zygote, so it 8 # Grant write access to the shared relro files/directory.
|
/frameworks/webview/chromium/loader/ |
loader.cpp | 60 jboolean DoCreateRelroFile(const char* lib, const char* relro) { 63 if (unlink(relro) != 0 && errno != ENOENT) { 67 ALOGW("Failed to unlink old file %s: %s", relro, strerror(errno)); 70 char relro_tmp[strlen(relro) + sizeof(tmpsuffix)]; 71 strlcpy(relro_tmp, relro, sizeof(relro_tmp)); 92 rename(relro_tmp, relro) != 0) { 93 ALOGE("Failed to update relro file %s: %s", relro, strerror(errno)); 97 ALOGV("Created relro file %s for library %s", relro, lib) 134 jstring relro = relro64; local 158 jstring relro = relro64; local [all...] |
/external/chromium_org/content/shell/android/linker_test_apk/src/org/chromium/chromium_linker_test_apk/ |
LinkerTests.java | 32 // A shared RELRO should only be used on low-end devices. 37 // Always check for a shared RELRO. 41 Log.e(TAG, "Invalid shared RELRO linker configuration: " + 46 // Service processes should always use a shared RELRO section. 56 // Check that there are shared RELRO sections in the current process, 60 // Check that there are no shared RELRO sections in the current process,
|
/external/chromium_org/third_party/android_crazy_linker/src/tests/ |
test_util.h | 325 // /proc/self/maps that point to a RELRO ashmem region. 342 if (strstr(line, "/dev/ashmem/RELRO:")) { 346 Panic("Shared RELRO mapping is not readonly!\n"); 354 Panic("Could remap shared RELRO as writable, should not happen!\n"); 357 Panic("remapping shared RELRO to writable failed with: %s\n", 366 "Invalid shared RELRO sections in /proc/self/maps: %d" 371 printf("RELRO count check ok!\n"); 383 RelroInfo relro; member in struct:__anon16132::RelroLibrary 399 &this->relro.start, 400 &this->relro.size [all...] |
bar_with_relro.cpp | 9 // A variant of bar.cpp that also includes a large RELRO section. 10 // Used to test RELRO sharing with two different libraries at the 14 // gets put inside the RELRO section.
|
test_two_shared_relros.cpp | 7 // them gets its own shared RELRO. 58 printf("Child waiting for foo relro fd\n"); 63 printf("Child waiting for bar relro fd\n"); 86 printf("Parent enabling foo RELRO sharing\n"); 91 printf("Parent enabling bar RELRO sharing\n");
|
test_relocated_shared_relro.cpp | 47 printf("Child waiting for foo relro fd\n"); 52 printf("RELRO used in child process\n"); 77 printf("Parent enabling foo RELRO sharing\n"); 82 printf("Relocated RELRO sent to child\n");
|
test_shared_relro.cpp | 53 printf("Child waiting for foo relro fd\n"); 58 printf("RELRO used in child process\n"); 77 printf("Parent enabling foo RELRO sharing\n"); 82 printf("RELRO enabled and sent to child\n");
|
/ndk/sources/android/crazy_linker/tests/ |
test_util.h | 325 // /proc/self/maps that point to a RELRO ashmem region. 342 if (strstr(line, "/dev/ashmem/RELRO:")) { 346 Panic("Shared RELRO mapping is not readonly!\n"); 354 Panic("Could remap shared RELRO as writable, should not happen!\n"); 357 Panic("remapping shared RELRO to writable failed with: %s\n", 366 "Invalid shared RELRO sections in /proc/self/maps: %d" 371 printf("RELRO count check ok!\n"); 383 RelroInfo relro; member in struct:__anon43686::RelroLibrary 399 &this->relro.start, 400 &this->relro.size [all...] |
bar_with_relro.cpp | 9 // A variant of bar.cpp that also includes a large RELRO section. 10 // Used to test RELRO sharing with two different libraries at the 14 // gets put inside the RELRO section.
|
test_two_shared_relros.cpp | 7 // them gets its own shared RELRO. 58 printf("Child waiting for foo relro fd\n"); 63 printf("Child waiting for bar relro fd\n"); 86 printf("Parent enabling foo RELRO sharing\n"); 91 printf("Parent enabling bar RELRO sharing\n");
|
test_relocated_shared_relro.cpp | 47 printf("Child waiting for foo relro fd\n"); 52 printf("RELRO used in child process\n"); 77 printf("Parent enabling foo RELRO sharing\n"); 82 printf("Relocated RELRO sent to child\n");
|
test_shared_relro.cpp | 53 printf("Child waiting for foo relro fd\n"); 58 printf("RELRO used in child process\n"); 77 printf("Parent enabling foo RELRO sharing\n"); 82 printf("RELRO enabled and sent to child\n");
|
/external/chromium_org/third_party/android_crazy_linker/src/src/ |
crazy_linker_elf_relro.h | 17 // A class used to model a shared RELRO section backed by an Ashmem region. 42 // Copy the content of the current process' RELRO into the ashmem region. 43 // |relro_start| is the RELRO address (page-aligned). 44 // |relro_size| is the RELRO size in bytes (page-aligned), and must match 49 // Copy the contents of the current process' RELRO into the ashmem region 53 // process' RELRO, i.e. is not relocated. 64 // to avoid corrupting parts of the RELRO section that are different in this 67 // code that reads from the RELRO region during this call.
|
crazy_linker_elf_relro.cpp | 74 String name("RELRO:"); 77 error->Format("Could not allocate RELRO ashmem region for %s: %s", 94 error->Format("Could not allocate RELRO mapping: %s", strerror(errno)); 98 // Copy process' RELRO into it. 115 // Offset of RELRO section in current library. 126 error->Format("Could not allocate RELRO mapping for: %s", strerror(errno)); 145 error->Format("Could not make RELRO ashmem region read-only: %s", 173 error->Format("Cannot map RELRO ashmem region as read-only: %s\n",
|
crazy_linker_shared_library.cpp | 428 SharedRelro relro; local 430 if (!relro.Allocate(relro_size_, base_name_, error)) 436 if (!relro.CopyFromRelocated( 441 if (!relro.CopyFrom(relro_start_, relro_size_, error)) 446 if (!relro.ForceReadOnly(error)) 450 *relro_start = relro.start(); 451 *relro_size = relro.size(); 452 *relro_fd = relro.DetachFd(); 471 // Sanity check: A shared RELRO is not already used. 473 *error = "Library already using shared RELRO section" 488 SharedRelro relro; local [all...] |
/ndk/sources/android/crazy_linker/src/ |
crazy_linker_elf_relro.h | 17 // A class used to model a shared RELRO section backed by an Ashmem region. 42 // Copy the content of the current process' RELRO into the ashmem region. 43 // |relro_start| is the RELRO address (page-aligned). 44 // |relro_size| is the RELRO size in bytes (page-aligned), and must match 49 // Copy the contents of the current process' RELRO into the ashmem region 53 // process' RELRO, i.e. is not relocated. 64 // to avoid corrupting parts of the RELRO section that are different in this 67 // code that reads from the RELRO region during this call.
|
crazy_linker_elf_relro.cpp | 74 String name("RELRO:"); 77 error->Format("Could not allocate RELRO ashmem region for %s: %s", 94 error->Format("Could not allocate RELRO mapping: %s", strerror(errno)); 98 // Copy process' RELRO into it. 115 // Offset of RELRO section in current library. 126 error->Format("Could not allocate RELRO mapping for: %s", strerror(errno)); 145 error->Format("Could not make RELRO ashmem region read-only: %s", 173 error->Format("Cannot map RELRO ashmem region as read-only: %s\n",
|
crazy_linker_shared_library.cpp | 319 SharedRelro relro; local 321 if (!relro.Allocate(relro_size_, base_name_, error)) 327 if (!relro.CopyFromRelocated( 332 if (!relro.CopyFrom(relro_start_, relro_size_, error)) 337 if (!relro.ForceReadOnly(error)) 341 *relro_start = relro.start(); 342 *relro_size = relro.size(); 343 *relro_fd = relro.DetachFd(); 362 // Sanity check: A shared RELRO is not already used. 364 *error = "Library already using shared RELRO section" 379 SharedRelro relro; local [all...] |
/external/chromium_org/content/shell/android/linker_test_apk/ |
chromium_linker_test_linker_tests.cc | 43 // The RELRO section(s), after being copied into an ashmem region, will 48 // "/dev/ashmem/RELRO:<libname> (deleted)" 54 // For regular builds, there is only one library, and thus one RELRO 56 // each one with its own RELRO. 57 static const char kRelroSectionPrefix[] = "/dev/ashmem/RELRO:"; 82 // Ignore any mapping that isn't a shared RELRO. 102 "Shared RELRO section at %p-%p is not mapped read-only. " 119 "Shared RELRO section at %p-%p could be remapped read-write!?", 127 "Shared RELRO section at %p-%p failed " 142 "There are %d shared RELRO sections in this process, %d are bad" [all...] |
/frameworks/base/services/core/java/com/android/server/webkit/ |
WebViewUpdateService.java | 81 * The shared relro process calls this to notify us that it's done trying to create a relro 82 * file. This method gets called even if the relro creation has failed or the process 87 // Verify that the caller is either the shared relro process (nominal case) or the 88 // system server (only in the case the relro process crashes and we get here via the 106 * WebViewFactory calls this to block WebView loading until the relro file is created. 131 if (!relroReady) Slog.w(TAG, "creating relro file timed out");
|
/external/chromium_org/base/android/java/src/org/chromium/base/library_loader/ |
Linker.java | 29 * ability to save RAM by sharing the ELF RELRO sections between renderer 33 * the content of their RELRO section (which includes C++ vtables or any 36 * By default, the RELRO section is backed by private RAM in each process, 41 * copy the RELRO content into it, then have each process swap its private, 42 * regular RELRO, with a shared, read-only, mapping of the shared one. 44 * This trick saves 98% of the RELRO section size per extra process, after the 46 * the process where the shared RELRO is created and the one(s) where it is used. 48 * Note that swapping the regular RELRO with the shared one is not an atomic 61 * addresses as the service ones (to save RAM by sharing the RELRO too) 68 * - The shared RELRO memory region is always forced read-only after creation [all...] |
/frameworks/base/core/java/android/webkit/ |
WebViewFactory.java | 60 "/data/misc/shared_relro/libwebviewchromium32.relro"; 62 "/data/misc/shared_relro/libwebviewchromium64.relro"; 208 * Currently, this means spawning the child processes which will create the relro files. 222 if (DEBUG) Log.v(LOGTAG, "creating relro files"); 228 if (DEBUG) Log.v(LOGTAG, "Create 32 bit relro"); 233 if (DEBUG) Log.v(LOGTAG, "Create 64 bit relro"); 321 Log.e(LOGTAG, "relro file creator for " + abi + " crashed. Proceeding without"); 333 "Native library paths to the WebView RelRo process must not be null!"); 338 if (pid <= 0) throw new Exception("Failed to start the relro file creator process"); 341 Log.e(LOGTAG, "error starting relro file creator for abi " + abi, t) [all...] |
IWebViewUpdateService.aidl | 26 * Used by the relro file creator to notify the service that it's done.
|
/external/chromium_org/third_party/android_crazy_linker/src/include/ |
crazy_linker.h | 20 // - It can share the RELRO section between two libraries 235 // |relro_start| is the address of the library's RELRO section in memory. 236 // |relso_size| is the size of the library's RELRO section (or 0 if none). 255 // Checks whether the system can support RELRO section sharing. This is 263 // Create an ashmem region containing a copy of the RELRO section for a given 266 // ashmem region corresponds to a RELRO relocated for a new load address. 268 // start of the RELRO section in memory, |*relro_size| to its size in bytes 280 // Use the shared RELRO section of the same library loaded in a different 284 // |relro_start| is the address of the RELRO section in memory. 285 // |relro_size| is the size of the RELRO section [all...] |