[{"data":1,"prerenderedAt":1629},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fandroid-secure-coding-standard\u002Fby-language\u002Fc-coding-language\u002Funknown-applicability-c-rulesrecomendations":28,"surround-\u002Fandroid-secure-coding-standard\u002Fby-language\u002Fc-coding-language\u002Funknown-applicability-c-rulesrecomendations":1059,"sidebar-android-secure-coding-standard":1068},[4,8],{"title":5,"path":6,"_path":6,"fromAppConfig":7},"Home","\u002F",true,{"title":9,"path":10,"children":11,"_path":27,"fromAppConfig":7},"Coding Standards","\u002Fcoding-standards\u002F",[12,15,18,21,24],{"title":13,"path":14},"Android Coding Standard","\u002Fandroid-secure-coding-standard\u002F",{"title":16,"path":17},"C Coding Standard","\u002Fsei-cert-c-coding-standard\u002F",{"title":19,"path":20},"C++ Coding Standard","\u002Fsei-cert-cpp-coding-standard\u002F",{"title":22,"path":23},"Java Coding Standard","\u002Fsei-cert-oracle-coding-standard-for-java\u002F",{"title":25,"path":26},"Perl Coding Standard","\u002Fsei-cert-perl-coding-standard\u002F","\u002Fcoding-standards",{"id":29,"title":30,"body":31,"description":1049,"extension":1050,"meta":1051,"navigation":7,"path":1055,"seo":1056,"stem":1057,"__hash__":1058},"content\u002F3.android-secure-coding-standard\u002F5.by-language\u002F3.c-coding-language\u002F5.unknown-applicability-c-rulesrecomendations.md","Unknown Applicability (C Rules\u002FRecomendations)",{"type":32,"value":33,"toc":1045},"minimark",[34,38,51,57,61,550,554],[35,36,30],"h1",{"id":37},"unknown-applicability-c-rulesrecomendations",[39,40,41,42,46,47,50],"p",{},"The first two tables list CERT C Coding Standard rules and recommendations that are ",[43,44,45],"em",{},"Applicable in Principle,"," meaning that the guideline can be applied to Android app development, but examples currently shown in the guideline are not yet relevant to Android. The third table lists rules and recommendations with ",[43,48,49],{},"Unknown"," applicability, meaning they are guidelines whose applicability to Android app development has not yet been determined.",[39,52,53],{},[54,55,56],"strong",{},"Contents",[35,58,60],{"id":59},"rulesunknown-applicability-to-android-development","Rules\u002FUnknown Applicability to Android Development",[62,63,64,75],"table",{},[65,66,67],"thead",{},[68,69,70,73],"tr",{},[71,72],"th",{},[71,74],{},[76,77,78,93,105,116,127,138,148,158,169,179,196,206,216,226,236,246,256,267,277,287,297,307,317,327,337,347,357,367,377,387,397,407,418,428,438,448,458,469,479,489,500,510,520,530,540],"tbody",{},[68,79,80,88],{},[81,82,83],"td",{},[54,84,85],{},[54,86,87],{},"Rules",[81,89,90],{},[54,91,92],{},"Comments",[68,94,95,102],{},[81,96,97],{},[98,99,101],"a",{"href":100},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp35-c","EXP35-C. Do not modify objects with temporary lifetime",[81,103,104],{},"Possibly C11 relevant material, relevance must be considered on Android.",[68,106,107,113],{},[81,108,109],{},[98,110,112],{"href":111},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fintegers-int\u002Fint36-c","INT36-C. Converting a pointer to integer or integer to pointer",[81,114,115],{},"Don't know if a hardware platform for Android that this applies to. (only   apply to certain arcane platform)",[68,117,118,124],{},[81,119,120],{},[98,121,123],{"href":122},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fcharacters-and-strings-str\u002Fstr34-c","STR34-C. Cast characters to unsigned char before converting to larger integer sizes",[81,125,126],{},"Can chars be unsigned on Android? Might be a compiler option, so yes. Not   needed for new code, but might have previous code affected by it.",[68,128,129,135],{},[81,130,131],{},[98,132,134],{"href":133},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fcharacters-and-strings-str\u002Fstr38-c","STR38-C. Do not confuse narrow and wide character strings and functions",[81,136,137],{},"Not sure, needs more investigation.",[68,139,140,146],{},[81,141,142],{},[98,143,145],{"href":144},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio24-c","FIO29-C. Do not open a file that is already open",[81,147],{},[68,149,150,156],{},[81,151,152],{},[98,153,155],{"href":154},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio32-c","FIO32-C. Do not perform operations on devices that are only appropriate for files",[81,157],{},[68,159,160,166],{},[81,161,162],{},[98,163,165],{"href":164},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio34-c","FIO34-C. Distinguish between characters read from a file and EOF or WEOF",[81,167,168],{},"EOF\u002FWEOF: Only apply to app's public files? Others protected by VM?",[68,170,171,177],{},[81,172,173],{},[98,174,176],{"href":175},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio37-c","FIO37-C. Do not assume that fgets() or fgetws() returns a nonempty string when successful",[81,178],{},[68,180,181,187],{},[81,182,183],{},[98,184,186],{"href":185},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio38-c","FIO38-C. Do not copy a FILE object",[81,188,189,190,195],{},"FIO reference. What is Android   filesystem? ",[98,191,192],{"href":192,"rel":193},"http:\u002F\u002Fstackoverflow.com\u002Fquestions\u002F2421826\u002Fwhat",[194],"nofollow"," -is-androids-file-system       It depends on what filesystem, for example \u002Fsystem and \u002Fdata are yaffs2   while \u002Fsdcard is vfat     By default, it uses YAFFS - Yet Another Flash File System.     Depends on what hardware\u002Fplatform you use.     Since Android uses the Linux-kernel at this level, it is more or less   possible to use whatever filesystem the Linux-kernel supports.     But since most phones use some kind of nand flash, it is safe to assume   that they use YAFFS.     But please note that if some vendor wants to sell a Android netbook (with a   harddrive), they could use ext3 or something like that.",[68,197,198,204],{},[81,199,200],{},[98,201,203],{"href":202},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio40-c","FIO40-C. Reset strings on fgets() or fgetws() failure",[81,205],{},[68,207,208,214],{},[81,209,210],{},[98,211,213],{"href":212},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio41-c","FIO41-C. Do not call getc(), putc(), getwc(), or putwc() with a stream argument that has side effects",[81,215],{},[68,217,218,224],{},[81,219,220],{},[98,221,223],{"href":222},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio42-c","FIO42-C. Close files when they are no longer needed",[81,225],{},[68,227,228,234],{},[81,229,230],{},[98,231,233],{"href":232},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio44-c","FIO44-C. Only use values for fsetpos() that are returned from fgetpos()",[81,235],{},[68,237,238,244],{},[81,239,240],{},[98,241,243],{"href":242},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio45-c","FIO45-C. Avoid TOCTOU race conditions while accessing files",[81,245],{},[68,247,248,254],{},[81,249,250],{},[98,251,253],{"href":252},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio46-c","FIO46-C. Do not access a closed file",[81,255],{},[68,257,258,264],{},[81,259,260],{},[98,261,263],{"href":262},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon30-c","CON30-C. Clean up thread-specific storage",[81,265,266],{},"CON concurrency: Need to look into Android, does it support C11? Look at   specifics of Android. Maybe POSIX threads, not C11 threads.",[68,268,269,275],{},[81,270,271],{},[98,272,274],{"href":273},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon31-c","CON31-C. Do not destroy a mutex while it is locked",[81,276,266],{},[68,278,279,285],{},[81,280,281],{},[98,282,284],{"href":283},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon32-c","CON32-C. Prevent data races when accessing bit-fields from multiple threads",[81,286,266],{},[68,288,289,295],{},[81,290,291],{},[98,292,294],{"href":293},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon33-c","CON33-C. Avoid race conditions when using library functions",[81,296,266],{},[68,298,299,305],{},[81,300,301],{},[98,302,304],{"href":303},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon34-c","CON34-C. Declare objects shared between threads with appropriate storage durations",[81,306,266],{},[68,308,309,315],{},[81,310,311],{},[98,312,314],{"href":313},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon35-c","CON35-C. Avoid deadlock by locking in a predefined order",[81,316,266],{},[68,318,319,325],{},[81,320,321],{},[98,322,324],{"href":323},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon36-c","CON36-C. Wrap functions that can spuriously wake up in a loop",[81,326,266],{},[68,328,329,335],{},[81,330,331],{},[98,332,334],{"href":333},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon37-c","CON37-C. Do not call signal() in a multithreaded program",[81,336,266],{},[68,338,339,345],{},[81,340,341],{},[98,342,344],{"href":343},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon38-c","CON38-C. Preserve thread safety and liveness when using condition variables",[81,346,266],{},[68,348,349,355],{},[81,350,351],{},[98,352,354],{"href":353},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon39-c","CON39-C. Do not join or detach a thread that was previously joined or detached",[81,356,266],{},[68,358,359,365],{},[81,360,361],{},[98,362,364],{"href":363},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon40-c","CON40-C. Do not refer to an atomic variable twice in an expression",[81,366,266],{},[68,368,369,375],{},[81,370,371],{},[98,372,374],{"href":373},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon41-c","CON41-C. Wrap functions that can fail spuriously in a loop",[81,376,266],{},[68,378,379,385],{},[81,380,381],{},[98,382,384],{"href":383},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos30-c","POS30-C. Use the readlink() function properly",[81,386],{},[68,388,389,395],{},[81,390,391],{},[98,392,394],{"href":393},"\u002Fsei-cert-c-coding-standard\u002Fthe-void\u002Fvoid-pos33-c-do-not-use-vfork","void POS33-C. Do not use vfork()",[81,396],{},[68,398,399,405],{},[81,400,401],{},[98,402,404],{"href":403},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos34-c","POS34-C. Do not call putenv() with a pointer to an automatic variable as the argument",[81,406],{},[68,408,409,415],{},[81,410,411],{},[98,412,414],{"href":413},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos35-c","POS35-C. Avoid race conditions while checking for the existence of a symbolic link",[81,416,417],{},"Can apps get root? Can they run a shell? These rules\u002Fguidelines are not   meant to address rooted devices (different OS than standard Android)",[68,419,420,426],{},[81,421,422],{},[98,423,425],{"href":424},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos36-c","POS36-C. Observe correct revocation order while relinquishing privileges",[81,427,417],{},[68,429,430,436],{},[81,431,432],{},[98,433,435],{"href":434},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos37-c","POS37-C. Ensure that privilege relinquishment is successful",[81,437,417],{},[68,439,440,446],{},[81,441,442],{},[98,443,445],{"href":444},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos38-c","POS38-C. Beware of race conditions when using fork and file descriptors",[81,447],{},[68,449,450,456],{},[81,451,452],{},[98,453,455],{"href":454},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos39-c","POS39-C. Use the correct byte ordering when transferring data between systems",[81,457],{},[68,459,460,466],{},[81,461,462],{},[98,463,465],{"href":464},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos44-c","POS44-C. Do not use signals to terminate threads",[81,467,468],{},"Further investigation needed, specific to SigAction",[68,470,471,477],{},[81,472,473],{},[98,474,476],{"href":475},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos47-c","POS47-C. Do not use threads that can be canceled asynchronously",[81,478],{},[68,480,481,487],{},[81,482,483],{},[98,484,486],{"href":485},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos48-c","POS48-C. Do not unlock or destroy another POSIX thread's mutex",[81,488],{},[68,490,491,497],{},[81,492,493],{},[98,494,496],{"href":495},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos49-c","POS49-C. When data must be accessed by multiple threads, provide a mutex and guarantee no adjacent data is also accessed",[81,498,499],{},"Look into Android specifics for   this, regarding \"guarantee no adjacent data is accessed\".",[68,501,502,508],{},[81,503,504],{},[98,505,507],{"href":506},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos50-c","POS50-C. Declare objects shared between POSIX threads with appropriate storage durations",[81,509],{},[68,511,512,518],{},[81,513,514],{},[98,515,517],{"href":516},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos51-c","POS51-C. Avoid deadlock with POSIX threads by locking in predefined order",[81,519],{},[68,521,522,528],{},[81,523,524],{},[98,525,527],{"href":526},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos52-c","POS52-C. Do not perform operations that can block while holding a POSIX lock",[81,529],{},[68,531,532,538],{},[81,533,534],{},[98,535,537],{"href":536},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos53-c","POS53-C. Do not use more than one mutex for concurrent waiting operations on a condition variable",[81,539],{},[68,541,542,548],{},[81,543,544],{},[98,545,547],{"href":546},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos54-c","POS54-C. Detect and handle POSIX library errors",[81,549],{},[35,551,553],{"id":552},"recommendationsunknown-applicability-to-android-development","Recommendations\u002FUnknown Applicability to Android Development",[62,555,556,564],{},[65,557,558],{},[68,559,560,562],{},[71,561],{},[71,563],{},[76,565,566,579,594,607,620,633,646,659,672,685,698,708,718,728,738,748,758,768,778,788,798,808,819,829,839,849,859,869,879,895,905,915,925,935,945,955,965,975,985,995,1005,1015,1025,1035],{},[68,567,568,575],{},[81,569,570],{},[54,571,572],{},[54,573,574],{},"Recommendations",[81,576,577],{},[54,578,92],{},[68,580,581,587],{},[81,582,583],{},[98,584,586],{"href":585},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Farrays-arr\u002Farr00-c","ARR00-C. Understand how arrays work",[81,588,589,590],{},"Arrays: Need examination of Android support. (gcc support of arrays partial). Note native code array issues different with ART than with Dalvik: ",[98,591,592],{"href":592,"rel":593},"http:\u002F\u002Fdeveloper.android.com\u002Fguide\u002Fpractices\u002Fverifying-apps-art.html#JNI_Issues",[194],[68,595,596,602],{},[81,597,598],{},[98,599,601],{"href":600},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Farrays-arr\u002Farr01-c","ARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array",[81,603,589,604],{},[98,605,592],{"href":592,"rel":606},[194],[68,608,609,615],{},[81,610,611],{},[98,612,614],{"href":613},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Farrays-arr\u002Farr02-c","ARR02-C. Explicitly specify array bounds, even if implicitly defined by an initializer",[81,616,589,617],{},[98,618,592],{"href":592,"rel":619},[194],[68,621,622,628],{},[81,623,624],{},[98,625,627],{"href":626},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Farrays-arr\u002Farr30-c","ARR30-C. Do not form or use out-of-bounds pointers or array subscripts",[81,629,589,630],{},[98,631,592],{"href":592,"rel":632},[194],[68,634,635,641],{},[81,636,637],{},[98,638,640],{"href":639},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Farrays-arr\u002Farr32-c","ARR32-C. Ensure size arguments for variable length arrays are in a valid range",[81,642,589,643],{},[98,644,592],{"href":592,"rel":645},[194],[68,647,648,654],{},[81,649,650],{},[98,651,653],{"href":652},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Farrays-arr\u002Farr36-c","ARR36-C. Do not subtract or compare two pointers that do not refer to the same array",[81,655,589,656],{},[98,657,592],{"href":592,"rel":658},[194],[68,660,661,667],{},[81,662,663],{},[98,664,666],{"href":665},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Farrays-arr\u002Farr37-c","ARR37-C. Do not add or subtract an integer to a pointer to a non-array object",[81,668,589,669],{},[98,670,592],{"href":592,"rel":671},[194],[68,673,674,680],{},[81,675,676],{},[98,677,679],{"href":678},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Farrays-arr\u002Farr38-c","ARR38-C. Guarantee that library functions do not form invalid pointers",[81,681,589,682],{},[98,683,592],{"href":592,"rel":684},[194],[68,686,687,693],{},[81,688,689],{},[98,690,692],{"href":691},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Farrays-arr\u002Farr39-c","ARR39-C. Do not add or subtract a scaled integer to a pointer",[81,694,589,695],{},[98,696,592],{"href":592,"rel":697},[194],[68,699,700,706],{},[81,701,702],{},[98,703,705],{"href":704},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio01-c","FIO01-C. Be careful using functions that use file names for identification",[81,707],{},[68,709,710,716],{},[81,711,712],{},[98,713,715],{"href":714},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio02-c","FIO02-C. Canonicalize path names originating from tainted sources",[81,717],{},[68,719,720,726],{},[81,721,722],{},[98,723,725],{"href":724},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio03-c","FIO03-C. Do not make assumptions about fopen() and file creation",[81,727],{},[68,729,730,736],{},[81,731,732],{},[98,733,735],{"href":734},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio05-c","FIO05-C. Identify files using multiple file attributes",[81,737],{},[68,739,740,746],{},[81,741,742],{},[98,743,745],{"href":744},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio06-c","FIO06-C. Create files with appropriate access permissions",[81,747],{},[68,749,750,756],{},[81,751,752],{},[98,753,755],{"href":754},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio08-c","FIO08-C. Take care when calling remove() on an open file",[81,757],{},[68,759,760,766],{},[81,761,762],{},[98,763,765],{"href":764},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio09-c","FIO09-C. Be careful with binary data when transferring data across systems",[81,767],{},[68,769,770,776],{},[81,771,772],{},[98,773,775],{"href":774},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio10-c","FIO10-C. Take care when using the rename() function",[81,777],{},[68,779,780,786],{},[81,781,782],{},[98,783,785],{"href":784},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio11-c","FIO11-C. Take care when specifying the mode parameter of fopen()",[81,787],{},[68,789,790,796],{},[81,791,792],{},[98,793,795],{"href":794},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio13-c","FIO13-C. Never push back anything other than one read character",[81,797],{},[68,799,800,806],{},[81,801,802],{},[98,803,805],{"href":804},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio14-c","FIO14-C. Understand the difference between text mode and binary mode with file streams",[81,807],{},[68,809,810,816],{},[81,811,812],{},[98,813,815],{"href":814},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio15-c","FIO15-C. Ensure that file operations are performed in a secure directory",[81,817,818],{},"FIO15-C: Look at Android\u002FC interactions more closely to see if   applicable.",[68,820,821,827],{},[81,822,823],{},[98,824,826],{"href":825},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio17-c","FIO17-C. Do not rely on an ending null character when using fread()",[81,828],{},[68,830,831,837],{},[81,832,833],{},[98,834,836],{"href":835},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio18-c","FIO18-C. Never expect fwrite() to terminate the writing process at a null character",[81,838],{},[68,840,841,847],{},[81,842,843],{},[98,844,846],{"href":845},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio19-c","FIO19-C. Do not use fseek() and ftell() to compute the size of a regular file",[81,848],{},[68,850,851,857],{},[81,852,853],{},[98,854,856],{"href":855},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio20-c","FIO20-C. Avoid unintentional truncation when using fgets() or fgetws()",[81,858],{},[68,860,861,867],{},[81,862,863],{},[98,864,866],{"href":865},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio21-c","FIO21-C. Do not create temporary files in shared directories",[81,868],{},[68,870,871,877],{},[81,872,873],{},[98,874,876],{"href":875},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio22-c","FIO22-C. Close files before spawning processes",[81,878],{},[68,880,881,893],{},[81,882,883,888,889],{},[98,884,887],{"href":885,"rel":886},"https:\u002F\u002Fwww.securecoding.cert.org\u002Fconfluence\u002Fdisplay\u002Fseccode\u002FFIO23-C.+Do+not+exit+with+unflushed+data+in+stdout+or+stderr",[194],"FIO23-C"," ",[98,890,892],{"href":885,"rel":891},[194],"FIO23-C.   Do not exit with unflushed data in stdout or stderr",[81,894],{},[68,896,897,903],{},[81,898,899],{},[98,900,902],{"href":901},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fapplication-programming-interfaces-api\u002Fapi01-c","API01-C. Avoid laying out strings in memory directly before sensitive data",[81,904],{},[68,906,907,913],{},[81,908,909],{},[98,910,912],{"href":911},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fapplication-programming-interfaces-api\u002Fapi09-c","API09-C. Compatible values should have the same type",[81,914],{},[68,916,917,923],{},[81,918,919],{},[98,920,922],{"href":921},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon43-c","CON43-C. Do not allow data races in multithreaded code",[81,924,266],{},[68,926,927,933],{},[81,928,929],{},[98,930,932],{"href":931},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fconcurrency-con\u002Fcon01-c","CON01-C. Acquire and release synchronization primitives in the same module, at the same level of abstraction",[81,934,266],{},[68,936,937,943],{},[81,938,939],{},[98,940,942],{"href":941},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fconcurrency-con\u002Fcon02-c","CON02-C. Do not use volatile as a synchronization primitive",[81,944,266],{},[68,946,947,953],{},[81,948,949],{},[98,950,952],{"href":951},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fconcurrency-con\u002Fcon03-c","CON03-C. Ensure visibility when accessing shared variables",[81,954,266],{},[68,956,957,963],{},[81,958,959],{},[98,960,962],{"href":961},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fconcurrency-con\u002Fcon04-c","CON04-C. Join or detach threads even if their exit status is unimportant",[81,964,266],{},[68,966,967,973],{},[81,968,969],{},[98,970,972],{"href":971},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fconcurrency-con\u002Fcon05-c","CON05-C. Do not perform operations that can block while holding a lock",[81,974,266],{},[68,976,977,983],{},[81,978,979],{},[98,980,982],{"href":981},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fconcurrency-con\u002Fcon06-c","CON06-C. Ensure that every mutex outlives the data it protects",[81,984,266],{},[68,986,987,993],{},[81,988,989],{},[98,990,992],{"href":991},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fconcurrency-con\u002Fcon07-c","CON07-C. Ensure that compound operations on shared variables are atomic",[81,994,266],{},[68,996,997,1003],{},[81,998,999],{},[98,1000,1002],{"href":1001},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fconcurrency-con\u002Fcon08-c","CON08-C. Do not assume that a group of calls to independently atomic methods is atomic",[81,1004,266],{},[68,1006,1007,1013],{},[81,1008,1009],{},[98,1010,1012],{"href":1011},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fconcurrency-con\u002Fcon09-c","CON09-C. Avoid the ABA problem when using lock-free algorithms",[81,1014,266],{},[68,1016,1017,1023],{},[81,1018,1019],{},[98,1020,1022],{"href":1021},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fposix-pos\u002Fpos01-c","POS01-C. Check for the existence of links when dealing with files",[81,1024],{},[68,1026,1027,1033],{},[81,1028,1029],{},[98,1030,1032],{"href":1031},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fposix-pos\u002Fpos04-c","POS04-C. Avoid using PTHREAD_MUTEX_NORMAL type mutex locks",[81,1034],{},[68,1036,1037,1043],{},[81,1038,1039],{},[98,1040,1042],{"href":1041},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fposix-pos\u002Fpos05-c","POS05-C. Limit access to files by creating a jail",[81,1044],{},{"title":1046,"searchDepth":1047,"depth":1047,"links":1048},"",2,[],"The first two tables list CERT C Coding Standard rules and recommendations that are Applicable in Principle, meaning that the guideline can be applied to Android app development, but examples currently shown in the guideline are not yet relevant to Android. The third table lists rules and recommendations with Unknown applicability, meaning they are guidelines whose applicability to Android app development has not yet been determined.","md",{"tags":1052},[1053,1054],"c","applicability-list","\u002Fandroid-secure-coding-standard\u002Fby-language\u002Fc-coding-language\u002Funknown-applicability-c-rulesrecomendations",{"title":30,"description":1049},"3.android-secure-coding-standard\u002F5.by-language\u002F3.c-coding-language\u002F5.unknown-applicability-c-rulesrecomendations","CH-Kgc7Ztn05hotZp8izKoxvyJ4FWPoNLCakac7pPZ4",[1060,1064],{"title":1061,"path":1062,"stem":1063,"children":-1},"Not Applicable to Android (C Rules\u002FRecomendations)","\u002Fandroid-secure-coding-standard\u002Fby-language\u002Fc-coding-language\u002Fnot-applicable-to-android-c-rulesrecomendations","3.android-secure-coding-standard\u002F5.by-language\u002F3.c-coding-language\u002F4.not-applicable-to-android-c-rulesrecomendations",{"title":1065,"path":1066,"stem":1067,"children":-1},"C++ Coding Language","\u002Fandroid-secure-coding-standard\u002Fby-language\u002Fcpp-coding-language","3.android-secure-coding-standard\u002F5.by-language\u002F4.cpp-coding-language",[1069],{"title":1070,"path":1071,"stem":1072,"children":1073},"SCI CERT Android Secure Coding Standard","\u002Fandroid-secure-coding-standard","3.android-secure-coding-standard\u002F1.index",[1074,1075,1125,1390,1486,1539,1563],{"title":1070,"path":1071,"stem":1072},{"title":1076,"path":1077,"stem":1078,"children":1079},"Front Matter","\u002Fandroid-secure-coding-standard\u002Ffront-matter","3.android-secure-coding-standard\u002F2.front-matter\u002F1.index",[1080,1081,1103],{"title":1076,"path":1077,"stem":1078},{"title":1082,"path":1083,"stem":1084,"children":1085},"Guidelines for Wiki Contributors","\u002Fandroid-secure-coding-standard\u002Ffront-matter\u002Fguidelines-for-wiki-contributors","3.android-secure-coding-standard\u002F2.front-matter\u002F2.guidelines-for-wiki-contributors\u002F1.index",[1086,1087,1091,1095,1099],{"title":1082,"path":1083,"stem":1084},{"title":1088,"path":1089,"stem":1090},"Deprecations","\u002Fandroid-secure-coding-standard\u002Ffront-matter\u002Fguidelines-for-wiki-contributors\u002Fdeprecations","3.android-secure-coding-standard\u002F2.front-matter\u002F2.guidelines-for-wiki-contributors\u002F2.deprecations",{"title":1092,"path":1093,"stem":1094},"Editing Automated Detection Information","\u002Fandroid-secure-coding-standard\u002Ffront-matter\u002Fguidelines-for-wiki-contributors\u002Fediting-automated-detection-information","3.android-secure-coding-standard\u002F2.front-matter\u002F2.guidelines-for-wiki-contributors\u002F3.editing-automated-detection-information",{"title":1096,"path":1097,"stem":1098},"Editing-Related Guidelines","\u002Fandroid-secure-coding-standard\u002Ffront-matter\u002Fguidelines-for-wiki-contributors\u002Fediting-related-guidelines","3.android-secure-coding-standard\u002F2.front-matter\u002F2.guidelines-for-wiki-contributors\u002F4.editing-related-guidelines",{"title":1100,"path":1101,"stem":1102},"Rules versus Recommendations","\u002Fandroid-secure-coding-standard\u002Ffront-matter\u002Fguidelines-for-wiki-contributors\u002Frules-versus-recommendations","3.android-secure-coding-standard\u002F2.front-matter\u002F2.guidelines-for-wiki-contributors\u002F5.rules-versus-recommendations",{"title":1104,"path":1105,"stem":1106,"children":1107},"Introduction","\u002Fandroid-secure-coding-standard\u002Ffront-matter\u002Fintroduction","3.android-secure-coding-standard\u002F2.front-matter\u002F3.introduction\u002F01.index",[1108,1109,1113,1117,1121],{"title":1104,"path":1105,"stem":1106},{"title":1110,"path":1111,"stem":1112},"Introduction to Android-Only Rules","\u002Fandroid-secure-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fintroduction-to-android-only-rules","3.android-secure-coding-standard\u002F2.front-matter\u002F3.introduction\u002F02.introduction-to-android-only-rules",{"title":1114,"path":1115,"stem":1116},"Introduction to C Rules and Recommendations","\u002Fandroid-secure-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fintroduction-to-c-rules-and-recommendations","3.android-secure-coding-standard\u002F2.front-matter\u002F3.introduction\u002F03.introduction-to-c-rules-and-recommendations",{"title":1118,"path":1119,"stem":1120},"Introduction to Java Recommendations","\u002Fandroid-secure-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fintroduction-to-java-recommendations","3.android-secure-coding-standard\u002F2.front-matter\u002F3.introduction\u002F04.introduction-to-java-recommendations",{"title":1122,"path":1123,"stem":1124},"Introduction to Java Rules","\u002Fandroid-secure-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fintroduction-to-java-rules","3.android-secure-coding-standard\u002F2.front-matter\u002F3.introduction\u002F05.introduction-to-java-rules",{"title":87,"path":1126,"stem":1127,"children":1128},"\u002Fandroid-secure-coding-standard\u002Frules","3.android-secure-coding-standard\u002F3.rules\u002F01.index",[1129,1130,1134,1138,1160,1164,1186,1190,1194,1198,1202,1232,1236,1240,1244,1262,1266,1270,1274,1278,1304,1318,1322,1326,1348,1352,1356,1360,1364,1368,1372],{"title":87,"path":1126,"stem":1127},{"title":1131,"path":1132,"stem":1133},"Application Programming Interfaces (API)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fapplication-programming-interfaces-api","3.android-secure-coding-standard\u002F3.rules\u002F02.application-programming-interfaces-api",{"title":1135,"path":1136,"stem":1137},"Characters and String (STR)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fcharacters-and-string-str","3.android-secure-coding-standard\u002F3.rules\u002F03.characters-and-string-str",{"title":1139,"path":1140,"stem":1141,"children":1142},"Component Security (CPS)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fcomponent-security-cps","3.android-secure-coding-standard\u002F3.rules\u002F04.component-security-cps\u002F1.index",[1143,1144,1148,1152,1156],{"title":1139,"path":1140,"stem":1141},{"title":1145,"path":1146,"stem":1147},"DRD01-X. Limit the accessibility of an app's sensitive content provider","\u002Fandroid-secure-coding-standard\u002Frules\u002Fcomponent-security-cps\u002Fdrd01-x","3.android-secure-coding-standard\u002F3.rules\u002F04.component-security-cps\u002F2.drd01-x",{"title":1149,"path":1150,"stem":1151},"DRD07-X. Protect exported services with strong permissions","\u002Fandroid-secure-coding-standard\u002Frules\u002Fcomponent-security-cps\u002Fdrd07-x","3.android-secure-coding-standard\u002F3.rules\u002F04.component-security-cps\u002F3.drd07-x",{"title":1153,"path":1154,"stem":1155},"DRD08-J. Always canonicalize a URL received by a content provider","\u002Fandroid-secure-coding-standard\u002Frules\u002Fcomponent-security-cps\u002Fdrd08-j","3.android-secure-coding-standard\u002F3.rules\u002F04.component-security-cps\u002F4.drd08-j",{"title":1157,"path":1158,"stem":1159},"DRD09. Restrict access to sensitive activities","\u002Fandroid-secure-coding-standard\u002Frules\u002Fcomponent-security-cps\u002Fdrd09-restrict-access-to-sensitive-activities","3.android-secure-coding-standard\u002F3.rules\u002F04.component-security-cps\u002F5.drd09-restrict-access-to-sensitive-activities",{"title":1161,"path":1162,"stem":1163},"Concurrency (CON)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fconcurrency-con","3.android-secure-coding-standard\u002F3.rules\u002F05.concurrency-con",{"title":1165,"path":1166,"stem":1167,"children":1168},"Cryptography (CRP)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fcryptography-crp","3.android-secure-coding-standard\u002F3.rules\u002F06.cryptography-crp\u002F1.index",[1169,1170,1174,1178,1182],{"title":1165,"path":1166,"stem":1167},{"title":1171,"path":1172,"stem":1173},"DRD17-J. Do not use the Android cryptographic security provider encryption default for AES","\u002Fandroid-secure-coding-standard\u002Frules\u002Fcryptography-crp\u002Fdrd17-j","3.android-secure-coding-standard\u002F3.rules\u002F06.cryptography-crp\u002F2.drd17-j",{"title":1175,"path":1176,"stem":1177},"DRD18. Do not use the default behavior in a cryptographic library if it does not use recommended practices","\u002Fandroid-secure-coding-standard\u002Frules\u002Fcryptography-crp\u002Fdrd18-do-not-use-the-default-behavior-in-a-cryptographic-library-if-it-does-not-use-recommended-practices","3.android-secure-coding-standard\u002F3.rules\u002F06.cryptography-crp\u002F3.drd18-do-not-use-the-default-behavior-in-a-cryptographic-library-if-it-does-not-use-recommended-practices",{"title":1179,"path":1180,"stem":1181},"DRD24. Do not bundle OAuth security-related protocol logic or sensitive data into a relying party's app","\u002Fandroid-secure-coding-standard\u002Frules\u002Fcryptography-crp\u002Fdrd24-do-not-bundle-oauth-security-related-protocol-logic-or-sensitive-data-into-a-relying-partys-app","3.android-secure-coding-standard\u002F3.rules\u002F06.cryptography-crp\u002F4.drd24-do-not-bundle-oauth-security-related-protocol-logic-or-sensitive-data-into-a-relying-partys-app",{"title":1183,"path":1184,"stem":1185},"DRD25. Use constant-time encryption","\u002Fandroid-secure-coding-standard\u002Frules\u002Fcryptography-crp\u002Fdrd25-use-constant-time-encryption","3.android-secure-coding-standard\u002F3.rules\u002F06.cryptography-crp\u002F5.drd25-use-constant-time-encryption",{"title":1187,"path":1188,"stem":1189},"Declarations and Initialization (DCL)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl","3.android-secure-coding-standard\u002F3.rules\u002F07.declarations-and-initialization-dcl",{"title":1191,"path":1192,"stem":1193},"Environment (ENV)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fenvironment-env","3.android-secure-coding-standard\u002F3.rules\u002F08.environment-env",{"title":1195,"path":1196,"stem":1197},"Error Handling (ERR)","\u002Fandroid-secure-coding-standard\u002Frules\u002Ferror-handling-err","3.android-secure-coding-standard\u002F3.rules\u002F09.error-handling-err",{"title":1199,"path":1200,"stem":1201},"Expressions (EXP)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fexpressions-exp","3.android-secure-coding-standard\u002F3.rules\u002F10.expressions-exp",{"title":1203,"path":1204,"stem":1205,"children":1206},"File I\u002FO and Logging (FIO)","\u002Fandroid-secure-coding-standard\u002Frules\u002Ffile-io-and-logging-fio","3.android-secure-coding-standard\u002F3.rules\u002F11.file-io-and-logging-fio\u002F1.index",[1207,1208,1212,1216,1220,1224,1228],{"title":1203,"path":1204,"stem":1205},{"title":1209,"path":1210,"stem":1211},"DRD04-J. Do not log sensitive information","\u002Fandroid-secure-coding-standard\u002Frules\u002Ffile-io-and-logging-fio\u002Fdrd04-j","3.android-secure-coding-standard\u002F3.rules\u002F11.file-io-and-logging-fio\u002F2.drd04-j",{"title":1213,"path":1214,"stem":1215},"DRD00. Do not store sensitive information on external storage (SD card) unless encrypted first","\u002Fandroid-secure-coding-standard\u002Frules\u002Ffile-io-and-logging-fio\u002Fdrd00-do-not-store-sensitive-information-on-external-storage-sd-card-unless-encrypted-first","3.android-secure-coding-standard\u002F3.rules\u002F11.file-io-and-logging-fio\u002F3.drd00-do-not-store-sensitive-information-on-external-storage-sd-card-unless-encrypted-first",{"title":1217,"path":1218,"stem":1219},"DRD11. Ensure that sensitive data is kept secure","\u002Fandroid-secure-coding-standard\u002Frules\u002Ffile-io-and-logging-fio\u002Fdrd11-ensure-that-sensitive-data-is-kept-secure","3.android-secure-coding-standard\u002F3.rules\u002F11.file-io-and-logging-fio\u002F4.drd11-ensure-that-sensitive-data-is-kept-secure",{"title":1221,"path":1222,"stem":1223},"DRD12. Do not trust data from world-writable files","\u002Fandroid-secure-coding-standard\u002Frules\u002Ffile-io-and-logging-fio\u002Fdrd12-do-not-trust-data-from-world-writable-files","3.android-secure-coding-standard\u002F3.rules\u002F11.file-io-and-logging-fio\u002F5.drd12-do-not-trust-data-from-world-writable-files",{"title":1225,"path":1226,"stem":1227},"DRD23. Do not use world readable or writeable to share files between apps","\u002Fandroid-secure-coding-standard\u002Frules\u002Ffile-io-and-logging-fio\u002Fdrd23-do-not-use-world-readable-or-writeable-to-share-files-between-apps","3.android-secure-coding-standard\u002F3.rules\u002F11.file-io-and-logging-fio\u002F6.drd23-do-not-use-world-readable-or-writeable-to-share-files-between-apps",{"title":1229,"path":1230,"stem":1231},"DRD28 Do not load world-writable libraries","\u002Fandroid-secure-coding-standard\u002Frules\u002Ffile-io-and-logging-fio\u002Fdrd28-do-not-load-world-writable-libraries","3.android-secure-coding-standard\u002F3.rules\u002F11.file-io-and-logging-fio\u002F7.drd28-do-not-load-world-writable-libraries",{"title":1233,"path":1234,"stem":1235},"Floating Point (FLP)","\u002Fandroid-secure-coding-standard\u002Frules\u002Ffloating-point-flp","3.android-secure-coding-standard\u002F3.rules\u002F12.floating-point-flp",{"title":1237,"path":1238,"stem":1239},"Input Validation and Data Sanitization (IDS)","\u002Fandroid-secure-coding-standard\u002Frules\u002Finput-validation-and-data-sanitization-ids","3.android-secure-coding-standard\u002F3.rules\u002F13.input-validation-and-data-sanitization-ids",{"title":1241,"path":1242,"stem":1243},"Integers (INT)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fintegers-int","3.android-secure-coding-standard\u002F3.rules\u002F14.integers-int",{"title":1245,"path":1246,"stem":1247,"children":1248},"Intent (ITT)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fintent-itt","3.android-secure-coding-standard\u002F3.rules\u002F15.intent-itt\u002F1.index",[1249,1250,1254,1258],{"title":1245,"path":1246,"stem":1247},{"title":1251,"path":1252,"stem":1253},"DRD03-J. Do not broadcast sensitive information using an implicit intent","\u002Fandroid-secure-coding-standard\u002Frules\u002Fintent-itt\u002Fdrd03-j","3.android-secure-coding-standard\u002F3.rules\u002F15.intent-itt\u002F2.drd03-j",{"title":1255,"path":1256,"stem":1257},"DRD21-J. Always pass explicit intents to a PendingIntent","\u002Fandroid-secure-coding-standard\u002Frules\u002Fintent-itt\u002Fdrd21-j","3.android-secure-coding-standard\u002F3.rules\u002F15.intent-itt\u002F3.drd21-j",{"title":1259,"path":1260,"stem":1261},"DRD06. Verify the caller of intents before acting on them","\u002Fandroid-secure-coding-standard\u002Frules\u002Fintent-itt\u002Fdrd06-verify-the-caller-of-intents-before-acting-on-them","3.android-secure-coding-standard\u002F3.rules\u002F15.intent-itt\u002F4.drd06-verify-the-caller-of-intents-before-acting-on-them",{"title":1263,"path":1264,"stem":1265},"Java Native Interface (JNI)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fjava-native-interface-jni","3.android-secure-coding-standard\u002F3.rules\u002F16.java-native-interface-jni",{"title":1267,"path":1268,"stem":1269},"Locking (LCK)","\u002Fandroid-secure-coding-standard\u002Frules\u002Flocking-lck","3.android-secure-coding-standard\u002F3.rules\u002F17.locking-lck",{"title":1271,"path":1272,"stem":1273},"Memory Management (MEM)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fmemory-management-mem","3.android-secure-coding-standard\u002F3.rules\u002F18.memory-management-mem",{"title":1275,"path":1276,"stem":1277},"Methods (MET)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fmethods-met","3.android-secure-coding-standard\u002F3.rules\u002F19.methods-met",{"title":1279,"path":1280,"stem":1281,"children":1282},"Miscellaneous (MSC)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fmiscellaneous-msc","3.android-secure-coding-standard\u002F3.rules\u002F20.miscellaneous-msc\u002F1.index",[1283,1284,1288,1292,1296,1300],{"title":1279,"path":1280,"stem":1281},{"title":1285,"path":1286,"stem":1287},"DRD10-X. Do not release apps that are debuggable","\u002Fandroid-secure-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fdrd10-x","3.android-secure-coding-standard\u002F3.rules\u002F20.miscellaneous-msc\u002F2.drd10-x",{"title":1289,"path":1290,"stem":1291},"DRD15-J. Consider privacy concerns when using Geolocation API","\u002Fandroid-secure-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fdrd15-j","3.android-secure-coding-standard\u002F3.rules\u002F20.miscellaneous-msc\u002F3.drd15-j",{"title":1293,"path":1294,"stem":1295},"DRD26-J. For OAuth, use a secure Android method to deliver access tokens","\u002Fandroid-secure-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fdrd26-j","3.android-secure-coding-standard\u002F3.rules\u002F20.miscellaneous-msc\u002F4.drd26-j",{"title":1297,"path":1298,"stem":1299},"DRD27-J. For OAuth, use an explicit intent method to deliver access tokens","\u002Fandroid-secure-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fdrd27-j","3.android-secure-coding-standard\u002F3.rules\u002F20.miscellaneous-msc\u002F5.drd27-j",{"title":1301,"path":1302,"stem":1303},"DRD25. To request user permission for OAuth, identify relying party and its permissions scope","\u002Fandroid-secure-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fdrd25-to-request-user-permission-for-oauth-identify-relying-party-and-its-permissions-scope","3.android-secure-coding-standard\u002F3.rules\u002F20.miscellaneous-msc\u002F6.drd25-to-request-user-permission-for-oauth-identify-relying-party-and-its-permissions-scope",{"title":1305,"path":1306,"stem":1307,"children":1308},"Network - SSL\u002FTLS (NET)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fnetwork-ssltls-net","3.android-secure-coding-standard\u002F3.rules\u002F21.network-ssltls-net\u002F1.index",[1309,1310,1314],{"title":1305,"path":1306,"stem":1307},{"title":1311,"path":1312,"stem":1313},"DRD23-J. Do not use loopback when handling sensitive data","\u002Fandroid-secure-coding-standard\u002Frules\u002Fnetwork-ssltls-net\u002Fdrd23-j","3.android-secure-coding-standard\u002F3.rules\u002F21.network-ssltls-net\u002F2.drd23-j",{"title":1315,"path":1316,"stem":1317},"DRD19. Properly verify server certificate on SSL\u002FTLS","\u002Fandroid-secure-coding-standard\u002Frules\u002Fnetwork-ssltls-net\u002Fdrd19-properly-verify-server-certificate-on-ssltls","3.android-secure-coding-standard\u002F3.rules\u002F21.network-ssltls-net\u002F3.drd19-properly-verify-server-certificate-on-ssltls",{"title":1319,"path":1320,"stem":1321},"Numeric Types and Operations (NUM)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fnumeric-types-and-operations-num","3.android-secure-coding-standard\u002F3.rules\u002F22.numeric-types-and-operations-num",{"title":1323,"path":1324,"stem":1325},"Object Orientation (OBJ)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fobject-orientation-obj","3.android-secure-coding-standard\u002F3.rules\u002F23.object-orientation-obj",{"title":1327,"path":1328,"stem":1329,"children":1330},"Permission (PER)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fpermission-per","3.android-secure-coding-standard\u002F3.rules\u002F24.permission-per\u002F1.index",[1331,1332,1336,1340,1344],{"title":1327,"path":1328,"stem":1329},{"title":1333,"path":1334,"stem":1335},"DRD05-J. Do not grant URI permissions on implicit intents","\u002Fandroid-secure-coding-standard\u002Frules\u002Fpermission-per\u002Fdrd05-j","3.android-secure-coding-standard\u002F3.rules\u002F24.permission-per\u002F2.drd05-j",{"title":1337,"path":1338,"stem":1339},"DRD14-J. Check that a calling app has appropriate permissions before responding","\u002Fandroid-secure-coding-standard\u002Frules\u002Fpermission-per\u002Fdrd14-j","3.android-secure-coding-standard\u002F3.rules\u002F24.permission-per\u002F3.drd14-j",{"title":1341,"path":1342,"stem":1343},"DRD16-X. Explicitly define the exported attribute for private components","\u002Fandroid-secure-coding-standard\u002Frules\u002Fpermission-per\u002Fdrd16-x","3.android-secure-coding-standard\u002F3.rules\u002F24.permission-per\u002F4.drd16-x",{"title":1345,"path":1346,"stem":1347},"DRD20-C. Specify permissions when creating files via the NDK","\u002Fandroid-secure-coding-standard\u002Frules\u002Fpermission-per\u002Fdrd20-c","3.android-secure-coding-standard\u002F3.rules\u002F24.permission-per\u002F5.drd20-c",{"title":1349,"path":1350,"stem":1351},"Platform Security (SEC)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fplatform-security-sec","3.android-secure-coding-standard\u002F3.rules\u002F25.platform-security-sec",{"title":1353,"path":1354,"stem":1355},"Preprocessor (PRE)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fpreprocessor-pre","3.android-secure-coding-standard\u002F3.rules\u002F26.preprocessor-pre",{"title":1357,"path":1358,"stem":1359},"Serialization (SER)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fserialization-ser","3.android-secure-coding-standard\u002F3.rules\u002F27.serialization-ser",{"title":1361,"path":1362,"stem":1363},"Thread APIs (THI)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fthread-apis-thi","3.android-secure-coding-standard\u002F3.rules\u002F28.thread-apis-thi",{"title":1365,"path":1366,"stem":1367},"Thread-Safety Miscellaneous (TSM)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fthread-safety-miscellaneous-tsm","3.android-secure-coding-standard\u002F3.rules\u002F29.thread-safety-miscellaneous-tsm",{"title":1369,"path":1370,"stem":1371},"Visibility and Atomicity (VNA)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fvisibility-and-atomicity-vna","3.android-secure-coding-standard\u002F3.rules\u002F30.visibility-and-atomicity-vna",{"title":1373,"path":1374,"stem":1375,"children":1376},"WebView (WBV)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fwebview-wbv","3.android-secure-coding-standard\u002F3.rules\u002F31.webview-wbv\u002F1.index",[1377,1378,1382,1386],{"title":1373,"path":1374,"stem":1375},{"title":1379,"path":1380,"stem":1381},"DRD02-J. Do not allow WebView to access sensitive local resource through file scheme","\u002Fandroid-secure-coding-standard\u002Frules\u002Fwebview-wbv\u002Fdrd02-j","3.android-secure-coding-standard\u002F3.rules\u002F31.webview-wbv\u002F2.drd02-j",{"title":1383,"path":1384,"stem":1385},"DRD13. Do not provide addJavascriptInterface method access in a WebView which could contain untrusted content. (API level JELLY_BEAN or below)","\u002Fandroid-secure-coding-standard\u002Frules\u002Fwebview-wbv\u002Fdrd13-do-not-provide-addjavascriptinterface-method-access-in-a-webview-which-could-contain-untrusted-content-api-level-jelly_bean-or-below","3.android-secure-coding-standard\u002F3.rules\u002F31.webview-wbv\u002F3.drd13-do-not-provide-addjavascriptinterface-method-access-in-a-webview-which-could-contain-untrusted-content-api-level-jelly_bean-or-below",{"title":1387,"path":1388,"stem":1389},"DRD22. Do not cache sensitive information","\u002Fandroid-secure-coding-standard\u002Frules\u002Fwebview-wbv\u002Fdrd22-do-not-cache-sensitive-information","3.android-secure-coding-standard\u002F3.rules\u002F31.webview-wbv\u002F4.drd22-do-not-cache-sensitive-information",{"title":574,"path":1391,"stem":1392,"children":1393},"\u002Fandroid-secure-coding-standard\u002Frecommendations","3.android-secure-coding-standard\u002F4.recommendations\u002F01.index",[1394,1395,1398,1402,1405,1408,1411,1414,1417,1420,1423,1426,1429,1432,1435,1438,1441,1444,1447,1450,1453,1456,1459,1462,1465,1468,1471,1474,1477,1480,1483],{"title":574,"path":1391,"stem":1392},{"title":1131,"path":1396,"stem":1397},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fapplication-programming-interfaces-api","3.android-secure-coding-standard\u002F4.recommendations\u002F02.application-programming-interfaces-api",{"title":1399,"path":1400,"stem":1401},"Characters and Strings (STR)","\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fcharacters-and-strings-str","3.android-secure-coding-standard\u002F4.recommendations\u002F03.characters-and-strings-str",{"title":1139,"path":1403,"stem":1404},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fcomponent-security-cps","3.android-secure-coding-standard\u002F4.recommendations\u002F04.component-security-cps",{"title":1161,"path":1406,"stem":1407},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fconcurrency-con","3.android-secure-coding-standard\u002F4.recommendations\u002F05.concurrency-con",{"title":1165,"path":1409,"stem":1410},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fcryptography-crp","3.android-secure-coding-standard\u002F4.recommendations\u002F06.cryptography-crp",{"title":1187,"path":1412,"stem":1413},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl","3.android-secure-coding-standard\u002F4.recommendations\u002F07.declarations-and-initialization-dcl",{"title":1191,"path":1415,"stem":1416},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fenvironment-env","3.android-secure-coding-standard\u002F4.recommendations\u002F08.environment-env",{"title":1195,"path":1418,"stem":1419},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Ferror-handling-err","3.android-secure-coding-standard\u002F4.recommendations\u002F09.error-handling-err",{"title":1199,"path":1421,"stem":1422},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fexpressions-exp","3.android-secure-coding-standard\u002F4.recommendations\u002F10.expressions-exp",{"title":1203,"path":1424,"stem":1425},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Ffile-io-and-logging-fio","3.android-secure-coding-standard\u002F4.recommendations\u002F11.file-io-and-logging-fio",{"title":1233,"path":1427,"stem":1428},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Ffloating-point-flp","3.android-secure-coding-standard\u002F4.recommendations\u002F12.floating-point-flp",{"title":1237,"path":1430,"stem":1431},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Finput-validation-and-data-sanitization-ids","3.android-secure-coding-standard\u002F4.recommendations\u002F13.input-validation-and-data-sanitization-ids",{"title":1241,"path":1433,"stem":1434},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fintegers-int","3.android-secure-coding-standard\u002F4.recommendations\u002F14.integers-int",{"title":1245,"path":1436,"stem":1437},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fintent-itt","3.android-secure-coding-standard\u002F4.recommendations\u002F15.intent-itt",{"title":1263,"path":1439,"stem":1440},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fjava-native-interface-jni","3.android-secure-coding-standard\u002F4.recommendations\u002F16.java-native-interface-jni",{"title":1267,"path":1442,"stem":1443},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Flocking-lck","3.android-secure-coding-standard\u002F4.recommendations\u002F17.locking-lck",{"title":1271,"path":1445,"stem":1446},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fmemory-management-mem","3.android-secure-coding-standard\u002F4.recommendations\u002F18.memory-management-mem",{"title":1275,"path":1448,"stem":1449},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fmethods-met","3.android-secure-coding-standard\u002F4.recommendations\u002F19.methods-met",{"title":1279,"path":1451,"stem":1452},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc","3.android-secure-coding-standard\u002F4.recommendations\u002F20.miscellaneous-msc",{"title":1305,"path":1454,"stem":1455},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fnetwork-ssltls-net","3.android-secure-coding-standard\u002F4.recommendations\u002F21.network-ssltls-net",{"title":1319,"path":1457,"stem":1458},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fnumeric-types-and-operations-num","3.android-secure-coding-standard\u002F4.recommendations\u002F22.numeric-types-and-operations-num",{"title":1323,"path":1460,"stem":1461},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fobject-orientation-obj","3.android-secure-coding-standard\u002F4.recommendations\u002F23.object-orientation-obj",{"title":1327,"path":1463,"stem":1464},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fpermission-per","3.android-secure-coding-standard\u002F4.recommendations\u002F24.permission-per",{"title":1349,"path":1466,"stem":1467},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fplatform-security-sec","3.android-secure-coding-standard\u002F4.recommendations\u002F25.platform-security-sec",{"title":1353,"path":1469,"stem":1470},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fpreprocessor-pre","3.android-secure-coding-standard\u002F4.recommendations\u002F26.preprocessor-pre",{"title":1357,"path":1472,"stem":1473},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fserialization-ser","3.android-secure-coding-standard\u002F4.recommendations\u002F27.serialization-ser",{"title":1361,"path":1475,"stem":1476},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fthread-apis-thi","3.android-secure-coding-standard\u002F4.recommendations\u002F28.thread-apis-thi",{"title":1365,"path":1478,"stem":1479},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fthread-safety-miscellaneous-tsm","3.android-secure-coding-standard\u002F4.recommendations\u002F29.thread-safety-miscellaneous-tsm",{"title":1369,"path":1481,"stem":1482},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fvisibility-and-atomicity-vna","3.android-secure-coding-standard\u002F4.recommendations\u002F30.visibility-and-atomicity-vna",{"title":1373,"path":1484,"stem":1485},"\u002Fandroid-secure-coding-standard\u002Frecommendations\u002Fwebview-wbv","3.android-secure-coding-standard\u002F4.recommendations\u002F31.webview-wbv",{"title":1487,"path":1488,"stem":1489,"children":1490},"By Language","\u002Fandroid-secure-coding-standard\u002Fby-language","3.android-secure-coding-standard\u002F5.by-language\u002F1.index",[1491,1492,1496,1512,1513,1535],{"title":1487,"path":1488,"stem":1489},{"title":1493,"path":1494,"stem":1495},"Android Only","\u002Fandroid-secure-coding-standard\u002Fby-language\u002Fandroid-only","3.android-secure-coding-standard\u002F5.by-language\u002F2.android-only",{"title":1497,"path":1498,"stem":1499,"children":1500},"C Coding Language","\u002Fandroid-secure-coding-standard\u002Fby-language\u002Fc-coding-language","3.android-secure-coding-standard\u002F5.by-language\u002F3.c-coding-language\u002F1.index",[1501,1502,1506,1510,1511],{"title":1497,"path":1498,"stem":1499},{"title":1503,"path":1504,"stem":1505},"Applicable in Principle to Android (C Rules\u002FRecomendations)","\u002Fandroid-secure-coding-standard\u002Fby-language\u002Fc-coding-language\u002Fapplicable-in-principle-to-android-c-rulesrecomendations","3.android-secure-coding-standard\u002F5.by-language\u002F3.c-coding-language\u002F2.applicable-in-principle-to-android-c-rulesrecomendations",{"title":1507,"path":1508,"stem":1509},"Applicable to Android (C Rules\u002FRecomendations)","\u002Fandroid-secure-coding-standard\u002Fby-language\u002Fc-coding-language\u002Fapplicable-to-android-c-rulesrecomendations","3.android-secure-coding-standard\u002F5.by-language\u002F3.c-coding-language\u002F3.applicable-to-android-c-rulesrecomendations",{"title":1061,"path":1062,"stem":1063},{"title":30,"path":1055,"stem":1057},{"title":1065,"path":1066,"stem":1067},{"title":1514,"path":1515,"stem":1516,"children":1517},"Java Coding Language","\u002Fandroid-secure-coding-standard\u002Fby-language\u002Fjava-coding-language","3.android-secure-coding-standard\u002F5.by-language\u002F5.java-coding-language\u002F1.index",[1518,1519,1523,1527,1531],{"title":1514,"path":1515,"stem":1516},{"title":1520,"path":1521,"stem":1522},"Applicable in Principle to Android (Java Rules\u002FRecomendations)","\u002Fandroid-secure-coding-standard\u002Fby-language\u002Fjava-coding-language\u002Fapplicable-in-principle-to-android-java-rulesrecomendations","3.android-secure-coding-standard\u002F5.by-language\u002F5.java-coding-language\u002F2.applicable-in-principle-to-android-java-rulesrecomendations",{"title":1524,"path":1525,"stem":1526},"Applicable to Android (Java Rules\u002FRecomendations)","\u002Fandroid-secure-coding-standard\u002Fby-language\u002Fjava-coding-language\u002Fapplicable-to-android-java-rulesrecomendations","3.android-secure-coding-standard\u002F5.by-language\u002F5.java-coding-language\u002F3.applicable-to-android-java-rulesrecomendations",{"title":1528,"path":1529,"stem":1530},"Not Applicable to Android (Java Rules\u002FRecomendations)","\u002Fandroid-secure-coding-standard\u002Fby-language\u002Fjava-coding-language\u002Fnot-applicable-to-android-java-rulesrecomendations","3.android-secure-coding-standard\u002F5.by-language\u002F5.java-coding-language\u002F4.not-applicable-to-android-java-rulesrecomendations",{"title":1532,"path":1533,"stem":1534},"Unknown Applicability to Android (Java Rules\u002FRecomendations)","\u002Fandroid-secure-coding-standard\u002Fby-language\u002Fjava-coding-language\u002Funknown-applicability-to-android-java-rulesrecomendations","3.android-secure-coding-standard\u002F5.by-language\u002F5.java-coding-language\u002F5.unknown-applicability-to-android-java-rulesrecomendations",{"title":1536,"path":1537,"stem":1538},"XML","\u002Fandroid-secure-coding-standard\u002Fby-language\u002Fxml","3.android-secure-coding-standard\u002F5.by-language\u002F6.xml",{"title":1540,"path":1541,"stem":1542,"children":1543},"Back Matter","\u002Fandroid-secure-coding-standard\u002Fback-matter","3.android-secure-coding-standard\u002F6.back-matter\u002F1.index",[1544,1545,1549],{"title":1540,"path":1541,"stem":1542},{"title":1546,"path":1547,"stem":1548},"AA. Bibliography","\u002Fandroid-secure-coding-standard\u002Fback-matter\u002Faa-bibliography","3.android-secure-coding-standard\u002F6.back-matter\u002F2.aa-bibliography",{"title":1550,"path":1551,"stem":1552,"children":1553},"BB. Analyzers","\u002Fandroid-secure-coding-standard\u002Fback-matter\u002Fbb-analyzers","3.android-secure-coding-standard\u002F6.back-matter\u002F3.bb-analyzers\u002F1.index",[1554,1555,1559],{"title":1550,"path":1551,"stem":1552},{"title":1556,"path":1557,"stem":1558},"CodeSonar","\u002Fandroid-secure-coding-standard\u002Fback-matter\u002Fbb-analyzers\u002Fcodesonar","3.android-secure-coding-standard\u002F6.back-matter\u002F3.bb-analyzers\u002F2.codesonar",{"title":1560,"path":1561,"stem":1562},"CodeSonar_V","\u002Fandroid-secure-coding-standard\u002Fback-matter\u002Fbb-analyzers\u002Fcodesonar_v","3.android-secure-coding-standard\u002F6.back-matter\u002F3.bb-analyzers\u002F3.codesonar_v",{"title":1564,"path":1565,"stem":1566,"children":1567},"Admin","\u002Fandroid-secure-coding-standard\u002Fadmin","3.android-secure-coding-standard\u002F7.admin\u002F01.index",[1568,1569,1573,1577,1581,1585,1589,1593,1597,1601,1605,1609,1613,1617,1621,1625],{"title":1564,"path":1565,"stem":1566},{"title":1570,"path":1571,"stem":1572},"About the OurCS Workshop","\u002Fandroid-secure-coding-standard\u002Fadmin\u002Fabout-the-ourcs-workshop","3.android-secure-coding-standard\u002F7.admin\u002F02.about-the-ourcs-workshop",{"title":1574,"path":1575,"stem":1576},"Android Applicability Summary","\u002Fandroid-secure-coding-standard\u002Fadmin\u002Fandroid-applicability-summary","3.android-secure-coding-standard\u002F7.admin\u002F03.android-applicability-summary",{"title":1578,"path":1579,"stem":1580},"Android (DRD)","\u002Fandroid-secure-coding-standard\u002Fadmin\u002Fandroid-drd","3.android-secure-coding-standard\u002F7.admin\u002F04.android-drd",{"title":1582,"path":1583,"stem":1584},"Avoid having unreachable code","\u002Fandroid-secure-coding-standard\u002Fadmin\u002Favoid-having-unreachable-code","3.android-secure-coding-standard\u002F7.admin\u002F05.avoid-having-unreachable-code",{"title":1586,"path":1587,"stem":1588},"C Space Change History Log","\u002Fandroid-secure-coding-standard\u002Fadmin\u002Fc-space-change-history-log","3.android-secure-coding-standard\u002F7.admin\u002F06.c-space-change-history-log",{"title":1590,"path":1591,"stem":1592},"Copy of Rule Template","\u002Fandroid-secure-coding-standard\u002Fadmin\u002Fcopy-of-rule-template","3.android-secure-coding-standard\u002F7.admin\u002F07.copy-of-rule-template",{"title":1594,"path":1595,"stem":1596},"C++ Space Change History Log","\u002Fandroid-secure-coding-standard\u002Fadmin\u002Fcpp-space-change-history-log","3.android-secure-coding-standard\u002F7.admin\u002F08.cpp-space-change-history-log",{"title":1598,"path":1599,"stem":1600},"Dictionary of Labels","\u002Fandroid-secure-coding-standard\u002Fadmin\u002Fdictionary-of-labels","3.android-secure-coding-standard\u002F7.admin\u002F09.dictionary-of-labels",{"title":1602,"path":1603,"stem":1604},"How to Change Applicability When a Rules and Recommendations Change","\u002Fandroid-secure-coding-standard\u002Fadmin\u002Fhow-to-change-applicability-when-a-rules-and-recommendations-change","3.android-secure-coding-standard\u002F7.admin\u002F10.how-to-change-applicability-when-a-rules-and-recommendations-change",{"title":1606,"path":1607,"stem":1608},"Java Space Change History Log","\u002Fandroid-secure-coding-standard\u002Fadmin\u002Fjava-space-change-history-log","3.android-secure-coding-standard\u002F7.admin\u002F11.java-space-change-history-log",{"title":1610,"path":1611,"stem":1612},"Labels in this Space","\u002Fandroid-secure-coding-standard\u002Fadmin\u002Flabels-in-this-space","3.android-secure-coding-standard\u002F7.admin\u002F12.labels-in-this-space",{"title":1614,"path":1615,"stem":1616},"Perl Space Change History Log","\u002Fandroid-secure-coding-standard\u002Fadmin\u002Fperl-space-change-history-log","3.android-secure-coding-standard\u002F7.admin\u002F13.perl-space-change-history-log",{"title":1618,"path":1619,"stem":1620},"Resources for new Android app secure coding rules and guidelines","\u002Fandroid-secure-coding-standard\u002Fadmin\u002Fresources-for-new-android-app-secure-coding-rules-and-guidelines","3.android-secure-coding-standard\u002F7.admin\u002F14.resources-for-new-android-app-secure-coding-rules-and-guidelines",{"title":1622,"path":1623,"stem":1624},"Rule Template","\u002Fandroid-secure-coding-standard\u002Fadmin\u002Frule-template","3.android-secure-coding-standard\u002F7.admin\u002F15.rule-template",{"title":1626,"path":1627,"stem":1628},"Rules Applicable for Both the Android Platform and Other Platforms","\u002Fandroid-secure-coding-standard\u002Fadmin\u002Frules-applicable-for-both-the-android-platform-and-other-platforms","3.android-secure-coding-standard\u002F7.admin\u002F16.rules-applicable-for-both-the-android-platform-and-other-platforms",1775657857008]