3 | # Encoding is UTF-8
4 |
--------------------------------------------------------------------------------
/bin/res/crunch/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mickyliu945/AndroidDaemon/HEAD/bin/res/crunch/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/bin/res/crunch/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mickyliu945/AndroidDaemon/HEAD/bin/res/crunch/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/bin/res/crunch/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mickyliu945/AndroidDaemon/HEAD/bin/res/crunch/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/bin/res/crunch/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mickyliu945/AndroidDaemon/HEAD/bin/res/crunch/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/bin/classes/com/micky/daemon/MainActivity.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mickyliu945/AndroidDaemon/HEAD/bin/classes/com/micky/daemon/MainActivity.class
--------------------------------------------------------------------------------
/bin/classes/com/micky/daemon/service/MsgService.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mickyliu945/AndroidDaemon/HEAD/bin/classes/com/micky/daemon/service/MsgService.class
--------------------------------------------------------------------------------
/bin/classes/com/micky/daemon/service/DaemonService.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mickyliu945/AndroidDaemon/HEAD/bin/classes/com/micky/daemon/service/DaemonService.class
--------------------------------------------------------------------------------
/bin/classes/com/micky/daemon/service/DaemonService$OutputRunnable.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mickyliu945/AndroidDaemon/HEAD/bin/classes/com/micky/daemon/service/DaemonService$OutputRunnable.class
--------------------------------------------------------------------------------
/bin/dexedLibs/android-support-v4-9e837202de2a5dd80f4f9d94669714aa.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mickyliu945/AndroidDaemon/HEAD/bin/dexedLibs/android-support-v4-9e837202de2a5dd80f4f9d94669714aa.jar
--------------------------------------------------------------------------------
/gen/com/micky/daemon/BuildConfig.java:
--------------------------------------------------------------------------------
1 | /** Automatically generated file. DO NOT MODIFY */
2 | package com.micky.daemon;
3 |
4 | public final class BuildConfig {
5 | public final static boolean DEBUG = true;
6 | }
--------------------------------------------------------------------------------
/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
3 | org.eclipse.jdt.core.compiler.compliance=1.6
4 | org.eclipse.jdt.core.compiler.source=1.6
5 |
--------------------------------------------------------------------------------
/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 16dp
5 | 16dp
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Deamon
5 | Hello world!
6 | Settings
7 |
8 |
9 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 如何尽量保证app不被系统或第三方app杀死
2 |
3 |
1、使用linux c 编写jni代码 fork 出一个进程用来在间隔一定时间尝试启动指定的服务进程。(对小米手机无效)
4 |
2、在service上标识 android:process=":daemon"为服务指定进程名,可以在设置->应用->正在运行,显示为多个进程,类似微信、sina微博
5 |
3、各服务间可以相互监视,相互启动。
6 |
4、项目中使用的开源库: https://github.com/Coolerfall/Android-AppDaemon.git
7 |
8 |
--------------------------------------------------------------------------------
/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 | 64dp
9 |
10 |
11 |
--------------------------------------------------------------------------------
/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/com/micky/daemon/service/MsgService.java:
--------------------------------------------------------------------------------
1 | package com.micky.daemon.service;
2 |
3 | import android.app.Service;
4 | import android.content.Intent;
5 | import android.os.IBinder;
6 | import android.util.Log;
7 |
8 | public class MsgService extends Service {
9 |
10 | private static final String TAG = "MsgService";
11 |
12 | @Override
13 | public void onCreate() {
14 | super.onCreate();
15 | Log.d(TAG, "MsgService onCreate");
16 | }
17 |
18 | @Override
19 | public IBinder onBind(Intent intent) {
20 | return null;
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/jni/common/common.h:
--------------------------------------------------------------------------------
1 | /*
2 | * File : common.h
3 | * Author : Vincent Cheung
4 | * Date : Dec. 12, 2014
5 | * Description : The header file of common.c.
6 | *
7 | * Copyright (C) Vincent Chueng
8 | *
9 | */
10 |
11 | #ifndef __COMMON_H__
12 | #define __COMMON_H__
13 |
14 | #include "log.h"
15 |
16 | char *str_stitching(const char *str1, const char *str2);
17 | int get_version();
18 | void open_browser(char *url);
19 | int find_pid_by_name(char *pid_name, int *pid_list);
20 | char *get_name_by_pid(pid_t pid);
21 | void select_sleep(long sec, long msec);
22 |
23 | #endif
24 |
--------------------------------------------------------------------------------
/project.properties:
--------------------------------------------------------------------------------
1 | # This file is automatically generated by Android Tools.
2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
3 | #
4 | # This file must be checked in Version Control Systems.
5 | #
6 | # To customize properties used by the Ant build system edit
7 | # "ant.properties", and override values to adapt the script to your
8 | # project structure.
9 | #
10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
12 |
13 | # Project target.
14 | target=android-22
15 |
--------------------------------------------------------------------------------
/jni/Application.mk:
--------------------------------------------------------------------------------
1 | # This is the application makefile
2 |
3 | # APP_OPTIM two options: debug, release
4 | APP_OPTIM := release
5 |
6 | # APP_ABI four options: armeabi, armeabi-v7a, mips, x86, all
7 | APP_ABI := armeabi
8 |
9 | # APP_PLATFORM: used to specify the include folder
10 | APP_PLATFORM := android-19
11 |
12 | # APP_PROJECT_PATH: absolute path of project root path
13 | #APP_PROJECT_PATH := $(call my-dir)/..
14 | # APP_CFLAGS, used to insted of module in Android.mk \
15 | # example: APP_CFLAGS += -I sources/bar
16 | # APP_CPPFLAGS
17 | # APP_STL three options :stlport_static, stlport_shared, system(default) for std::...
18 | #APP_STL := stlport_static
--------------------------------------------------------------------------------
/src/com/micky/daemon/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.micky.daemon;
2 |
3 | import android.app.Activity;
4 | import android.content.Intent;
5 | import android.os.Bundle;
6 | import android.widget.TextView;
7 |
8 | import com.micky.daemon.service.DaemonService;
9 |
10 | public class MainActivity extends Activity {
11 |
12 | protected void onCreate(Bundle savedInstanceState) {
13 | super.onCreate(savedInstanceState);
14 |
15 | TextView tv = new TextView(this);
16 | tv.setText("Deamon");
17 | setContentView(tv);
18 |
19 | startService(new Intent(this, DaemonService.class));
20 | // startService(new Intent(this, MsgService.class));
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/jni/Android.mk:
--------------------------------------------------------------------------------
1 | # Copyright (C) 2009 The Android Open Source Project
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | #
15 |
16 | include $(call all-subdir-makefiles)
17 |
--------------------------------------------------------------------------------
/jni/common/log.h:
--------------------------------------------------------------------------------
1 | /**
2 | * The macro for log.
3 | */
4 |
5 | #include
6 | #include
7 |
8 | #define TAG "Native"
9 |
10 | #define LOG_I(...) __android_log_print(ANDROID_LOG_INFO, TAG, __VA_ARGS__)
11 | #define LOG_D(...) __android_log_print(ANDROID_LOG_DEBUG, TAG, __VA_ARGS__)
12 | #define LOG_W(...) __android_log_print(ANDROID_LOG_WARN, TAG, __VA_ARGS__)
13 | #define LOG_E(...) __android_log_print(ANDROID_LOG_ERROR, TAG, __VA_ARGS__)
14 |
15 | #define LOGI(tag, ...) __android_log_print(ANDROID_LOG_INFO, tag, __VA_ARGS__)
16 | #define LOGD(tag, ...) __android_log_print(ANDROID_LOG_DEBUG, tag, __VA_ARGS__)
17 | #define LOGW(tag, ...) __android_log_print(ANDROID_LOG_WARN, tag, __VA_ARGS__)
18 | #define LOGE(tag, ...) __android_log_print(ANDROID_LOG_ERROR, tag, __VA_ARGS__)
19 |
--------------------------------------------------------------------------------
/jni/common/Android.mk:
--------------------------------------------------------------------------------
1 | # Copyright (C) 2009 The Android Open Source Project
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | #
15 |
16 | LOCAL_PATH := $(call my-dir)
17 |
18 | include $(CLEAR_VARS)
19 |
20 | LOCAL_MODULE := libcommon
21 | LOCAL_SRC_FILES := common.c
22 |
23 | include $(BUILD_STATIC_LIBRARY)
24 |
25 |
--------------------------------------------------------------------------------
/proguard-project.txt:
--------------------------------------------------------------------------------
1 | # To enable ProGuard in your project, edit project.properties
2 | # to define the proguard.config property as described in that file.
3 | #
4 | # Add project specific ProGuard rules here.
5 | # By default, the flags in this file are appended to flags specified
6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt
7 | # You can edit the include path and order by changing the ProGuard
8 | # include property in project.properties.
9 | #
10 | # For more details, see
11 | # http://developer.android.com/guide/developing/tools/proguard.html
12 |
13 | # Add any project specific keep options here:
14 |
15 | # If your project uses WebView with JS, uncomment the following
16 | # and specify the fully qualified class name to the JavaScript interface
17 | # class:
18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
19 | # public *;
20 | #}
21 |
--------------------------------------------------------------------------------
/jni/daemon/Android.mk:
--------------------------------------------------------------------------------
1 | # Copyright (C) 2009 The Android Open Source Project
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | #
15 | LOCAL_PATH := $(call my-dir)
16 |
17 | include $(CLEAR_VARS)
18 |
19 | LOCAL_MODULE := daemon
20 | LOCAL_SRC_FILES := daemon.c
21 |
22 | LOCAL_C_INCLUDES += \
23 | $(LOCAL_PATH) \
24 | $(LOCAL_PATH)/../common
25 |
26 | LOCAL_STATIC_LIBRARIES := libcommon
27 |
28 | LOCAL_LDLIBS := -lm -llog
29 |
30 | include $(BUILD_EXECUTABLE)
31 |
--------------------------------------------------------------------------------
/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
18 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
31 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/bin/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
18 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
31 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/gen/com/micky/daemon/R.java:
--------------------------------------------------------------------------------
1 | /* AUTO-GENERATED FILE. DO NOT MODIFY.
2 | *
3 | * This class was automatically generated by the
4 | * aapt tool from the resource data it found. It
5 | * should not be modified by hand.
6 | */
7 |
8 | package com.micky.daemon;
9 |
10 | public final class R {
11 | public static final class attr {
12 | }
13 | public static final class dimen {
14 | /** Default screen margins, per the Android Design guidelines.
15 |
16 | Example customization of dimensions originally defined in res/values/dimens.xml
17 | (such as screen margins) for screens with more than 820dp of available width. This
18 | would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively).
19 |
20 | */
21 | public static final int activity_horizontal_margin=0x7f040000;
22 | public static final int activity_vertical_margin=0x7f040001;
23 | }
24 | public static final class drawable {
25 | public static final int ic_launcher=0x7f020000;
26 | }
27 | public static final class layout {
28 | public static final int activity_main=0x7f030000;
29 | }
30 | public static final class string {
31 | public static final int action_settings=0x7f050002;
32 | public static final int app_name=0x7f050000;
33 | public static final int hello_world=0x7f050001;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | Daemon
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder
10 | clean,full,incremental,
11 |
12 |
13 |
14 |
15 | com.android.ide.eclipse.adt.ResourceManagerBuilder
16 |
17 |
18 |
19 |
20 | com.android.ide.eclipse.adt.PreCompilerBuilder
21 |
22 |
23 |
24 |
25 | org.eclipse.jdt.core.javabuilder
26 |
27 |
28 |
29 |
30 | com.android.ide.eclipse.adt.ApkBuilder
31 |
32 |
33 |
34 |
35 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
36 | full,incremental,
37 |
38 |
39 |
40 |
41 |
42 | com.android.ide.eclipse.adt.AndroidNature
43 | org.eclipse.jdt.core.javanature
44 | org.eclipse.cdt.core.cnature
45 | org.eclipse.cdt.core.ccnature
46 | org.eclipse.cdt.managedbuilder.core.managedBuildNature
47 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
48 |
49 |
50 |
--------------------------------------------------------------------------------
/src/com/micky/daemon/Daemon.java:
--------------------------------------------------------------------------------
1 | package com.micky.daemon;
2 |
3 | import android.content.Context;
4 | import android.util.Log;
5 |
6 | import java.io.File;
7 | import java.io.IOException;
8 |
9 | /**
10 | * Daemon: service daemon.
11 | *
12 | * @author Vincent Cheung
13 | * @since Jan. 19, 2015
14 | */
15 | public class Daemon {
16 | private static final String TAG = Daemon.class.getSimpleName();
17 |
18 | private static final String BIN_DIR_NAME = "bin";
19 | private static final String DAEMON_BIN_NAME = "daemon";
20 |
21 | public static final int INTERVAL_ONE_MINUTE = 60;
22 | public static final int INTERVAL_ONE_HOUR = 3600;
23 |
24 | /** start daemon */
25 | private static void start(Context context, Class> daemonClazzName, int interval) {
26 | String cmd = context.getDir(BIN_DIR_NAME, Context.MODE_PRIVATE)
27 | .getAbsolutePath() + File.separator + DAEMON_BIN_NAME;
28 |
29 | /* create the command string */
30 | StringBuilder cmdBuilder = new StringBuilder();
31 | cmdBuilder.append(cmd);
32 | cmdBuilder.append(" -p ");
33 | cmdBuilder.append(context.getPackageName());
34 | cmdBuilder.append(" -s ");
35 | cmdBuilder.append(daemonClazzName.getName());
36 | cmdBuilder.append(" -t ");
37 | cmdBuilder.append(interval);
38 |
39 | try {
40 | Runtime.getRuntime().exec(cmdBuilder.toString()).waitFor();
41 | } catch (Exception e) {
42 | Log.e(TAG, "start daemon error: " + e.getMessage());
43 | }
44 | }
45 |
46 | /**
47 | * Run daemon process.
48 | *
49 | * @param context context
50 | * @param daemonServiceClazz the name of daemon service class
51 | * @param interval the interval to check
52 | */
53 | public static void run(final Context context, final Class> daemonServiceClazz,
54 | final int interval) {
55 | new Thread(new Runnable() {
56 | @Override
57 | public void run() {
58 | Command.install(context, BIN_DIR_NAME, DAEMON_BIN_NAME);
59 | start(context, daemonServiceClazz, interval);
60 | }
61 | }).start();
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/src/com/micky/daemon/service/DaemonService.java:
--------------------------------------------------------------------------------
1 | package com.micky.daemon.service;
2 |
3 | import java.io.BufferedReader;
4 | import java.io.InputStreamReader;
5 | import java.net.HttpURLConnection;
6 | import java.net.URL;
7 |
8 | import android.app.Service;
9 | import android.content.Intent;
10 | import android.os.IBinder;
11 | import android.util.Log;
12 |
13 | import com.micky.daemon.Daemon;
14 |
15 | public class DaemonService extends Service {
16 | private static final String TAG = "DaemonService";
17 | private static int count = 0;
18 |
19 | @Override
20 | public void onCreate() {
21 | super.onCreate();
22 | Daemon.run(this, DaemonService.class, Daemon.INTERVAL_ONE_MINUTE * 2);
23 | }
24 |
25 | @Override
26 | public IBinder onBind(Intent intent) {
27 | return null;
28 | }
29 |
30 | @Override
31 | public int onStartCommand(Intent intent, int flags, int startId) {
32 | Log.d(TAG, "onStartCommand");
33 |
34 | startService(new Intent(this, MsgService.class));
35 | // new Thread(new OutputRunnable()).start();
36 | return super.onStartCommand(intent, START_STICKY, startId);
37 | }
38 |
39 | @Override
40 | public void onDestroy() {
41 | super.onDestroy();
42 | Log.d(TAG, "onDestroy");
43 | }
44 |
45 | class OutputRunnable implements Runnable {
46 |
47 | @Override
48 | public void run() {
49 | count = 0;
50 | output();
51 | }
52 | }
53 |
54 | public void output() {
55 |
56 | HttpURLConnection conn = null;
57 | while (true) {
58 | try {
59 | URL url = new URL("http://192.168.190.107:8080/CommonProject/ServletTest?page=" + count++);
60 | conn = (HttpURLConnection) url.openConnection();
61 | conn.setConnectTimeout(5 * 1000);
62 | conn.setRequestMethod("GET");
63 | BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
64 |
65 | String lines = "";
66 | String ss = "";
67 | while((lines = in.readLine()) != null){
68 | ss += lines;
69 | }
70 | Log.d(TAG, ss);
71 |
72 | Thread.sleep(3000);
73 |
74 | } catch (Exception e) {
75 | Log.e(TAG, e.getMessage(), e);
76 | } finally {
77 | conn.disconnect();
78 | }
79 | }
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/src/com/micky/daemon/Command.java:
--------------------------------------------------------------------------------
1 | package com.micky.daemon;
2 |
3 | import android.content.Context;
4 | import android.content.res.AssetManager;
5 | import android.os.Build;
6 | import android.util.Log;
7 |
8 | import java.io.File;
9 | import java.io.FileOutputStream;
10 | import java.io.IOException;
11 | import java.io.InputStream;
12 |
13 | /**
14 | * Some command here.
15 | *
16 | * @author Vincent Cheung
17 | * @since Jan. 22, 2015
18 | */
19 | public class Command {
20 | private static final String TAG = Command.class.getSimpleName();
21 |
22 | /** copy file to destination */
23 | private static void copyFile(File file, InputStream is, String mode)
24 | throws IOException, InterruptedException {
25 | final String abspath = file.getAbsolutePath();
26 | final FileOutputStream out = new FileOutputStream(file);
27 | byte buf[] = new byte[1024];
28 | int len;
29 | while ((len = is.read(buf)) > 0) {
30 | out.write(buf, 0, len);
31 | }
32 |
33 | out.close();
34 | is.close();
35 |
36 | Runtime.getRuntime().exec("chmod " + mode + " " + abspath).waitFor();
37 | }
38 |
39 | /**
40 | * copy file in assets into destination file
41 | *
42 | * @param context context
43 | * @param assetsFilename file name in assets
44 | * @param file the file to copy to
45 | * @param mode mode of file
46 | *
47 | * @throws IOException
48 | * @throws InterruptedException
49 | */
50 | public static void copyAssets(Context context, String assetsFilename, File file, String mode)
51 | throws IOException, InterruptedException {
52 | AssetManager manager = context.getAssets();
53 | final InputStream is = manager.open(assetsFilename);
54 | copyFile(file, is, mode);
55 | }
56 |
57 | /**
58 | * Install specified binary into destination directory.
59 | *
60 | * @param context context
61 | * @param destDir destionation directory
62 | * @param filename filename of binary
63 | * @return true if install successfully, otherwise return false
64 | */
65 | @SuppressWarnings("deprecation")
66 | public static boolean install(Context context, String destDir, String filename) {
67 | String abi = Build.CPU_ABI;
68 | if (!abi.startsWith("arm")) {
69 | return false;
70 | }
71 |
72 | try {
73 | File f = new File(context.getDir(destDir, Context.MODE_PRIVATE), filename);
74 | if (f.exists()) {
75 | Log.d(TAG, "binary has existed");
76 | return false;
77 | }
78 |
79 | copyAssets(context, filename, f, "0755");
80 | return true;
81 | } catch (Exception e) {
82 | Log.e(TAG, "installBinary failed: " + e.getMessage());
83 | return false;
84 | }
85 | }
86 | }
87 |
--------------------------------------------------------------------------------
/.cproject:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/jni/common/common.c:
--------------------------------------------------------------------------------
1 | /*
2 | * File : common.c
3 | * Author : Vincent Cheung
4 | * Date : Dec. 12, 2014
5 | * Description : Some common functions here.
6 | *
7 | * Copyright (C) Vincent Chueng
8 | *
9 | */
10 |
11 | #include
12 | #include
13 | #include
14 | #include
15 | #include
16 | #include
17 | #include
18 |
19 | #include "common.h"
20 |
21 | #define BUFFER_SIZE 2048
22 |
23 | /**
24 | * stitch two string to one string
25 | *
26 | * @param str1 the first string to be stitched
27 | * @param str2 the second string to be stitched
28 | * @return stitched string
29 | */
30 | char *str_stitching(const char *str1, const char *str2)
31 | {
32 | char *result;
33 | result = (char *) malloc(strlen(str1) + strlen(str2) + 1);
34 | if (!result)
35 | {
36 | return NULL;
37 | }
38 |
39 | strcpy(result, str1);
40 | strcat(result, str2);
41 |
42 | return result;
43 | }
44 |
45 | /* open browser with specified url */
46 | void open_browser(char *url)
47 | {
48 | /* the url cannot be null */
49 | if (url == NULL || strlen(url) < 4) {
50 | return;
51 | }
52 |
53 | /* get the sdk version */
54 | char value[8] = "";
55 | __system_property_get("ro.build.version.sdk", value);
56 |
57 | int version = atoi(value);
58 | /* is the version is greater than 17 */
59 | if (version >= 17 || version == 0)
60 | {
61 | execlp("am", "am", "start", "--user", "0", "-n",
62 | "com.android.browser/com.android.browser.BrowserActivity",
63 | "-a", "android.intent.action.VIEW",
64 | "-d", url, (char *)NULL);
65 | }
66 | else
67 | {
68 | execlp("am", "am", "start", "-n",
69 | "com.android.browser/com.android.browser.BrowserActivity",
70 | "-a", "android.intent.action.VIEW",
71 | "-d", url, (char *)NULL);
72 | }
73 | }
74 |
75 | /**
76 | * Get the version of current SDK.
77 | */
78 | int get_version()
79 | {
80 | char value[8] = "";
81 | __system_property_get("ro.build.version.sdk", value);
82 |
83 | return atoi(value);
84 | }
85 |
86 | /**
87 | * Find pid by process name.
88 | */
89 | int find_pid_by_name(char *pid_name, int *pid_list)
90 | {
91 | DIR *dir;
92 | struct dirent *next;
93 | int i = 0;
94 | pid_list[0] = 0;
95 |
96 | dir = opendir("/proc");
97 | if (!dir)
98 | {
99 | return 0;
100 | }
101 |
102 | while ((next = readdir(dir)) != NULL)
103 | {
104 | FILE *status;
105 | char proc_file_name[BUFFER_SIZE];
106 | char buffer[BUFFER_SIZE];
107 | char process_name[BUFFER_SIZE];
108 |
109 | /* skip ".." */
110 | if (strcmp(next->d_name, "..") == 0)
111 | {
112 | continue;
113 | }
114 |
115 | /* pid dir in proc is number */
116 | if (!isdigit(*next->d_name))
117 | {
118 | continue;
119 | }
120 |
121 | sprintf(proc_file_name, "/proc/%s/cmdline", next->d_name);
122 | if (!(status = fopen(proc_file_name, "r")))
123 | {
124 | continue;
125 | }
126 |
127 | if (fgets(buffer, BUFFER_SIZE - 1, status) == NULL)
128 | {
129 | fclose(status);
130 | continue;
131 | }
132 | fclose(status);
133 |
134 | /* get pid list */
135 | sscanf(buffer, "%[^-]", process_name);
136 | if (strcmp(process_name, pid_name) == 0)
137 | {
138 | pid_list[i ++] = atoi(next->d_name);
139 | }
140 | }
141 |
142 | if (pid_list)
143 | {
144 | pid_list[i] = 0;
145 | }
146 |
147 | closedir(dir);
148 |
149 | return i;
150 | }
151 |
152 | /**
153 | * Get the process name according to pid.
154 | */
155 | char *get_name_by_pid(pid_t pid)
156 | {
157 | char proc_file_path[BUFFER_SIZE];
158 | char buffer[BUFFER_SIZE];
159 | char *process_name;
160 |
161 | process_name = (char *) malloc(BUFFER_SIZE);
162 | if (!process_name)
163 | {
164 | return NULL;
165 | }
166 |
167 | sprintf(proc_file_path, "/proc/%d/cmdline", pid);
168 | FILE *fp = fopen(proc_file_path, "r");
169 | if (fp != NULL)
170 | {
171 | if (fgets(buffer, BUFFER_SIZE - 1, fp) != NULL)
172 | {
173 | fclose(fp);
174 |
175 | sscanf(buffer, "%[^-]", process_name);
176 | return process_name;
177 | }
178 | }
179 |
180 | return NULL;
181 | }
182 |
183 |
184 | /**
185 | * Use `select` to sleep with specidied second and microsecond.
186 | */
187 | void select_sleep(long sec, long msec)
188 | {
189 | struct timeval timeout;
190 |
191 | timeout.tv_sec = sec;
192 | timeout.tv_usec = msec * 1000;
193 |
194 | select(0, NULL, NULL, NULL, &timeout);
195 | }
196 |
197 |
--------------------------------------------------------------------------------
/jni/daemon/daemon.c:
--------------------------------------------------------------------------------
1 | /*
2 | * File : daemon.c
3 | * Author : Vincent Cheung
4 | * Date : Jan. 20, 2015
5 | * Description : This is used as process daemon.
6 | *
7 | * Copyright (C) Vincent Chueng
8 | *
9 | */
10 |
11 | #include
12 | #include
13 | #include
14 | #include
15 | #include
16 | #include
17 | #include
18 | #include
19 | #include
20 | #include
21 | #include
22 |
23 | #include "common.h"
24 |
25 | #define LOG_TAG "Daemon"
26 | #define MAXFILE 3
27 | #define SLEEP_INTERVAL 1 * 60
28 |
29 | volatile int sig_running = 1;
30 |
31 | /* signal term handler */
32 | static void sigterm_handler(int signo)
33 | {
34 | LOGD(LOG_TAG, "handle signal: %d ", signo);
35 | sig_running = 0;
36 | }
37 |
38 | /* start daemon service */
39 | static void start_service(char *package_name, char *service_name)
40 | {
41 | /* get the sdk version */
42 | int version = get_version();
43 |
44 | pid_t pid;
45 |
46 | if ((pid = fork()) < 0)
47 | {
48 | exit(EXIT_SUCCESS);
49 | }
50 | else if (pid == 0)
51 | {
52 | if (package_name == NULL || service_name == NULL)
53 | {
54 | LOGE(LOG_TAG, "package name or service name is null");
55 | return;
56 | }
57 |
58 | char *p_name = str_stitching(package_name, "/");
59 | char *s_name = str_stitching(p_name, service_name);
60 | LOGD(LOG_TAG, "service: %s", s_name);
61 |
62 | if (version >= 17 || version == 0)
63 | {
64 | int ret = execlp("am", "am", "startservice",
65 | "--user", "0", "-n", s_name, (char *) NULL);
66 | LOGD(LOG_TAG, "result %d", ret);
67 | }
68 | else
69 | {
70 | execlp("am", "am", "startservice", "-n", s_name, (char *) NULL);
71 | }
72 |
73 | LOGD(LOG_TAG , "exit start-service child process");
74 | exit(EXIT_SUCCESS);
75 | }
76 | else
77 | {
78 | waitpid(pid, NULL, 0);
79 | }
80 | }
81 |
82 | int main(int argc, char *argv[])
83 | {
84 | int i;
85 | pid_t pid;
86 | char *package_name = NULL;
87 | char *service_name = NULL;
88 | char *daemon_file_dir = NULL;
89 | int interval = SLEEP_INTERVAL;
90 |
91 | LOGI(LOG_TAG, "Copyright (c) 2015, Vincent Cheung");
92 |
93 | if (argc < 7)
94 | {
95 | LOGE(LOG_TAG, "usage: %s -p package-name -s "
96 | "daemon-service-name -t interval-time", argv[0]);
97 | return;
98 | }
99 |
100 | for (i = 0; i < argc; i ++)
101 | {
102 | if (!strcmp("-p", argv[i]))
103 | {
104 | package_name = argv[i + 1];
105 | LOGD(LOG_TAG, "package name: %s", package_name);
106 | }
107 |
108 | if (!strcmp("-s", argv[i]))
109 | {
110 | service_name = argv[i + 1];
111 | LOGD(LOG_TAG, "service name: %s", service_name);
112 | }
113 |
114 | if (!strcmp("-t", argv[i]))
115 | {
116 | interval = atoi(argv[i + 1]);
117 | LOGD(LOG_TAG, "interval: %d", interval);
118 | }
119 | }
120 |
121 | /* package name and service name should not be null */
122 | if (package_name == NULL || service_name == NULL)
123 | {
124 | LOGE(LOG_TAG, "package name or service name is null");
125 | return;
126 | }
127 |
128 | if ((pid = fork()) < 0)
129 | {
130 | exit(EXIT_SUCCESS);
131 | }
132 | else if (pid == 0)
133 | {
134 | /* add signal */
135 | signal(SIGTERM, sigterm_handler);
136 |
137 | /* become session leader */
138 | setsid();
139 | /* change work directory */
140 | chdir("/");
141 |
142 | for (i = 0; i < MAXFILE; i ++)
143 | {
144 | close(i);
145 | }
146 |
147 | /* find pid by name and kill them */
148 | int pid_list[100];
149 | int total_num = find_pid_by_name(argv[0], pid_list);
150 | LOGD(LOG_TAG, "total num %d", total_num);
151 | for (i = 0; i < total_num; i ++)
152 | {
153 | int retval = 0;
154 | int daemon_pid = pid_list[i];
155 | if (daemon_pid > 1 && daemon_pid != getpid())
156 | {
157 | retval = kill(daemon_pid, SIGTERM);
158 | if (!retval)
159 | {
160 | LOGD(LOG_TAG, "kill daemon process success: %d", daemon_pid);
161 | }
162 | else
163 | {
164 | LOGD(LOG_TAG, "kill daemon process %d fail: %s", daemon_pid, strerror(errno));
165 | exit(EXIT_SUCCESS);
166 | }
167 | }
168 | }
169 |
170 | LOGD(LOG_TAG, "child process fork ok, daemon start: %d", getpid());
171 |
172 | while(sig_running)
173 | {
174 | interval = interval < SLEEP_INTERVAL ? SLEEP_INTERVAL : interval;
175 | select_sleep(interval, 0);
176 |
177 | LOGD(LOG_TAG, "check the service once, interval: %d", interval);
178 |
179 | /* start service */
180 | start_service(package_name, service_name);
181 | }
182 |
183 | exit(EXIT_SUCCESS);
184 | }
185 | else
186 | {
187 | /* parent process */
188 | exit(EXIT_SUCCESS);
189 | }
190 | }
--------------------------------------------------------------------------------
/obj/local/armeabi/objs/common/common.o.d:
--------------------------------------------------------------------------------
1 | obj/local/armeabi/objs/common/common.o: jni/common/common.c \
2 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/stdio.h \
3 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/cdefs.h \
4 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/cdefs_elf.h \
5 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/android/api-level.h \
6 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/types.h \
7 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/stdint.h \
8 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/_types.h \
9 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/machine/_types.h \
10 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/_wchar_limits.h \
11 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/posix_types.h \
12 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/stddef.h \
13 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/compiler.h \
14 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/posix_types.h \
15 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/types.h \
16 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/types.h \
17 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/machine/kernel.h \
18 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/sysmacros.h \
19 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/stdlib.h \
20 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/string.h \
21 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/malloc.h \
22 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/alloca.h \
23 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/strings.h \
24 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/memory.h \
25 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/unistd.h \
26 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/select.h \
27 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/time.h \
28 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/time.h \
29 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/signal.h \
30 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/limits.h \
31 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/limits.h \
32 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/limits.h \
33 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/machine/internal_types.h \
34 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/machine/limits.h \
35 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/syslimits.h \
36 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/page.h \
37 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/signal.h \
38 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm-generic/signal.h \
39 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/sigcontext.h \
40 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/siginfo.h \
41 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm-generic/siginfo.h \
42 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/ucontext.h \
43 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/user.h \
44 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/sysconf.h \
45 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/capability.h \
46 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/pathconf.h \
47 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/dirent.h \
48 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/system_properties.h \
49 | jni/common/common.h jni/common/log.h \
50 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/jni.h \
51 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/android/log.h
52 |
53 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/stdio.h:
54 |
55 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/cdefs.h:
56 |
57 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/cdefs_elf.h:
58 |
59 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/android/api-level.h:
60 |
61 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/types.h:
62 |
63 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/stdint.h:
64 |
65 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/_types.h:
66 |
67 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/machine/_types.h:
68 |
69 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/_wchar_limits.h:
70 |
71 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/posix_types.h:
72 |
73 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/stddef.h:
74 |
75 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/compiler.h:
76 |
77 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/posix_types.h:
78 |
79 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/types.h:
80 |
81 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/types.h:
82 |
83 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/machine/kernel.h:
84 |
85 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/sysmacros.h:
86 |
87 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/stdlib.h:
88 |
89 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/string.h:
90 |
91 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/malloc.h:
92 |
93 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/alloca.h:
94 |
95 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/strings.h:
96 |
97 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/memory.h:
98 |
99 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/unistd.h:
100 |
101 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/select.h:
102 |
103 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/time.h:
104 |
105 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/time.h:
106 |
107 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/signal.h:
108 |
109 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/limits.h:
110 |
111 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/limits.h:
112 |
113 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/limits.h:
114 |
115 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/machine/internal_types.h:
116 |
117 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/machine/limits.h:
118 |
119 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/syslimits.h:
120 |
121 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/page.h:
122 |
123 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/signal.h:
124 |
125 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm-generic/signal.h:
126 |
127 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/sigcontext.h:
128 |
129 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/siginfo.h:
130 |
131 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm-generic/siginfo.h:
132 |
133 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/ucontext.h:
134 |
135 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/user.h:
136 |
137 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/sysconf.h:
138 |
139 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/capability.h:
140 |
141 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/pathconf.h:
142 |
143 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/dirent.h:
144 |
145 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/system_properties.h:
146 |
147 | jni/common/common.h:
148 |
149 | jni/common/log.h:
150 |
151 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/jni.h:
152 |
153 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/android/log.h:
154 |
--------------------------------------------------------------------------------
/.settings/org.eclipse.cdt.codan.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.cdt.codan.checkers.errnoreturn=-Warning
3 | org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false}
4 | org.eclipse.cdt.codan.checkers.errreturnvalue=-Error
5 | org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
6 | org.eclipse.cdt.codan.checkers.noreturn=-Error
7 | org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false}
8 | org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=-Error
9 | org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
10 | org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=-Error
11 | org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
12 | org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=-Warning
13 | org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
14 | org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=-Error
15 | org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
16 | org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=-Warning
17 | org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false}
18 | org.eclipse.cdt.codan.internal.checkers.CatchByReference=-Warning
19 | org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},unknown\=>false,exceptions\=>()}
20 | org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=-Error
21 | org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
22 | org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=-Warning
23 | org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},skip\=>true}
24 | org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=-Error
25 | org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
26 | org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=-Error
27 | org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
28 | org.eclipse.cdt.codan.internal.checkers.InvalidArguments=-Error
29 | org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
30 | org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=-Error
31 | org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
32 | org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=-Error
33 | org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
34 | org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=-Error
35 | org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
36 | org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=-Error
37 | org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
38 | org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info
39 | org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},pattern\=>"^[a-z]",macro\=>true,exceptions\=>()}
40 | org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=-Warning
41 | org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
42 | org.eclipse.cdt.codan.internal.checkers.OverloadProblem=-Error
43 | org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
44 | org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=-Error
45 | org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
46 | org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=-Error
47 | org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
48 | org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning
49 | org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
50 | org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning
51 | org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
52 | org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=-Warning
53 | org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>()}
54 | org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=-Warning
55 | org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},paramNot\=>false}
56 | org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=-Warning
57 | org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},else\=>false,afterelse\=>false}
58 | org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=-Error
59 | org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
60 | org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=-Warning
61 | org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true}
62 | org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=-Warning
63 | org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true}
64 | org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=-Warning
65 | org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>("@(\#)","$Id")}
66 | org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=-Error
67 | org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
68 | org.eclipse.cdt.qt.core.qtproblem=Warning
69 | org.eclipse.cdt.qt.core.qtproblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>true,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
70 | useParentScope=false
71 |
--------------------------------------------------------------------------------
/obj/local/armeabi/objs/Daemon/Daemon.o.d:
--------------------------------------------------------------------------------
1 | obj/local/armeabi/objs/daemon/daemon.o: jni/daemon/daemon.c \
2 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/types.h \
3 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/stdint.h \
4 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/_types.h \
5 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/machine/_types.h \
6 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/_wchar_limits.h \
7 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/android/api-level.h \
8 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/cdefs.h \
9 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/cdefs_elf.h \
10 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/posix_types.h \
11 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/stddef.h \
12 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/compiler.h \
13 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/posix_types.h \
14 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/types.h \
15 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/types.h \
16 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/machine/kernel.h \
17 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/sysmacros.h \
18 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/stat.h \
19 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/time.h \
20 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/time.h \
21 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/stat.h \
22 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/endian.h \
23 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/endian.h \
24 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/machine/endian.h \
25 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/wait.h \
26 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/resource.h \
27 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/resource.h \
28 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/resource.h \
29 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm-generic/resource.h \
30 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/wait.h \
31 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/signal.h \
32 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/limits.h \
33 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/limits.h \
34 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/limits.h \
35 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/machine/internal_types.h \
36 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/machine/limits.h \
37 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/syslimits.h \
38 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/page.h \
39 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/string.h \
40 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/malloc.h \
41 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/signal.h \
42 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm-generic/signal.h \
43 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/sigcontext.h \
44 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/siginfo.h \
45 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm-generic/siginfo.h \
46 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/ucontext.h \
47 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/user.h \
48 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/system_properties.h \
49 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/stdlib.h \
50 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/alloca.h \
51 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/strings.h \
52 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/memory.h \
53 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/stdio.h \
54 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/fcntl.h \
55 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/fcntl.h \
56 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/fcntl.h \
57 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm-generic/fcntl.h \
58 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/unistd.h \
59 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/select.h \
60 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/sysconf.h \
61 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/capability.h \
62 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/pathconf.h \
63 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/errno.h \
64 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/errno.h \
65 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/errno.h \
66 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm-generic/errno.h \
67 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm-generic/errno-base.h \
68 | jni/daemon/../common/common.h jni/daemon/../common/log.h \
69 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/jni.h \
70 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/android/log.h
71 |
72 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/types.h:
73 |
74 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/stdint.h:
75 |
76 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/_types.h:
77 |
78 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/machine/_types.h:
79 |
80 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/_wchar_limits.h:
81 |
82 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/android/api-level.h:
83 |
84 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/cdefs.h:
85 |
86 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/cdefs_elf.h:
87 |
88 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/posix_types.h:
89 |
90 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/stddef.h:
91 |
92 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/compiler.h:
93 |
94 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/posix_types.h:
95 |
96 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/types.h:
97 |
98 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/types.h:
99 |
100 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/machine/kernel.h:
101 |
102 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/sysmacros.h:
103 |
104 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/stat.h:
105 |
106 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/time.h:
107 |
108 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/time.h:
109 |
110 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/stat.h:
111 |
112 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/endian.h:
113 |
114 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/endian.h:
115 |
116 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/machine/endian.h:
117 |
118 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/wait.h:
119 |
120 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/resource.h:
121 |
122 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/resource.h:
123 |
124 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/resource.h:
125 |
126 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm-generic/resource.h:
127 |
128 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/wait.h:
129 |
130 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/signal.h:
131 |
132 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/limits.h:
133 |
134 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/limits.h:
135 |
136 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/limits.h:
137 |
138 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/machine/internal_types.h:
139 |
140 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/machine/limits.h:
141 |
142 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/syslimits.h:
143 |
144 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/page.h:
145 |
146 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/string.h:
147 |
148 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/malloc.h:
149 |
150 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/signal.h:
151 |
152 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm-generic/signal.h:
153 |
154 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/sigcontext.h:
155 |
156 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/siginfo.h:
157 |
158 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm-generic/siginfo.h:
159 |
160 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/ucontext.h:
161 |
162 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/user.h:
163 |
164 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/system_properties.h:
165 |
166 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/stdlib.h:
167 |
168 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/alloca.h:
169 |
170 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/strings.h:
171 |
172 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/memory.h:
173 |
174 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/stdio.h:
175 |
176 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/fcntl.h:
177 |
178 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/fcntl.h:
179 |
180 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/fcntl.h:
181 |
182 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm-generic/fcntl.h:
183 |
184 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/unistd.h:
185 |
186 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/select.h:
187 |
188 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/sys/sysconf.h:
189 |
190 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/capability.h:
191 |
192 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/pathconf.h:
193 |
194 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/errno.h:
195 |
196 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/linux/errno.h:
197 |
198 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm/errno.h:
199 |
200 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm-generic/errno.h:
201 |
202 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/asm-generic/errno-base.h:
203 |
204 | jni/daemon/../common/common.h:
205 |
206 | jni/daemon/../common/log.h:
207 |
208 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/jni.h:
209 |
210 | D:/Android/android-ndk-r10e/platforms/android-19/arch-arm/usr/include/android/log.h:
211 |
--------------------------------------------------------------------------------