크롬 빌드의 경우 크롬 휴대폰 버전에서는 User-Agent 플러그인을 깔 수 없으니 해당 부분을 수정하여 User-Agent 필터링으로 접속 불가한 사이트에 접속 가능토록 하는 것이 Goal 인 프로젝트 였다. 

아래 링크에서 가장 마지막 .mm 파일을 보면 수정 포인트가 있다. 엔터프라이즈용으로 내부 배포만 하는 회사의 경우 크로미움으로 전용 브라우저를 만들 수 있다는 것과 크롬에서 제공하는 full profile 로 웹앱의 기능을 거의 모두 쓸 수 있다는 것이 핵심인 프로젝트 이다.

 

- 이렇게 정리 안하고 나니 무슨 의미인지 잘 모르는 것 같아 시간이 지나서 핵심만 요약 해 본다. -

 

 

 

 

github.com/hajunho/repo_hajunho.slack.com/commit/a012ffd34c2fc80f1066d5dbfcb1e6d50a2e24d3

 

[011] Plz, See two .mm files only to change User-Agent. · hajunho/repo_hajunho.slack.com@a012ffd

Permalink This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. Browse files [011] Plz, See two .mm files only to change User-Agent. Loading branch information Showing 49 changed files with 8,398

github.com

 

뭐 개발자라면, 잘 알겠지만 한 번에 되지는 않는다.

 xcrun security find-identity -v -p codesigning
  1) --8730DFD2437------------------------------ "Apple Development: JUNHO HA (----5----)"
     1 valid identities found

패키지명 변경 및 폰에서도 잘 되어서 프로젝트 종료한다. 다른 것 보다 시뮬레이터 말고 폰에 돌릴 때 많은 고생을 할 것인데, 개삽질에 대한 정보를 공유하면 바로 실행은 하지 말라고 하고 싶다. 구글이 만든 스크립트 자체가 바이너리 생성에 iMAC pro 로도 빌드가 그리 빠르진 않으니 여건이 허락된다면 MAC PRO 로 가는 것을 추천한다. 시뮬레이터 크롬이랑 일반 디바이스 크롬이랑 동작이 다르다. 그리고 원 소스에서 out 폴더의 스크립트는 본 스크립트를 쓰면 안되며 수정이 필요하다. 다음 두 스샷은 개발에 도움이 될 것 같다. 즉, ***방식으로 개발하고 테스트 하라는 이야기.

애플은 보안이 뛰어나서 씨리얼로 뭐 할 수 있는게 없다. 대조? 신고(for what)? 정도

 

 

WKWebView의 customUserAgent를 이용하면 특정 클라이언트만 접속할 수 있는 사이트 개발이 가능하다.

요구 사항 없이 순수하게 개인 OCR 프로젝트 중인데 잘되면 회사에 적용 시켜 주려고 한다. 뭔, 보상이야 하겠지만 최근 임원이 회사일을 이렇게 자기 일처럼 하는 사람은 100명에 1명 나올까 한다며 칭찬을 해 주셨다. 가끔 알아봐 주는 누군가를 만날 때 그렇게 짜릿할 수 없다.

별로 원치 않는 스샷이 나왔다 ㅡㅡ; 뭐 별 기대도 안했지만

전 글 댓글 문제점은 git init 후에 setup 을 실행시키니 해결되었다. git history 가 너무 많아 shell도 힘들어 할 정도니 history 검색은 원 폴더에서 하고 작업은 copy folder에서 하는 것이 맞다. Xcode도 git 지원이 되니 말이다.

자 그럼 진행 상황은 또 댓글로.

 

 

