Project-ARTist / meta

Meta repository for matters related to more than one repository or even the whole project as such.
2 stars 0 forks source link

Android 8.0 Oreo Support #5

Closed sweisgerber-dev closed 7 years ago

sweisgerber-dev commented 7 years ago

Implementation in:

Affected Projects

sweisgerber-dev commented 7 years ago

Notes to self:

sweisgerber-dev commented 7 years ago

compiler/driver/compiler_driver.cc:663

  if (self->IsExceptionPending()) {
    ScopedObjectAccess soa(self);
    LOG(FATAL) << "Unexpected exception compiling: " << dex_file.PrettyMethod(method_idx) << "\n"
        << self->GetException()->Dump();
  }

de.heise.android.heiseonlineapp

14:57|weisgerber@dronebook ~/workspace/artist/ArtistGui $ ndk-stack -sym debug/android-26.full/ -dump checkme_06.log  
********** Crash dump: **********
Build fingerprint: 'google/sailfish/sailfish:8.0.0/OPR3.170623.007/4286350:user/release-keys'
pid: 10725, tid: 10730, name: Compiler driver  >>> /data/user/0/saarland.cispa.artist.artistgui/files/artist/dex2oat <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Stack frame #00 pc 0004aa9c  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libc.so: Routine tgkill at /proc/self/cwd/bionic/libc/arch-arm/syscalls/tgkill.S:10
Stack frame #01 pc 0001a3c3  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libc.so: Routine abort at bionic/libc/bionic/abort.cpp:49
Stack frame #02 pc 00339397  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart.so: Routine art::Runtime::Abort(char const*) at art/runtime/runtime.cc:522
Stack frame #03 pc 0033998f  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart.so: Routine art::Runtime::Aborter(char const*) at art/runtime/runtime.cc:2332
Stack frame #04 pc 003f11e1  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart.so: Routine std::__1::function<void (char const*)>::operator()(char const*) const at external/libcxx/include/functional:1915 (discriminator 1)
Stack frame #05 pc 000e2d1f  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine art::CompileMethod(art::Thread*, art::CompilerDriver*, art::DexFile::CodeItem const*, unsigned int, art::InvokeType, unsigned short, unsigned int, art::Handle<art::mirror::ClassLoader>, art::DexFile const&, art::optimizer::DexToDexCompilationLevel, bool, art::Handle<art::mirror::DexCache>) at art/compiler/driver/compiler_driver.cc:663 (discriminator 12)
Stack frame #06 pc 000ecee9  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine art::CompileClassVisitor::Visit(unsigned int) at art/compiler/driver/compiler_driver.cc:2630 (discriminator 1)
Stack frame #07 pc 000e9887  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine art::ParallelCompilationManager::ForAllClosure::Run(art::Thread*) at art/compiler/driver/compiler_driver.cc:1613
Stack frame #08 pc 0036c051  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart.so: Routine art::ThreadPoolWorker::Run() at art/runtime/thread_pool.cc:83
Stack frame #09 pc 0036bc71  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart.so: Routine art::ThreadPoolWorker::Callback(void*) at art/runtime/thread_pool.cc:99
Stack frame #10 pc 00047dbf  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libc.so: Routine __pthread_start(void*) at bionic/libc/bionic/pthread_create.cpp:215
Stack frame #11 pc 0001af7f  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libc.so: Routine __start_thread at bionic/libc/bionic/clone.cpp:46
14:57|weisgerber@dronebook ~/workspace/artist/ArtistGui $

de.wetteronline.wetterapp

