├── app ├── Android.mk ├── MrknLogService │ ├── res │ │ └── values │ │ │ └── strings.xml │ ├── Android.mk │ ├── AndroidManifest.xml │ └── src │ │ └── com │ │ └── marakana │ │ └── android │ │ └── logservice │ │ ├── LogServiceApp.java │ │ └── ILogServiceImpl.java ├── MrknLogClient │ ├── Android.mk │ ├── res │ │ ├── values │ │ │ └── strings.xml │ │ └── layout │ │ │ └── log.xml │ ├── AndroidManifest.xml │ └── src │ │ └── com │ │ └── marakana │ │ └── android │ │ └── mrknlogclient │ │ └── LogActivity.java └── MrknLogNative │ ├── res │ ├── values │ │ └── strings.xml │ └── layout │ │ └── log.xml │ ├── Android.mk │ ├── AndroidManifest.xml │ └── src │ └── com │ └── marakana │ └── android │ └── mrknlognative │ └── LogActivity.java ├── bin ├── Android.mk ├── mrknlog │ ├── Android.mk │ └── mrknlog.c └── mrknlogd │ ├── Android.mk │ └── mrknlogd.c ├── lib ├── Android.mk └── libmrknlog │ ├── Android.mk │ └── libmrknlog.c ├── framework ├── Android.mk ├── libmrknlog_jni │ ├── Android.mk │ ├── java │ │ ├── com │ │ │ └── marakana │ │ │ │ └── android │ │ │ │ └── lib │ │ │ │ └── log │ │ │ │ ├── LibLogException.java │ │ │ │ ├── LibLog.java │ │ │ │ └── Main.java │ │ ├── com.marakana.android.lib.log.xml │ │ └── Android.mk │ └── jni │ │ ├── Android.mk │ │ └── com_marakana_android_lib_log_LibLog.cpp └── mrknlogservice │ ├── com.marakana.android.service.log.xml │ ├── com │ └── marakana │ │ └── android │ │ └── service │ │ └── log │ │ ├── ILogListener.aidl │ │ ├── ILogService.aidl │ │ ├── LogListener.java │ │ └── LogManager.java │ └── Android.mk ├── kernel ├── .gitignore ├── sepolicy ├── system_app.te ├── service.te ├── service_contexts ├── file_contexts └── mrknlogd.te ├── AndroidProducts.mk ├── vendorsetup.sh ├── system.prop ├── sdk_addon ├── alpha_sdk_addon_stub_defs.txt ├── hardware.ini ├── source.properties ├── sys-img │ └── source.prop_template ├── manifest.ini ├── repository_sysimg.xml └── repository_addon.xml ├── overlay └── frameworks │ └── base │ └── core │ └── res │ └── res │ ├── drawable-nodpi │ └── default_wallpaper.jpg │ └── values │ └── config.xml ├── ueventd.goldfish.rc ├── packages.mk ├── README.asciidoc ├── common.mk ├── fstab.goldfish ├── include └── mrknlog.h ├── full_alpha.mk ├── BoardConfig.mk ├── alpha_sdk_addon.mk ├── init.goldfish.rc └── NOTICE /app/Android.mk: -------------------------------------------------------------------------------- 1 | include $(call all-subdir-makefiles) 2 | -------------------------------------------------------------------------------- /bin/Android.mk: -------------------------------------------------------------------------------- 1 | include $(call all-subdir-makefiles) 2 | -------------------------------------------------------------------------------- /lib/Android.mk: -------------------------------------------------------------------------------- 1 | include $(call all-subdir-makefiles) 2 | -------------------------------------------------------------------------------- /framework/Android.mk: -------------------------------------------------------------------------------- 1 | include $(call all-subdir-makefiles) 2 | -------------------------------------------------------------------------------- /kernel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thenewcircle/alpha/HEAD/kernel -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | #IDE Project Files 2 | .classpath 3 | .project 4 | *.iml 5 | 6 | -------------------------------------------------------------------------------- /framework/libmrknlog_jni/Android.mk: -------------------------------------------------------------------------------- 1 | include $(call all-subdir-makefiles) 2 | -------------------------------------------------------------------------------- /sepolicy/system_app.te: -------------------------------------------------------------------------------- 1 | allow system_app mrknlog_service:service_manager add; 2 | -------------------------------------------------------------------------------- /sepolicy/service.te: -------------------------------------------------------------------------------- 1 | type mrknlog_service, app_api_service, service_manager_type; 2 | -------------------------------------------------------------------------------- /sepolicy/service_contexts: -------------------------------------------------------------------------------- 1 | com.marakana.android.service.log.ILogService u:object_r:mrknlog_service:s0 2 | -------------------------------------------------------------------------------- /AndroidProducts.mk: -------------------------------------------------------------------------------- 1 | PRODUCT_MAKEFILES := $(LOCAL_DIR)/full_alpha.mk 2 | 3 | PRODUCT_MAKEFILES += $(LOCAL_DIR)/alpha_sdk_addon.mk -------------------------------------------------------------------------------- /sepolicy/file_contexts: -------------------------------------------------------------------------------- 1 | # Domain transition for newcircle log daemon 2 | /system/bin/mrknlogd u:object_r:mrknlogd_exec:s0 3 | -------------------------------------------------------------------------------- /vendorsetup.sh: -------------------------------------------------------------------------------- 1 | add_lunch_combo full_alpha-eng 2 | add_lunch_combo full_alpha-userdebug 3 | add_lunch_combo full_alpha-user 4 | 5 | -------------------------------------------------------------------------------- /system.prop: -------------------------------------------------------------------------------- 1 | # 2 | # system.prop for generic sdk 3 | # 4 | 5 | rild.libpath=/system/lib/libreference-ril.so 6 | rild.libargs=-d /dev/ttyS0 7 | -------------------------------------------------------------------------------- /sdk_addon/alpha_sdk_addon_stub_defs.txt: -------------------------------------------------------------------------------- 1 | +com.marakana.android.lib.log.* 2 | -com.marakana.android.lib.log.Main 3 | +com.marakana.android.service.log.* 4 | -------------------------------------------------------------------------------- /overlay/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thenewcircle/alpha/HEAD/overlay/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg -------------------------------------------------------------------------------- /sdk_addon/hardware.ini: -------------------------------------------------------------------------------- 1 | # Custom hardware options for the add-on. 2 | # Properties defined here impact all AVD targeting this add-on. 3 | # Each skin can also override those values with its own hardware.ini file. 4 | vm.heapSize = 24 5 | -------------------------------------------------------------------------------- /framework/libmrknlog_jni/java/com/marakana/android/lib/log/LibLogException.java: -------------------------------------------------------------------------------- 1 | package com.marakana.android.lib.log; 2 | 3 | public class LibLogException extends RuntimeException { 4 | public LibLogException(String msg) { 5 | super(msg); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /framework/libmrknlog_jni/java/com.marakana.android.lib.log.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/MrknLogService/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Flush Log 4 | flush the main log buffer 5 | 6 | -------------------------------------------------------------------------------- /framework/mrknlogservice/com.marakana.android.service.log.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /sdk_addon/source.properties: -------------------------------------------------------------------------------- 1 | #This file is a stub, used only for testing local installs 2 | Addon.NameDisplay=Alpha Add-On 3 | Addon.NameId=alpha 4 | Addon.VendorDisplay=NewCircle 5 | Addon.VendorId=newcircle 6 | Pkg.Desc=NewCircle Alpha Add-on 7 | AndroidVersion.ApiLevel=23 8 | Pkg.Revision=1 9 | -------------------------------------------------------------------------------- /overlay/frameworks/base/core/res/res/values/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 4 | 5 | true 6 | -------------------------------------------------------------------------------- /framework/mrknlogservice/com/marakana/android/service/log/ILogListener.aidl: -------------------------------------------------------------------------------- 1 | package com.marakana.android.service.log; 2 | 3 | /** 4 | * Listener for used log size change events. 5 | * 6 | * {@hide} 7 | */ 8 | oneway interface ILogListener { 9 | void onUsedLogSizeChange(int usedLogSize); 10 | } 11 | -------------------------------------------------------------------------------- /app/MrknLogClient/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_MODULE_TAGS := optional 5 | LOCAL_SRC_FILES := $(call all-java-files-under,src) 6 | LOCAL_JAVA_LIBRARIES := com.marakana.android.service.log 7 | LOCAL_PACKAGE_NAME := MrknLogClient 8 | 9 | include $(BUILD_PACKAGE) 10 | -------------------------------------------------------------------------------- /sepolicy/mrknlogd.te: -------------------------------------------------------------------------------- 1 | # newcircle log daemon 2 | type mrknlogd, domain, mlstrustedsubject; 3 | type mrknlogd_exec, exec_type, file_type; 4 | 5 | init_daemon_domain(mrknlogd) 6 | 7 | # let the daemon access logd 8 | allow mrknlogd logd_socket:sock_file write; 9 | allow mrknlogd logd:unix_stream_socket connectto; 10 | -------------------------------------------------------------------------------- /app/MrknLogClient/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Marakana Log Client 4 | Using %1$d of %2$d bytes of the log buffer 5 | Flush Log Buffer 6 | 7 | -------------------------------------------------------------------------------- /sdk_addon/sys-img/source.prop_template: -------------------------------------------------------------------------------- 1 | Addon.VendorDisplay=NewCircle 2 | Addon.VendorId=newcircle 3 | AndroidVersion.ApiLevel=${PLATFORM_SDK_VERSION} 4 | Pkg.Desc=NewCircle Alpha Platform ${PLATFORM_VERSION} 5 | Pkg.Revision=1 6 | SystemImage.Abi=${TARGET_CPU_ABI} 7 | SystemImage.TagDisplay=Alpha Add-On 8 | SystemImage.TagId=alpha 9 | -------------------------------------------------------------------------------- /app/MrknLogNative/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Marakana Log Native 4 | Using %1$d of %2$d bytes of the log buffer 5 | Flush Log Buffer 6 | 7 | -------------------------------------------------------------------------------- /bin/mrknlog/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_MODULE_TAGS := optional 5 | LOCAL_SRC_FILES := mrknlog.c 6 | LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../include/ 7 | LOCAL_SHARED_LIBRARIES := libhardware 8 | LOCAL_CFLAGS += -g -O0 9 | LOCAL_MODULE := mrknlog 10 | 11 | include $(BUILD_EXECUTABLE) 12 | 13 | -------------------------------------------------------------------------------- /ueventd.goldfish.rc: -------------------------------------------------------------------------------- 1 | # These settings are specific to running under the Android emulator 2 | /dev/qemu_trace 0666 system system 3 | /dev/qemu_pipe 0666 system system 4 | /dev/goldfish_pipe 0666 system system 5 | /dev/ttyS* 0666 system system 6 | /proc 0666 system system 7 | -------------------------------------------------------------------------------- /bin/mrknlogd/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_MODULE_TAGS := optional 5 | LOCAL_SRC_FILES := mrknlogd.c 6 | LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../include/ 7 | LOCAL_SHARED_LIBRARIES := libcutils libhardware 8 | LOCAL_CFLAGS += -g -O0 9 | LOCAL_MODULE := mrknlogd 10 | 11 | include $(BUILD_EXECUTABLE) 12 | 13 | -------------------------------------------------------------------------------- /sdk_addon/manifest.ini: -------------------------------------------------------------------------------- 1 | name=Alpha Add-On 2 | name-id=alpha 3 | vendor=NewCircle 4 | vendor-id=newcircle 5 | api=23 6 | libraries=com.marakana.android.lib.log;com.marakana.android.service.log 7 | com.marakana.android.lib.log=com.marakana.android.lib.log.jar;Marakana Log Library 8 | com.marakana.android.service.log=com.marakana.android.service.log.jar;Marakana Log Service 9 | -------------------------------------------------------------------------------- /app/MrknLogNative/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_MODULE_TAGS := optional 5 | LOCAL_SRC_FILES := $(call all-java-files-under,src) 6 | LOCAL_REQUIRED_MODULES := com.marakana.android.lib.log 7 | LOCAL_JAVA_LIBRARIES := com.marakana.android.lib.log 8 | LOCAL_PACKAGE_NAME := MrknLogNative 9 | LOCAL_PROGUARD_ENABLED := disabled 10 | LOCAL_CERTIFICATE := platform 11 | 12 | include $(BUILD_PACKAGE) 13 | -------------------------------------------------------------------------------- /packages.mk: -------------------------------------------------------------------------------- 1 | # Add these packages to this product 2 | PRODUCT_PACKAGES += mrknlog.default 3 | PRODUCT_PACKAGES += mrknlog 4 | PRODUCT_PACKAGES += mrknlogd 5 | 6 | PRODUCT_PACKAGES += \ 7 | com.marakana.android.lib.log \ 8 | com.marakana.android.lib.log.xml \ 9 | libmrknlog_jni 10 | 11 | PRODUCT_PACKAGES += \ 12 | com.marakana.android.service.log \ 13 | com.marakana.android.service.log.xml 14 | 15 | PRODUCT_PACKAGES += MrknLogService 16 | -------------------------------------------------------------------------------- /framework/libmrknlog_jni/jni/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_MODULE_TAGS := optional 5 | LOCAL_SRC_FILES := com_marakana_android_lib_log_LibLog.cpp 6 | LOCAL_C_INCLUDES += $(JNI_H_INCLUDE) $(LOCAL_PATH)/../../../include/ 7 | LOCAL_CFLAGS += -g -O0 -Wno-unused-parameter 8 | LOCAL_SHARED_LIBRARIES := libcutils libhardware libnativehelper 9 | LOCAL_MODULE := libmrknlog_jni 10 | 11 | include $(BUILD_SHARED_LIBRARY) 12 | -------------------------------------------------------------------------------- /framework/mrknlogservice/com/marakana/android/service/log/ILogService.aidl: -------------------------------------------------------------------------------- 1 | package com.marakana.android.service.log; 2 | 3 | import com.marakana.android.service.log.ILogListener; 4 | 5 | /** 6 | * System-private API for talking to the LogService. 7 | * 8 | * {@hide} 9 | */ 10 | interface ILogService { 11 | void flushLog(); 12 | int getTotalLogSize(); 13 | int getUsedLogSize(); 14 | void register(in ILogListener listener); 15 | void unregister(in ILogListener listener); 16 | } 17 | -------------------------------------------------------------------------------- /lib/libmrknlog/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_MODULE_TAGS := optional 5 | LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../include/ 6 | LOCAL_SRC_FILES := libmrknlog.c 7 | LOCAL_SHARED_LIBRARIES := libcutils 8 | LOCAL_CFLAGS += -g -O0 -Wno-unused-parameter 9 | #Also defines the output file name 10 | LOCAL_MODULE := mrknlog.default 11 | #Put this module in the HAL search path 12 | LOCAL_MODULE_RELATIVE_PATH := hw 13 | 14 | include $(BUILD_SHARED_LIBRARY) 15 | -------------------------------------------------------------------------------- /framework/mrknlogservice/com/marakana/android/service/log/LogListener.java: -------------------------------------------------------------------------------- 1 | package com.marakana.android.service.log; 2 | 3 | /** 4 | * Used for receiving notifications from the LogManager when the buffer size has changed. 5 | */ 6 | public interface LogListener { 7 | 8 | /** 9 | * Called when the buffer size has changed. 10 | * Invoked on the main/looper/UI thread. 11 | * 12 | * @param usedLogSize the new log buffer size. 13 | */ 14 | public void onUsedLogSizeChange(int usedLogSize); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /README.asciidoc: -------------------------------------------------------------------------------- 1 | = About This Project 2 | 3 | This project demonstrates how to put together a simple custom device for Android Open Source Project (AOSP). 4 | 5 | Clone into aosp/device/newcircle/alpha 6 | 7 | This code was developed to support NewCircle's Android Training courses. 8 | 9 | For more info, see http://thenewcircle.com/training/android/ 10 | 11 | == Legal 12 | 13 | Please see ++NOTICE++ file in this directory for copyright, license terms, and legal disclaimers. 14 | 15 | Copyright © 2015 NewCircle Inc. 16 | 17 | -------------------------------------------------------------------------------- /app/MrknLogClient/res/layout/log.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 7 |