네이버 웨일이던 이스트소프트 스윙이던 http://www.chromium.org/크로미움 프로젝트에서 branch out? clone? copy? 하여 만든 프로젝트인데 나름 시장을 개척하고 있는 것 같고, 지금 개인이 branch out 하면 더 이득일 것 같아서 프로젝트를 진행 해 보기로 한다. 본래 잘 되는 오픈 소스에서 branch out을 할 때는 타이밍을 잘 봐야 이 후 merge 되는 killer function 을 놓치지 않을 수 있는데. 나 같은 경우 모바일이 주 전공이다 보니 충분히 기다렸다는 생각이 든다. 개인이라 커스터 마이징 기록을 남겨 두고 패치로 만든 다면 굳이 어려운 merging이 아니라 언제든 새로운 브랜치에서 out 할 수 있는 가벼움까지 가질 수 있으니 개인이 기업을 이길 또 하나의 무기가 될 것이라 생각이 된다.뭐, 사실 개인이 이길 수 밖에 없는 이유는 진입 불가능한 비용 시장 때문이고. 언리얼과 같은 오픈 소스가 이길 수 밖에 없는 이유는 생태계와 브랜드를 잡은 업체가 모두를 흡수 할 수 마이크로소프트 전략도 있고, 도저히 변화를 따라갈 수 없는 오픈 환경이라는 것도 있다. 텐서플로우도 그 중 하나인데 어느 정도 시기가 되면 모두 closed 되거나 close 와 비슷한 행태(일부를 떼서 무조건 원격으로 받아야 하는 모듈로 만든다던지...) 때문에 branch out project를 하는 것이다. 가져 간다는 의미는 아니고. 어차피 시간과 충분한 돈이 있다면 이미 만들어진 cpu instruction set과 오랜 기간 공부 해 본 operating system 아키텍팅 기법에서 못 만들 것은 없으니까.

 

소스 받는데 2시간 걸린다. 히스토리 안 받는 옵션 주면 빠르다고 해서 줬더니 나중에 오류가 난다. ㅡㅡ; 중간에 멈추니 다시 시작 하는 옵션없으니 지우고 받으라고 한다. 믓튼, 그렇게 소스 받는데만 4시간 쓰고.

 

원 소스는 소중하여 저장하였다.

tar --exclude='./src/.git' -zcvf chrome.tar.gz ./src

 

그리고 개인 프로젝트니 chromium 보다 chrome build라고 한다. open jdk 할 때도 그냥 jdk라 불렀듯이.

chromium.googlesource.com/chromium/src/+/master/docs/get_the_code.md

 

Get the code: check out, build, and run Chromium.

Get the code: check out, build, and run Chromium. Chromium supports building on Windows, Mac and Linux host systems. Linux is required for building Android, and a Mac is required for building iOS. The process for building Chrome is generally the same on al

chromium.googlesource.com

 

chromium.googlesource.com/chromium/src/+/master/docs/ios/build_instructions.md

 

Checking out and building Chromium for iOS

Checking out and building Chromium for iOS There are instructions for other platforms linked from the get the code page. Instructions for Google Employees Are you a Google employee? See go/building-chrome instead. System requirements A 64-bit Mac running 1

chromium.googlesource.com

Checking out and building Chromium for iOS

There are instructions for other platforms linked from the get the code page.

Instructions for Google Employees

Are you a Google employee? See go/building-chrome instead.

 

Contents

 

 

 

System requirements

  • A 64-bit Mac running 10.12.6 or later.
  • Xcode 11.4+.
  • The current version of the JDK (required for the Closure compiler).

Install depot_tools

Clone the depot_tools repository:

$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

Add depot_tools to the end of your PATH (you will probably want to put this in your ~/.bashrc or ~/.zshrc). Assuming you cloned depot_tools to /path/to/depot_tools:

$ export PATH="$PATH:/path/to/depot_tools"

Get the code

Create a chromium directory for the checkout and change to it (you can call this whatever you like and put it wherever you like, as long as the full path has no spaces):

$ mkdir chromium && cd chromium

Run the fetch tool from depot_tools to check out the code and its dependencies.

$ fetch ios

If you don't want the full repo history, you can save a lot of time by adding the --no-history flag to fetch.

Expect the command to take 30 minutes on even a fast connection, and many hours on slower ones.

When fetch completes, it will have created a hidden .gclient file and a directory called src in the working directory. The remaining instructions assume you have switched to the src directory:

$ cd src

Optional: You can also install API keys if you want your build to talk to some Google services, but this is not necessary for most development and testing purposes.