14:30|weisgerber@dronebook ~/workspace/artist/ArtistGui $ ndk-stack -sym debug/android-26/ -dump checkme_05.log  
********** Crash dump: **********
Build fingerprint: 'google/sailfish/sailfish:8.0.0/OPR3.170623.007/4286350:user/release-keys'
pid: 10239, tid: 10239, name: dex2artist  >>> /data/user/0/saarland.cispa.artist.artistgui/files/artist/dex2oat <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Stack frame #00 pc 0004aa9c  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libc.so: Routine tgkill at /proc/self/cwd/bionic/libc/arch-arm/syscalls/tgkill.S:10
Stack frame #01 pc 0001a3c3  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libc.so: Routine abort at bionic/libc/bionic/abort.cpp:49
Stack frame #02 pc 00339397  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart.so: Routine art::Runtime::Abort(char const*) at art/runtime/runtime.cc:522
Stack frame #03 pc 0033998f  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart.so: Routine art::Runtime::Aborter(char const*) at art/runtime/runtime.cc:2332
Stack frame #04 pc 003f11e1  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart.so: Routine std::__1::function<void (char const*)>::operator()(char const*) const at external/libcxx/include/functional:1915 (discriminator 1)
Stack frame #05 pc 000e2d1f  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine art::CompileMethod(art::Thread*, art::CompilerDriver*, art::DexFile::CodeItem const*, unsigned int, art::InvokeType, unsigned short, unsigned int, art::Handle<art::mirror::ClassLoader>, art::DexFile const&, art::optimizer::DexToDexCompilationLevel, bool, art::Handle<art::mirror::DexCache>) at art/compiler/driver/compiler_driver.cc:663 (discriminator 12)
Stack frame #06 pc 000ecfd9  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine art::CompileClassVisitor::Visit(unsigned int) at art/compiler/driver/compiler_driver.cc:2655 (discriminator 1)
Stack frame #07 pc 000e9887  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine art::ParallelCompilationManager::ForAllClosure::Run(art::Thread*) at art/compiler/driver/compiler_driver.cc:1613
Stack frame #08 pc 0036c8e5  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart.so: Routine art::ThreadPool::Wait(art::Thread*, bool, bool) at art/runtime/thread_pool.cc:227
Stack frame #09 pc 000e53b5  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine art::ParallelCompilationManager::ForAll(unsigned int, unsigned int, art::CompilationVisitor*, unsigned int) at art/compiler/driver/compiler_driver.cc:1589
Stack frame #10 pc 000e0ba9  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine art::CompilerDriver::CompileDexFile(_jobject*, art::DexFile const&, std::__1::vector<art::DexFile const*, std::__1::allocator<art::DexFile const*> > const&, art::ThreadPool*, unsigned int, art::TimingLogger*) at art/compiler/driver/compiler_driver.cc:2685 (discriminator 1)
Stack frame #11 pc 000df2dd  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine art::CompilerDriver::CompileAll(_jobject*, std::__1::vector<art::DexFile const*, std::__1::allocator<art::DexFile const*> > const&, art::TimingLogger*) at art/compiler/driver/compiler_driver.cc:424
Stack frame #12 pc 000e1655  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine art::CompilerDriver::CompileAll(_jobject*, std::__1::vector<art::DexFile const*, std::__1::allocator<art::DexFile const*> > const&, art::VdexFile*, art::TimingLogger*) at art/compiler/driver/compiler_driver.cc:450
Stack frame #13 pc 00018155  /data/data/saarland.cispa.artist.artistgui/files/artist/dex2oat: Routine art::Dex2Oat::Compile() at art/dex2oat/dex2oat.cc:1801 (discriminator 2)
Stack frame #14 pc 00008dbb  /data/data/saarland.cispa.artist.artistgui/files/artist/dex2oat: Routine art::CompileApp(art::Dex2Oat&) at art/dex2oat/dex2oat.cc:2920
Stack frame #15 pc 00017d45  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libc.so: Routine __libc_init at bionic/libc/bionic/libc_init_dynamic.cpp:114
Stack frame #16 pc 000081e4  /data/data/saarland.cispa.artist.artistgui/files/artist/dex2oat: Routine _start at libgcc2.c:?

14:30|weisgerber@dronebook ~/workspace/artist/ArtistGui $ ndk-stack -sym /home/weisgerber/mount/colossus04/weisgerber/aosp/aosp_8.0.0_r9_arm-eng/out/target/product/generic_arm64/obj/lib/ -dump checkme_05.log  
********** Crash dump: **********
Build fingerprint: 'google/sailfish/sailfish:8.0.0/OPR3.170623.007/4286350:user/release-keys'
pid: 10239, tid: 10239, name: dex2artist  >>> /data/user/0/saarland.cispa.artist.artistgui/files/artist/dex2oat <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Stack frame #00 pc 0004aa9c  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libc.so: Routine __strtodg at sfp-exceptions.c:?
Stack frame #01 pc 0001a3c3  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libc.so: Routine ??
??:0
Stack frame #02 pc 00339397  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart.so: Routine art::JNI::SetDoubleField(_JNIEnv*, _jobject*, _jfieldID*, double) at unwind-dw2-fde-dip.c:?
Stack frame #03 pc 0033998f  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart.so: Routine art::JNI::GetStaticMethodID(_JNIEnv*, _jclass*, char const*, char const*) at unwind-dw2-fde-dip.c:?
Stack frame #04 pc 003f11e1  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart.so: Routine std::__1::__function::__func<art::CmdlineParser<art::RuntimeArgumentMap, art::RuntimeArgumentMap::Key>::ArgumentBuilder<art::JDWP::JdwpOptions>::ArgumentBuilder(art::CmdlineParser<art::RuntimeArgumentMap, art::RuntimeArgumentMap::Key>::Builder&, std::__1::shared_ptr<art::CmdlineParser<art::RuntimeArgumentMap, art::RuntimeArgumentMap::Key>::SaveDestination>)::{lambda()#1}, std::__1::allocator<{lambda()#1}>, art::JDWP::JdwpOptions& ()>::__clone() const at unwind-dw2-fde-dip.c:?
Stack frame #05 pc 000e2d1f  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine ??
??:0
Stack frame #06 pc 000ecfd9  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine ??
??:0
Stack frame #07 pc 000e9887  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine ??
??:0
Stack frame #08 pc 0036c8e5  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart.so: Routine art::MemMap::AlignBy(unsigned long) at ??:?
Stack frame #09 pc 000e53b5  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine ??
??:0
Stack frame #10 pc 000e0ba9  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine ??
??:0
Stack frame #11 pc 000df2dd  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine ??
??:0
Stack frame #12 pc 000e1655  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine ??
??:0
Stack frame #13 pc 00018155  /data/data/saarland.cispa.artist.artistgui/files/artist/dex2oat
Stack frame #14 pc 00008dbb  /data/data/saarland.cispa.artist.artistgui/files/artist/dex2oat
Stack frame #15 pc 00017d45  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libc.so: Routine ??
??:0
Stack frame #16 pc 000081e4  /data/data/saarland.cispa.artist.artistgui/files/artist/dex2oat