Setting up the build

Since the iOS build is a bit more complicated than a desktop build, we provide ios/build/tools/setup-gn.py, which will create four appropriately configured build directories under out for Release and Debug device and simulator builds, and generates an appropriate Xcode project (out/build/all.xcodeproj) as well.

More information about developing with Xcode. Xcode project is an artifact, any changes made in the project itself will be ignored.

You can customize the build by editing the file $HOME/.setup-gn (create it if it does not exist). Look at src/ios/build/tools/setup-gn.config for available configuration options.

From this point, you can either build from Xcode or from the command line using autoninja. setup-gn.py creates sub-directories named out/${configuration}-${platform}, so for a Debug build for simulator use:

$ autoninja -C out/Debug-iphonesimulator gn_all

(autoninja is a wrapper that automatically provides optimal values for the arguments passed to ninja.)

Note: The setup-gn.py script needs to run every time one of the BUILD.gn files is updated (either by you or after rebasing). If you forget to run it, the list of targets and files in the Xcode solution may be stale. You can run the script directly or use either gclient sync or gclient runhooks which will run setup-gn.py for you as part of the update hooks.

You can add a custom hook to .gclient file to configure setup-gn.py to be run as part of gclient runhooks. In that case, your .gclient file would look like this:

solutions = [ { "name" : "src", "url" : "https://chromium.googlesource.com/chromium/src.git", "deps_file" : "DEPS", "managed" : False, "custom_deps" : {}, "custom_vars" : {}, "custom_hooks": [{ "name": "setup_gn", "pattern": ".", "action": [ "python", "src/ios/build/tools/setup-gn.py", ] }], "safesync_url": "", }, ] target_os = ["ios"] target_os_only = True

You can also follow the manual instructions on the Mac page, but make sure you set the GN arg target_os="ios".

Building for device

To be able to build and run Chromium and the tests for devices, you need to have an Apple developer account (a free one will work) and the appropriate provisioning profiles, then configure the build to use them.

Code signing identity

Please refer to the Apple documentation on how to get a code signing identity and certificates. You can check that you have a code signing identity correctly installed by running the following command.

$ xcrun security find-identity -v -p codesigning 1) 0123456789ABCDEF0123456789ABCDEF01234567 "iPhone Developer: someone@example.com (XXXXXXXXXX)" 1 valid identities found

If the command output says you have zero valid identities, then you do not have a code signing identity installed and need to get one from Apple. If you have more than one identity, the build system may select the wrong one automatically, and you can use the ios_code_signing_identity gn variable to control which one to use by setting it to the identity hash, e.g. to "0123456789ABCDEF0123456789ABCDEF01234567".

Mobile provisioning profiles

Once you have the code signing identity, you need to decide on a prefix for the application bundle identifier. This is controlled by the gn variable ios_app_bundle_id_prefix and usually corresponds to a reversed domain name (the default value is "org.chromium").

You then need to request provisioning profiles from Apple for your devices for the following bundle identifiers to build and run Chromium with these application extensions:

  • ${prefix}.chrome.ios.herebedragons
  • ${prefix}.chrome.ios.herebedragons.ShareExtension
  • ${prefix}.chrome.ios.herebedragons.TodayExtension
  • ${prefix}.chrome.ios.herebedragons.SearchTodayExtension

All these certificates need to have the “App Groups” (com.apple.security.application-groups) capability enabled for the following groups:

  • group.${prefix}.chrome
  • group.${prefix}.common

The group.${prefix}.chrome is only shared by Chromium and its extensions to share files and configurations while the group.${prefix}.common is shared with Chromium and other applications from the same organisation and can be used to send commands to Chromium.

Mobile provisioning profiles for tests

In addition to that, you need a different provisioning profile for each test application. Those provisioning profile will have a bundle identifier matching the following pattern ${prefix}.gtest.${test-suite-name} where ${test-suite-name} is the name of the test suite with underscores changed to dashes (e.g. base_unittests app will use ${prefix}.gest.base-unittests as bundle identifier).

To be able to run the EarlGrey tests on a device, you'll need two provisioning profiles for EarlGrey and OCHamcrest frameworks:

  • ${prefix}.test.OCHamcrest
  • ${prefix}.test.EarlGrey

In addition to that, then you'll need one additional provisioning profile for the XCTest module too. It must match the pattern: ${prefix}.gtest.${test-suite-name}-module.

Other applications

Other applications like ios_web_shell usually will require mobile provisioning profiles with bundle identifiers that may usually match the following pattern ${prefix}.${application-name} and may require specific capabilities.

Generally, if the mobile provisioning profile is missing then the code signing step will fail and will print the bundle identifier of the bundle that could not be signed on the command line, e.g.:

$ autoninja -C out/Debug-iphoneos ios_web_shell ninja: Entering directory `out/Debug-iphoneos' FAILED: ios_web_shell.app/ios_web_shell ios_web_shell.app/_CodeSignature/CodeResources ios_web_shell.app/embedded.mobileprovision python ../../build/config/ios/codesign.py code-sign-bundle -t=iphoneos -i=0123456789ABCDEF0123456789ABCDEF01234567 -e=../../build/config/ios/entitlements.plist -b=obj/ios/web/shell/ios_web_shell ios_web_shell.app Error: no mobile provisioning profile found for "org.chromium.ios-web-shell". ninja: build stopped: subcommand failed.

Here, the build is failing because there are no mobile provisioning profiles installed that could sign the ios_web_shell.app bundle with the identity 0123456789ABCDEF0123456789ABCDEF01234567. To fix the build, you'll need to request such a mobile provisioning profile from Apple.

You can inspect the file passed via the -e flag to the codesign.py script to check which capabilites are required for the mobile provisioning profile (e.g. src/build/config/ios/entitlements.plist for the above build error, remember that the paths are relative to the build directory, not to the source directory).

If the required capabilities are not enabled on the mobile provisioning profile, then it will be impossible to install the application on a device (Xcode will display an error stating that “The application was signed with invalid entitlements”).

Running apps from the command line

Any target that is built and runs on the bots (see below) should run successfully in a local build. To run in the simulator from the command line, you can use iossim. For example, to run a debug build of Chromium:

$ out/Debug-iphonesimulator/iossim out/Debug-iphonesimulator/Chromium.app

With Xcode 9, iossim no longer automatically launches the Simulator. This must now be done manually from within Xcode (Xcode > Open Developer Tool > Simulator), and also must be done after running iossim.

Passing arguments

Arguments needed to be passed to the test application through iossim, such as --gtest_filter=SomeTest.FooBar should be passed through the -c flag:

$ out/Debug-iphonesimulator/iossim \ -c "--gtest_filter=SomeTest.FooBar --gtest_repeat=3" \ out/Debug-iphonesimulator/base_unittests.app

Running EarlGrey tests

EarlGrey tests are run differently than other test targets, as there is an XCTest bundle that is injected into the target application. Therefore you must also pass in the test bundle:

$ out/Debug-iphonesimulator/iossim \ out/Debug-iphonesimulator/ios_chrome_ui_egtests.app \ out/Debug-iphonesimulator/ios_chrome_ui_egtests.app/PlugIns/ios_chrome_ui_egtests_module.xctest

Running on specific simulator

By default, iossim will pick an arbitrary simulator to run the tests. If you want to run them on a specific simulator, you can use -d to pick the simulated device and -s to select the iOS version.

For example, to run the tests on a simulated iPhone 6s running iOS 10.0, you would invoke iossim like this.

$ out/Debug-iphonesimulator/iossim -d 'iPhone 6s' -s '10.0' \ out/Debug-iphonesimulator/base_unittests.app

Please note that by default only a subset of simulator devices are installed with Xcode. You may have to install additional simulators in Xcode (or even an older version of Xcode) to be able to run on a specific configuration.

Go to “Preferences > Components” tab in Xcode to install other simulator images (this is the location the setting is in Xcode 9.2; it may be different in other version of the tool).

Update your checkout

To update an existing checkout, you can run

$ git rebase-update $ gclient sync

The first command updates the primary Chromium source repository and rebases any of your local branches on top of tip-of-tree (aka the Git branch origin/master). If you don't want to use this script, you can also just use git pull or other common Git commands to update the repo.

The second command syncs dependencies to the appropriate versions and re-runs hooks as needed.

Tips, tricks, and troubleshooting

Remember that the XCode project you interact with while working on Chromium is a build artifact, generated from the BUILD.gn files. Do not use it to add new files; instead see the procedures for working with files.

If you have problems building, join us in #chromium on irc.freenode.net and ask there. As mentioned above, be sure that the waterfall is green and the tree is open before checking out. This will increase your chances of success.

Improving performance of git status

Increase the vnode cache size

git status is used frequently to determine the status of your checkout. Due to the large number of files in Chromium‘s checkout, git status performance can be quite variable. Increasing the system’s vnode cache appears to help. By default, this command:

$ sysctl -a | egrep kern\..*vnodes

Outputs kern.maxvnodes: 263168 (263168 is 257 * 1024). To increase this setting:

$ sudo sysctl kern.maxvnodes=$((512*1024))

Higher values may be appropriate if you routinely move between different Chromium checkouts. This setting will reset on reboot, the startup setting can be set in /etc/sysctl.conf:

$ echo kern.maxvnodes=$((512*1024)) | sudo tee -a /etc/sysctl.conf

Or edit the file directly.

Configure git to use an untracked cache

If git --version reports 2.8 or higher, try running

$ git update-index --test-untracked-cache

If the output ends with OK, then the following may also improve performance of git status:

$ git config core.untrackedCache true

If git --version reports 2.6 or higher, but below 2.8, you can instead run

$ git update-index --untracked-cache

Xcode license agreement

If you're getting the error

Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.

the Xcode license hasn't been accepted yet which (contrary to the message) any user can do by running:

$ xcodebuild -license

Only accepting for all users of the machine requires root:

$ sudo xcodebuild -license

Abseilhomepage
Accessibility Audit library, from Accessibility Developer Toolshomepage
aes256-nsstring-encryption-in-ioshomepage
Alliance for Open Media Video Codechomepage
Almost Native Graphics Layer Enginehomepage
American Fuzzy Lophomepage
Androidhomepage
Android bionic libchomepage
Android Crazy Linkerhomepage
Android Explicit Synchronizationhomepage
Android FloatPropertyhomepage
Android Open Source Project - App Compat Libraryhomepage
Android Open Source Project - Settings Apphomepage
Android SDKhomepage
ARCore SDKhomepage
Asio C++ Libraryhomepage
AsyncTaskhomepage
AXE-CORE Accessibility Audithomepage
Blackmagic DeckLink SDK - Machomepage
blink HTMLTokenizerhomepage
Bloom filter implementation in python, java and c++ with fnv and murmur hash functionshomepage
BoringSSLhomepage
Braille Translation Libraryhomepage
Breakpad, An open-source multi-platform crash reporting systemhomepage
Brotlihomepage
BSDiffhomepage
bsdiffhomepage
bspatchhomepage
C++ Requests: Curl for Peoplehomepage
C++ websocket client/server libraryhomepage
Chrome Custom Tabs - Example and Usagehomepage
ChromeVoxhomepage
Closure compilerhomepage
Cocoa extension code from Caminohomepage
color-thiefhomepage
Compact Encoding Detectionhomepage
Compact Language Detector v3homepage
CppWindowsServicehomepage
Crashpadhomepage
CRC32Chomepage
Darwinhomepage
David M. Gay's floating point routineshomepage
divsufsorthomepage
dom-distiller-jshomepage
dynamic annotationshomepage
Expat XML Parserhomepage
Fancytreehomepage
fdlibmhomepage
ffmpeghomepage
Fiat-Crypto: Synthesizing Correct-by-Construction Code for Cryptographic Primitiveshomepage
fips181homepage
FlatBuffershomepage
Flot Javascript/JQuery library for creating graphshomepage
FreeTypehomepage
gestureshomepage
GifPlayer Animated GIF Libraryhomepage
Google Cache Invalidation APIhomepage
Google fork of Khronos reference front-end for GLSL and ESSLhomepage
Google Input Toolshomepage
Google Toolbox for Machomepage
google-glog's symbolization libraryhomepage
google-jstemplatehomepage
GVR Android SDKhomepage
GVR Keyboardhomepage
harfbuzz-nghomepage
Headless Android Heap Analyzerhomepage
HTML5Sortablehomepage
hunspellhomepage
hunspell dictionarieshomepage
IAccessible2 COM interfaces for accessibilityhomepage
iccjpeghomepage
inspector protocolhomepage
International Phone Number Libraryhomepage
ISimpleDOM COM interfaces for accessibilityhomepage
JavaScript-autoCompletehomepage
Jinja2 Python Template Enginehomepage
jqueryhomepage
jQuery UIhomepage
JSON for Modern C++homepage
jsoncpphomepage
Khronos header fileshomepage
LCOV - the LTP GCOV extensionhomepage
LeakCanaryhomepage
LevelDB: A Fast Persistent Key-Value Storehomepage
libaddressinputhomepage
libcxxhomepage
libcxx-pretty-printershomepage
libcxxabihomepage
libevdevhomepage
libeventhomepage
libFuzzerhomepage
libjingle XMPP and xmllite librarieshomepage
libjpeghomepage
libjpeg-turbohomepage
libpnghomepage
libprotobuf-mutatorhomepage
libsecrethomepage
libsrtphomepage
libudevhomepage
libunwindhomepage
libusbxhomepage
libvpxhomepage
libxmlhomepage
libxslthomepage
libyuvhomepage
logilabhomepage
lottie-viewshomepage
LZMA SDKhomepage
mach_overridehomepage
Material Components for iOShomepage
Material Design Iconshomepage
Material Font Disk Loader iOShomepage
Material Internationalization for iOShomepage
Material Roboto Font Loader iOShomepage
Material Sprited Animation Viewhomepage
Material Text Accessibility iOShomepage
MediaController Android sample.homepage
mesa_headershomepage
MessagePack implementation for C and C++homepage
Metrics Protoshomepage
minigbmhomepage
modp base64 decoderhomepage
Motion Animator for Objective-Chomepage
Motion Interchange for Objective-Chomepage
Motion Transitioning for Objective-Chomepage
Mozilla Personal Security Managerhomepage
Nanum Fonthomepage
native clienthomepage
Netscape Portable Runtime (NSPR)homepage
Network Security Services (NSS)homepage
newlib-extrashomepage
NSBezierPath additions from Sean Patrick O'Brienhomepage
NVidia Control X Extension Libraryhomepage
NVIDIA Management Libraryhomepage
Oculus SDK for Windowshomepage
OpenCChomepage
OpenH264homepage
OpenJDK-localehomepage
OpenMAX DLhomepage
OpenSSLhomepage
OpenVR SDKhomepage
OTS (OpenType Sanitizer)homepage
Paul Hsieh's SuperFastHashhomepage
PDFiumhomepage
Perfettohomepage
PLCrashReporterhomepage
plcrashreporter from feelformhomepage
PLY (Python Lex-Yacc)homepage
Polymerhomepage
Protocol Buffershomepage
PSTFoundationBenchmarkhomepage
pyjson5homepage
pylinthomepage
Quick Color Management Systemhomepage
re2 - an efficient, principled regular expression libraryhomepage
Recurrent neural network for audio noise reductionhomepage
sfntlyhomepage
simplejsonhomepage
Small, safe and fast formatting libraryhomepage
SMHasherhomepage
Snappy: A fast compressor/decompressorhomepage
Socket.IO C++ Clienthomepage
Socket.IO C++ Client from comaeiohomepage
Sparklehomepage
Speech Dispatcherhomepage
SPIR-V Headershomepage
SPIR-V Toolshomepage
SQLCipherhomepage
sqlitehomepage
Strongtalkhomepage
Sudden Motion Sensor libraryhomepage
Super fast C++ logging libraryhomepage
SwiftShaderhomepage
tcmallochomepage
test_fontshomepage
The Chromium Projecthomepage
The USB ID Repositoryhomepage
tlslitehomepage
uidevice-extensionhomepage
UnRAR source for decompressing .RAR and other files.homepage
URI Template Parserhomepage
url_parsehomepage
usrsctphomepage
v4l-utilshomepage
V8 JavaScript Enginehomepage
valgrindhomepage
Web Animations JShomepage
WebKithomepage
WebM container parser and writer.homepage
WebP image encoder/decoderhomepage
WebRTChomepage
wienerhomepage
Windows Template Library (WTL)homepage
xdg-mimehomepage
xdg-user-dirshomepage
XZ Utilshomepage


오픈소스 구성요소 및 라이선스

포함된 소프트웨어 및 라이선스

다음 오픈소스 소프트웨어는 다른 라이선스 하에 배포 및 제공되거나 다른 위치에서 소스를 가져옵니다.

패키지 이름라이선스
SQLite공개 도메인
Google 데이터 Python 클라이언트 라이브러리Apache 라이선스 2.0
pySqlite2zlib/libpng 라이선스
wxPythonwxWindows 라이브러리 라이선스, 버전 3.1
PyObjCMIT 라이선스
python-gflagsBSD 라이선스
psutilBSD 라이선스
BoostBoost 소프트웨어 라이선스
curlMIT/X 파생 라이선스
ExpatMIT-스타일
유니코드용 국제 구성요소MIT/BSD
JQueryMIT
libunwindMIT
BoringSSLBoringSSL 라이선스
UTF-8 라이브러리Lucent 공개 라이선스 1.02
zlibMIT-스타일
DokanyLGPL
Chromium BreakpadBreakpad 라이선스
Chromium CrashPadApache 2.0
Mini ChromiumBSD
Mozilla 최상위 수준 도메인 목록MPL 2.0
FUSELGPL
OSX FUSELGPL
BoostBoost 소프트웨어 라이선스
pywin32PSF
python-keyringPSF
apiclientMIT
uritemplateApache 2.0
futuresBSD
decoratorBSD
enum34BSD
httplib2MIT
pathlibMIT
oauth2clientApache 2.0
yappiMIT
biplistBSD
python2.7PSF
comtypesMIT 라이선스
pybind11BSD 3-Clause 라이선스


AhnLab Open Source Software Notice


Product Name : AhnLab Safe Transaction for Mac


Those products identified by the Product Type and Model Range above from AhnLab, Inc. ("AhnLab") contain the open

source software detailed below. Please refer to the indicated open source licenses (as are included following this notice) for

the terms and conditions of their use.

The source code for the above may be obtained free of charge from AhnLab at http://opensource.ahnlab.com. AhnLab will also provide

open source code to you on CD-ROM for a charge covering the cost of performing such distribution (such as the cost of

media, shipping, and handling) upon email request to opensource@ahnlab.com.

Please be informed that AhnLab products may contain open source software listed in the tables below.



AhnLab OpenSource Site : https://opensource.ahnlab.com

-----------------------------------------------------------------------------------------------------------------------------------


inih, BSD, https://github.com/editorconfig/editorconfig-core-c/tree/master/src/lib

googletest 1.6.0, BSD, https://github.com/google/googletest

netgrowler 0.2.5, MIT, https://github.com/scottlamb/netgrowler

jsoncpp 0.5.0, Public Domain, https://github.com/open-source-parsers/jsoncpp


-----------------------------------------------------------------------------------------------------------------------------------


inih

--------------------------------------------------------------------------

The "inih" library is distributed under the New BSD license:


Copyright (c) 2009, Brush Technology

All rights reserved.


Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions are met:

    * Redistributions of source code must retain the above copyright

      notice, this list of conditions and the following disclaimer.

    * Redistributions in binary form must reproduce the above copyright

      notice, this list of conditions and the following disclaimer in the

      documentation and/or other materials provided with the distribution.

    * Neither the name of Brush Technology nor the names of its contributors

      may be used to endorse or promote products derived from this software

      without specific prior written permission.


THIS SOFTWARE IS PROVIDED BY BRUSH TECHNOLOGY ''AS IS'' AND ANY

EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

DISCLAIMED. IN NO EVENT SHALL BRUSH TECHNOLOGY BE LIABLE FOR ANY

DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES

(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;

LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND

ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT

(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


Go to the project home page for more info:

http://code.google.com/p/inih/

--------------------------------------------------------------------------


googletest 1.6.0

--------------------------------------------------------------------------

Copyright 2008, Google Inc.

All rights reserved.


Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions are

met:


    * Redistributions of source code must retain the above copyright

notice, this list of conditions and the following disclaimer.

    * Redistributions in binary form must reproduce the above

copyright notice, this list of conditions and the following disclaimer

in the documentation and/or other materials provided with the

distribution.

    * Neither the name of Google Inc. nor the names of its

contributors may be used to endorse or promote products derived from

this software without specific prior written permission.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS

"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT

LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR

A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT

OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,

DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY

THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT

(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE

OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.



--------------------------------------------------------------------------


netgrowler 0.2.5

--------------------------------------------------------------------------

Copyright © 2004–2007 Scott Lamb <slamb@slamb.org>.


Permission is hereby granted, free of charge, to any person obtaining a

copy of this software and associated documentation files (the "Software"),

to deal in the Software without restriction, including without limitation

the rights to use, copy, modify, merge, publish, distribute, sublicense,

and/or sell copies of the Software, and to permit persons to whom the

Software is furnished to do so, subject to the following conditions:


The above copyright notice and this permission notice shall be included in

all copies or substantial portions of the Software.


THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL

THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER

DEALINGS IN THE SOFTWARE.

--------------------------------------------------------------------------


jsoncpp 0.5.0

--------------------------------------------------------------------------

The json-cpp library and this documentation are in Public Domain.

--------------------------------------------------------------------------

OpenSSL : https://www.openssl.org/source/license.html

MBProgressHUD : https://github.com/jdg/MBProgressHUD/blob/master/LICENSE

ListViewAnimations : https://github.com/nhaarman/ListViewAnimations

ViewPagerIndicator : https://github.com/JakeWharton/ViewPagerIndicator

NineOldAndroids : http://nineoldandroids.com/

Hashids : http://hashids.org/

Bouncy Castle : http://www.bouncycastle.org/license.html

BottomNavigation : https://github.com/Ashok-Varma/BottomNavigation

Retrofit : http://square.github.io/retrofit

OkHttp : http://square.github.io/okhttp

ReactiveX/RxAndroid : https://github.com/ReactiveX/RxAndroid

RxBinding : https://github.com/JakeWharton/RxBinding

LeakCanary : https://github.com/square/leakcanary

Slick : http://kenwheeler.github.io/slick

Mobile Detect : http://mobiledetect.net

SQLBrite : https://github.com/square/sqlbrite

DeepLinkDispatch : https://github.com/airbnb/DeepLinkDispatch#deeplinkdispatch

ZXing : https://github.com/zxing/zxing

Prefser : https://github.com/pwittchen/prefser

AdapterDelegates : https://github.com/sockeqwe/AdapterDelegates

Material-ish Progress : https://github.com/pnikosis/materialish-progress

airbnb/lottie-android : https://github.com/airbnb/lottie-android

ReactiveX/RxKotlin : https://github.com/ReactiveX/RxKotlin

tbruyelle/RxPermissions : https://github.com/tbruyelle/RxPermissions

Realm : https://github.com/realm/realm-java

lottie : https://github.com/toss/lottie

RxDownloader : https://github.com/esafirm/RxDownloader

RecyclerViewSnap : https://github.com/rubensousa/RecyclerViewSnap

MathParser.org-mXparser : https://github.com/mariuszgromada/MathParser.org-mXparser

MPAndroidChart : https://github.com/PhilJay/MPAndroidChart

picasso : http://square.github.io/picasso/

+ Recent posts