14:45|weisgerber@dronebook ~/workspace/artist/ArtistGui $ ndk-stack -sym debug/android-26.full/ -dump checkme_05.log  
********** Crash dump: **********
Build fingerprint: 'google/sailfish/sailfish:8.0.0/OPR3.170623.007/4286350:user/release-keys'
pid: 10239, tid: 10239, name: dex2artist  >>> /data/user/0/saarland.cispa.artist.artistgui/files/artist/dex2oat <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Stack frame #00 pc 0004aa9c  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libc.so: Routine tgkill at /proc/self/cwd/bionic/libc/arch-arm/syscalls/tgkill.S:10
Stack frame #01 pc 0001a3c3  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libc.so: Routine abort at bionic/libc/bionic/abort.cpp:49
Stack frame #02 pc 00339397  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart.so: Routine art::Runtime::Abort(char const*) at art/runtime/runtime.cc:522
Stack frame #03 pc 0033998f  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart.so: Routine art::Runtime::Aborter(char const*) at art/runtime/runtime.cc:2332
Stack frame #04 pc 003f11e1  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart.so: Routine std::__1::function<void (char const*)>::operator()(char const*) const at external/libcxx/include/functional:1915 (discriminator 1)
Stack frame #05 pc 000e2d1f  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine art::CompileMethod(art::Thread*, art::CompilerDriver*, art::DexFile::CodeItem const*, unsigned int, art::InvokeType, unsigned short, unsigned int, art::Handle<art::mirror::ClassLoader>, art::DexFile const&, art::optimizer::DexToDexCompilationLevel, bool, art::Handle<art::mirror::DexCache>) at art/compiler/driver/compiler_driver.cc:663 (discriminator 12)
Stack frame #06 pc 000ecfd9  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine art::CompileClassVisitor::Visit(unsigned int) at art/compiler/driver/compiler_driver.cc:2655 (discriminator 1)
Stack frame #07 pc 000e9887  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine art::ParallelCompilationManager::ForAllClosure::Run(art::Thread*) at art/compiler/driver/compiler_driver.cc:1613
Stack frame #08 pc 0036c8e5  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart.so: Routine art::ThreadPool::Wait(art::Thread*, bool, bool) at art/runtime/thread_pool.cc:227
Stack frame #09 pc 000e53b5  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine art::ParallelCompilationManager::ForAll(unsigned int, unsigned int, art::CompilationVisitor*, unsigned int) at art/compiler/driver/compiler_driver.cc:1589
Stack frame #10 pc 000e0ba9  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine art::CompilerDriver::CompileDexFile(_jobject*, art::DexFile const&, std::__1::vector<art::DexFile const*, std::__1::allocator<art::DexFile const*> > const&, art::ThreadPool*, unsigned int, art::TimingLogger*) at art/compiler/driver/compiler_driver.cc:2685 (discriminator 1)
Stack frame #11 pc 000df2dd  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine art::CompilerDriver::CompileAll(_jobject*, std::__1::vector<art::DexFile const*, std::__1::allocator<art::DexFile const*> > const&, art::TimingLogger*) at art/compiler/driver/compiler_driver.cc:424
Stack frame #12 pc 000e1655  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libart-compiler.so: Routine art::CompilerDriver::CompileAll(_jobject*, std::__1::vector<art::DexFile const*, std::__1::allocator<art::DexFile const*> > const&, art::VdexFile*, art::TimingLogger*) at art/compiler/driver/compiler_driver.cc:450
Stack frame #13 pc 00018155  /data/data/saarland.cispa.artist.artistgui/files/artist/dex2oat: Routine art::Dex2Oat::Compile() at art/dex2oat/dex2oat.cc:1801 (discriminator 2)
Stack frame #14 pc 00008dbb  /data/data/saarland.cispa.artist.artistgui/files/artist/dex2oat: Routine art::CompileApp(art::Dex2Oat&) at art/dex2oat/dex2oat.cc:2920
Stack frame #15 pc 00017d45  /data/data/saarland.cispa.artist.artistgui/files/artist/lib/libc.so: Routine __libc_init at bionic/libc/bionic/libc_init_dynamic.cpp:114
Stack frame #16 pc 000081e4  /data/data/saarland.cispa.artist.artistgui/files/artist/dex2oat: Routine _start at libgcc2.c:?

test-apks (access restricted)

sweisgerber-dev commented 7 years ago

Injected app run

10-10 15:37:28.165 17944 17944 E zygote64: expected 1 dex files but found 2

10-10 15:37:28.066  1081  1784 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=de.heise.android.heiseonlineapp/.ui.ChannelActivity bnds=[255,245][512,440]} from uid 10035
10-10 15:37:28.069   803  4088 I ACDB-LOADER: ACDB AFE returned = -19
10-10 15:37:28.069   803  4088 D hardware_info: hw_info_append_hw_type : device_name = speaker
10-10 15:37:28.069   803  4088 D audio_hw_primary: enable_snd_device: snd_device(2: speaker)
10-10 15:37:28.069   803  4088 D audio_hw_primary: enable_audio_route: usecase(1) apply and update mixer path: low-latency-playback speaker
10-10 15:37:28.069   872   997 E ANDR-PERF-OPTSHANDLER: Warning: Resource [2, 0] not supported for core 1. Instead use resource for core 0
10-10 15:37:28.069   872   997 E ANDR-PERF-RESOURCEQS: Failed to apply optimization [2, 2, 0]
10-10 15:37:28.101  1081  2426 I ActivityManager: Start proc 17944:de.heise.android.heiseonlineapp/u0a150 for activity de.heise.android.heiseonlineapp/.ui.ChannelActivity
10-10 15:37:28.165 17944 17944 E zygote64: expected 1 dex files but found 2

Error Research

bool OatFileAssistant::DexChecksumUpToDate(const OatFile& file, std::string* error_msg) {
  (...)
  // art::OatFile
  uint32_t number_of_dex_files = file.GetOatHeader().GetDexFileCount();
  if (required_dex_checksums->size() != number_of_dex_files) {
  (...)
}
bool OatFileAssistant::DexChecksumUpToDate(const VdexFile& file, std::string* error_msg) {
  (...)
  // art::VdexFile
  uint32_t number_of_dex_files = file.GetHeader().GetNumberOfDexFiles();
  if (required_dex_checksums->size() != number_of_dex_files) {
  (...)
}
sweisgerber-dev commented 7 years ago

ARTist now works on Android 8.0 Oreo!

Fixed stuff:

Follow up work:

simonbuehler commented 5 years ago

hi, can artistgui and artist be tested on sdk27 (8.1) already - i found no releases anywhere?

schrnz commented 5 years ago

Hi, the problem is that while we had a working version of ARTist for Oreo, it it is outdated by now and therefore lacks a lot of functionality that we currently only have for 7 & 7.1, such as the clean module structure and SDK.

Progress is tracked in Project-ARTist/art#18, but I am not aware of anyone currently working on this since we lack the man power =/

You can either try to use an older version of the whole art + ARTist + ArtistGui ensemble that supports Oreo or try to port it over. Let me know if the latter is something you would consider.

May I ask for your ARTist use case? Maybe I can help there...

simonbuehler commented 5 years ago

i just wanted to give it a test dumping the network traffic from pogo, actually trying to get raid data from pokemongo to create raid maps from it ;) should the 8.0 branch work on 8.1 ?

schrnz commented 5 years ago

Not sure if we tested that, maybe @sweisgerber-dev has some insights here?

Btw if this is just for testing, an emulator with Android 7.1 could as well?

sweisgerber-dev commented 5 years ago

@simonbuehler I never tested it on 8.1 yet, but the possibility is pretty large that it works. Be sure to enable the setting: